Microcontroladores: Mensaje con desplazamiento en LCD
MENSAJE A LA DERECHA.
Funciones del programa
#INCLUDE <16F887.h>: La librería que se va a usar es la del pic16F887.
#USE DELAY(CLOCK=4000000): Se activa la frecuencia del oscilador del sistema a 4MHZ.
#FUSES NOWDT: Son los fusibles de configuración.
El #FUSES NOWDT: Se deshabilita el Watch Dog Timer.
El #FUSES XT: Se activa el oscilador del sistema.
#INCLUDE<lcd.c>: Librería para el manejo de la pantalla LCD.
INT i: Define la “i” como una variable tipo entera.
WHILE(1): Bucle o ciclo infinito.
for (i=0; i<19;++i) : La variable “i” empieza hasta desde 0 hasta diecinueve.
lcd_init(): Inicializa la pantalla LCD.
lcd_gotoxy(i,1): Indica la posición del cursor definida por los parámetros X y Y.
X: Indica número de carácter.
Y: Indica número de línea.
printf(lcd_putc “Sensoricx”): Función que permite escribir cadena de caracteres en la pantalla LCD.
delay_ms(10): Retardo de 10 ms.
//Texto moviéndose a la derecha
#INCLUDE <16F887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT
#INCLUDE <lcd.c>
void main(){
WHILE(1){
INT i;
FOR(i=0;i<19;i++){ //Desplazamiento hacia la derecha a 10 ms, el 19 representa el número de posiciones que quiero que tenga
lcd_init(); //Inicia LCD
printf(lcd_putc “”);
lcd_gotoxy(i,1); //Controla el desplazamiento
printf(lcd_putc “Sensoricx”);
delay_ms(10);
}
}
}
Materiales.
Una pantalla LCD.
n Pic16F887.
Explicación del circuito
Se mostrará en una pantalla LCD 16×2, un mensaje desplazándose hacia la derecha. La pantalla LCD, está conectado en el puerto D del pic16F887.
Simulación.
Si se quiere utilizar el puerto B para conectarlo con la pantalla LCD, en el código solo se modifica lo siguiente: Se define los pines del puerto B.
//Texto moviéndose a la derecha
#INCLUDE <16F887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT
#DEFINE lcd_RS_PIN PIN_B1 //PUERTO B
#DEFINE lcd_RW_PIN PIN_B2
#DEFINE lcd_ENABLE_PIN PIN_B3
#DEFINE lcd_DATA4 PIN_B4
#DEFINE lcd_DATA5 PIN_B5
#DEFINE lcd_DATA6 PIN_B6
#DEFINE lcd_DATA7 PIN_B7
#INCLUDE <lcd.c>
void main(){
WHILE(1){
INT i;
FOR(i=0;i<19;i++){
lcd_init();
printf(lcd_putc “”);
lcd_gotoxy(i,1);
printf(lcd_putc “Sensoricx”);
delay_ms(10);
}
}
}
CONTENIDOS MÁS RELEVANTES.