Está en la página 1de 13

Unidad VI: LCD

VI. DISPLAYS INTELIGENTES DE CRISTAL LÍQUIDO


I. PRESENTACIÓN

Se denominan Displays Inteligentes a unos módulos de diodos emisores de luz (LEDs) o displays de cristal
líquido (LCDs) alfanuméricos, integrados alrededor de un display propiamente dicho o módulo de caracteres (matriz
de puntos) configurado en n filas de m caracteres cada una (formato mxn) y que incluyen todos los decodificadores,
multiplexores, memorias y drivers necesarios para operar cada punto de cada carácter, en la forma de un circuito
integrado LSI incorporado al módulo (embedded).

Se pueden conectar fácilmente a los buses de cualquier microprocesador o microcontrolador, permitiéndole


su programación y liberándolo posteriormente (de ahí lo de inteligente) de las tareas de acondicionamiento,
exhibición y refresco de la información.

II. PRINCIPALES CARACTERÍSTICAS

En general y salvo ligeras diferencias entre las distintas marcas, sus características más conspicuas son:

 Operan con una sola tensión de alimentación.


 Construcción compacta merced a su encapsulado plano.
 Brindan diversas opciones de accesos, organización y exhibición.
 Vida útil extensa: más de 50.000 horas para los LCD y de 250.000 para los LED.
 Compatibilidad con los sistemas de buses de los microprocesadores.
 Lógica CMOS compatible con TTL. Muy bajo consumo.

Diagrama en Bloques

VDD = + 5 V
VSS = 0
V0 = contraste

Figura 1
Terminales

SEÑAL VSS VDD V0 RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K

PIN Nº 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 1


Unidad VI: LCD
III. 3. INSTRUCCIONES
Tabla de Instrucciones

INSTRUCCIÓN CÓDIGO DESCRIPCIÓN


RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Limpia el display y retorna
Limpiar Display 0 0 0 0 0 0 0 0 0 1 el cursor a la posición
Origen (Dir. OOH)
Retorna el cursor a la
posición Origen (Dir OOH).
Volver a Origen 0 0 0 0 0 0 0 0 1 * Reinicia el display si fue
corrido. El contenido de la
DD RAM no cambia.
Fija dirección de movim.
del cursor y si éste se
Modo de
0 0 0 0 0 0 0 1 I/D S corre o no. Estas operac.
Entrada se efectúan durante la
escritura y lect. de datos.
Controla encend. display,
Display Si/No 0 0 0 0 0 0 1 D C B del cursor y parpadeo.
Mueve cursor y corre el
Correr Cursor o
0 0 0 0 0 1 S/C R/L * * display sin cambiar el
Display contenido de la DD RAM.
Fija longitud de datos,
Fijar Sistema 0 0 0 0 1 IF N F * * número de líneas del
display y tamaño del tipo.
Fija dirección de la CG
Fijar Direcciones RAM. Luego los datos de
0 0 0 1 ACG
de la CG RAM la CG RAM pueden ser
enviados y recibidos.
Fija dirección de la DD
Fijar Direcciones RAM. Luego los datos de
0 0 1 ADD
de la DD RAM la DD RAM pueden ser
enviados y recibidos.
Lee el flag de Ocupado
Leer Flag
0 1 BF AC [BF] y el contenido del
Ocupado contador de direcciones.
Escribir Datos a Escribe datos en la CG
1 0 Escritura de Datos
CG o DD RAM o en la DD RAM.
Leer Datos de Lee los datos de la CG
1 1 Lectura de Datos
CG o DD RAM o de la DD RAM.

REFERENCIAS:
I/D = 1/0 : Incremento/decremento del AC luego de escritura o lectura
S = 1/0 : Shift: Corre display/corre cursor luego del ingreso de datos
D = 1/0 : Display: encendido/apagado
C = 1/0 : Cursor: encendido/apagado
B = 1/0 : Blink: parpadea/no parpadea el carácter indicado por el cursor
S/C = 1/0 : Shift/Cursor: corre display/corre cursor sin escribir
R/L = 1/0 : Right/Left: corrimiento a la derecha/o a la izquierda
IF = 1/0 : Interfase: ancho bus de datos 8 bits/4 bits
N = 1/0 : Número de líneas del display: 2 líneas/1 línea
F = 1/0 : Font: tamaño del tipo 5x10 puntos/5x7 puntos
BF = 1/0 : Busy Flag: flag ocupado/desocupado
DD RAM : Data Display RAM: RAM de datos del display
CG RAM : Carácter Generation RAM: RAM de generación de caracteres

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 2


