Microcontroladores: Mensaje con desplazamiento en LCD

Comparte en tus redes sociales.

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. Los campos obligatorios están marcados con *