Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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).
En general y salvo ligeras diferencias entre las distintas marcas, sus características más conspicuas son:
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
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
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.
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
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
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).
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.
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?).
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.
TERMINAL RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
CÓDIGO 0 1 BF A A A A A A A
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.
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.
20H 40H
Figura 2
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.
chequee por BF = 0
chequee por BF = 0
chequee por BF = 0
chequee por BF = 0
Fin de la Inicialización
chequee por BF = 0
chequee por BF = 0
chequee por BF = 0
chequee por BF = 0
chequee por BF = 0
Fin de la Inicialización
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.
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.