Unidad VI: LCD
CG ROM : Carácter Generation ROM: ROM de generación de caracteres
ADD : Addres Data Display: dirección en la DD RAM
ACG : Address Carácter Generation: dirección en la CG RAM
AC : Address Counter: Cont. de direc. para la DDRAM y la CG RAM

DESCRIPCIÓN DE LAS INSTRUCCIONES


La ejecución de cada instrucción implica colocar en RS y en R/W los valores correspondientes (RS = 0 para
instrucciones; RS = 1 para datos; R/W = 0 para escribir en el módulo; R/W = 1 para leer el módulo) y enviar un pulso
por E del ancho adecuado (E = 1 durante t ≥ 2 μs).
Limpiar Display:
TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 0 0 0 0 0 1
Escribe 20H en todas las direcciones de la DD RAM (el patrón de caracteres para el código 20H [espacio] debe ser el
patrón de blanqueo del display); coloca la dirección 00H en el contador de direcciones de la DD RAM y retorna el
display a su posición de inicio si estaba corrido (pone en la ventana los caracteres 00H a 0FH de la DDRAM si N =0 o
además de éstos los de la 2ª línea, 40H a 4FH si N = 1). Permite así reconocer la posición relativa del display respecto a
la ventana de visualización.
En otras palabras, el display queda totalmente en blanco y el cursor o parpadeo se mueven a la primera columna del
display (primera columna de la primera línea si se está en la modalidad de exhibición de 2 líneas).
Fija el Modo de Entrada I/D en 1 (incrementa la dirección de la DDRAM luego del ingreso o lectura de datos) sin
modificar S (Shift cursor o display).

Volver al Origen:
TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 0 0 0 0 1 *
Coloca la dirección 00H de la DD RAM en el contador de direcciones. El display retorna a su posición inicial si estaba
corrido. El contenido de la DD RAM no se modifica. El cursor o parpadeo se mueven a la primera columna del display
(primera columna de la primera línea si se exhibían 2 líneas).
Nótese que esta instrucción y la anterior permiten reposicionar el mensaje respecto a la ventana de visualización
(display); su ubicación en cualquier instante sólo se puede lograr contando los shift efectuados desde su último
posicionamiento.

Fijar Modo de Entrada:


TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 0 0 0 1 I/D S

I/D: Incrementa (si I/D=1) o Decrementa (si I/D=0) en 1 la dirección de la DD RAM a medida que se lee o se escribe en
ella un código de carácter. El cursor o parpadeo se mueven un carácter hacia la derecha cuando se incrementa o bien
a la izquierda cuando se decrementa. Lo mismo se aplica a la lectura o escritura de la CG RAM.
S: Si vale 1, corre todo el contenido del display a la derecha (con I/D = 0) o a la izquierda (con I/D = 1). Se ve como si el
cursor estuviera fijo y el display se moviera.
Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 3
Unidad VI: LCD
El display no se corre cuando:
• Se lee la DD RAM
• Se lee la CG RAM o se escribe en ella.
• S=0

Control de Encendido del Display:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 0 0 1 D C B

D: El display se enciende con D = 1 y se apaga con D = 0 pero los datos permanecen en la DD RAM, por lo que pueden
ser exhibidos de inmediato haciendo D = 1.
C: Apaga el cursor con C = 0 y lo muestra con C = 1 usando los 5 puntos de la octava fila cuando se ha seleccionado el
tamaño de carácter de 5x7 puntos o de la 11ª si se exhiben caracteres de 5x10 puntos.
B: El carácter indicado por el cursor, parpadea con B=1. Esto se logra conmutando entre el patrón del carácter y el
correspondiente a todo negro a intervalos de 379,2 ms si fosc = 270 Khz. El cursor y la función parpadeo pueden ser
activados simultáneamente.

