Sei sulla pagina 1di 25

Pgina |1

Angel Laredo Martnez

Pgina |2

Cmo utilizar LCD`s inteligentes


Una gua absolutamente "prctica" para la
interconexin y la programacin de los mdulos
de LCD`s inteligentes.
Recientemente, una serie de proyectos que utilizan Mdulos de displays de cristal lquido
inteligentes (LCD) han sido destacados en EPE. Su capacidad de mostrar no slo los
nmeros, sino tambin letras, palabras y todo tipo de smbolos, los hace mucho ms
verstil que las familias de displays de 7 segmentos de diodos electroluminiscentes
(LED).
Aunque todava bastante caros cuando se compran nuevos, un gran nmero de mdulos
son encontrando en el camino en las manos de los proveedores de electrnica "ganga",
ofrece al aficionado una oportunidad a bajo costo para llevar a cabo algunos experimentos
fascinantes y realizar algunos y muy sofisticados proyectos de visualizacin electrnica.
Lectura Bsica
Este artculo trata de los mdulos basados en caracteres LCD que utilizan el HD44780
de Hitachi (O compatible) chip controlador, al igual que la mayora de los mdulos
disponibles para el aficionado. Por supuesto, estos mdulos no estn tan avanzados como
la ltima generacin, de tamao completo, a todo color, con iluminacin de fondo, usados
en las computadoras porttiles de hoy en da, pero lejos de ser "eliminado", basada en
caracteres LCD`s todava se utilizan ampliamente en los equipos comerciales e
industriales, en particular cuando requisitos de visualizacin son razonablemente simple.
Los mdulos tienen una interfaz bastante bsico, el cual se acopla bien con la tradicional
micro- procesadores tal como el Z80 o el 6502. Tambin es ideal para el microcontrolador
PIC, que es probablemente el microcontrolador ms popular utilizado por los aficionados
electrnicos.

Sin embargo, aunque hasta ahora, no sabes nada de microcontroladores, y poseer nada
de la parafernalia de los PICs, no se desespere, usted todava puede disfrutar de toda la
diversin de experimentar con LCDs, utilizando no ms que un puado de interruptores!
Formas y tamaos
Incluso, reducido los mdulos basados en caracteres, todava hay una gran variedad de
formas y tamaos disponible. Las longitudes de las lneas de 8, 16, 20, 24, 32 y 40 son
todos caracteres estndar, en versiones de una,
dos y cuatro lneas.
Existen muchas y diferentes tecnologas de
cristal lquido. Tipos
"Supertwist" por
ejemplo, ofrecen mejorar el contraste y ngulo
de visin que los viejos "Twisted Nematic".
Algunos mdulos estn disponibles con
iluminacin de fondo, de modo que se pueden
ver en condiciones de poca luz.
La

Angel Laredo Martnez

Pgina |3

iluminacin de fondo puede ser "electro-luminiscente", que requiere un alto voltaje de


circuito inversor, o la simple iluminacin de un LED.
Algunas de estas caractersticas son importantes, sin embargo, para fines de
experimentacin. Todos los tipos son capaces de mostrar la misma informacin bsica,
por lo que los ms baratos son probablemente la mejor opcin para iniciar.
Conexiones
La mayora de los mdulos LCD cumple con una especificacin de interfaz estndar. Un
acceso de 14-pin es previsto (14 agujeros para la insercin de pines de soldadura o de un
conector IDC) con datos de ocho lneas, tres lneas de control y tres lneas de potencia.
Las conexiones estn establecidas en uno de las dos configuraciones comunes, o bien dos
filas de siete pines, o una simple hilera de 14 pines.
Las dos alternativas se muestran en la figura 1.

Configuracin de pines de las dos formas bsicas de LCD.

En la mayora de las pantallas, los pines estn enumerados en la tablilla del circuito
impreso del LCD, pero si no, es bastante fcil de localizar el pin 1. Desde este pin est
conectado a tierra, a menudo tiene una pista gruesa a este, y por lo general est conectado
a la estructura metlica en algn punto.
La funcin de cada una de las conexiones se muestra en la
Tabla 1. Los pines 1 y 2 son las lneas de alimentacin, Vss
y Vdd. El pin Vdd debe ser conectado al positivo, y Vss al
negativo o tierra.
Aunque las hojas de datos de los mdulos de LCD
especifican suministrar 5Vd.c. (A slo unos pocos
miliampers), el suministrarle de 6V 4.5V en ambos
funcionan bien, e incluso 3V es suficiente para algunos
mdulos. Por consiguiente, estos mdulos pueden ser
eficaces y econmicos, alimentados por bateras.
Pin 3 es un pin de control, Vee, que se utiliza para modificar
el contraste de la pantalla. Idealmente, este pin debe estar
conectado a una fuente de voltaje variable.
Un
potencimetro conectado entre la fuente de alimentacin y el
pin de contraste, pero tenga en cuenta que algunos mdulos

Tabla 1. Funcin de los Pines


todos los tipos de LCD.

Angel Laredo Martnez

Pgina |4

pueden requerir un potencial negativo; tan bajo como 7V en algunos casos.


simplicidad absoluta, conectando este pin 0V a menudo ser suficiente.

Por

Pin 4 es el de Seleccionar Registro (RS) de lnea, el primero de las tres entradas de


comando de control. Cuando esta lnea es pequea, los bytes de datos transferidos a la
pantalla se tratan como comandos, y los bytes de datos ledos de la pantalla indican su
estado. Por establecer la lnea RS grande, los datos de caracteres se puede transferir desde
y hacia el mdulo.
Pin 5 es lectura / escritura (R / W) de lnea. Esta lnea es baja se usa con el fin de escribir
comandos o datos de caracteres en el mdulo, o es alta se usa para leer los datos de
caracteres o informacin de estado a partir de sus registros.
Pin 6 es la opcin Activar (E) lnea. Esta entrada se utiliza para iniciar la transferencia
de los comandos actuales o los datos de caracteres entre el mdulo y las lneas de datos.
Al escribir en la pantalla, los datos se transfieren slo en la transicin de alta a baja de
esta seal. Sin embargo, cuando la lectura de la pantalla, los datos estarn disponibles
poco despus de la transicin de menor a mayor y permanecer disponible hasta que la
seal caiga a baja otra vez.
Los pines 7 a 14 son las ocho lneas del bus de datos (D0 a D7). Los datos pueden ser
transferidos hacia y desde la pantalla, ya sea como un solo byte de 8-bits o como dos 4bit "nibbles". En este ltimo caso, nicamente las cuatro lneas superiores de datos (D4 a
D7) se utilizan. En este modo de 4-bits es benfico cuando se utiliza un
Microcontrolador, cuando pocas entradas/salidas son requeridas.
Circuito Prototipo
Para el uso de un mdulo de LCD efectivamente en cualquier pieza de equipo un
microprocesador o microcontrolador se requiere generalmente para manejarlo. Sin
embargo, antes de intentar conectar los dos juntos, se pueden realizar algunos
experimentos iniciales (y muy til), mediante la conexin una serie de interruptores a los
pines del mdulo. Esto puede ser un gran paso benfico, incluso si usted est
completamente familiarizado con el funcionamiento de los microprocesadores.

Figura 2: Diagrama de conexiones para una plataforma experimental de LCD.

Angel Laredo Martnez

Pgina |5

En la Figura 2 se muestra el diagrama de conexiones de de una plataforma de


experimentacin LCD. El circuito puede ser conectado en una tablilla de pruebas
(Protoboard), utilizando una d.i.l (Doble lnea) para los switchs de las lneas de datos (S1
a S8), un switch de palanca para la entrada RS (S10), y un microswitch de accin
momentnea para la entrada E (S9). La lnea R / W estar conectada a tierra (0 V), como
la pantalla nicamente se va a escribir en el momento de inicio.
Todas las resistencias (R1 a R10) son de 47K ohms. Probablemente es ms conveniente
utilizar una s.i.l. (lnea sencilla) para las ocho resistencias (R1 a R8) en las lneas de
datos.
Las otras dos resistencias, R9 y R10, pueden ser de valores discretos. Potencimetro VR1
pre ajustado (5K ohms) utilizado para el control de contraste y se muestra con el extremo
izquierdo desconectado. Si se desea, este extremo se puede conectar a la lnea positiva a
travs de una resistencia de 47K ohms aproximadamente (tendra que ser conectado a un
terminal negativa, a travs de una resistencia similar, para aquellos mdulos que requieren
polarizacin negativa).
Todos los interruptores deben estar conectados para que estn en "on" cuando est en la
posicin "abajo", por lo que "hacia abajo" genera un 0 lgico (bajo) y "arriba" proporciona
un 1 lgico (alto). Los switchs tambin debe arreglarse de modo que los bits de datos D7
estn a la izquierda, y los bit de datos D0 estn a la derecha. De esta manera, los nmeros
binarios se pueden introducir de manera correcta.
Inicialmente, el control de contraste debe ajustarse completamente a la derecha, de modo
que Entrada dl control de contraste (Vee) est conectado a tierra. Los valores iniciales de
los interruptores no tienen importancia, pero se sugiere que el interruptor RS (S10) este
"arriba" (ajustado a 1 lgica), y el interruptor E (S9) este sin presionar. Los switchs de
datos, S1 a S8, se puede ajustar a cualquier valor en esta etapa. Todo est ahora preparado
para empezar a enviar comandos y datos al mdulo LCD.

El circuito experimental se puede construir sobre tablillas de pruebas (protoboards)

Experimento 1: Comandos bsicos


Cuando se enciende, la pantalla deber mostrar una serie de casillas negras, posiblemente
slo en una parte de la pantalla. Estas celdas de caracteres son en realidad en su estado
de apagado, por lo que el control de contraste debe ser ajustado hacia la izquierda hasta
los cuadrados sean apenas visibles.

Angel Laredo Martnez

Pgina |6

La el mdulo LCD se reinicia a un estado inicial cuando se aplique energa, el cual


curiosamente tiene a la pantalla en blanco, de modo que incluso si los caracteres se
introducen, no pueden ser vistos. Por lo tanto es necesario emitir un comando en este
punto, para cambiar la visualizacin.
Una lista completa de los comandos que pueden ser introducidos se muestran en la Tabla
2, junto con sus valores binarios y hexadecimales. Las condiciones iniciales de la pantalla
LCD despus de encendido estn marcados con un asterisco.
A lo largo de este artculo, se har hincapi en el valor binario que se envan en estas
ilustraciones con los bits de datos para cada comando. Despus de cada valor binario, el
valor hexadecimal equivalente se cita entre parntesis, el prefijo $ indica que es
hexadecimal.
Los Comandos Display On/Off y Cursor encienden la pantalla, y adems tambin
determina el estilo del cursor al mismo tiempo. Inicialmente, es probablemente lo mejor
para seleccionar un cursor parpadeante con Subrayado, de manera que su posicin se
puede ver claramente, cdigo 00001111 ($ 0F).

Tabla 2. Cdigos de comandos de control.


Ajuste los Switchs de datos (S1 a S8) a 00.001.111 ($ 0F) y asegrese de que el Switch
RS (S10) este hacia "abajo" (0 lgico), de modo que el dispositivo este en el modo de
Comandos. A continuacin, pulse el switch E (S9) momentneamente, el cual "permite"
al chip para aceptar datos, y Listo! Un cursor parpadeando con subrayado aparecer en
la posicin superior izquierda!
Si se est utilizando un mdulo de dos lneas, la segunda lnea se puede activar emitiendo
el comando Function Set. Este comando tambin determina si el modo de transferencia
de datos de 8-bits o uno de 4-bits est seleccionada y si se utilizar un formato de 5 x 10

Angel Laredo Martnez

Pgina |7

o 5 x 7 de pxeles. As que para datos de 8-bits, dos lneas y un formato de 5 x 7, ajuste


los interruptores de datos a un valor binario 00111000
($ 38), deje RS (S10) bajo y pulse el interruptor E (S9).
Ahora ser necesario aumentar el contraste un poco, ya que el modo de dos lneas tiene
un requisito de unidad diferente. Ahora ajuste el interruptor RS a su posicin "arriba"
(lgica 1), cambiar el chip al modo de Comando y al modo de Caracteres, e introducir el
valor binario 01000001 ($ 41) en los Switchs de datos. Este es el cdigo ASCII para una
A mayscula.
Pulse el Switch E y sorprndase como el display se llena con A maysculas. Claramente,
algo no est bien, y ver su nombre en pxeles se va a tener que esperar un rato.
Botar
El problema aqu es bote de contacto. Prcticamente cada vez que el interruptor E est
cerrado, sus contactos se botaran, por lo que, nicamente aparecer un solo carcter, la
mayora de los intentos resultarn en 10 o 20 caracteres que viene en la pantalla. Lo que
se necesita es un circuito "anti-rebote".
Pero qu pasa con los comandos introducidos anteriormente, por qu el rebote de
contacto interfiri con ellos? De hecho lo hizo, pero no importa si un comando se
introduce ("habilitado") solo una vez o varias veces, el consigue ejecutarlo de todos
modos. Una solucin al problema de rebote se muestra en la Figura 3.
Aqu, un par de compuertas NAND estn
acopladas de forma cruzada para formar un
Latch de set-reset (o flip-flop), de manera que
el contacto de rebote se elimina. Ya sea un
TTL 74LS00 o un CMOS 74HC00 se puede
utilizar en este circuito. La interruptor debe
ser uno del tipo S.P.D.T. (unipolar, doble tiro),
un microswitch es ideal.
Despus de modificar el circuito, la pantalla
llena de A maysculas puede ser limpiada
utilizando el comando Clear Display. Ponga el
valor binario 00000001 ($01) en los Switchs
de datos, coloque el interruptor RS a la
posicin "abajo" y presione de nuevo el
modificado switch E. La pantalla se limpia.

Figura 3. Switch circuito anti-rebote

Tenga en cuenta que la salida del circuito "anti-rebote" es alta cuando se pulsa el
interruptor y baja al soltar el interruptor. Se observar que los caracteres aparecen en la
pantalla, no cuando se pulsa el botn, si no cuando se suelta.
Experimento 2: Introduccin de texto
En primer lugar, un pequeo consejo: es mucho ms fcil introducir caracteres
manualmente y comandos en hexadecimal en lugar de binario (aunque, por supuesto,
usted tendr que traducir los comandos de binario en hexadecimal para que usted sepa
qu bits va a colocar). Sustituir del conjunto de interruptores D.I.L. con un par de sub-

Angel Laredo Martnez

Pgina |8

miniatura interruptores hexadecimales giratorios es un asunto sencillo, aunque es


necesario un poco de re-cableado.
Los interruptores deben ser del tipo donde On = 0, de modo que cuando estn
posicionados hacia el cero, las cuatro salidas estn en cortocircuito al pin comn, y en la
posicin "F", los cuatro las salidas estn en circuito abierto.
Todos los caracteres disponibles que estn integradas en el mdulo se muestran en la
Tabla 3. Estudiando la tabla, ver que los cdigos asociados con los caracteres se expresan
en binario y hexadecimales, los bits ms significativos ("a mano izquierda" cuatro bits)
en la parte superior, y loa bits menos significativos ("a mano derecha" cuatro bits) en la
parte inferior izquierda.
La mayora de los caracteres conforman el cdigo ASCII estndar, aunque los caracteres
japoneses y griegos (y algunas otras cosas) son excepciones obvias. Puesto que estos
mdulos inteligentes fueron diseados en la "Tierra del Sol Naciente", al parecer
nicamente justo sus Smbolos fonticos Katakana tambin son incorporados. El ms
extenso conjunto de caracteres es el Kanji, el cual el japons comparte con los chinos,
que consta de varios miles de diferentes personajes, no est incluido!

Tabla 3. Estndar LCD tabla de caracteres.

Angel Laredo Martnez

Pgina |9

Usando los interruptores, de cualquier tipo, y en refirindose a la Tabla 3, escriba algunos


caracteres en la pantalla, tanto letras como nmeros. El switch RS (S10) debe estar
"arriba" (1lgico) cuando envi los caracteres, y el interruptor E (S9) se debe presionar
para cada uno de ellos. As el orden de operaciones es la siguiente: poner RS Alto,
introduzca carcter, activar E, dejar RS alta, introduzca carcter, activar E, y as
sucesivamente.
Los primeros 16 cdigos en la tabla 3, 00000000 a 00001111, ($ 00 a $ 0F) se refieren a
la CGRAM. Este es el generador de caracteres RAM (memoria de acceso aleatorio), que
se puede utilizar para contener caracteres grficos definidos por el usuario. Aqu es donde
estos mdulos realmente comienzan a mostrar su potencial, que ofrece capacidades tales
como grficos de barras, smbolos parpadeantes, incluso caracteres animados . Antes de
que los caracteres definidos por el usuario sean establecidos, estos cdigos slo arrojaran
smbolos de aspecto extrao.
Los cdigos 00010000 a 00011111 ($ 10 a $ 1F) no se utilizan y slo se mostraran los
caracteres en blanco. Los cdigos ASCII "apropiados" inicia en 00100000 ($ 20) y
termina con 01.111.111 ($ 7F). Los cdigos 10000000 a 10011111 ($ 80 a $ 9F) no se
utilizan, y 10100000 a 11011111 ($ A0 a $ DF) son los caracteres japoneses.
Los cdigos 11100000 a 11111111 ($ E0 a $ FF) son interesantes. Aunque este ltimo
bloque contiene caracteres griegos principalmente, tambin incluye los caracteres en
minsculas que tienen "Trazos Descendentes." Estas son las letras g, j, p, q, y, donde la
cola cae por debajo del lnea de base normal de los caracteres en mayscula. Requieren
el 5 x 10 formato punto matricial, en lugar de la de 5 x 7.
Algunas pantallas de una sola lnea tienen instalados un formato 5 x 10, que permite a
estos caracteres Mostrarse intactos. Con pantallas de dos lneas de 5 x 7, la instalacin
puede ser simulado al tomar las tres primeras filas de pxeles desde la segunda lnea, y as
crear una matriz de 5 x 10.
Para esta simulacin, ajuste la lnea RS bajo, para poner el chip en modo de comando.
En los switchs de datos, escriba el comando Function Set utilizando el valor binario
00110100 ($ 34). Pulse y suelte el interruptor E. Regrese RS al valor alto, y luego envi
los datos del carcter para los ltimos 32 cdigos de manera normal (recordando activar
la lnea E!).
Experimento 3: Direccionar
Cuando el mdulo est encendido, el cursor se coloca al principio de la primera lnea.
Esta es la direccin $ 00. Cada vez que se introduce un carcter, el cursor se mueve a la
siguiente direccin, $ 01, $ 02 y as sucesivamente. Este incremento automtico de la
direccin del cursor hace que las entradas de las cadenas de caracteres sea muy fcil, ya
que no es necesario especificar una direccin separada para cada carcter.
Puede ser necesario, sin embargo, posicionar una cadena de caracteres en otro lugar que
en el principio de la primera lnea. En este caso, una nueva direccin de inicio puede ser
introducida como un comando. Cualquier direccin de entre $ 00 y $ 7F puede ser
introducida, dando un total de 128 direcciones diferentes, aunque no todas las direcciones
tienen su ubicacin propia en la pantalla. De hecho, hay slo 80 lugares en el display,

Angel Laredo Martnez

P g i n a | 10

dispuestas como 40 en el Modo de Doble Lnea, o los 80 en una sola lnea en el Modo de
una Sola Lnea. Esta situacin se complica an ms porque no todos los lugares del
display estn necesariamente visibles al mismo tiempo. Slo un mdulo de Doble Lnea
de 40 caracteres puede mostrar todos los 80 lugares al mismo tiempo.
Para experimentar con el direccionamiento, primero ajuste la pantalla LCD a modo de
Doble Lnea (si las dos lneas son disponible), un formato de 8-bit de datos y 5 [P3] 7
usando el comando Function Set, es decir, cdigo 00111000 ($ 38). Note que los dos
ltimos bits de este comando no tienen importancia, como est indicado por la X en las
columnas de la Tabla 2, y cualquiera de ellos puede ser 0 o 1.
(De ahora en adelante, no siempre se le recordar que RS debe ajustarse
adecuadamente antes de que los Comandos o Caracteres se introduzcan, o que E debe
ser activado despus de que los datos han sido introducidos Usted debe saber ya!)
Usando el comando Display On/Off and Cursor, ajusta la pantalla a On, con comando
Underline Blinking Cursor, cdigo 00001111 ($ 0F). Ahora ponga el cursor en la
direccin 00001000 ($ 08). Esto se hace mediante el comando Set Display Address, el
valor binario 10001000 ($ 88).
El cursor saltar a la novena posicin en la pantalla, es el momento en el que el texto
puede ser ingresado. El comando Set Display Address es siempre 10000000 ($ 80) mayor
que la direccin del display en s.
Experimente con diferentes direcciones de la pantalla y anote sus ubicaciones de la
pantalla. Tenga en cuenta que las direcciones de la pantalla 00101000 a 00111111 ($ 28
a $ 3F) y 01101000 a 01111111 (7F $ 68 a $) no se pueden utilizar en ningn tipo de
Display.
La relacin entre las direcciones y ubicaciones del display varan, dependiendo del tipo
de mdulo que est siendo utilizado, pero algunos ejemplos tpicos se muestran en la
Figura 4.

Figura 4: Ejemplos de la relacin entre las direcciones y lugares del display para
los mdulos tpicos

Angel Laredo Martnez

P g i n a | 11

La mayora estn establecidos convencionalmente, con dos lneas de caracteres, la


primera lnea inicia en la direccin 00000000 ($ 00) y la segunda lnea en la direccin
01000000 ($ 40).
Dos interesantes excepciones fueron descubiertas durante la investigacin de este
artculo. El mdulo de una lnea mostrado en la Figura 4 es en realidad un tipo de doble
lneas, con la segunda lnea colocada a la derecha de la primera. En el modo de una sola
lnea, slo los primeros 10 caracteres eran visibles.
El magnfico modula de 4-lneas es, en realidad, tambin es un tipo de doble lnea, con
las dos lneas divididas y entrelazadas Esto complica el direccionamiento un poco, pero
puede ser resuelto con una bit de software.
Experimento 4: desplazamiento en el Display
Independientemente del tamao del mdulo de LCD que se utilice, siempre hay 80
lugares en el display donde se puede escribir. En los dispositivos ms pequeos, no todos
los 80 encajan en la pantalla del mdulo, pero puede ser puestos a la vista al
desplazndolos a todos, ya sea hacia la izquierda o a la derecha, "debajo" de la zona de la
ventana. Este proceso debe llevarse a cabo con cuidado, ya que se altera la relacin entre
las direcciones y sus posiciones en la pantalla.
Para experimentar con el desplazamiento, primero intruduzca los comando Function Set,
Display On / Off y Cursor y, si es necesario, el comando Clear Display (Ya conoce los
cdigos anteriormente). A continuacin, introduzca las 26 letras del alfabeto como datos
de caracteres, por ejemplo 01000001 ($ 41) a 01011010 ($ 5A).
En una pantalla de 16-carcteres, slo sern visibles de la A a la P (las primeras 16 letras
del alfabeto), y el cursor habr desaparecido de la parte derecha de la pantalla del display.
El comando Shift Cursor / Display ahora se puede utilizar para desplazarse a todos los
lugares del display a la izquierda, "por debajo" de la ventana LCD, por lo que las letras
Q a la Z podrn ser vistas. El comando es: binario 00011000 ($ 18). Cada vez que se
introduce el comando (y usando el switch E), la caracteres cambian un lugar a la
izquierda. El cursor reaparecer del lado derecho, enseguida del carcter Z.
Contine desplazndose, y eventualmente, las letras A, B, C, etc. en, tambin regrese al
lado derecho. Desplazarse eventualmente causa una completa rotacin de los lugares del
display.
El comando binario 00011100 ($ 1C) desplaza las ubicaciones de caracteres a la derecha.
Es importante sealar que este desplazamiento en realidad no mueve a los caracteres
dentro de las nuevas direcciones, Mueve todo el bloque de direcciones de izquierda o
derecha "por debajo" de la ventana del display.
Si las ubicaciones del display no se cambian de nuevo a sus posiciones originales,
entonces la direccin $00 ya no estar en el lado izquierdo de la pantalla. Intenta
introducir el comando Address Set De valor10000000 ($ 80), para ver dnde se ha
movido.
El comando Cursor Home, binario 00000010 ($ 02), se establece tanto para regresar el
cursor a la direccin $ 00, y desplazar la direccin $00 por s misma al lado izquierdo de
la pantalla.

Angel Laredo Martnez

P g i n a | 12

Este comando puede ser usado para volver a una buena posicin inicial conocida, cuando
se desplaza y direcciona la configuracin de un bit fuera de control

El comando Clear Display hace lo mismo como Cursor Home, pero tambin borra todas
las ubicaciones display.
Una ltima palabra sobre el comando Cursor / Display Shift, adems de ser usado para
desplazar el cursor. Hace esto sencillos incrementos o decrementos de la direccin del
cursor y tiene en realidad muy poco en comn con el desplazar la pantalla, a pesar de que
ambos son archivados utilizando el mismo comando.
Experimento 5: Character Entry Mode (modo de entrada de caracteres)
Otro comando que se indica en la tabla 2 es el Character Entry Mode. Hasta el momento,
los caracteres han sido introducidos mediante auto-incremento de la direccin de cursor,
pero tambin es posible utilizar auto-decremento. Adems, es posible combinar el
desplazamiento de la pantalla Con ambos el auto-incremento y el auto-decremento.
Considere una calculadora electrnica. Inicialmente, un solo cero se encuentra en el lado
derecho de la pantalla. Como los nmeros se introducen, se mueven a la izquierda,
dejando el cursor en una posicin fija en el extremo derecho. Este modo de introduccin
de caracteres puede ser emulado en la pantalla del mdulo LCD. Hora de otro
experimento:
Envi los comandos apropiados Function Set, Display On / Off y Cursor como antes. A
continuacin, y asumiendo una pantalla de 16 caracteres, establezca la direccin del
cursor a 00.010.000 ($ 10). A continuacin, enve el comando Character Entry Mode,
binario 00000111 ($ 07). Esto establece el modo de entrada auto-increment/display
desplazamiento a la izquierda.
Por ltimo, introduzca algunos nmeros 0 a 9 decimal, es decir, de 00110000 a 00111001
($30 a $39). Los caracteres aparecen en la parte derecha y hacia la izquierda a medida
que ms caracteres son introducidos , como una calculadora normal.
Como se observa en el Cuadro 2, hay cuatro diferentes modos Character Entry, 00000100
a 00000111 ($ 04 a $ 07), todos los cuales tienen sus diferentes usos en la vida real.
Experimento 6: Grficos Definidos por el Usuario
Los Comandos 01000000 a 01111111 ($ 40 a $ 7F) se utilizan para programar lo grficos
definidos por el usuario. La mejor manera de experimentar con estos es programarlos "en
la pantalla." Este es llev a cabo como sigue:
En primer lugar, envi los comandos propios para Function Set, Display On / Off y
Cursor, despus emita el comando Clear Display y luego envi el comando un Set Display
Address para posicionar el cursor en la direccin 00000000 ($ 00). Por ltimo, mostrar el
contenido de las ocho posiciones de los caracteres de usuario mediante la introduccin de
datos binarios 00000000 hasta 00000111 ($ 00 a $ 07) a la vez. Estos caracteres
inicialmente se mostrar como basura, o una serie de rayas.

Angel Laredo Martnez

P g i n a | 13

Ahora, envi el comando Set CGRAM Address, para comenzar a definir los caracteres
de usuario. Cualquier valor entre 01000000 y 01111111 ($ 40 y $ 7F) es vlido, pero por
ahora use 01000000 ($ 40). El cursor brincara al principio de la segunda lnea, pero
ignore esto, ya que no es importante.
Los datos introducidos a partir de ahora van a construir el grfico definido por el usuario,
fila por fila. Pruebe el siguiente secuencia de datos: 00001110, 00010001, 00001110,
00000100, 00011111, 00000100, 00001010, 00010001 ($ 0E, $ 11, $ 0E, $ 04, $ 1F, $
04, $ 0A, $ 11). Poco a poco "stick man" aparecer en la pantalla!
Mediante la introduccin de otro conjunto de ocho bytes, el segundo carcter de usuario
puede ser definido, y as sucesivamente.
Cmo las direcciones CGRAM corresponden a los pxeles individuales de los caracteres
grficos definidos por el usuario est ilustrado en la Figura 5. Hasta ocho grficos pueden
ser programados, los cuales despus llegan a ser a formar parte del conjunto de caracteres
y se puede acceder mediante los cdigos 00000000 a 00000111 ($ 00 a $ 07), o los
cdigos 00001000 a 00001111 ($ 08 a $ 0F), ambos producen el mismo resultado, es
decir, 64 cdigos de comando disponibles para la programacin del usuario.

Figura 5: Muestra cmo las direcciones CGRAM corresponden a pxeles individuales.

Se puede observar que la celda de carcter bsico es en realidad de ocho pxeles de alto
por cinco pxeles de ancho, pero la mayora de caracteres slo usan las siete filas
superiores. La fila inferior se utiliza generalmente para el cursor de subrayado Debido a
que cada carcter de slo cinco pxeles de ancho, solo los datos de bits de 0 a 4
se utilizan, los bits 5 a 7 (los tres bits "de la izquierda") se ignoran.
El CGRAM es una memoria voltil, lo que significa que cuando la fuente de alimentacin
es removida del mdulo LCD, los caracteres definidos por el usuario se perdern. Es
necesario que el microprocesador cargue los caracteres definidos por el usuario, copiando
los datos desde su propio EPROM, desde el principio en el programa, ciertamente antes
de que intente mostrarlos.
Experimento 7: Transferencia de datos de 4-Bit
El chip HD44780 LCD de control, que se encuentra en la mayora de los mdulos LCD,
fue diseado para ser compatibles con los microprocesadores de 4-bit. El modo de 4-bit
sigue siendo muy til en la interfaz con microcontroladores, incluyendo los tipos de PIC.
los pins de entrada / salida (E / S) de los Microcontroladores tiene que ser previstos
cuidadosamente entre los diversos interruptores, pantallas y otros dispositivos de entrada

Angel Laredo Martnez

P g i n a | 14

y de salida en un circuito tpico. Microcontroladores mas grandes estn disponibles, y


tienen ms pines E / S, pero la miniaturizacin es un factor clave en estos das, junto con
el precio, por supuesto.
Una vez que la pantalla se pone en modo 4-bits, utilizando el comando Function Set, es
un simple importancia de enviar a dos "nibbles" en lugar de un byte para cada subsecuente
comando o carcter.
Nibble es un nombre inventado por los primeros entusiastas de la informtica en los
Estados Unidos, por medio de un byte, y es uno de los trminos ms frvolos que ha
sobrevivido. En el momento que los procesadores de 16-bit llegaron, la informtica iba
en serio, y las analogas de consumo "Engullir" y "Mascar" nunca fueron adoptados!
Cuando se utiliza el modo de 4 bits, slo los datos de las lneas D4 a D7 se utilizan. En
la tablilla de pruebas, Se ajustan los interruptores en las otras lneas, D0 a D3, a 0 lgico,
y dejarlos all. Es ahora de otro inminente experimento.
En el uso normal, los datos no usados I / O lneas D0 a D3 se deben dejar flotantes, o
bien unidos a Una de las dos lneas de alimentacin a travs de una resistencia de algn
lugar entre 4k7 [C24] y 47k [C24]. No es deseable que se conecten directamente a tierra
a menos que la lnea R / W tambin est conectada a tierra, Previnindolos de estar
puestos en modo de salida. De lo contrario el dispositivo podra ser errneamente
programado para la salida de 8-bits, el cual podra estar incompatible para las lneas D0
a D3, a pesar de la limitacin de corriente existe.
Tras el encendido, el mdulo LCD estar en modo 8-bits. Se debe enviar primer el
comando Function Set Para poner el display en el modo 4-bits, pero hay una dificultad.
Sin acceso a las cuatro lneas inferiores de datos, D0 a D3, slo la mitad de los comandos
se puede aplicar.
Por suerte, o mejor dicho, por su diseo inteligente, la seleccin 8-bit/4-b es en bit de
datos D|4, el cual, incluso en la tablilla de pruebas modificada, sigue siendo accesible.
Mediante el envo de un comando con el valor binario 00100000 ($ 20), el modo de 4 bits
es llamado.
Ahora, otro comando Function Set se pueden enviar, a poner el display en el modo de
doble lnea. el Valor binario 00101000 (28 $) har el truco. El valor 00111000 ($ 38)
puede ser una ms nmero familiar, pero no se puede utilizar ahora, o la pantalla se pone
de vuelta en el Modo 8-bit! Tambin, a partir de ahora, todos los comandos y los datos
deben ser enviados en dos mitades, primero los cuatro bits superiores, luego los cuatro
bits inferiores.
Comience por establecer las lneas de datos D7, D6, D5 y D4 para 0010 ($ 2), los cuatro
bits a izquierda del cdigo de 8-bits de y pulse el interruptor E. Entonces ajustamos las
mismas cuatro lneas de datos para 1000 ($ 8), los cuatro bits a mano derecha del cdigo
de 8-bits, y pulse el interruptor E de nuevo. Es mucho ms el laborioso para un ser
humano, pero para un microcontrolador, no hay problema!
Termine experimentando con otros comandos en el modo 4-bits, y luego trate de poner
unos pocos caracteres en la display.

Angel Laredo Martnez

P g i n a | 15

Una nota final


Las hojas de datos advierten que bajo ciertas condiciones, el mdulo LCD puede fallar
para inicializar correctamente al iniciar por primera vez. Esto es particularmente posible
si el suministro de Vdd no Alcanza para su voltaje de funcionamiento correcto con la
suficiente rapidez.
Se recomienda que despus se aplicar energa , sea enviada una secuencia de comandos
de tres bytes de valor 0011XXXX ($ 3X) al mdulo. El valor $ 30 es probablemente el
ms conveniente. Esto garantizara que el mdulo este en el modo de 8-bits, e inicializado
correctamente. Despus de esto, cambie al modo 4-bits (y de hecho todos los otros
comandos) funcionar de forma fiable.

Angel Laredo Martnez

P g i n a | 16

Una serie de switchs era todo lo que se necesito para evaluar los comandos puestos en
su forma ms fundamental, en binario (o hexadecimal).
Sin embargo, en casi todos los casos en los que un LCD es usado, un micro- procesador,
o ms probablemente un Microcontrolador, ser necesario para controlarlo. Este es el
asunto que examinaremos ahora.
Buenos Tiempos
Los requisitos de temporizacin del chip HD44780, el dispositivo de control utilizado en
la mayora mdulos LCD basado en caracteres, se ilustran en la Figura 6. El diagrama
proporciona la informacin para la lectura y escritura de ciclos, aunque algunas hojas de
datos pueden mostrarla por separado. La tabla 4 detalla los parmetros de temporizacin
referidos en la Figura 6.

Figura 6: HD44780 diagrama de sincronizacin


En los experimentos pasados, los comandos fueron enviados a la pantalla pulsando
interruptores en una tablilla de pruebas. No mucho sali mal all, as que por qu es
necesario contar con un complejo diagrama de temporizacin?
Bueno, nosotros los seres humanos dejamos bastante tiempo entre presionar un switchs
y el siguiente, por lo que el controlador LCD puede fcilmente hacerlo por nosotros. Los
microcontroladores son ms rpidos que nosotros, sin embargo, ya que pueden cambiar
una lnea de control millones de veces por segundo, y en tales velocidades el controlador
LCD no puede seguir el ritmo de los comandos.
El diagrama de temporizacin y sus cifras tabuladas simplemente nos dice qu tan rpido
puede el chip LCD responder para que podamos programar el microcontrolador como
corresponde.

Angel Laredo Martnez

P g i n a | 17

Veamos un tpico microcontrolador, uno de los dispositivos PIC el cual se han vuelto tan
popular, y ver cmo podemos programarlo para controlar un LCD de los detalles de
temporizacin.
Primero, se debe sealar sobre las discusiones, a partir de ahora, se supone que tiene un
conocimiento rudimentario de la programacin de PICs, y que tiene el software adecuado
y equipo para hacerlo. Esta no es la intencin de este artculo ensear programacin de
PICs.
El microcontrolador PIC podra ser programado para comenzar por la primera
configuracin RS lnea del LCD a su nivel lgico correcto. Esta es la lnea que determina
si el LCD debe considerar datos como instrucciones de control o la informacin de
caracteres. En los casos en que los datos necesitan ser ledos nuevamente desde el LCD,
el microcontrolador tambin puede tener el control sobre la lnea R / W (Lectura /
escritura), de lo contrario, se debera conectar a tierra, como en la tablilla de pruebas.
El microcontrolador puede establecer estas dos seales al mismo tiempo, o puede hacer
una antes que la otra, lo que en realidad no importa. Lo qu es importante, es que ambos
son "Vlido" o "estable"
durante un perodo mnimo
de tiempo antes de que el
nivel de la lnea "E"
(Disponible) esta puesta a un
1 lgico. En el diagrama de la
Figura 6, este perodo se
muestra como "tAS" (tiempo
Configuracin
de
direccin), y en la tabla esto
esta
especificado
como
mnimo 140ns. Puede ser ms
de 140ns, pero no debe ser
menos.
Tabla 4: Parmetros de sincronizacin HD44780.
Una vez que la lnea E esta en Alto, no debe ponerse en Bajo otra vez hasta que por lo
menos 450ns haya transcurrido, como est indicado por el "tEH" (tiempo- Alto
Disponible). Adems, las ocho lneas de datos deben ser establecidas en sus apropiados
de niveles lgicos permitidos para establecer por al menos el "TDS" (tiempoConfiguracin de datos) perodo de 200ns antes de llevar a Bajo la lnea E de nuevo.
Tenga en cuenta que la pantalla LCD permite a las lneas de datos ser configuradas
despus de la lnea E este puesta en Alto. En los experimentos pasados, los datos se
estableci mucho antes de que el interruptor E se ha pulsado, pero cualquiera de estas
condiciones est permitida.
Cuando la lnea E es devuelta a un nivel Bajo, tambin hay dos tiempos de espera que se
deben tomar en cuenta. El parmetro "tAH" (tiempo- retencin de direccin) indica que
las lneas RS y R / W no deben ser alteradas durante al menos 10 ns, y "tDH '" (tiempo retencin de datos) muestra que ninguna de las lneas de datos debe cambiar por lo menos
20ns.

Angel Laredo Martnez

P g i n a | 18

Una restriccin adicional existe. La lnea E no debe ser puesta en Alto otra vez (es decir,
para el siguiente comando) por otros 500ns ("tEL": tiempo Bajo Disponible). Esto
significa que el total tiempo de ciclo de la lnea E es 450ns ms 500ns. Teniendo en
cuenta los tiempos de subida y cada, indicado por "tRF", el cual no debe ser mayor de
25ns cada uno, un valor aproximado de 1 s pueden ser calculado. Esto significa que no
ms de un milln de comandos (o un milln de caracteres) por segundo debe ser enviados
al display.
Ocupado
El diagrama de temporizacin no dice toda la historia, incluso. Retrasos ms largos son
necesarios para permitir al LCD procesar comandos y datos. Muchos comandos bloquean
el LCD por 40s tiempo durante el cual se dice que esta "ocupado". Los comandos Clear
Display y Cursor Home, sin embargo, pueden tomar mucho ms tiempo.
Los tiempos de ejecucin de todas las
instrucciones son mostrados en la Tabla 5.
Esto incluye todos los comandos, escritura
de datos en la pantalla, y la lectura de
ambos datos y el estado. La Lectura con las
2 instrucciones an no han sido
experimentado, pero la lectura del estado
de la pantalla LCD es el mtodo utilizado
para determinar si est o no ocupado.
La implicacin prctica de estos tiempos
de instruccin es slo un caso de tener que
poner un retraso entre una instruccin y el
siguiente. Los primeros dos comandos,
Clear Display y Cursor Home, tienen
tiempos variables de ejecucin que
dependen de varios factores. No se habla
mucho de esta variacin en las hojas de datos, pero s implica regresar el cursor a la
direccin 10000000 ($ 80), sin desplazar el display y, en el caso de los Clear Display,
poniendo un carcter de espacio dentro de cada direccin de la pantalla.
Hay otra situacin importante cuando el LCD estar ocupado. Esto es inmediatamente
despus de que ha sido encendido. Se tarda unos 10 a 15 milisegundos para que la
secuencia de inicializacin este completada, tiempo durante el cual no se puede ejecutar
instrucciones.
Esto tiene importantes implicaciones para un circuito utilizando un microcontrolador.
Un retardo apropiado debe ser agregado al comienzo del programa, en caso contrario el
LCD no estar listo cuando las primeras instrucciones se le enven y podra llegar estar
bloqueado en una condicin no corregible, que requiere que la energa sea desconectada
otra vez por un tiempo.
Nuevo Circuito
Tiempo ahora de re-cablear la tablilla de pruebas para incorporar un PIC
microcontrolador. El diagrama de circuito del arreglo modificado se muestra en la Figura
7. No hay necesidad de un circuito anti-rebotes, el microcontrolador proporciona seales

Angel Laredo Martnez

P g i n a | 19

de salida muy limpias. No es esencial utilizar el PIC16C84 especificado en el diagrama,


los tipos 54, 56, 61 y 71 se pueden usar, pero algunos cambios menores necesitan ser
hechos a uno o dos pines de las conexiones.
Sin embargo, lo mejor es experimentar con el PIC16C84ya que es la versin EPROM
del microcontrolador.
El uso de esta versin es deseable debido a que varias versiones diferentes de software
se deben programarse y borrarse durante el transcurso de la experimentacin. Otras
versiones del microcontrolador no se pueden borrar tan fcilmente, el hecho es que,
algunos no se pueden borrar en lo absoluto (Esto se refiere por ejemplo a los dispositivos
OTP, One-Time Programmable una vez programable).

Figura 7: Esquema de conexiones para la conexin de un microcontrolador


PIC16C84 a un mdulo LCD.
La Opcin de Reloj del microcontrolador (Clock Option) puede ajustarse por un RC
(resistencia / capacitor) o cualquiera de las opciones XT (cristal), pero la opcin de RC
es ms barato, y la precisin de temporizacin no es importante en este caso. Los valores
de la resistencia R1 y el capacitor C1conectado a la
OSC1 de entrada en la Figura 7 darn una frecuencia de reloj de 2 MHz
aproximadamente. Por algunos momentos los valores ms bajos de la resistencia o
capacitancia (para mayor velocidad) debe ser evitarse, para asegurar que los retrasos del
software sean suficientemente largos.

Angel Laredo Martnez

P g i n a | 20

La Tablilla de pruebas muestra la posicin del microcontrolador (En realidad es un


PIC16C54, aunque es recomendable un PIC16C84).

Experimento 8: Programar PIC


Compile y programe los contenidos del LISTING 1en el microcontrolador PIC. Este ha
sido escrito para usarlo con software ensamblador MPALC, aunque puede ser fcilmente
traducido o adaptado a MPASM o TASM.

Angel Laredo Martnez

P g i n a | 21

Una vez que el PIC ha sido programado, vuelva a encender el circuito. La palabra
HELLO aparecer en la pantalla. Puede que al parecer hay una gran cantidad de
cdigos fuente necesarios para hacer un trabajo sencillo, pero el programa realiza todo
lo establecimiento que la pantalla necesita y puede formar la base de un sistema ms
complejo.
Precisamente lo que todas estas instrucciones hacen es importante y se describirn a
detalle.

Angel Laredo Martnez

P g i n a | 22

La primera rutina, "inicializar", se consta de cinco instrucciones Clear File (clrf) las que
establecen la contenido de cinco registros a cero. Dos de estos registros, 05 y 06, se
refieren a los puertos de salidas A y B.
Cuando el microcontrolador est encendido, todos los pines del puerto se configuran
automticamente como entradas, por lo que no se daa a los circuitos externos. La rutina
"setports" utiliza instrucciones "tris" para redefinir cada bit de Puertos A y B, ya sea como
una entrada o una salida.
(Tenga en cuenta que Microchip, los fabricantes de la familia PIC, ahora desaprueban
el uso de "TRIS", el comando llega a ser incompatible con sus dispositivos ms nuevos.
Hay alternativas de alcanzar el mismo resultado, como se discute en los libros de datos
PIC. Ed.)
La rutina "longdelay" mantiene ocupado el microcontrolador mientras el LCD est
inicializando. Este retardo debe ser no menor de 15ms, pero puede ser ms, por supuesto.
El rutinas "functionset" y "displayon" son muy similares a los comandos hexadecimales
$ 38 y $ 0F (00111000 y 00001111) para el LCD. Deben estar familiarizados con estos
nmeros que fueron llevados en los experimentos de la Parte 1.
Ambas rutinas contienen instrucciones "call" para dos subrutinas, "pulse_e" y
"shortdelay" que puede ser visto hacia el final del Listing. La rutina message incorpora
un bucle de programa que se ejecuta cinco veces para dar salida a las cinco caracteres de
la tabla de texto ("Text") al LCD. El PIC utiliza un tipo de subrutina inusual, que
comprende una lista de instrucciones "Retlw" (return with literal retorno con literal)
que pueden ser utilizados para formar las tablas de datos.
Regster $0D se utiliza como un contador que se establece inicialmente en cero por la
instruccin "clrf" en la rutina "initialise". Este valor es entonces usado como un puntero
para la tabla de texto que contiene los caracteres ASCII que escriben HELLO.
La rutina "stop" bloquea el microcontrolador para que deje de hacer cualquier otra cosa.
Por ltimo, la directriz "end" no es un comando de programa, sino una instruccin para
decirle al ensamblador que detenga el montaje.
Una Buna lectura
El programa en el Listing 1 slo escribe en la pantalla. En muchas aplicaciones esto es
muy satisfactorio, y tiene la ventaja de permitir que la lnea R / W en el LCD sea
conectada a tierra, que a su vez guarda un pin de I / O (entrada / salida) en el
microcontrolador.
Es posible (y a veces es necesario) para leer los datos e informacin de estado del LCD,
pero, por supuesto, la lnea R / W debe estar activamente conectado con el fin de hacer
esto. La lectura de la pantalla difiere de la escritura en algunos aspectos fundamentales,
as que se requiere ahora re-examinar el diagrama de temporizacin, como se describe la
secuencia de eventos.
Lneas RS y R / W se debe configurar en primer lugar, con R / W se establece en un 1
lgico en esta ocasin. Si RS es de puesto en Alto, se devuelven los datos indicando al

Angel Laredo Martnez

P g i n a | 23

carcter que est en la direccin actual del cursor. Si RS es puesto en Bajo, un byte de
estado se enva de vuelta, conteniendo dos elementos separados, los bits 0 a 6 mantienen
la direccin actual del cursor, y el bit 7 que contiene el Busy flag (seal indicador de
Ocupado).
Los dos formatos de instruccin de Read se muestran en la Tabla 6. Despus de la
necesaria tiempo-configuracin de la direccin "(tAS), la lnea E se puede poner en Alto.
Este es el punto en el que el ciclo de lectura difiere del ciclo de escritura, como las lneas
de datos del LCD cambiar para ser salidas.

Dato de carcter en la direccin actual del cursor


Direccin actual del cursor
Indicador de Ocupado

Tabla 6: HD44780 Lectura de Instrucciones.


Es evidente que, antes de que el microcontrolador inicie este ciclo de lectura, debe
cambiar sus lneas de datos a entradas, de otro modo las salidas estaran conectadas a las
salidas y sobrevendra una lucha (conocido como bus de contencin). En cualquier caso,
si las lneas del microcontrolador datos no fueron salidas en este momento, no sera capaz
de leer los datos.
Se toma un tiempo mientras el LCD cambia sus lneas de datos a salidas, y la estabilidad
de los datos en ellos, pero garantiza a hacerlo dentro de 320ns, el "tiempo-acceso a datos"
(tDA). El micro-controlador puede leer estos datos a travs de sus entradas, y tan pronto
como oportunamente lo tenga la lnea E puede volver a bajar.
La mayor parte de la informacin que se puede leer desde la pantalla debi haber sido
escrita all por el microcontrolador en primer lugar, lo que explica por qu muchos de los
diseos se puede conseguir sin tener la lnea R / W conectada.
La Busy flag, sin embargo, puede ser til para el microcontrolador, para evitar el uso de
todos esas rutinas de retardo. Para las aplicaciones que necesitan para poner una gran
cantidad de informacin en la pantalla en tan poco tiempo, checando el indicador de
Ocupado es la forma ms eficiente de saber cuando el display est listo.
Experimento 9: Lectura de estado
En este experimento, el programa en el Listing 1 se modifica para incorporar la
comprobacin del indicador de Ocupado. El plan consiste en reemplazar la subrutina
"shortdelay", que tiene un retraso de tiempo fijo, con otra rutina que constantemente se
compruebe el indicador de Ocupado hasta que ya no este ocupado.
El Listing 2 muestra la nueva subrutina, llamada "busywait." Donde aparezca la
instruccin "shortdelay" en el Listing 1 se sustituye por busywait", incluyendo las tres

Angel Laredo Martnez

P g i n a | 24

lneas denominada "longdelay." El programa pondr el mensaje en la pantalla mucho ms


rpidamente que antes, como los retrasos innecesarios son eliminados.

Las dos primeras lneas de "busywait" cambiar la asignacin del puerto B, de modo que
toda su I / O lneas se convierten en salidas. Despus de esto, las lneas RS y R / W se
configuran listos para El estado de lectura. Para retardos cortos, la instruccin "nop" (no
operation sin operacin) puede ser utilizada, es ideal para los pequeos retardos de
tiempo requerido por la interfaz del LCD.
La lnea E es entonces puesta en Alto, despus de un retardo corto para permitir el tiempo
de acceso de datos (tDA), el estado del indicador de Ocupado es ledo dentro del
microcontrolador. Una instruccin rtate left" (rlf) es utilizado aqu, para transferir el
indicador Ocupado en lnea de datos D7, dentro del indicador de Acarreo (Carry flag) del
PIC, en los que puede ser almacenado antes de la prueba.
La lnea E es llevado a Bajo, despus de lo cual se realiza una indicador de Acarreo
(Carry flag) a travs de la instruccin "btfss". Si el indicador de Acarreo se activa,
entonces el LCD estaba ocupado en el momento de la lectura fue tomado, y el programa
se bifurca de nuevo para realizar otra lectura de estado.
Si el LCD se encontr y ya no est ocupado, el puerto B se cambia de nuevo para todos
los bits a ser salidas y la subrutina retorna al programa principal. El programa utiliza un
cdigo ms, pero ahorra tiempo al evitar retrasos innecesarios.
Experimento 10: Modo Nibble
El ltimo experimento es para llevar la transferencia en el modo de 4-bit d datos entre el
LCD y el microcontrolador. Esto se examin en el Experimento 7 en la Parte 1, por lo
que la tcnica debe entenderse razonablemente bien.

Angel Laredo Martnez

P g i n a | 25

Sin embargo, varios cambios necesitan ser realizados, tanto para el circuito y el
programa, cuyos detalles sern dejados para ti para una completa implementacin, pero
los principios involucrados son los siguientes:
Listado 3 muestra algunos de los cambios. Las lneas de datos D0 a D3 en el LCD debe
ser desconectado del microcontrolador (vase la Parte 1cmo tratar con estas lneas sin
usar del LCD). Las lneas de datos D0 a D3 en el microcontrolador estn ahora libres
para ser utilizado por otros propsitos, pero por el momento se puede dejar en circuito
abierto.

Como vimos en la Parte 1, dos comandos separados Function Set son necesarios para
configurar el LCD primero, el cdigo binario 00100000 (hexadecimal $ 20) se enva
mientras la pantalla LCD sigue en el modo 8-bit, el modo que adopta automticamente
cuando se enciende la primera vez. Este primer cdigo es seguido por 00101000 (28 $)
enviar como dos nibbles separados, es decir, 0010 y 1000, ambos enviados a las lneas
D4 a D7. (No se olvide que las lneas RS y E deben ser tratados apropiadamente cuando
envi datos.)

En el Listing 3, la rutina "functionset" del Listado 1 se ha modificado para enviar $20 en


lugar de $38, y luego una nueva rutina, "functionset2", ha sido aadida, entre
"functionset" y "Displayon," para enviar $ 2, y luego $ 8. En la nueva rutina, la divisin
de un byte comando en dos nibbles se logra mediante el uso la instruccin del PIC
"swapf", que intercambia las mitades superior e inferior de cualquier registro.
Angel Laredo Martnez

Potrebbero piacerti anche