programacion de LCD

#1
Hola,estoi haciendo una incubadora que controle humedad y temperatura con el 8051.en el diseño utilizo el puerto 1 para el sensor de temperatura y el puerto 2 del micro para la humedad.la duda es que tengo q mostrar en un LCD la temperatura y humedad q rekoja en ese momento,pero no se como hacelo en el programa ya que solo consigo q muestre caracteres.abajo adjunto el programa para ver si me podeis ayudar.gracias
 

Adjuntos

Última edición:
#4
el archivo q me enviaste esta bien pero no e solucionado ningun problema.se que lo q tengo q acer es guardar lo que entra por el puerto en DPTR y mostrarlo por pantalla,lo que nose es en que momento y de que manera.si me pudierais ayudar me arias un grandisimo favor.Aparece ya el programa adjunto?lo vuelvo a poner por si acaso.gracias
 

Adjuntos

#5
darking: Es muy posible que el problema no esta en las rutinas del LCD que has posteado sino en el resto del codigo que no has colocado. Seria conveniente que subas esa parte para ver todo el codigo y sacar alguna conclusion... Saludos
 
#6
Muchas gracias tecnogirl,ya arregle el problema,aora solo m falta que me escriba en las dos lineas pero creo q no tardare mucho en sacarlo jeje,gracias de nuevo.
 
#9
t paso el programa final funcionando perfectamene en proteus.el problema fue q no puse la rutina para que me lo mostrar en la pantalla.No puedo subir el diseño por que excede del tamaño permitido.
 

Adjuntos

#10
darking89: Para que tu aporte quede completo... saca una imagen gif/jpg de la simulacion y esa si la puedes subir. Asegurate de usar un tamaño minimo de 640x480 pixeles. Aqui esperamos...

Saludos.
 
#11
darking89:
Revisando la ultima version de programa.doc, se puede optiimizar el codigo:

Código:
; LCD Display Driver Demo.
; Timing code assumes 1.2MHz Clock
; MicroProcessor: Intel 8051
 
...
 
cadena0:db 'TEMPERATURA=0',0 
cadena1:db 'TEMPERATURA=1-2',0
cadena2:db 'TEMPERATURA=3-4',0
cadena3:db 'TEMPERATURA=5-6',0
cadena4:db 'TEMPERATURA=7-8',0
cadena5:db 'TEMPERATURA=9-10',0
cadena6:db 'TMPERATURA=11-12',0
cadena7:db 'TMPERATURA=13-14',0
cadena8:db 'TMPERATURA=15-16',0
cadena9:db 'TMPERATURA=17-18',0
cadena10:db 'TMPERATURA=19-20',0
cadena11:db 'TMPERATURA=21-22',0
cadena12:db 'TMPERATURA=23-24',0
cadena13:db 'TMPERATURA=25-26',0
cadena14:db 'TMPERATURA=27-28',0
cadena15:db 'TMPERATURA=29-30',0
cadena16:db '+ de 30',0
lo cambias a:

Código:
cadena: db 'TEMPERATURA= ',0
cadena0:db '0',0
cadena1:db '1-2',0
cadena2:db '3-4',0
cadena3:db '5-6',0
cadena4:db '7-8',0
cadena5:db '9-10',0
cadena6:db '11-12',0
cadena7:db '13-14',0
cadena8:db '15-16',0
cadena9:db '17-18',0
cadena10:db '19-20',0
cadena11:db '21-22',0
cadena12:db '23-24',0
cadena13:db '25-26',0
cadena14:db '27-28',0
cadena15:db '29-30',0
cadena16:db '+ de 30',0

El cambio reduce el gasto de memoria, que es tan limitada en un microcontrolador.
Cuando visualices una temperatura cualquiera lo haces ahora en dos pasos: uno
para visualizar "Temperatura=" y otro para el valor.

Solo tienes que adicionar una sencilla subrutina que siempre hara lo mismo:
enviar el texto "Temperatura=" al LCD y la invocas con un call.

Saludos
 
Última edición por un moderador:
Arriba