cursor
a) b) cursor apagado
Tipo de carácter de 5x7 puntos + cursor Tipo de carácter de 5x10 puntos

a) con exhibición del cursor b) con parpadeo del carácter

Corrimiento del cursor o del display:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 0 1 S/C R/L * *

Corre la posición del cursor o del display a la derecha o a la izquierda sin que se escriban o lean los datos. Esta función
es utilizada para corregir o escudriñar los datos del display. En los displays de 2 líneas, el cursor se pasa a la segunda
línea, cuando pasa el 40º dígito de la primera. En estos displays, las 2 líneas son corridas, al mismo tiempo. Cuando se
corre el display, aparecen repetidamente los mismos datos en las mismas líneas: los caracteres se mueven como
registros circulantes (en anillo).

S/C R/L ACCIÓN


Corre la posición del cursor a la izquierda. El contador de
0 0
direcciones (AC) es decrementado en uno.
Corre la posición del cursor a la derecha. El contador de direcciones
0 1
(AC) es incrementado en uno.
Corre todo el display a la izquierda. El cursor acompaña el
1 0
corrimiento del display. El contenido del AC no varía.
Corre todo el display a la derecha. El cursor acompaña ei
1 1
corrimiento del display. El contenido de! AC no varía.

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 4


Unidad VI: LCD
Fijar Sistema:
TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 0 1 IF N F * *

IF: Fija el ancho del bus de datos de la interfase. Si IF = 1 los datos son enviados y recibidos en 8 bits (DB7 ... DBO) y si
IF = 0 la longitud es de 4 bits (DB7 ... DB4). Cuando se selecciona la longitud de 4 bits los datos, obviamente, deben ser
enviados o recibidos en dos tandas.
N: Fija el número de líneas del display.
F: Fija el tipo de los caracteres.
Nota: Deben definirse estos parámetros al comienzo del programa antes de ejecutar cualquier instrucción (excepto la
lectura de dirección del flag de ocupado). Desde este punto, la instrucción de fijar sistema no puede ser ejecutada a
menos que se modifique la longitud de datos de la interfase.

Número de líneas del


N F Tipo del carácter Rendimiento
display
0 1/0 1 5x10/5x7 puntos 1/11-1/8
1 * 2 5x7 puntos 1/16

Fijar la dirección de la CG RAM:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 0 1 A A A A A A

Coloca la dirección binaria AAAAAA de la CG RAM en el contador de direcciones. Los datos son luego leídos desde o
escritos en la CG RAM (ver ítem 5?).

Fijar la dirección de la DD RAM:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 0 1 A A A A A A A

Coloca la dirección binaria AAAAAAA de la DD RAM en el contador de direcciones. Los datos son luego leídos desde o
escritos en la DD RAM. Sin embargo:
• Cuando N = 0 (display de 1 línea), AAAAAAA varía de 00H a 4FH direccionando los 80 caracteres (el 81º es
nuevamente el primero de la línea).
• Cuando N = 1 (display de 2 líneas), AAAAAAA varía de 00H a 27H para la primera línea y de 40H a 67H para la
segunda (40 caracteres por línea). Nótese que las direcciones correspondientes al último carácter de la primera
línea y el primero de la segunda, no son consecutivas.

Leer Flag de Ocupado y Dirección:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 1 BF A A A A A A A

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 5


Unidad VI: LCD
Lee el flag de Ocupado (BF) que indica si el sistema está en ese momento ejecutando una instrucción recibida
previamente: BF = 1 indica que está en ejecución la instrucción anterior y la siguiente instrucción no será aceptada;
BF=0 indica que el sistema está disponible y aceptará nuevas instrucciones o datos.
Al mismo tiempo indica el valor del contador de direcciones en binario AAAAAAA. El contador de direcciones es
utilizado en los direccionamientos de ambas RAM, la CG y la DD, su valor es determinado por la instrucción previa y es
el mismo que el de los ítems 3.2.7 y 3.2.8.
Es necesario chequear BF = 0 antes de la siguiente operación de escritura o asegurarse de haber dejado transcurrir un
tiempo de ejecución suficiente.

