![]() |
microC®
Líder
en la programación de microcontroladores PIC
©2009-2012 |
|
Síguenos en
|
| 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ónLas 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: Pines y ConfiguraciónLa 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.![]() 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).
![]() Cómo conectar el LCD 2x16 al PICLa 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.![]() Figura 3.1.1 Conexión del LCD al PIC16F88 (16F628A) con 4 bits Funciones de mikroC para LCDmikroC 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).![]() 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éricosEstos 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:
![]() |
|
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. |