TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: dsher en 12 de Mayo de 2013, 01:00:47
-
Hola, buenas noches/tardes what ever
escribo para ver si alguien me podria ayudar con un proyecto que tengo con un LCD 16X2 adjunto el programa talvez tenga muchas fallas :mrgreen: soy algo nuevo en esto :oops:
#include <16f84A.h>
#use delay(clock=4000000)
#fuses XT,NOWDT
#include <lcd.c>
void main (void)
{
set_tris_a(0x1F);
lcd_init();
do
{
if (input(PIN_A0))
{
lcd_putc("\f");
lcd_gotoxy(6,1);
printf(lcd_putc,"Piso");
lcd_gotoxy(7,2);
printf(lcd_putc,"Uno");
}
else if (input(PIN_A1))
{
lcd_putc("\f");
lcd_gotoxy(6,1);
printf(lcd_putc,"Piso");
lcd_gotoxy(7,2);
printf(lcd_putc,"Dos");
}
else if (input(PIN_A2))
{
lcd_putc("\f");
lcd_gotoxy(6,1);
printf(lcd_putc,"Piso");
lcd_gotoxy(7,2);
printf(lcd_putc,"Tres");
}
else if (input(PIN_A3))
{
lcd_putc("\f");
lcd_gotoxy(6,1);
printf(lcd_putc,"Piso");
lcd_gotoxy(7,2);
printf(lcd_putc,"Cuatro");
}
}
while(true);
}bueno el programa es para un elevador para que indique en que piso esta pero el problema es que pues el sensor va aestar dando un pulso continuo y cuando hago eso en proteus el lcd empieza a parpadear mucho y nose como remediarlo :I si alguien pudiera ayudarme de antemano gracias :)
-
lo que entiendo que le pasa es que el lcd se actualiza todo el tiempo con el mismo mensaje y por eso parece que parpadea, lo que podria hacer es utilizar el TMR0 para controlar que el LCD se acrtualice cada 100 o 200 ms y asi no enviar todo el tiempo datos al LCD.
Saludos
-
las lineas
lcd_putc("\f");
lcd_gotoxy(6,1);
printf(lcd_putc,"Piso");
la puedes colocar antes del Do, puesto que no cambiará mas en el programa y no se borrará mas en la pantalla (a menos que quites energía o quieras mostrar otra cosa en la misma línea)