Escribir Datos en la CG o en la DD RAM:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 1 0 D D D D D D D D

Escribe el dato de 8 bits DDDDDDDD en la CG o en la DD RAM, según haya sido especificado previamente (ítem 3.2.7 o
3.2.8).
Después de la escritura, la dirección es incrementada o decrementada automáticamente en 1, de acuerdo al modo de
entrada, el que además determina el corrimiento del display.

Leer Datos de la CG o de la DD RAM:

TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 1 1 D D D D D D D D

Lee el dato de 8 bits DDDDDDDD de la CG o de la DD RAM, según haya sido especificado previamente (ítem 3.2.7 o
3.2.8).
Antes de entrar esta instrucción se debe fijar la dirección de la CG o de la DD RAM, en caso contrario la primera
lectura no es válida. Si se estuvo ejecutando la instrucción de corrimiento de! cursor, entonces no se require la
instrucción para fijar la dirección.
Después de la escritura, la dirección es incrementada o decrementada automáticamente en 1, pero sin el corrimiento
del display independientemente del modo de entrada.
Nota: El Contador de direcciones (AC) es incrementado o decrementado automáticamente después de una instrucción
de escritura en la CG o en la DD RAM. Los datos de la RAM seleccionados por el AC no pueden ser leídos, aunque se
ejecuten luego instrucciones de lectura. Las condiciones para lectura correcta de datos son: ejecutar previamente la
instrucción de fijar dirección o la de correr el display o bien ejecutar la instrucción leer por segunda vez.

IV. PATRÓN DE CARACTERES


En la figura 2 se observan las localizaciones de cada carácter en la tabla CGR ROM. Si bien aquí las direcciones
de las letras, números y algunos símbolos, se corresponden con su código ASCII, nótese que el resto no tiene mucha
relación con él, (incluso hay caracteres Kanji) por lo que se recomienda tener a la vista el patrón de caracteres durante
la programación de mensajes.

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 6


Unidad VI: LCD
La figura 2 contiene también algunos caracteres 5x10 tales como las letras j, p, q mejorando así su aspecto y posición
respecto a la línea de escritura, en este sentido, se recomienda utilizar el font 5x10 cuando se realicen exhibiciones en
una línea. Se recuerda que es imprescindible verificar el patrón de caracteres según la marca del LCD utilizado, ya que
no todas ofrecen la misma correspondencia entre los códigos de caracteres (dirección de la CG ROM) y el carácter
exhibido.

V. LOS REGISTROS CG RAM


Direccionando esta memoria (01 A5A4 A3A2A1A0) se accede a los 64 registros RAM de 8 bits, pudiéndose así definir
hasta 8 caracteres de 5x8 puntos (8 registros/carácter) o 4 de 5x10 (16 registros/carácter).
En el primer caso, los 3 bits de más peso (A5, A4 y A3) seleccionan cada uno de los 8 bancos (00H a 07H [imagen 08H a
0FH]) y los 3 de menos peso (A2, A1 y A0) el registro dentro de cada banco (líneas de puntos: superior = 000, inferior =
111).
En el segundo caso (matriz 5x10) los 2 bits de más peso (A5 y A4) seleccionan uno de los 4 bancos de 16 registros c/u y
los 4 bits restantes (A3, A2, A1 y A0) la línea que se va a programar (0000 la superior, 1010 la décima, 1011 la del cursor
y las siguientes 1100 a 1111 que no se verán por lo que bien pueden utilizarse como registros generales del sistema).
Para programar un carácter, se selecciona el formato (5x7 o 5x10), luego el banco de la CG RAM en el cual se va a
escribir y la línea y finalmente se escriben las 8 u 11 líneas según corresponda, poniendo “0” donde se desea que no
aparezca el punto y “1” donde éste deba brillar.
er
Por ejemplo, estamos en interfase 8 bits, 1 línea y queremos programar una Ñ en formato 5x7 en el 3 banco de la CG
RAM (dirección 02H del patrón de caracteres):
a) Nos aseguramos de estar en formato 5x7 poniendo en el bus de interfase 38H (00111000) con RS=R/W=0
b) Nos aseguramos de estar en el modo incremento del AC poniendo 04H (0000 0100)
c) Direccionamos la primer línea del tercer carácter de la CG RAM poniendo 50H (0101 0000)
d) Ponemos RS=1 y escribimos sucesivamente en los 5 bits menos significativos (b4, ... b0): 01110 (rayita de la
Ñ), 10001, 11001, 10101, 10011, 10001, 10001 y 00000 (cursor: en el modo de exhibición del
cursor/parpadeo, el display exhibirá la “OR” del patrón del cursor 11111 y lo que hayamos programado aquí).
e) Salimos del modo CG RAM escribiendo, por ejemplo, la dirección de la DD RAM donde vamos a escribir: 80H o
cualquier otra (1AAA AAAA).
Cuando se utilicen los registros de la CG RAM como si fueran registros del sistema, téngase en cuenta su mayor
tiempo de acceso: se requieren 40 a 120 μs para completar una operaci
ón de lectura o escritura en el LCD. De no
optarse por dejar transcurrir “un tiempo suficiente”, se recomienda testear el bit de “busy” antes de intentar un
nuevo acceso al LCD (ver 3.2.9).

