Eduardo V. Abad
www.eduardoabad.esy.es
Descripción de las características y
funcionamiento del LCD 44780
Las pantallas de cristal líquido (LCD) se han popularizado mucho en los últimos
años, debido a su gran versatilidad para presentar mensajes de texto (fijos y en
movimiento), valores numéricos y símbolos especiales, su precio reducido, su bajo
consumo de potencia, el requerimiento de solo 6 pines del PIC para su conexión y
su facilidad de programación en lenguajes de alto nivel (por ejemplo, lenguaje C).
Desde todo punto de vista el empleo de la pantalla LCD 2x16 debería
considerarse como la primera opción a la hora de decidir por un dispositivo de
presentación alfanumérica, excepto cuando las condiciones de iluminación
ambiental no sean las más favorables. En este último caso se debería pensar en
el empleo de displays de 7 segmentos, que aunque no tienen la misma
versatilidad tienen la ventaja innegable de sus mejores características de
visibilidad aún en los ambientes más desfavorables. En la actualidad existen
diversos modelos de pantalla LCD, aunque los más comunes son las pantallas
LCD (2 filas x 16 caracteres), gobernados por el microcontrolador Hitachi
HD44780, que se ha convertido en el estándar de facto para las aplicaciones con
PICs. Específicamente se hará referencia al módulo LM016L, que tiene las
características mencionadas, aunque cualquier otro módulo LCD con el
controlador HD44780 o compatible se puede programar con las funciones
indicadas aquí.
La pantalla LCD 2x16 tiene en total 16 pines, La pantalla muestra 14 pines, los dos
pines adicionales son el ánodo (15) y el cátodo (16) del LED de alumbrado de
fondo.
www.eduardoabad.esy.es
La polarización del LED de fondo se logra conectando una resistencia externa de
50 ohm-1/4 W con lo que se asegura el correcto encendido sin una corriente
excesiva. El control de contraste se consigue con un potenciómetro de 10 k con el
cual se ajusta el nivel de voltaje en el pin 3 (Vee ó VLC).
www.eduardoabad.esy.es
Control de LCD mediante BUS de 4 bits
Para el trabajo con el módulo LCD se debe añadir la librería Lcd, que contiene las
funciones listadas en la tabla 3.1. Para poder utilizar estas funciones se debe
declarar previamente un total de 12 variables: 6 que definen los pines del PIC y
otras 6 que permiten programar su sentido de circulación de datos (se detallarán
en los ejemplos de este capítulo).
www.eduardoabad.esy.es
//LCD1.c
//Declaración de las 12 variables necesarias para la conexión
//de la pantalla LCD 2x16.
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
void main(){
OSCCON=0x40; //Oscilador interno a 1MHz.
while (OSCCON.IOFS==0);//Esperar mientras el oscilador está inestable.
ANSEL=0x00; //Bits AN6:AN0 como E/S digital.
Lcd_Init(); //Inicializa el LCD.
Lcd_Cmd(_LCD_CLEAR); //Borra el display.
Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor.
Lcd_Out(1,6,texto1); //Escribe el texto1.
while (1)
{
if (Button(&PORTA,4,1,0)) estado=0; //Si se pulsa.
if (estado==0 && Button(&PORTA,4,1,1)) //Si se pulsa y se libera.
{
contador++; //"contador" contiene el número de pulsaciones.
if (contador>100) contador=0;
estado=1;
}
ByteToStr(contador,texto2); //Convierte el contenido de la variable
//en texto.
Lcd_Out(2,6,texto2); //Escribe el texto2.
}
}
www.eduardoabad.esy.es
Cuestionario
Menciona que registros y bits de estos registros se afectan en el control del LCD
16x2.
Se escriben primero los 4 bits menos significativos y después los otros 4. El modo
requiere el doble de ciclos de escritura que el anterior y complica levemente la
implementación, pero presenta la ventaja de necesitar sólo 7 líneas, utilizando así
un puerto del microcontrolador.
Dado que sobra un bit del puerto, éste se suele utilizar para el encendido de la
retroiluminación (en los displays de los que se disponga de ella).
www.eduardoabad.esy.es
CODIGOS EN MPLAB
Código 1: verificamos que esta nuestro código y están agregadas las librerías.
www.eduardoabad.esy.es
Código 2: verificamos que esta el código con las librerías necesarias.
www.eduardoabad.esy.es
Código 3: verificamos que esta el código con las librerías necesarias.
www.eduardoabad.esy.es
PROTEUS
www.eduardoabad.esy.es
CODIGO 2: Nos damos cuenta que se genero el HEX y ahora lo importamos.
www.eduardoabad.esy.es
CODIGO 3: Nos damos cuenta que se genero el HEX y ahora lo importamos.
www.eduardoabad.esy.es