tecmikro logo
Programación de microcontroladores PIC en mikroC PRO
Email: tecmikro@gmail.com   Cel. 098 743 8877   Telf. 243 0352 Quito-Ecuador


Display LCD 16x2 (2x16) con el HD44780 en mikroC PRO

 

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 del display LCD 16x2 (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 display LCD, aunque los más comunes son los LCD 16x2 (16 caracteres x 2 filas), gobernados por el controlador Hitachi HD44780, que se ha convertido en el estándar de facto para las aplicaciones con microcontroladores PIC; este articulo hace referencia a ese tipo de LCD. Existen LCD 16x2 con diferentes combinaciones de colores de fondo y texto.

Pinout (patillaje) del LCD 16x2 (LCD 2X16) con HD44780

El LCD 16x2 tiene en total 16 pines (tome en cuenta que la posición correcta del display es con los pines en la parte superior, aunque existen modelos en los que la posición correcta es con los pines en la parte inferior) . La datasheet (pdf) muestra 14 pines, los dos pines adicionales son el ánodo (15) y el cátodo (16) del LED de fondo. Debe notarse que el controlador Hitachi HD44780 se encuentra incorporado al circuito impreso del módulo LCD y sirve de interfaz entre la propia pantalla LCD (donde se muestran los caracteres) y el microcontrolador PIC. Por lo tanto, de todos los pines del HD44780 únicamente se tiene acceso a aquellos necesarios para la conexión al PIC y para el control de contraste.

Pinout del Display lcd 16x2 (lcd 2x16) con HD44780
Pinout Display lcd 16x2 (lcd 2x16) con HD44780
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).
Conexión del Display lcd 16x2 (lcd 2x16) con HD44780

Conexión del LCD 16x2 al PIC

La conexión más recomendable del display LCD 16x2 requiere 4 pines para los datos (D7:D4), 1 pin para habilitar/deshabilitar el display (E) y 1 pin para los modos comando/carácter (RS). En la figura siguiente se indica la forma de conectar el display al PIC16F88 y al PIC16F628A.

Circuito con Display lcd 16x2 (lcd 2x16) con HD44780 y PIC
Conexión del LCD al  PIC16F88 (y 16F628A) con 4 bits

Librería LCD de mikroC PRO

mikroC PRO for PIC tiene una librería para comunicación con LCDs basados en el controlador HD44780 o compatibles, a través de un interfaz de 4 bits para datos. 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 el sentido de circulación de datos (se detallarán en los ejemplos de este capítulo).

mikroC PRO para Display lcd 16x2 (lcd 2x16) con HD44780

 
Tabla 3.1 Funciones de la librería Lcd de mikroC PRO

Ejemplo en mikroC PRO con el PIC16F88

Estos ejemplos corresponden al PIC16F88 programado en mikroC PRO. El código fuente para los microcontroladores PIC16F628A y 16F877A se encuentra en las carpetas correspondientes que vienen junto con el libro.
En el siguiente ejemplo se emplea la función ByteToStr de la librería Conversions de mikroC PRO, para convertir el contenido de la variable contador (un byte) en una cadena de caracteres (string) y así poderlo visualizar en el display con la función Lcd_Out.

Ejemplo-LCD1.c: Cada vez que presiona el pulsador conectado en RA4 se incrementa un contador que se visualiza en el centro de la segunda línea de la pantalla. Si la cuenta supera 100, el conteo se reinicia desde 0. En el centro de la primera línea se muestra la palabra Conteo:
//LCD1.c
//Declaración de las 12 variables necesarias para la conexión del 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;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// Fin de declaración de variables de conexión.

char contador=0,estado=1,texto1[]="Conteo:", texto2[4];

void main(){
OSCCON=0x40; //Oscilador interno a 1MHz.
while (OSCCON.IOFS==0);//Esperar mientras el oscilador está inestable.
ANSEL=0x00;  //Pines 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 a texto el contenido de la variable contador
                             //y lo guarda en texto2.
 Lcd_Out(2,6,texto2);        //Muestra el texto2.
}
}
Temas relacionados que también encontrarás en el libro:
  • Creación de caracteres especiales
  • RAM del Generador de Caracteres (CGRAM)
  • Herramienta LCD Custom Character de mikroC PRO
  • Presentación de números decimales en el LCD 16x2 (2x16)

Caracteres especiales en Display lcd 16x2 (lcd 2x16) con HD44780

 


eBook en formato PDF "Cómo programar microcontroladores PIC"

Guía básica para programar microcontroladores PIC en mikroC PRO. Disponible en formato PDF. A la venta por tan sólo US$12.00

¡Cómpralo ya!