LCD Alfanumérico
El LCD son las siglas en ingles de Liquid Crystal Display o en su traducción al
español como visualizador de cristal liquido o comúnmente conocido como simplemente
LCD, existen muchos tipos de modelos que venden los diferentes fabricantes, estos van de
1 a 4 líneas y desde 8 a 40 caracteres por línea, además con o sin iluminación de fondo
(backlight), todos los LCD alfanuméricos son compatibles con el HITACHI HD44780. En
la figura 1.1 se muestra el aspecto de LCD comercial de 2 líneas X 16 caracteres.
Figura 1.1 LCD comercial.
Las características generales de los LCD’s es que el envió de datos puede ser en 8
bits o 4 bits, maneja diferentes caracteres como ASCII, Katakana, Griegos y Matemáticos,
puede desplazarse de derecha a izquierda y viceversa, memoria de 40 caracteres por línea
de pantalla, se pueden programar 8 caracteres ingresados por el usuario, son de consumo
reducido (menores a 8 mW), Al emplear un potenciómetro de 10K en el pin 3 se regula el
constraste como se muestra en la figura 1.2.
Figura 1.2 Distribución de pines del LCD
PATILLAJE DEL LCD
Los pines del LCD alfanumérico son los que se muestran en la tabla 1.1
Tabla 1.1 Pines del LCD
Patita Nombre Descripción Valores que se emplean
GND
1 VSS Tierra 0 volts
Vcc
2 VDD Fuente de Voltaje 5 volts
Máximo contraste cuando
3 VO Ajuste de Contraste VO = GND
RS=0 Comando
4 RS Selección de Registro RS=1 Datos
R/W=0 Escribir en el LCD
5 R/W Lectura / Escritura
R/W=1 Leer en el LCD
E=0 Inhabilitado
6 E Habilitación del LCD E=1 Habilitado
Modo 8 Bits se emplea todo el bus
7 – 14 DB0 - DB7 Data Bus
Modo 4 Bits se emplea solo el nibble alto
Iluminación trasera del LCD (opcional)
15 - 16 A-k Ánodo y Cátodo Poner una resistencia en serie de 20 a 100 Ω
Se puede manejar un LCD de 4 formas diferentes las cuales son las siguientes:
• 11 líneas, 3 de control y 8 de datos.
• 10 líneas, 2 de control y 8 de datos.
• 7 líneas, 3 de control y 4 de datos.
• 6 líneas, 2 de control y 4 de datos.
Cuando se usan 3 líneas de control se emplea E, RS y R/W donde se puede leer y
escribir en el LCD, cuando se usan solo 2 líneas de control se emplean solamente E y RS,
R/W no se emplea ya que solo se escribe en el LCD y por esta razón se conecta
directamente a GND este pin.
Para enviar un comando al LCD se necesita:
•RS=0, •R/W=0, • E=1.
Para enviar un dato al LCD se necesita:
•RS=1, •R/W=0, •E=1.
DATA DISPLAY RAM - DDRAM
El LCD pose un área de memoria RAM donde se almacenan los caracteres en
código ASCII que se visualizan en el LCD, llamada DDRAM que significa en ingles Data
Display RAM o Memoria de Acceso Aleatorio para Visualizar Datos, su capacidad es de 80
bytes, 40 por línea, en la línea 1 empieza en la posición 0x00 y termina en la posición 0x27
y en la línea 2 comienza en la posición 0x40 y termina en la posición 0x67, solo se pueden
visualizar un máximo de 32 bytes es decir 16 por línea como se muestra en la figura 1.3.
Figura 1.3 DDRAM
CHARACTER GENERATOR ROM - CGROM
Es el área de memoria no volátil llamada CGROM, donde se almacena una tabla
con los patrones de todos los caracteres que se puede visualizar en el LCD grabados de
fábrica, pueden variar desde 192 a 200 caracteres de 5 X 7 puntos y 32 de 5 X 10 puntos.
Cada carácter se representa por un código binario de 8 bits muy parecido al ASCII
empleando el mismo código para los códigos ASCII del 32 al 125, del 126 en adelante
difieren a los símbolos ASCII, la tabla 1.2 muestra los caracteres que tiene grabados de
fábrica. En la tabla existe un área denominada CG RAM donde se puede grabar ocho
caracteres definidos por el usuario, los caracteres están hechos en una matriz de 5 X 7
puntos como se ve en la figura 1.4 (a) y en (b) un carácter de llave que se puede hacer y
grabar en la CGROM.
Figura 1.4 matriz 5 X 7 (a) y carácter hecho por el usuario (b).
Tabla 1.2 Caracteres definidos de fábrica en la CGROM
CONTROL DEL LCD
Los comandos de control que acepta el HD44780 se resumen en la tabla 1.3, así
como los tiempos de ejecución.
Tabla 1.3 Comandos de Control
CODIGO DEL COMANDO
COMANDO TIEMPO
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Limpiar Pantalla 0 0 0 0 0 0 0 0 0 1 1.64ms
Retorno a Casa 0 0 0 0 0 0 0 0 1 X 1.64ms
Ajuste modo de entrada 0 0 0 0 0 0 0 1 I/D S 40µs
Control de Pantalla 0 0 0 0 0 0 1 D C B 40µs
Desplazamiento de
0 0 0 0 0 1 S/C R/L X X 40µs
Cursor & Pantalla
Ajuste de Función 0 0 0 0 1 DL N F X X 40µs
Ajuste de dirección de
0 0 0 1 Dirección del CGRAM 40µs
la CGRAM
Ajuste de la dirección
0 0 1 Dirección del DDRAM 40µs
de la DDRAM
Lectura de la bandera
0 1 BF Dirección del DDRAM 1µs
de ocupado
Escribir en la RAM 1 0 Escribir Dato 46µs
Leer de la RAM 1 1 Leer Dato 46µs
X1
Comando Limpiar Pantalla (Clear Display): Este comando borra toda la pantalla del
LCD y manda el cursor a la posición 00 de la DDRAM. Se debe enviar un 1 en modo
comando con RS=0 y E=1.
Comando Retorno a Casa (Return Home): Este comando regresa a la posición de inicio
es decir la 00 de la DDRAM, sin alterar el contenido de la pantalla del LCD se envía en
modo comando un 2 o un 3 ya que el primer bit es un estado de no importa.
Comando de Ajuste modo de entrada (Entry Mode Set): Este comando controla el
cambio e incremento y decremento de los datos en la LCD.
X
La X es una estado de no importa.
Incrementa uno la dirección de la DDRAM cuando un carácter es escrito o
I/D = 1
leído desde DDRAM.
I/D = 0 Decrementa uno la dirección de la DDRAM
La pantalla se desplaza en el sentido que se encuentre el Bit I/D a la derecha
S=1 cuando es cero y a la izquierda cuando I/D es uno, también parecerá como si el
cursor no se mueve pero la pantalla hace
S=0 La pantalla no se desplaza
Comando de Control de Pantalla (Display Control): Este comando controla los efectos del
LCD
D=1 La pantalla se enciende
La pantalla se apaga, los datos permanecen en la DDRAM y se muestran
D=0
inmediatamente que se encienda la pantalla
El Cursor se visualiza en la octava línea y el la onceaba línea dependiendo la
C=1
selección de la fuente a emplear
C=0 El cursor no se muestra
B=1 El cursor parpadea
B=0 Parpadeo con un cursor rectangular.
Comando de Desplazamiento de Cursor & Pantalla (Cursor and Display Shift): Este
comando controla los desplazamientos del cursor y de la pantalla
R/L = 1 El cursor se desplaza a la derecha sin escribir
R/L = 0 El cursor se desplaza a la izquierda sin escribir
El efecto de desplazamiento es aplicado sobre toda la pantalla, el efecto es
S/C = 1
horizontal no se aplica verticalmente.
El efecto de desplazamiento se aplica sobre el cursor sin alterar el contenido
S/C = 0
de la DDRAM, este efecto se emplea para buscar o corregir en la pantalla
Comando de Ajuste de Función (Funtion Set): Este comando para definir tipo de letra,
el número de líneas así como el largo de los datos.
Establece una longitud de la interfaz de datos de 8 bits DB7 a DB0
DL = 1
Establece una longitud de la interfaz de datos de 4 bits DB7 a DB4 lo que hace
DL = 0 que se deba de recibir dos veces primero el nibble alto y después el nibble bajo
LCD de 2 líneas
N=1
LCD de 1 línea
N=0
Fuente de 5 X 10 puntos
F=1
Fuentes de 5 X 8 puntos
F=0
Comando de Ajuste de dirección de la CGRAM (Set CGRAM Address): Con este
comando se envía un 1 en DB6 y la dirección de la CGRAM que se escribir en el LCD.
Comando de Ajuste de la dirección de la DDRAM (Set DDRAM Address): Con este
comando se puede modificar la posición a donde apunta la DDRAM, esto se hace enviando
un 1 a DB7 más la dirección a donde se quiera apuntar dentro de la DDRAM.
Comando de Lectura de la bandera de ocupado (Read Busy Flag): Enviando un 1 en R/W
se lee BF y también se lee l dirección DDRAM donde apunta
CREACION DE CARACTERES PERSONALIZAD OS
Para la creación de los caracteres personalizados se crean patrones como ya se ha explicado
anteriormente.
INICIO FIN
PATRON 1 0x40 0x47
PATRON 2 0x48 0x4F
PATRON 3 0x50 0x57
PATRON 4 0x58 0x5F
PATRON 5 0x60 0x67
PATRON 6 0x68 0x6F
PATRON 7 0x70 0x77
PATRON 8 0x78 0x7F