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.

 

soy el administrador del sitio web. si tienes alguna duda, no dudes en contactarme

Deja una respuesta

Tu dirección de correo electrónico no será publicada.