logo microc
    microC®
Líder en la programación de microcontroladores PIC
©2009-2012
Síguenos en    
logo facebook
Inicio La empresa. Contáctanos  | Cómo comprar nuestros productos  | Ofertas | Recursos | Mapa del sitio |

Es muy fácil conectar y programar el LCD 2x16

Extracto del Capítulo III del libro Cómo programar en lenguaje C los microcontroladores PIC16F88, 16F628A y 16F877A. 2da edición. 2010

Regístrate aquí para descargar una muestra gratis de este libro

Introducción

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í.
lcd 2x16

LCD 2X16: Pines  y Configuración

La pantalla LCD 2x16 tiene en total 16 pines. La datasheet (pdf) muestra 14 pines, los dos pines adicionales son el ánodo (15) y el cátodo (16) del LED de alumbrado de fondo.

lcd 2x16 pines
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).
lcd 2x16
                        configuracion

Cómo conectar el LCD 2x16 al PIC

La conexión más recomendable de la pantalla LCD 2x16 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 3.1.1 se indica la forma de conectar el display al PIC 16F88 y al PIC16F628A.
conectar lcd 2x16
Figura 3.1.1 Conexión del LCD al  PIC16F88 (16F628A) con 4 bits

Funciones de mikroC para LCD

mikroC proporciona una librería para comunicación con el display (con 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 su sentido de circulación de datos (se detallarán en los ejemplos de este capítulo).
funciones de mikroC
                        para LCD
Tabla 3.1 Funciones para LCD de la librería Lcd de mikroC

Ejemplos de mensajes de texto fijos y en movimiento con valores numéricos

Estos ejemplos corresponden al PIC16F88. El código fuente para los PICs 16F628A y 16F877A se encuentra en las carpetas correspondientes que acompañan a este libro.
En el siguiente ejemplo se emplea la función ByteToStr de la librería Conversions, 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 (figura 3.1.1). 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
//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;

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;  //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.
}
}


Temas relacionados que también encontrarás en este libro:
  • Creación de caracteres especiales

  • RAM del Generador de Caracteres (CGRAM)

  • Herramienta LCD Custom Character de mikroC

  • Presentación de números decimales en el LCD 2x16


caracteres especiales en LCD



Si esta información te ha sido útil
entonces considera la posibilidad
de hacer una contribución para microC.
Tu apoyo es muy importante para seguir adelante.
Muchas gracias.






Copyright © microC
Quito-Ecuador