HOME

PRODUCTOS

PROYECTOS

TUTORIALES

VIDEOS

FREEWARE

PROGRAMAS

FUNCIONES C

EMPRESA

ENGLISH

                   

Conexión de un LCD a sistemas PIC 16/18

 

LCD16F88 021.jpg (89826 bytes)

 

 

Descripción general:

El LCD es actualmente el circuito más barato y confiable para mostrar datos en un proceso de monitoreo y control. Su interfaz con los controladores se realiza a través de un conector de 14 pines.

Todos los fabricantes del display de cristal líquido (“Liquid Cristal Display”) LCD, han estandarizado sus señales en el conector de 14 pines, así como sus comandos de control para el manejo del mismo

En el LCD se pueden mostrar datos como la hora y la fecha, así como valores de variables tales como nivel, presión, gasto, temperatura, etc.

El LCD puede también emplearse para mostrar parámetros internos del sistema, de acuerdo a su aplicación o para mostrar al usuario las opciones de configuración mientras lo opera.

 

El módulo LCD lleva integrado a sus circuitos una memoria ROM conocida como “generador de caracteres” que habrá de generar los patrones de la matriz de puntos (5 x 7 ó 7 x 9) que forman los caracteres en la pantalla.  También tiene una RAM interna que almacena los caracteres y los exhibe en el módulo LCD.

 

Hardware:

Para su integración a un sistema de microcontrol, el diagrama general de conexiones del display se muestra en la figura de abajo. En su aplicación más simple, se desea solo escritura al LCD y el pin 5 se conecta permanentemente a tierra.

Las señales del puerto B, RB0...RB7 son usadas para enviar los datos o comandos. Las señales del puerto A, RA1 y RA2 se usan como señales de control del LCD.

Todas las señales de datos y control llevan niveles TTL (0 a 5 volts), con excepción de la señal de control de intensidad, en el cual hay que aplicar tierra para la mayor intensidad y 5 volts para la menor. En los sistemas Bolt 18F2550 y EB88, este voltaje ya viene preajustado con un divisor de resistencias formado por R26 y R25, de  1K y 100K  para dar la intensidad adecuada.

                                                                                     

 

Operación:

En la interfaz de 14 pines, 8 son señales para el envío de comandos ó datos. Los datos se manejan en códigos ASCII y se escriben en la memoria del LCD en forma secuencial. A través de estas mismas señales pueden enviarse también los comandos mostrados en la tabla. En seguida se adjuntan 2 tablas. En la primera, se muestra la distribución de señales de la interfaz y en la segunda algunos de los comandos más comúnmente empleados.

 

PIN

FUNCION

PIN

FUNCION

1

Tierra

8

DB1 (RB1)

2

5 volts.

9

DB2 (RB2)

3 INT

Control intensidad

10

DB3 (RB3)

4 RS (RA1)

0=comando 1=datos

11

DB4 (RB4)

5 R/W

0=escribir , 1=leer       

12

DB5 (RB5)

6 EN (RA2)

Enable modo pulso

13

DB6 (RB6)

7

DB0 (RB0)

14

DB7 (RB7)

 

COMANDO

FUNCION

HEXA

CLEAR

LIMPIA DISPLAY

01H

HOME

POSICIONA CURSOR AL INICIO DEL LCD

03H

CURSOR

MUESTRA CURSOR CON PARPADEO

0FH

8 BITS

SELECCIONA INTERFAZ DE 8 BITS

38H

RENGLON1

SELECCIONA ESCRITURA EN EL PRIMER RENGLON

80H

RENGLON2

SELECCIONA ESCRITURA EN EL SEGUNDO RENGLON

C0H

 

Para escribir en el LCD, debe de seguirse la siguiente secuencia en la programación:

*con RS=0, se mandan comandos de inicialización al display LCD.Los comandos típicos son los mostrados en la tabla. Para enviar un comando,se escribe su código en los 8 bits RB0 ...RB7 y luego se da un pulso bajo de al menos 10 milisegundos de duración a la señal EN (RA2). EN es una señal que debe de estar normalmente ALTA.Es importante esperar unos 10 milisegundos a que los datos estén estables antes de aplicar el pulso. 

* con RS=1, se escribe los datos en código ASCII en las 8 líneas RB0 a RB7, con el mismo procedimiento señalado arriba. Los caracteres van apareciendo en el mismo orden en el que se mandan. Para un LCD de dos renglones, cada renglón debe de manejarse con un comando independiente. Para escribir en el primer renglón, debe previamente de enviarse el comando 80H y para el segundo renglón, un C0H

* Las señales de control RS y EN, se manejan por medio de los pines RA1 y RA2 del 16F84/F628/F88.

 

Conexión:

Existen, entre otros, dos tipos de displays LCD:

LCD 16 X 2 con dos renglones de 16 caracteres cada uno. Cada renglón se maneja en forma independiente. Para seleccionar escribir en el inicio del renglón, debe de enviarse antes el comando correspondiente: 80H (renglón 1) ó C0H (renglón 2). Además, cada celda tiene una dirección. Por ejemplo si queremos escribir en la tercera celda del segundo renglón, entonces enviamos antes el comando C3H.

LCD 16 X 1 es un dispositivo LCD con un solo renglón de 16 caracteres, pero electrónicamente está dividido en dos secciones de 8 caracteres. Cada una de estas secciones se maneja como si fuese un renglón de 8 caracteres, es decir, si se desea escribir en la primera sección debe enviarse antes el comando es 80H y para escribir en la segunda sección, C0H.

 

Programas de prueba para sistemas 16F84, 16F628 y 16F88:

CONEXIÓN DEL LCD AL SISTEMA EDUPIC/EVOLUPIC: para conectar un LCD a su sistema, conecte cada pin en el conector con su correspondiente contacto en el LCD, del 1 al 14, como se muestra en la figura. Es posible también realizar una conexión que deje libres los bits de datos RB0...RB3, usando una interfaz de 4 bits de datos, en lugar de 8. Más adelante se proporcionan archivos de prueba para ambas opciones de conexión.


NOTA IMPORTANTE: En los sistemas EDUPIC y EVOLUPIC, las señales de control correspondientes a RA1 y RA2 están compartidas por el puerto del LCD y los microswitches A1 y A2. Al operar el LCD en estos sistemas, los MICROSWITCHES A1 y A2 deberán estar en estado OFF, ABIERTOS. De lo contrario, el LCD no funcionará, debido a que sus señales de control estarán bloqueadas por los microswitches.

 

EN LENGUAJE ENSAMBLADOR:

 

EN ANSI C: