2. INTRODUCCION
En muchas aplicaciones con microcontroladores, se necesita visualizar un texto o el
valor de una variable. Por ejemplo, en una aplicación de control de temperatura se
puede visualizar el valor de la temperatura de forma dinámica. En la practica se
pueden usar, básicamente tres tipos de visualizadores: Las pantallas de video, los de
7 segmentos y los de cristal liquido (LCD). Las pantallas de video estándar requieren
interfaces complejas y su costo es relativamente alto.
Los visualizadores de 7 segmentos se realizan con diodos emisores de luz (LED). A
pesar que los visualizadores de LEDs proporcionan una buena iluminación, su
desventaja es el alto consumo de energía, lo que los hace inadecuados en algunas
aplicaciones portátiles alimentados con baterías.
Los LCD son visualizadores alfanuméricos que se usan frecuentemente en
aplicaciones con microcontroladores. Algunas de las ventajas de los LCDs son su bajo
coste y su bajo consumo de potencia…..
ESCUELA ESPECIALIZADA EN INGENIERIA -
2
MEGATEC
3. Circuito de conexión (Contraste e
iluminación del LCD.
ESCUELA ESPECIALIZADA EN INGENIERIA -
3
MEGATEC
4. Los LCDs son ideales para aplicaciones portátiles que requieran un bajo consumo
de potencia. Estos visualizadores se ofertan en diversas formas y tamaños.
Algunos LCDs permiten la visualización de 40 o mas caracteres, expuestos en
varias filas. Los LCDs mas avanzados pueden programarse para visualizar
imágenes graficas. Algunos módulos como los empleados en los juegos, son a
colores, y otros incorporan luz de fondo para que puedan verse en condiciones de
poca iluminación.
ESCUELA ESPECIALIZADA EN INGENIERIA -
4
MEGATEC
5. A continuación se estudiara como realizar la interfaz entre el microcontrolador PIC
y los LCDs estándares, así como las instrucciones que se emplean para controlar
los LCDs.
El interés en realizar la interfaz se centra en dos tipos básicos de LCDs: Los LCDs
paralelos y los LCDs serie.
Los LCDs paralelos se conectan a los puertos de E/S del microcontrolador
empleando cables de datos de 4 o 8 vías por lo que los datos se transfieren del
microcontrolador al LCD de forma paralela.
Los LCDs serie se conectan al microcontrolador a través de una solo línea de datos
y en este caso, los datos se transfieren al LCD empleado los protocolos de
comunicación de datos asíncronos RS232. Los LCDs serie son mas sencillos de
utilizar pero son mas caros que los paralelos.
ESCUELA ESPECIALIZADA EN INGENIERIA -
5
MEGATEC
6. Los LCDs Serie también tienen la ventaja que solo emplean un hilo de conexión
con el microcontrolador y, de esta forma, se ahorran terminales de E/S.
A continuación se analizara la interfaz y la programación de ambos tipos de LCDs.
ESCUELA ESPECIALIZADA EN INGENIERIA -
6
MEGATEC
7. EJEMPLO DE CONEXIÓN DEL LCD CON UN
MICROCONTROLADOR.
ESCUELA ESPECIALIZADA EN INGENIERIA -
7
MEGATEC
8. La programación de un LCD paralelo es una tarea compleja que requiere de una
adecuada comprensión del funcionamiento interno de los LCDs, incluyendo las
especificaciones de temporización.
Afortunadamente, el lenguaje PicBasic Profesional proporciona instrucciones
especiales para mostrar los datos en un visualizador LCD HD44780 u otro
compatible. El usuario solo tiene que conectar el LCD al puerto de E/S apropiado y
usar las instrucciones especiales para enviar los datos al LCD. El PicBasic estándar
no proporciona instrucciones especiales para programar LCDs paralelos.
ESCUELA ESPECIALIZADA EN INGENIERIA -
8
MEGATEC
9. MÓDULO LCD HD44780.
El HD44780 es uno de los módulos de LCD mas populares usados industrialmente
y en prototipos. Este módulo es monocromático y se oferta en diversas formas y
tamaños.
Existen módulos son longitudes de la línea de 8, 16, 20, 24, 32 y 40 caracteres así
como con 1,2 o 4 filas de visualización. El visualizador tiene un conector de 14
terminales para su interfaz con un microcontrolador.
A continuación se describirán las funciones de los terminales.
ESCUELA ESPECIALIZADA EN INGENIERIA -
9
MEGATEC
10. VSS. Es la referencia (0 V, tierra). El terminal VDD se conecta a la alimentación
positiva. A pesar de que los fabricantes especifican un alimentación de 5 V, el
módulo funciona desde 3 V hasta 6 V.
El terminal 3 se denomina VEE y permite ajustar el contraste del LCD. Se debe
conectar a una tensión variable. Para esto se emplea un potenciómetro cuyos
extremos se conectan entre las líneas de alimentación VDD y VSS y su terminal
variable se conecta a VEE de forma tal de poder ajustar el contraste del LCD. Sino
se desea realizar ningún ajuste, este terminal puede conectarse a la referencia. A
continuación el ejemplo de conexión.
ESCUELA ESPECIALIZADA EN INGENIERIA -
10
MEGATEC
11. El terminal 4 se denomina Selección de Registro (RS, Register Select). Se
pone a nivel bajo cuando se envían los comandos al visualizador, y a nivel alto,
cuando se envían (se reciben) los datos (del) visualizador.
El terminal 5 es el Lectura/Escritura (R/W, Read/Write). Se pone a nivel bajo
para escribir comandos o datos al módulo LCD. Se pone a nivel alto para leer
datos o información de estado del módulo. Este terminal normalmente se
conecta a la referencia, es decir, se pone al LCD en modo escritura.
El terminal 6 es el de habilitación (E, Enable) y se usa para iniciar la
transferencia de los comandos o datos entre el módulo LCD y el
microcontrolador. La escritura de los datos en el visualizador se realiza solo
cuando ocurre un flanco de caída en esta entrada. La lectura de los datos del
visualizador se habilita después que se aplica un flanco de subida en este
terminal. Los datos permanecen válidos mientras este terminal se encuentre
en nivel alto.
ESCUELA ESPECIALIZADA EN INGENIERIA -
11
MEGATEC
12. Los terminales del 7 al 14 se corresponden con las 8 líneas del bus de datos (D0 a
D7). Los datos se pueden transferir entre el microcontrolador y el módulo LCD a
través de una interfaz de 8 bits o de 4 bits. En este ultimo caso, solo se usan las
cuatro líneas de datos mas significativas (D4 a D7) de forma que los datos se
transfieren en 2 cuartetos (o nibbles). Este modo tiene la ventaja de emplear
menos líneas de E/S para la comunicación con el LCD.
ESCUELA ESPECIALIZADA EN INGENIERIA -
12
MEGATEC
13. PINES N° Nombre. Función.
1 VSS Tierra.
2 VDD Alimentación Positiva.
3 VEE Contraste.
4 RS Selección de Registro.
5 R/W Lectura/Escritura.
6 E Habilitación.
7 D0 Bit 0 de datos.
8 D1 Bit 1 de datos.
9 D2 Bit 2 de datos.
10 D3 Bit 3 de datos.
11 D4 Bit 4 de datos.
12 D5 Bit 5 de datos.
13 D6 Bit 6 de datos.
14 D7 Bit 7 de datos.
ESCUELA ESPECIALIZADA EN INGENIERIA -
13
MEGATEC
14. TERMINALES LCD.
ESCUELA ESPECIALIZADA EN INGENIERIA -
14
MEGATEC
15. TERMINALES LCD CON BACKLIGHT
ESCUELA ESPECIALIZADA EN INGENIERIA -
15
MEGATEC
16. Conexión del LCD al microcontrolador.
El compilador PicBasic Profesional asume por defecto que el LCD está
conectado a terminales específicos del microcontrolador, salvo que se
especifique lo contrario. Asume las conexiones siguientes.
LCD. MICROCONTROLADOR.
D4 RA0
D5 RA1
D6 RA2
D7 RA3
E RB3
RS RA4
ESCUELA ESPECIALIZADA EN INGENIERIA -
16
MEGATEC
17. A continuación se muestra el circuito de interfaz entre el LCD y el
microcontrolador. En este caso el terminal R/W del LCD no se usa y se conecta a
tierra. El ajuste del contraste se hace conectando un potenciómetro a VEE. El
terminal de puerto RA4 se conecta a +5 V con un resistor debido a que esta salida
es de drenador abierto y así se garantiza un nivel alto en RA4.
ESCUELA ESPECIALIZADA EN INGENIERIA -
17
MEGATEC
18. Una vez realiza las conexiones anteriores entre el microcontrolador y el LCD, solo
hay que enviar los comandos LCDOUT al modulo LCD. Si se desean cambiar las
conexiones entre el microcontrolador y el LCD se puede usar la instrucción
DEFINE, que permite asignar terminales del LCD a los del microcontrolador PIC.
En el ejemplo siguiente, los terminales del 0 al 4 del puerto B se usan como
terminales de datos (o sea, RB0 se conecta a D4, RB1 a D5, etc.), el bit 4 del puerto
B se conecta al terminal RS del LCD, el bit 5 del puerto B se conecta al terminal E
del LCD; el LCD se configura para transferencias de 4 bits y se asume que le LCD
tiene 2 filas.
ESCUELA ESPECIALIZADA EN INGENIERIA -
18
MEGATEC
19. Configuración personalizada de la interfaz entre el
microcontrolador y el LCD.
DEFINE LCD_DREG PORTB ‘Define puerto B como puerto de datos LCD
DEFINE LCD_DBIT 0 ‘Define bit 0 como bit de comienzo de dato
DEFINE LCD_RSREG PORTB ‘Define al puerto B como registro RS.
DEFINE LCD_RSBIT 4 ‘Define al bit 4 como terminal RS.
DEFINE LCD_EREG ‘Define al puerto B como registro E del LCD
DEFINE LCD_EBIT 5 ‘Define al bit 5 como terminal E del LCD
DEFINE LCD_BITS 4 ‘Definir funcionamiento de 4 bits.
DEFINE LCD_LINES 2 ‘Definir numero de filas del LCD.
DEFINE LCD_BITS 4 'Definir funcionamiento de 4 bits.
DEFINE LCD_BITS 8 'Define comunicación a 8 bits con el LCD.
DEFINE LCD_LINES 2 'Definir numero de filas del LCD.
DEFINE LCD_LINES 4 'Define un LCD de 4 líneas o filas.
ESCUELA ESPECIALIZADA EN INGENIERIA -
19
MEGATEC
20. El formato o sintaxis de la instrucción LCDOUT es:
LCDOUT Dato,Dato,…
Donde Dato puede ser un comando o un dato. Se emplean comandos para
diversas funciones: Borrar el visualizador, Enviar el cursor a casa, mover el cursor
a la izquierda o a la derecha, etc. Es muy importante que en el programa se
inserte un retraso de por lo menos 500 ms antes de enviar el primer comando al
LCD. Esto se debe a que es necesario esperar un tiempo para que el LCD se
inicialice.
ESCUELA ESPECIALIZADA EN INGENIERIA -
20
MEGATEC
21. La DECLARACION LCDOUT. Sirve para mostrar items en una pantalla de cristal
liquido, se utiliza escribiendo: LCDOUT, luego escribe $FE, y seguido por el
comando a utilizar, el siguiente cuadro muestra los comandos mas utilizados.
ESCUELA ESPECIALIZADA EN INGENIERIA -
21
MEGATEC
22. Todos los comandos deben precederse por el numero hexadecimal $FE . Por
ejemplo, para borrar el visualizador se debe enviar la instrucción.
LCDOUT $FE,1
De forma similar, para mover al cursor una posición a la izquierda se debe enviar
la instrucción:
LCDOUT $FE,$10
Asimismo, para mover al cursor a la 5ta posición de la primera fila, se debe enviar
la instrucción:
LCDOUT $FE,$80+5
ESCUELA ESPECIALIZADA EN INGENIERIA -
22
MEGATEC
23. Los datos se envían la LCD empleando la instrucción LCDOUT. La cadena de datos
a enviar al LCD se pone entre comilla dobles. Por ejemplo, la instrucción siguiente
visualiza la cadena HOLA en la posición actual del cursor.
LCDOUT “HOLA”.
Si una variable esta precedida de un carácter # (o de los caracteres DEC), se envían
al LCD la representación ASCII de cada digito. Por ejemplo, si la variable B1=208,
entonces con la instrucción:
LCDOUT #B1
O con:
LCDOUT DEC B1
Se visualiza en el LCD a los caracteres “2”, “0”, y “8”.
ESCUELA ESPECIALIZADA EN INGENIERIA -
23
MEGATEC
24. Si el carácter BIN precede a una variable, se envía al LCD la representación ASCII
de su valor BINARIO. Por ejemplo, si la variable B1=9, entonces con la instrucción:
LCDOUT BIN B1
Se visualiza en el LCD a los caracteres “1001”.
Si el valor numérico va precedido por HEX se enviara al LCD la representación
ASCII de su valor hexadecimal. Por ejemplo, si B0=255, entonces con la
instrucción:
LCDOUT HEX B0
Se visualiza “FF” en el LCD.
También se puede enviar al LCD varios caracteres repetidos. En el siguiente
ejemplo, se envían al LCD los caracteres “AAAAA”:
LCDOUT REP “A”5
ESCUELA ESPECIALIZADA EN INGENIERIA -
24
MEGATEC
25. Programa en PicBasic Profesional para visualizar las cadenas “PIC FILA 1” Y “PIC
FILA 2” en las filas 1 y 2 del LCD, respectivamente.
El programa es el siguiente:
ESCUELA ESPECIALIZADA EN INGENIERIA -
25
MEGATEC
26. EJEMPLO BÁSICO.
ESCUELA ESPECIALIZADA EN INGENIERIA -
26
MEGATEC