Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pgina |2
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
Pgina |3
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
Pgina |4
Por
Pgina |5
Pgina |6
Pgina |7
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-
Pgina |8
Pgina |9
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
P g i n a | 11
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.
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.
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
P g i n a | 14
P g i n a | 15
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.
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.
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
P g i n a | 19
P g i n a | 20
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.
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
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.
P g i n a | 24
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.
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.)