PANTALLA LCD
PRESENTACIÓN
DESCRIPCIÓN DE LA PANTALLA LCD
FUNCIONAMIENTO
INSTRUCCIONES
PROGRAMACIÓN DE CARACTERES
ESPECIALES
JUEGO DE CARACTERES
INICIALIZACIÓN
DESCRIPCIÓN
La pantalla de cristal liquido o LCD
(Liquid Crystal Display) es un
dispositivo Controlado de
visualización gráfica para la
presentación de caracteres,
símbolos o incluso dibujos (en
algunos modelos), es el caso de las
pantallas de LCD más comunes:
Uno de los modelos más comunes y
comerciales es el display LCD
AND491GST
Dispone de 2 filas de 16 caracteres
cada una y cada carácter dispone de una
matriz de 5x7 puntos (pixels), aunque
los hay de otro número de filas y
caracteres. Este dispositivo está
gobernado internamente por un
microcontrolador Hitachi 44780 y regula
todos los parámetros de presentación,
este modelo es el mas comúnmente usado
y esta información se basará en el manejo
de éste u otro LCD compatible.
Características principales:
Pantalla de caracteres ASCII, además de los
caracteres Kanji y Griegos.
Desplazamiento de los caracteres hacia la
izquierda o la derecha.
Proporciona la dirección de la posición absoluta o
relativa del caracter.
Memoria de 40 caracteres por línea de pantalla.
Movimiento del cursor y cambio de su aspecto.
Permite que el usuario pueda programar 8
caracteres.
-Conexión a un procesador usando una interfaz de
4 u 8 bits
FUNCIONAMIENTO
Para comunicarse con la pantalla LCD
podemos hacerlo por medio de sus
terminales de entrada de dos maneras
posibles, con bus de 4 bits o con bus de 8
bits, este último es más común. En la
siguiente figura vemos las dos maneras
posibles de conectar el LCD con un
pic16F84.
Conexionado con bus de 4 bits
Conexionado con bus de 8 bits
Como puede apreciarse, el control de
contraste se realiza al dividir la
alimentación de 5V con una resistencia
variable de 10K. Y se alcanza el máximo
contraste cuando el voltaje en esta terminal
tiende a ser O Volts.
Las líneas de datos son triestado, esto
indica que cuando el LCD no está
habilitado, sus entradas y salidas pasan a
alta impedancia
Pin No.
Símbolo
Descripción
1
Vss
Tierra de alimentación GND
2
Vdd
Alimentación de +5V CC
3
Vo
Tensión negativa para el
contraste de la pantalla
Rs
Selección del registro de
control/registro de datos:
RS=0 Selección registro de
control (instrucción)
RS=1 Selección registro de
datos
R/W
Señal de lectura/escritura:
R/W=0 Escritura (Write)
R/W=1 Lectura (Read)
6
E
Habilitación del modulo:
E=0 Módulo desconectado
E=1 Módulo conectado
7-14
D0-D7
Bus de datos bidireccional.
4
5
INSTRUCCIONES
LIMPIAR PANTALLA (CLEAR DISPLAY)
Borra el módulo LCD, es decir, coloca un espacio (20H)
en todas las direcciones de la DD-RAM (Display Data
RAM), provocando que todo mensaje escrito
desaparezca y el cursor regresa a la primera posición de
la primer línea (en caso de tener mas de una). Pone el
bit I/D a 1 por defecto.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
0
0
0
0
1
Tiempo de ejecución: 1.64mS
RETORNO (HOME)
Coloca el cursor en la posición de inicio (dirección
0) y hace que el display comience a desplazarse
desde la posición original. El contenido de la
memoria RAM de datos de visualización (DD
RAM) permanece invariable. La dirección de la
memoria RAM de datos para la visualización (DD
RAM) es puesta a 0.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
0
0
0
1
X
Tiempo de ejecución: 1.64mS
SELECCIÓN DEL MODO DE OPERACIÓN (ENTRY
MODE SET)
Establece la dirección de movimiento del cursor, es decir, si
I/D=1, incrementa la dirección de la DD-RAM en una unidad
cada vez que es usada una instrucción de lectura o escritura;
si I/D=0, la dirección decrementa. Estas operaciones se
ejecutan durante la lectura o escritura de la DD RAM o CG
RAM. Cuando S=1 el mensaje se desliza hacia la izquierda (si
I/D=1) o hacia la derecha (si el bit I/D=0). Para visualizar
normalmente poner el bit S=0.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
0
0
1
I/D
S
Tiempo de ejecución: 40µS
CONTROL DE ENCENDIDO DEL DISPLAY (DISPLAY
ON/OFF CONTROL )
Activa o desactiva poniendo en ON /OFF tanto al display como
al cursor y se establece si este último debe o no parpadear (B).
Para activar o desactivar el display, deberá colocarse el bit de
activación en D. Para activar o desactivar el cursor, deberá
colocarse el bit de activación en C. En caso de estar activado el
cursor, el bit B sirve para configurar la aparición de éste: Cuando
B=1 el cursor alterna con el texto en el segmento en que se
encuentra. Cuando B=0 el cursor se activa en forma de un cubo
negro (todos los pixeles activos) con intervalos regulares de 0.4
segundos, relegando al texto que hubiese.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
0
1
D
C
B
Tiempo de ejecución: 40µS
DESPLAZAMIENTO DEL CURSOR RESPECTO
AL MENSAJE
(CURSOR OR DISPLAY SHIFT)
Mueve el cursor y desplaza el display sin cambiar el
contenido de la memoria de datos de visualización DD
RAM. Esta función se emplea normalmente para
modificar solo algún dato en pantalla evitando la
necesidad de limpiarla (borrarla) y escribir nuevamente
todo su contenido
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
0
1
S/C R/L
X
X
Tiempo de ejecución: 40µS
S/C
R/L
Efecto
0
0
0
1
1
0
Desplaza el cursor hacia la izquierda
(decrementa el contador de direcciones
una unidad)
Desplaza el cursor hacia la derecha
(incrementa el contador de direcciones
una unidad)
Desplaza el cursor junto con el mensaje
hacia la izquierda
1
1
Desplaza el cursor junto con el mensaje
hacia la derecha
CONFIGURACIÓN DEL MODO DE
FUNCIONAMIENTO (FUNCTION SET )
Establece el número de bits de interconexión: los datos
son transportados en 8 bits (DB7-DB0) cuando DL=1, y
en 4 bits (DB7-DB4) cuando DL=0, viéndose forzado el
programador a crear una estrategia para enviar los datos
en dos operaciones (bits más significativos primero,
luego bits menos significativos). N establece el número
de líneas del display y F establece el tipo de carácter.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
0
1
DL
N
F
X
X
Tiempo de ejecución: 40µS
N
F
No. De
líneas
Tipo de
matriz
Factor
de
trabajo
0
0
1
7x5
(8x5)
1/8
0
1
1
10x5
1/11
1
X
2
7x5
(8x5)
1/11
Observaciones
Cuando la matriz
es de 10x5 no es
posible usar dos
lineas
DIRECCIONAMIENTO DE LA CG-RAM ( SET THE CG
RAM ADDRESS)
El módulo LCD además de tener definidos todo el conjunto de
caracteres ASCII, permite al usuario definir 4 u 8 caracteres
gráficos. La composición de estos caracteres se va guardando en
una memoria llamada CG RAM (Character Generator RAM) con
capacidad para 64 bytes. Cada carácter gráfico definido por el
usuario se compone de 16 u 8 bytes que se almacenan en sucesivas
posiciones de la CG RAM.
Mediante esta instrucción se establece la dirección de memoria
CG RAM a partir de la cual se irán almacenando los bytes que
definen un carácter gráfico. Ejecutando este comando todos los
datos que se lean o escriban posteriormente, lo hacen desde esta
memoria CG RAM.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
0
1
Dirección de la CG-RAM
DIRECCIONAMIENTO DE LA DD-RAM (SET THE DD
RAM ADDRESS)
Los caracteres o datos que se van visualizando, se van almacenando
en una memoria llamada DD RAM para de aquí pasar a la pantalla.
Mediante esta instrucción se establece la dirección de la
memoria DD RAM a partir de la cual se irán almacenando los datos a
visualizar. Ejecutando este comando, todos los datos que se escriban
o lean posteriormente lo harán desde esta memoria DD RAM. Las
direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del
primer renglón y de la COh a la CFh con los 16 caracteres del segundo
renglón, para este modelo de LCD.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
0
1
Dirección de la DD-RAM
Nota: Ya utilizando el display LCD, una forma de ir rápidamente al
segundo renglón es limpiar el bit RS y enviar un C0H para que la
pantalla tome esa dirección.
Tiempo de ejecución: 40µS
LECTURA DIRECTA DEL BUSY FLAG (READ BUSY
FLAG & ADDRESS)
Cuando el modulo LCD esta ejecutando cualquiera de estas
instrucciones, tarda un cierto tiempo de ejecución en el que
no se debe mandar ninguna instrucción. Para ello dispone de
un flag llamado BUSY (ocupado) que indica que se está
ejecutando una instrucción previa. Cualquier instrucción
enviada por error no será leída, por lo que será nula.
Esta instrucción de lectura informa del estado de dicho flag
además de proporcionar el valor del contador de direcciones
de la CG RAM o de la DD RAM según la última que se haya
empleado.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
1
BF
Dirección de la CG RAM o DD RAM
Tiempo de ejecución: 40µS
ESCRITURA DE DATOS EN LA CG-RAM O DD-RAM
(WRITE DATA TO GG OR DD RAM)
Mediante este comando se escribe en la memoria DD RAM los
datos que se quieren presentar en pantalla y que serán los
diferentes códigos ASCII de los caracteres a visualizar.
Igualmente se escribe en la memoria CG RAM los diferentes bytes
que permiten confeccionar caracteres gráficos a gusto del usuario.
El escribir en uno u otro tipo de memoria depende de si se ha
empleado previamente la instrucción de direccionamiento DD
RAM o la de direccionamiento CG RAM. Posteriormente de la
escritura la dirección es automáticamente incrementada o
decrementada, según el modo elegido anteriormente.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1
0
Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µS
LECTURA DE DATOS DE LA CG RAM O DD
RAM (READ DATA FROM CG RAM OR DD RAM)
Mediante este comando se lee de la memoria DD RAM los
datos que haya almacenados y que serán los códigos ASCII de
los caracteres almacenados. Igualmente se lee de la memoria
CG RAM los diferentes bytes con los que se ha confeccionado
un determinado carácter gráfico. El leer de uno u otro tipo de
memoria depende de si se ha empleado previamente la
instrucción de direccionamiento de la DD RAM o la de
direccionamiento CG RAM. Posteriormente de la lectura la
dirección es automáticamente incrementada o decrementada,
según el modo elegido anteriormente.
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1
1
Código ASCII o byte del carácter gráfico
Tiempo de ejecución: 40µS
Abreviaturas empleadas en los códigos anteriores:
S:
I/D
S/C
R/L
BF
DL
N
F
B
C
D
X
1 - Desplaza la visualización cada vez que se escribe un dato
0 - Modo normal
1 - Incremento del cursor
0 - Decremento del cursor
1 - Desplaza el display
0 - Mueve el cursor
1 - Desplazamiento a la derecha 0 - Desplazamiento a la izquierda
1 - Módulo ocupado
0 - Módulo disponible
1 - Bus de datos de 8 bits
0 - Bus de datos de 4 bits
1 - LCD de dos líneas
0 - LCD de una línea
1 - Carácter de 5 x 10 puntos
0 - Carácter de 5 x 7 puntos
1 - Parpadeo del cursor ON
0 - Parpadeo del cursor OFF
1 - Cursor ON
0 - Cursor OFF
1 - Display ON
0 - Display OFF
Indeterminado
PROGRAMACIÓN DE
CARACTERES
ESPECIALES
Estos módulos permiten la programación de hasta ocho
caracteres especiales en formato 7x5 (8x5) y hasta cuatro
caracteres especiales en formato (10x5). Una vez que estos
caracteres estan programados en la CG-RAM, pueden ser
accedidos de la misma forma que si pertenecieran a la
memoria original grabada durante la fabricación. Como la
RAM empleada para almacenarlos es volátil, es conveniente
diseñar los programas de conexión de manera que luego de las
instrucciones de inicialización, sean escritos los caracteres
especiales en la RAM para su uso posterior, mediante el
llamado a rutinas. El segmento de memoria destinado al
almacenamiento de los caracteres especiales se ubica en
forma continua entre las direcciones 40H y 7FH en grupos de
ocho direcciones. Como durante la inicialización
generalmente se programa al módulo para direccionamiento
automático, ingresando una vez el dato correspondiente a la
dirección del primer carácter especial no es necesario repetir
el direccionamiento en los siguientes caracteres, de modo que
los ocho caracteres especiales pueden ser grabados
secuencialmente sin la repetición de las instrucciones de
direccionamiento.
En la tabla se muestran las direcciones de
los caracteres programables:
Carácter
programable
1º
Ubicación en
memoria
De 40H a 47H
2º
De 48H a 4FH
3º
De 50H a 57H
4º
De 58H a 5FH
5º
De 60H a 67H
6º
De 68H a 6FH
7º
De 70H a 77H
8º
De 78H a 7FH
JUEGO DE
CARACTERES
INICIALIZACIÓN
Cada vez que se conecta la alimentación al
módulo debe ser ejecutado un
procedimiento para iniciar el LCD, el cual
consiste en enviar al módulo un grupo
inicial de cuatro instrucciones para
configurar el modo de operación para la
ejecución de un programa determinado:
establecer las condiciones de uso, activar o
desactivar el display y borrar la pantalla.
Programa de inicialización para comunicación
con 8 bits
Observación: Debe haber un retraso de tiempo
aprox. de 15 ms entre cada instrucción
Características
Secuencia de instrucciones
1 linea – matriz de 7x5
(8x5)
30h
30h
06h
0Eh
01h
1 linea – matriz de
10x5
34h
34h
06h
0Eh
01h
2 lineas – matriz de
7x5 (8x5)
38h
38h
06h
0Eh
01h
DIAGRAMA DE FLUJO PARA LA INICIALIZACIÓN:
INICI
O
DESDE QUE VDD
ALCANZA MÁS DE 4.5
V, ESPERAR MÁS DE
15 mS
ESPERAR MÁS DE 4.1 S
ESPERAR MÁS DE 100 S
FIN DE LA
INICIALIZACIÓN
Por último, es importante mencionar que
después de la inicialización se puede
ejecutar cualquier tipo de instrucción de las
antes vistas.
SALIR