VI. OPERACIÓN DEL MÓDULO


Aunque las hojas de datos especifican que operan a 5 V, la mayoría lo hacen satisfactoriamente entre 4,5 V (o menos
en algunos módulos) y 6 V con un consumo de unos 7,5 mW, por lo que resultan muy cómodos de operar con
baterías. Se puede ajustar el contraste conectando el terminal 3 al punto medio de un potenciómetro de preset
colocado entre +VDD y masa o simplemente conectándolo como resistencia variable entre el terminal 3 y masa.
Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 7
Unidad VI: LCD

20H 40H

Figura 2

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 8


Unidad VI: LCD
Los terminales deben ser activados en el siguiente orden:
1) Fijar el selector de registro (RS): si es “0”, los datos escritos serán comandos y leídos indicarán el status;
si es “1”: los datos serán ya sea los contenidos de los registros de la DDRAM o de la CG RAM según cuál
se hubiera seleccionado previamente.
2) Fijar el sentido de los datos (R/W): si es “0”: los datos fluyen hacia el módulo; si es “1”: se efectúa la
lectura del módulo, o sea status si RS=0 o caracteres si RS=1.
Mandar un pulso de no menos de 500 ns (mejor 1 µS) de duración en la línea de habilitación (E). Si está en el modo
escritura (R/W=0), con el flanco descendente de E, transfiere los datos al módulo (mientras E=1 permanece
transparente a las otras entradas) y si está en el modo lectura, los datos del módulo están disponibles en el bus desde
unos pocos nS después del flanco de subida y mientras E permanezca en “1”.

Inicialización
Inicialización automática
Si al aplicarse tensión al módulo se verifica que el tiempo de crecimiento de la tensión entre 0,2 V y 4,5 V es
tal que: 0,1 mS ≤ t crec ≤ 10 mS entonces el dispositivo se toma 15 mS (mientras coloca el flag BUSY = 1), para efectuar
su inicialización automática, consistente en:
a) Ejecuta el comando LIMPIAR DISPLAY (Clear Display): con RS=R/W=0 coloca en el bus de datos RB7 ... RB0
la instrucción 01H con la cual borra el display, manda el cursor al origen y pone el bit I/D=1
(autoincremento) (ver 3.2.1).
b) Ejecuta el comando FIJAR SISTEMA (Function Set): con RS=R/W=0 ejecuta la instrucción 30H que
establece la interfase con el bus de datos en los valores por defecto, esto es: bus de 8 líneas (IF=1);
display de 1 renglón (N=0) y caracteres de 5x7 puntos (F=0) (ver 3.2.6).
c) Ejecuta el comando CONTROL DE ENCENDIDO DEL DISPLAY (Display On/Off Control): con RS=R/W=0
ejecuta la instrucción 08H que hace que el display esté apagado (D=0) y el cursor apagado y sin parpadeo
(C=B=0) (ver 3.2.4).
d) Ejecuta el comando FIJAR MODO DE ENTRADA (Entry Mode Set): con RS=R/W=0 ejecuta la instrucción
06H que establece la dirección de movimiento del cursor con autoincremento (I/D=1) y sin corrimiento
del display (S=0) (ver 3.2.3).
En la práctica es muy difícil garantizar que se cumplirán las condiciones de conexión de la alimentación indicadas, por
lo tanto es normal y recomendable efectuar la inicialización por software. De todas maneras es imprescindible, dejar
transcurrir al menos 15 mS luego de conectada la alimentación al módulo, antes de intentar cualquier tipo de
comunicación con el mismo.
En la figura se muestran las secuencias típicas de la inicialización por software, para conexiones con bus de 8 líneas y
de 4 líneas. La instrucción de chequeo del busy flag (BF) puede obviarse con tal de dejar transcurrir el tiempo de
ejecución de cada instrucción antes de ejecutar la siguiente.

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 9


