Hola Amigos! soy nuevo en esto y estoy en este proyecto, manejo algunos comando en PBP y estoy en esto de hacer un termometro digital, anteriormente pregunte sobre algunas cosas que ya domino y bueno la pregunta es la siguiente
Tengo mi LCD serial ya armado y programado. Ocupo el sensor DS18B20 que sera leido la info por el LCD y tengo 3 leds que prenderan segun el rango de temperatura que me este indicando el display
Lo que necesito es como poder poner en pantalla un aviso que diga ¡PELIGRO! cuando sea una temperatura que sobrepase los 35 º C
Aqui les dejo mi programacion a ver si me pueden ayudar se los agradeceria mucho
'Proyecto Microcontroladores PATIMA
'------------------------------------------
DEVICE 16f84a
SYMBOL DQ = PORTB.0 ' pin DS1820
DIM Temp AS WORD ' dato temperatura
DIM C AS BYTE ' valor temporal
DIM CPerD AS BYTE ' valor de temperatura temporal
'*****************var LCD**************************
SYMBOL LCD = portb.1 'salida serial lcd
SYMBOL Baund2 16468 ' 96K2 bps 8bits no invert
SYMBOL I 254 'puntero lcd
SYMBOL clrr 1 'cont de limpieza lcd
SYMBOL linea1 = 128
SYMBOL linea2 = 192
SYMBOL ledd_verde = porta.3
SYMBOL ledd_ama = porta.4
SYMBOL ledd_rojo = porta.1
'***********************************************
SEROUT LCD, Baund2, [I,128,"SENSOR"]
SEROUT LCD, Baund2, [I,197,"TEMPERATURA"]
PAUSE 3000
SEROUT lcd, baund2, [I,clrr]
'---------------------------------------------------------------------------
Inicio:
OWRITE DQ, 1, [$CC, $44]
REPEAT
DELAYMS 25
OREAD DQ, 4, [C]
UNTIL C <> 0
OWRITE DQ, 1, [$CC, $BE]
OREAD DQ, 2,[Temp.LOWBYTE,Temp.HIGHBYTE, C, C, C, C, C, CPerD]
Temp = (((Temp >> 1) * 100) - 25) + (((CPerD - C) * 100) / CPerD)
SEROUT LCD, Baund2, [I,linea1,"TEMp = "]
SEROUT LCD, Baund2, [I,linea2," ",dec Temp /1000, ",",dec1 Temp,$df,"C"]
IF Temp/1000 >=0 AND Temp/1000 < 15 THEN
HIGH ledd_verde
ELSE
LOW ledd_verde
ENDIF
IF Temp/1000 >= 16 AND Temp/1000 < 20 THEN
HIGH ledd_ama
ELSE
LOW ledd_ama
ENDIF
IF Temp/1000 >= 21 AND Temp/1000 < 25 THEN
HIGH ledd_rojo
ELSE
LOW ledd_rojo
ENDIF
IF Temp/1000 >= 26 AND Temp/1000 < 40 THEN
HIGH ledd_rojo
ELSE
LOW ledd_rojo
ENDIF
IF Temp/1000 >= 26 AND Temp/1000 < 40 THEN
HIGH ledd_rojo
ELSE
LOW ledd_rojo
ENDIF
IF Temp/1000 >= 26 AND Temp/1000 < 40 THEN
HIGH ledd_rojo
ELSE
LOW ledd_rojo
ENDIF
IF Temp/1000 >= 26 AND Temp/1000 < 40 THEN
HIGH ledd_rojo
ELSE
LOW ledd_rojo
ENDIF
GOTO Inicio