Repaso
El LCD es un dispositivo que permite mostrar mensajes y símbolos personalizados. Nuestra tarjeta de desarrollo G-One integra un socket especializado para trabajar con el LCD sin necesidad de realizar alguna conexión.
#define LCD_ENABLE_PIN PIN_E2
#define LCD_RS_PIN PIN_E0
#define LCD_RW_PIN PIN_E1
#define LCD_DATA4 PIN_D3
#define LCD_DATA5 PIN_D2
#define LCD_DATA6 PIN_D1
#define LCD_DATA7 PIN_D0
#include <LCD.c>
Las líneas anteriores se agregaran sin modificaciones cuando se desee trabajar con el LCD 16×2 en el socket de la G-One. En estas lineas se hace uso de la librería LCD.c que viene integrada en el compilador, en el modo de pin access.
La librería incluye las funciones para usar el LCD.
lcd_init();
La función “lcd_init()” inicializa el LCD. el LCD necesita recibir datos específicos y en tiempos específicos para poder utilizarse. Esta función envía los datos necesarios para inicializar el LCD.
lcd_putc(Caracteres a mostrar);
lcd_putc("Hola mundo"); //Ejemplo
La función “lcd_putc()” muestra únicamente caracteres en el LCD. La función recibe entre los paréntesis todos los caracteres a mostrar. Los caracteres se identifican de otro tipo de datos por que se encuentran entre comillas dobles.
lcd_gotoxy(posición x, posición y);
lcd_gotoxy(14, 2); //Ejemplo
la funcion “lcd_gotoxy()” permite ubicar un mensaje en el LCD. El LCD es una matriz de 16×2. Esta función permite ubicar los caracteres en las ubicaciones especificas dentro de estos rangos. Primero recibe el valor de “x”, después el de “y”.
lcd_set_cgram_char(dirección de memoria, carácter);
byte luna[] = {
0b00001,
0b00110,
0b11100,
0b11000,
0b11100,
0b11100,
0b00110,
0b00001
};
cd_set_cgram_char(1, luna); //Ejemplo
la funcion “cd_set_cgram_char()” permite guarda un carácter personalizado en la memoria cgram del LCD para después poder utilizarlo. La función recibe 2 parámetros, el primero es la ubicación en la memoria donde se guardara el carácter personalizado; normalmente solo se tienen 8 espacios libres, y el segundo es un arreglo de 8 elementos donde cada elemento esta conformado por 5 bits. Cada bit de cada elemento en el arreglo hace referencia a un pixel que se encenderá para mostrar la figura.
La funcion “lcd_putc()” tiene comandos para realizar funciones con el LCD.
lcd_putc("\f"); //Limpiar LCD
lcd_putc("\n"); //Saltar de posición en "y" en el LCD.
lcd_putc("\a"); //Colocar el cursor en la posición 1,1 del LCD
lcd_putc("\b"); //Retroceder el cursor una posición
Analiza el siguiente código y responde la pregunta.
lcd_gotoxy(5,1);
lcd_putc("G-One");
lcd_putc("\f");
El mensaje se muestra en la posición 5,1 del LCD
Justo después se limpia todo el LCD.
Al final de ejecutar el código el LCD no muestra nada.
Selecciona la opción de la imagen que muestre el resultado correcto
A)
B)
C)
Correcto. El mensaje se coloca en la posición 5,1 pero después se borra completamente el LCD, por lo que al final de ejecutar todo el código no se mostrara nada en el LCD. Gira la tarjeta para seguir aprendiendo.
Incorrecto. Puedes girar la tarjeta para ayudarte.
Código
Mensaje LCD
#include <18F45K50.h> //Libreria del Microcontrolador
#use delay( internal = 48Mhz ) //Frecuencia del Reloj
#build( reset = 0x02000, interrupt = 0x02008 ) //Reubicacion de vectores
#org 0x0000, 0x1FFF {} //Espacio del bootloader
#define LCD_ENABLE_PIN PIN_E2
#define LCD_RS_PIN PIN_E0
#define LCD_RW_PIN PIN_E1
#define LCD_DATA4 PIN_D3
#define LCD_DATA5 PIN_D2
#define LCD_DATA6 PIN_D1
#define LCD_DATA7 PIN_D0
#include <LCD.c>
byte char_g[] = {
0b11111,
0b10001,
0b10111,
0b10001,
0b10101,
0b11001,
0b11111,
0b11111
};
void main(){ //Funcion Principal
lcd_init();
lcd_set_cgram_char(0, char_g);
lcd_putc("\f");
while(1){ //Bucle infinito.
lcd_gotoxy(5,1);
lcd_putc("G-One");
delay_ms(200);
lcd_putc('\x00');
delay_ms(1000);
lcd_putc("\f");
lcd_gotoxy(2,2);
lcd_putc("Conect&Program");
delay_ms(2000);
lcd_putc("\f");
delay_ms(500);
}
}