Autor Tema: Ayuda Termometro Digital 2  (Leído 2173 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado machuca_rock

  • PIC10
  • *
  • Mensajes: 7
Ayuda Termometro Digital 2
« en: 01 de Diciembre de 2008, 23:35:10 »
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



 :-/

Desconectado dexmax07

  • PIC10
  • *
  • Mensajes: 4
Re: Ayuda Termometro Digital 2
« Respuesta #1 en: 16 de Enero de 2010, 21:47:39 »
tienes que mandar el mensaje a la pantalla a taves de un print, te escribo un ejemplo:

print at 1,1,"¡peligro!"   

print (enviar al lcd)
at (en)
1 (linea 1 del lcd)
1 (primer caracter de la linea 1 del lcd)
"" el mensaje qu quieres imprimir

cualquier duda estoy a tu disposicion...


 

anything