#INCLUDE <16F887.h>: Es la librería que se va a necesitar, en este caso, es la del pic16F887.
#USE DELAY(CLOCK=4000000): Se activa la frecuencia del reloj del sistema a 4MHZ.
#FUSES NOWDT: Son los fusibles o bits de configuración.
- El #FUSES NOWDT: Se deshabilita el Watch Dog Timer.
- El #FUSES XT: Se activa el oscilador del sistema.
#INCLUDE<lcd.c>: Es la librería que se utiliza para el uso de la pantalla LCD.
INT i: Se define la “i” como una variable tipo entera.
WHILE(1): Bucle o ciclo infinito.
for (i=19; i>0;–i) : La variable “i” empieza hasta desde 19 hasta llegar a cero.
lcd_init(): Es la función para inicializar la pantalla LCD.
lcd_gotoxy(i,1): Es la función que 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”): Permite la escritura de cadena de caracteres en la pantalla LCD.
delay_ms(10): Indica un retardo de 10 ms.
Código
//Texto moviéndose a la izquierda
# include <16F887.h>
# USE DELAY (CLOCK=4000000)
# FUSES XT,NOWDT
# include <lcd.c>
void main() {
WHILE (1) {
INT i;
FOR(i = 19; i > 0; i–) {
lcd_init(); //inicia la pantalla LCD
printf(lcd_putc””);
lcd_gotoxy(1,1); //control del desplazamiento
printf(lcd_putc “sensoricx”);
delay_ms(10);
}
}
}
Explicación del circuito
En una pantalla LCD 16×2 se visualiza, un mensaje desplazándose hacia la izquierda. La pantalla LCD, está conectado en el puerto D del pic16F887.
Materiales
- Un pic16F887.
- Una pantalla LCD.
Simulación.
Si se requiere conectar la pantalla LCD al puerto B, solo en el código se define los pines que hacen parte del puerto B.
//Texto moviéndose a la izquierda
# include <16F887.h>
# USE DELAY (CLOCK = 4000000)
# FUSES XT,NOWDT
# DEFINE lcd_RS_PIN PIN_B1
# 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=19; i>0; i–) {
lcd_init (); //inicia LCD
printf(lcd_putc””);
lcd_gotoxy(1,1); //control del desplazamiento
printf(lcd_putc “sensoricx”);
delay_ms(10);
}
}
}
CIRCUITO.
CONTENIDOS MÁS RELEVANTES.