Unidad VI: LCD
Inicialización por software: Interfase de datos de 8 bits
Conexión

Esperar 30ms o más luego de que VDD alcance 4.5v

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 1 1 X X X X
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

Esperar 4.1 mS o más

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 1 1 X X X X
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

Esperar 100 µS o más

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 1 1 X X X X
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 1 1 N F X X
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 1 0 0 0
Display off

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 0 0 0 1
Limpia el display y retorna el cursor al origen
Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 10
Unidad VI: LCD

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0


0 0 0 0 0 0 0 1 I/D S
Fija el modo de entrada

Fin de la Inicialización

Inicialización por software: Interfase de datos de 4 bits


Conexión

Esperar 30ms o más luego de que VDD alcance 4.5v

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4


0 0 0 0 1 1
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

Esperar 4.1 mS o más

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4


0 0 0 0 1 1
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

Esperar 100 µS o más

BF no puede ser chequeado durante este tiempo

RS R/W DB7 DB6 DB5 DB4


0 0 0 0 1 1
Fijar Sistema: IF = 1 ; Interfase de datos = 8 bits
(IF debe permanecer en H durante la inicialización)

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4


0 0 0 0 1 0
Fijar Sistema: IF = 0 ; Interfase de datos = 4 bits
(*)

chequee por BF = 0

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 11


Unidad VI: LCD
RS R/W DB7 DB6 DB5 DB4
(pulso en E)
0 0 0 0 1 0
(pulso en E)
0 0 N F x x
Fijar Sistema: IF = 0 ; Interfase de datos = 4 bits
Fija número de líneas N y tamaño de caracteres F

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4


(pulso en E)
0 0 0 0 0 0
(pulso en E)
0 0 1 0 0 0
Display off

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4


(pulso en E)
0 0 0 0 0 0
(pulso en E)
0 0 0 0 0 1
Limpia el display y retorna el cursor al origen

chequee por BF = 0

RS R/W DB7 DB6 DB5 DB4


(pulso en E)
0 0 0 0 0 0
(pulso en E)
0 0 0 1 I/D S
Fija el modo de entrada

Fin de la Inicialización

Luego de la inicialización, recordar encender el display

VII. LECTURA Y ESCRITURA


Escritura
Del datasheet se obtiene el siguiente diagrama de tiempo para la escritura

Figura 3
Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 12
Unidad VI: LCD
Dado el tiempo que tarda la ejecución de una instrucción en el PIC 16F887, los tiempos a destacar son:
Enable cycle time tcycE 1000 nseg.
Enable pulse width (high level) PWEH 450 nseg.
Data set-up time tDSW 195 nseg.

En resumen, para la escritura es aconsejable:

1. configurar nible como salida


2. cargar instrucción/dato
3. chequear que la LCD n este disponible (retardo ≥40useg o usar BF)
4. subir el pin E y esperar 400 nseg (lo probamos y funciona correctamente)
5. bajar el pin E

Lectura
Del datasheet se obtiene el siguiente diagrama de tiempo

Figura 4
Dado el tiempo que tarda la ejecución de una instrucción en el PIC 16F887, los tiempos a destacar son:
Enable cycle time tcycE 500 nseg.
Enable pulse width (high level) PWEH 230 nseg.
Data delay time tDDR 160 nseg.

Técnicas Digitales II - Departamento Electrotecnia - Área Técnicas Digitales 13

También podría gustarte