Pantallas de Cristal Líquido
A diferencia de los display de 7 segmentos, las pantallas LCD tienen la capacidad de mostrar caracteres alfanuméricos. Consta de una matriz de caracteres (5X7 puntos) distribuidos en una, dos o más líneas de 16, 20 y hasta 40 caracteres cada línea
Las pantallas tienen un microcontrolador que controla el proceso de despliegue de los caracteres en pantalla. El más común es el 44780.
Dependiendo del modelo de pantalla LCD a usar la disposición de los pines puede variar. Sin embargo todos los modelos que usen el microcontrolador 44780 dispondrán de las siguientes señales.
Módulo LCD 16x2 modelo SEID_16x2
Terminal Símbolo Función
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Gnd VDD Vo RS R-/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 Tierra Voltaje de 5V Voltaje de contraste Selección de registro Lectura-Escritura Habilitación Bus de datos
Diagrama de bloques:
Cabe destacar las áreas sombreadas que nos permiten una gran flexibilidad en la programación y manejo de este chip al incluir caracteres alfanuméricos predefinidos en memoria interna
Control de la pantalla
Comando RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Clear Display 0 0 0 0 0 0 0 0 0 1
Return Home 0 0 0 0 0 0 0 0 1 X
Entry Mode Set 0 0 0 0 0 0 0 1 I/D S
Display Control 0 0 0 0 0 0 1 D C B
Cursor and Display Shift 0 0 0 0 0 1 S/C R/L X X
Function Set 0 0 0 0 1 DL N F X X
Set CGRAM address 0 0 0 1 CGRAM ADDRESS
Set DDRAM address 0 0 1 DDRAM ADDRESS
Read Busy Flag 0 1 BF ADDRESS COUNTER
Write Ram 1 0 WRITE DATA
Read Ram 1 1 READ DATA
Clear Display 0 0 0 0 0 0 0 0 0 1
Borra la pantalla completa, devuelve el cursor a la posición inicial poniendo a cero la DDRAM (AC=0).
Return Home 0 0 0 0 0 0 0 0 1 X
Devuelve el cursor a la posición original de la DDRAM (address 00H). Se conserva el contenido de laDDRAM
Entry Mode Set 0 0 0 0 0 0 0 1 I/D S
Establece la dirección de movimiento del cursor y especifica el recorrimiento del diaplay (shift = S, I/D = incrementar/decrementar)
S = 0, no hay corrimiento cuando escribimos un nuevo carácter
S = 1, hay corrimiento al escribir un nuevo carácter. El desplazamiento es
controlado por I/D
I/D = 1, Incrementa la posición del cursor. La posición de la DDRAM se
incrementa tras cada lectura o escritura de la misma
I/D = 0, Se decrementa la posición del cursor decrementando el puntero de la
DDRAM.
Display Control 0 0 0 0 0 0 1 D C B
Control ON/OFF de la pantalla
B = 0,
Blink off
, no hay efecto de blinkeo o parpadeo del cursor
B = 1,
Blink on
, si hay efecto de blinkeo
C = 0,
Cursor off
, no se visualiza el cursor
D = 1,
Display on
, se enciende la pantalla
Cursor and Display Shift 0 0 0 0 0 1 S/C R/L X X
Control de desplazamiento de carácter y pantalla completa
R/L = 0, Rotate left, rotación del cursor a la izquierda
R/L = 1, Rotate right, rotación del cursor a la derecha
S/C = 0, Desplaza el cursor sin alterar el contenido de la DDRAM
S/C = 1, Desplaza el contenido de toda la pantalla
Function Set 0 0 0 0 1 DL N F X X
Control de hardware
F = 0,
Font
, caracteres de 5x8 puntos
F = 1,
Font,
caracteres de 5x10 puntos
N = 0,
Number line
, pantala lcd de una línea de caracteres
N = 1,
Number line
, pantalla lcd de dos líneas de caracteres
DL = 0,
Data legtht
, configura el modo de 4 bits de tranferencia de datos, DB7:DB4
DL = 1,
Data length
, configura el mode de 8 bits de transferencia datos, DB7:DB0.
Set CGRAM address 0 0 0 1 CGRAM ADDRESS
Escribe en la dirección de la CGRAM indicada en CGRAM address
Set DDRAM address 0 0 1 DDRAM ADDRESS
Modifica el puntero de la DDRAM para escribir sobre una casilla especifica moviendo el cursor a dicha posición.
Read Busy Flag 0 1 BF ADDRESS COUNTER
Lee el BF indicando que el sistema ocupado en una operación anterior
BF = 1, Operación interna en progreso
BF = 0, el sistema está listo para aceptar una operación.
Write Ram 1 0 WRITE DATA
Read Ram 1 1 READ DATA
Inicializar la pantalla lcd
N=0, LCD de 1 línea
N=1, LCD de 2 líneas
F=0, caracteres de 5X7 puntos
La tarea de configurar el 44780 para visualizar datos requiere de diversas rutinas que pueden ser programadas en librerías. Las subrutinas de control necesarias son las siguientes
1.
Inicializar el modulo LCD
2.
Visualizar la posición actual del cursor
3.
Borrar pantalla
4.
Controlar cuál línea de la pantalla está usándose
5.
Posición del cursor en cada línea
6.
Incluir caracteres de espacio
7.
Visualizar valores numéricos
La librería LCD_4BIT.INC incluye las subrutinas anteriores. Se recomienda analice con
detenimiento la librería anterior y que la comprenda porque de ello depende el desarrollo de las siguientes prácticas.
La siguiente actividad tiene como objetivo familiarizarse con el manejo de HW y SW de las pantallas de LCD
El siguiente código muestra el despliegue de un mensaje en el módulo LCD en el modo 4bits, el cual usa la librería LCD_4BIT.INC
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE<P16F84A.INC>
CBLOCK 0X0C
ENDC
ORG 0
Start
call LCD_Inicializa
movlw ‘U’
call LCD_Caracter
movlw ‘N’
movlw ‘S’
call LCD_Caracter
movlw ‘O’
call LCD_Caracter
movlw ‘N’
call LCD_Caracter
sleep
INCLUDE<LCD_4BIT.INC> INCLUDE<RETARDOS.INC> END