como usar lcd

25
Página | 1 Angel Laredo Martínez

Upload: lizeth-granados

Post on 15-Jan-2016

21 views

Category:

Documents


1 download

DESCRIPTION

LCD's

TRANSCRIPT

Page 1: Como Usar Lcd

P á g i n a | 1

Angel Laredo Martínez

Page 2: Como Usar Lcd

P á g i n a | 2

Angel Laredo Martínez

Cómo utilizar LCD`s inteligentes

Una guía absolutamente "práctica" para la

interconexión y la programación de los módulos

de LCD`s inteligentes.

Recientemente, una serie de proyectos que utilizan Módulos de displays de cristal líquido

inteligentes (LCD) han sido destacados en EPE. Su capacidad de mostrar no sólo los

números, sino también letras, palabras y todo tipo de símbolos, los hace mucho más

versátil que las familias de displays de 7 segmentos de diodos electroluminiscentes

(LED).

Aunque todavía bastante caros cuando se compran nuevos, un gran número de módulos

son encontrando en el camino en las manos de los proveedores de electrónica "ganga",

ofrece al aficionado una oportunidad a bajo costo para llevar a cabo algunos experimentos

fascinantes y realizar algunos y muy sofisticados proyectos de visualización electrónica.

Lectura Básica Este artículo trata de los módulos basados en caracteres LCD que utilizan el HD44780

de Hitachi (O compatible) chip controlador, al igual que la mayoría de los módulos

disponibles para el aficionado. Por supuesto, estos módulos no están tan avanzados como

la última generación, de tamaño completo, a todo color, con iluminación de fondo, usados

en las computadoras portátiles de hoy en día, pero lejos de ser "eliminado", basada en

caracteres LCD`s todavía se utilizan ampliamente en los equipos comerciales e

industriales, en particular cuando requisitos de visualización son razonablemente simple.

Los módulos tienen una interfaz bastante básico, el cual se acopla bien con la tradicional

micro- procesadores tal como el Z80 o el 6502. También es ideal para el microcontrolador

PIC, que es probablemente el microcontrolador más popular utilizado por los aficionados

electrónicos.

Sin embargo, aunque hasta ahora, no sabes nada de microcontroladores, y poseer nada

de la parafernalia de los PICs, no se desespere, usted todavía puede disfrutar de toda la

diversión de experimentar con LCDs, utilizando no más que un puñado de interruptores!

Formas y tamaños Incluso, reducido los módulos basados en caracteres, todavía hay una gran variedad de

formas y tamaños disponible. Las longitudes de las líneas de 8, 16, 20, 24, 32 y 40 son

todos caracteres estándar, en versiones de una,

dos y cuatro líneas.

Existen muchas y diferentes tecnologías de

cristal líquido. Tipos "Supertwist" por

ejemplo, ofrecen mejorar el contraste y ángulo

de visión que los viejos "Twisted Nematic".

Algunos módulos están disponibles con

iluminación de fondo, de modo que se pueden

ver en condiciones de poca luz. La

Page 3: Como Usar Lcd

P á g i n a | 3

Angel Laredo Martínez

iluminación de fondo puede ser "electro-luminiscente", que requiere un alto voltaje de

circuito inversor, o la simple iluminación de un LED.

Algunas de estas características son importantes, sin embargo, para fines de

experimentación. Todos los tipos son capaces de mostrar la misma información básica,

por lo que los más baratos son probablemente la mejor opción para iniciar.

Conexiones La mayoría de los módulos LCD cumple con una especificación de interfaz estándar. Un

acceso de 14-pin es previsto (14 agujeros para la inserción de pines de soldadura o de un

conector IDC) con datos de ocho líneas, tres líneas de control y tres líneas de potencia.

Las conexiones están 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.

Configuración de pines de las dos formas básicas de LCD.

En la mayoría de las pantallas, los pines están enumerados en la tablilla del circuito

impreso del LCD, pero si no, es bastante fácil 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 metálica en algún punto.

La función de cada una de las conexiones se muestra en la

Tabla 1. Los pines 1 y 2 son las líneas de alimentación, Vss

y Vdd. El pin Vdd debe ser conectado al positivo, y Vss al

negativo o tierra.

Aunque las hojas de datos de los módulos de LCD

especifican suministrar 5Vd.c. (A sólo unos pocos

miliampers), el suministrarle de 6V 4.5V en ambos

funcionan bien, e incluso 3V es suficiente para algunos

módulos. Por consiguiente, estos módulos pueden ser

eficaces y económicos, alimentados por baterías.

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

potenciómetro conectado entre la fuente de alimentación y el

pin de contraste, pero tenga en cuenta que algunos módulos

Tabla 1. Función de los Pines

todos los tipos de LCD.

Page 4: Como Usar Lcd

P á g i n a | 4

Angel Laredo Martínez

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

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

Pin 4 es el de Seleccionar Registro (RS) de línea, el primero de las tres entradas de

comando de control. Cuando esta línea es pequeña, los bytes de datos transferidos a la

pantalla se tratan como comandos, y los bytes de datos leídos de la pantalla indican su

estado. Por establecer la línea RS grande, los datos de caracteres se puede transferir desde

y hacia el módulo.

Pin 5 es lectura / escritura (R / W) de línea. Esta línea es baja se usa con el fin de escribir

comandos o datos de caracteres en el módulo, o es alta se usa para leer los datos de

caracteres o información de estado a partir de sus registros.

Pin 6 es la opción Activar (E) línea. Esta entrada se utiliza para iniciar la transferencia

de los comandos actuales o los datos de caracteres entre el módulo y las líneas de datos.

Al escribir en la pantalla, los datos se transfieren sólo en la transición de alta a baja de

esta señal. Sin embargo, cuando la lectura de la pantalla, los datos estarán disponibles

poco después de la transición de menor a mayor y permanecerá disponible hasta que la

señal caiga a baja otra vez.

Los pines 7 a 14 son las ocho líneas 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 4-

bit "nibbles". En este último caso, únicamente las cuatro líneas superiores de datos (D4 a

D7) se utilizan. En este modo de 4-bits es benéfico cuando se utiliza un

Microcontrolador, cuando pocas entradas/salidas son requeridas.

Circuito Prototipo Para el uso de un módulo 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 conexión una serie de interruptores a los

pines del módulo. Esto puede ser un gran paso benéfico, incluso si usted está

completamente familiarizado con el funcionamiento de los microprocesadores.

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

Page 5: Como Usar Lcd

P á g i n a | 5

Angel Laredo Martínez

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

experimentación LCD. El circuito puede ser conectado en una tablilla de pruebas

(Protoboard), utilizando una d.i.l (Doble línea) para los switchs de las líneas de datos (S1

a S8), un switch de palanca para la entrada RS (S10), y un microswitch de acción

momentánea para la entrada E (S9). La línea 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 más conveniente

utilizar una s.i.l. (línea sencilla) para las ocho resistencias (R1 a R8) en las líneas de

datos.

Las otras dos resistencias, R9 y R10, pueden ser de valores discretos. Potenciómetro 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 línea positiva a

través de una resistencia de 47K ohms aproximadamente (tendría que ser conectado a un

terminal negativa, a través de una resistencia similar, para aquellos módulos que requieren

polarización negativa).

Todos los interruptores deben estar conectados para que estén en "on" cuando está en la

posición "abajo", por lo que "hacia abajo" genera un 0 lógico (bajo) y "arriba" proporciona

un 1 lógico (alto). Los switchs también debe arreglarse de modo que los bits de datos D7

estén a la izquierda, y los bit de datos D0 estén a la derecha. De esta manera, los números

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 lógica), 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 módulo LCD.

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

Experimento 1: Comandos básicos Cuando se enciende, la pantalla deberá mostrar una serie de casillas negras, posiblemente

sólo 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.

Page 6: Como Usar Lcd

P á g i n a | 6

Angel Laredo Martínez

La el módulo LCD se reinicia a un estado inicial cuando se aplique energía, 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 visualización.

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 después de encendido están marcados con un asterisco.

A lo largo de este artículo, se hará hincapié en el valor binario que se envían en estas

ilustraciones con los bits de datos para cada comando. Después de cada valor binario, el

valor hexadecimal equivalente se cita entre paréntesis, el prefijo $ indica que es

hexadecimal.

Los Comandos Display On/Off y Cursor encienden la pantalla, y además también

determina el estilo del cursor al mismo tiempo. Inicialmente, es probablemente lo mejor

para seleccionar un cursor parpadeante con Subrayado, de manera que su posición se

puede ver claramente, código 00001111 ($ 0F).

Tabla 2. Códigos de comandos de control.

Ajuste los Switchs de datos (S1 a S8) a 00.001.111 ($ 0F) y asegúrese de que el Switch

RS (S10) este hacia "abajo" (0 lógico), de modo que el dispositivo este en el modo de

Comandos. A continuación, pulse el switch E (S9) momentáneamente, el cual "permite"

al chip para aceptar datos, y Listo! Un cursor parpadeando con subrayado aparecerá en

la posición superior izquierda!

Si se está utilizando un módulo de dos líneas, la segunda línea se puede activar emitiendo

el comando Function Set. Este comando también 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

Page 7: Como Usar Lcd

P á g i n a | 7

Angel Laredo Martínez

o 5 x 7 de píxeles. Así que para datos de 8-bits, dos líneas 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 líneas tiene

un requisito de unidad diferente. Ahora ajuste el interruptor RS a su posición "arriba"

(lógica 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 código ASCII para una

A mayúscula.

Pulse el Switch E y sorpréndase como el display se llena con A mayúsculas. Claramente,

algo no está bien, y ver su nombre en píxeles se va a tener que esperar un rato.

Botar El problema aquí es bote de contacto. Prácticamente cada vez que el interruptor E está

cerrado, sus contactos se botaran, por lo que, únicamente aparecerá un solo carácter, la

mayoría de los intentos resultarán 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 solución al problema de rebote se muestra en la Figura 3.

Aquí, un par de compuertas NAND están

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.

Después de modificar el circuito, la pantalla

llena de A mayúsculas 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

posición "abajo" y presione de nuevo el

modificado switch E. La pantalla se limpia.

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 botón, si no cuando se suelta.

Experimento 2: Introducción de texto En primer lugar, un pequeño consejo: es mucho más fácil 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-

Figura 3. Switch circuito anti-rebote

Page 8: Como Usar Lcd

P á g i n a | 8

Angel Laredo Martínez

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 estén

posicionados hacia el cero, las cuatro salidas están en cortocircuito al pin común, y en la

posición "F", los cuatro las salidas están en circuito abierto.

Todos los caracteres disponibles que están integradas en el módulo se muestran en la

Tabla 3. Estudiando la tabla, verá que los códigos asociados con los caracteres se expresan

en binario y hexadecimales, los bits más 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 mayoría de los caracteres conforman el código ASCII estándar, aunque los caracteres

japoneses y griegos (y algunas otras cosas) son excepciones obvias. Puesto que estos

módulos inteligentes fueron diseñados en la "Tierra del Sol Naciente", al parecer

únicamente justo sus Símbolos fonéticos Katakana también son incorporados. El más

extenso conjunto de caracteres es el Kanji, el cual el japonés comparte con los chinos,

que consta de varios miles de diferentes personajes, no está incluido!

Tabla 3. Estándar LCD tabla de caracteres.

Page 9: Como Usar Lcd

P á g i n a | 9

Angel Laredo Martínez

Usando los interruptores, de cualquier tipo, y en refiriéndose a la Tabla 3, escriba algunos

caracteres en la pantalla, tanto letras como números. El switch RS (S10) debe estar

"arriba" (1lógico) 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 carácter, activar E, dejar RS alta, introduzca carácter, activar E, y así

sucesivamente.

Los primeros 16 códigos 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 gráficos definidos por el usuario. Aquí es donde

estos módulos realmente comienzan a mostrar su potencial, que ofrece capacidades tales

como gráficos de barras, símbolos parpadeantes, incluso caracteres animados . Antes de

que los caracteres definidos por el usuario sean establecidos, estos códigos sólo arrojaran

símbolos de aspecto extraño.

Los códigos 00010000 a 00011111 ($ 10 a $ 1F) no se utilizan y sólo se mostraran los

caracteres en blanco. Los códigos ASCII "apropiados" inicia en 00100000 ($ 20) y

termina con 01.111.111 ($ 7F). Los códigos 10000000 a 10011111 ($ 80 a $ 9F) no se

utilizan, y 10100000 a 11011111 ($ A0 a $ DF) son los caracteres japoneses.

Los códigos 11100000 a 11111111 ($ E0 a $ FF) son interesantes. Aunque este último

bloque contiene caracteres griegos principalmente, también incluye los caracteres en

minúsculas que tienen "Trazos Descendentes." Estas son las letras g, j, p, q, y, donde la

cola cae por debajo del línea de base normal de los caracteres en mayúscula. Requieren

el 5 x 10 formato punto matricial, en lugar de la de 5 x 7.

Algunas pantallas de una sola línea tienen instalados un formato 5 x 10, que permite a

estos caracteres Mostrarse intactos. Con pantallas de dos líneas de 5 x 7, la instalación

puede ser simulado al tomar las tres primeras filas de píxeles desde la segunda línea, y así

crear una matriz de 5 x 10.

Para esta simulación, ajuste la línea 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 carácter para los últimos 32 códigos de manera normal (recordando activar

la línea E!).

Experimento 3: Direccionar Cuando el módulo está encendido, el cursor se coloca al principio de la primera línea.

Esta es la dirección $ 00. Cada vez que se introduce un carácter, el cursor se mueve a la

siguiente dirección, $ 01, $ 02 y así sucesivamente. Este incremento automático de la

dirección del cursor hace que las entradas de las cadenas de caracteres sea muy fácil, ya

que no es necesario especificar una dirección separada para cada carácter.

Puede ser necesario, sin embargo, posicionar una cadena de caracteres en otro lugar que

en el principio de la primera línea. En este caso, una nueva dirección de inicio puede ser

introducida como un comando. Cualquier dirección de entre $ 00 y $ 7F puede ser

introducida, dando un total de 128 direcciones diferentes, aunque no todas las direcciones

tienen su ubicación propia en la pantalla. De hecho, hay sólo 80 lugares en el display,

Page 10: Como Usar Lcd

P á g i n a | 10

Angel Laredo Martínez

dispuestas como 40 en el Modo de Doble Línea, o los 80 en una sola línea en el Modo de

una Sola Línea. Esta situación se complica aún más porque no todos los lugares del

display están necesariamente visibles al mismo tiempo. Sólo un módulo de Doble Línea

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 Línea (si las dos líneas son disponible), un formato de 8-bit de datos y 5 [P3] 7

usando el comando Function Set, es decir, código 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 después 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, código 00001111 ($ 0F). Ahora ponga el cursor en la

dirección 00001000 ($ 08). Esto se hace mediante el comando Set Display Address, el

valor binario 10001000 ($ 88).

El cursor saltará a la novena posición 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 dirección 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 ningún tipo de

Display.

La relación entre las direcciones y ubicaciones del display varían, dependiendo del tipo

de módulo que está siendo utilizado, pero algunos ejemplos típicos se muestran en la

Figura 4.

Figura 4: Ejemplos de la relación entre las direcciones y lugares del display para

los módulos típicos

Page 11: Como Usar Lcd

P á g i n a | 11

Angel Laredo Martínez

La mayoría están establecidos convencionalmente, con dos líneas de caracteres, la

primera línea inicia en la dirección 00000000 ($ 00) y la segunda línea en la dirección

01000000 ($ 40).

Dos interesantes excepciones fueron descubiertas durante la investigación de este

artículo. El módulo de una línea mostrado en la Figura 4 es en realidad un tipo de doble

líneas, con la segunda línea colocada a la derecha de la primera. En el modo de una sola

línea, sólo los primeros 10 caracteres eran visibles.

El magnífico modula de 4-líneas es, en realidad, también es un tipo de doble línea, con

las dos líneas 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 tamaño del módulo de LCD que se utilice, siempre hay 80

lugares en el display donde se puede escribir. En los dispositivos más pequeños, no todos

los 80 encajan en la pantalla del módulo, pero puede ser puestos a la vista al

desplazándolos 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 relación 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

códigos anteriormente). A continuación, introduzca las 26 letras del alfabeto como datos

de caracteres, por ejemplo 01000001 ($ 41) a 01011010 ($ 5A).

En una pantalla de 16-carácteres, sólo serán 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 podrán 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 carácter Z.

Continúe desplazándose, y eventualmente, las letras A, B, C, etc. en, también regrese al

lado derecho. Desplazarse eventualmente causa una completa rotación de los lugares del

display.

El comando binario 00011100 ($ 1C) desplaza las ubicaciones de caracteres a la derecha.

Es importante señalar 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 dirección $00 ya no estará en el lado izquierdo de la pantalla. Intenta

introducir el comando Address Set De valor10000000 ($ 80), para ver dónde se ha

movido.

El comando Cursor Home, binario 00000010 ($ 02), se establece tanto para regresar el

cursor a la dirección $ 00, y desplazar la dirección $00 por sí misma al lado izquierdo de

la pantalla.

Page 12: Como Usar Lcd

P á g i n a | 12

Angel Laredo Martínez

Este comando puede ser usado para volver a una buena posición inicial conocida, cuando

se desplaza y direcciona la configuración de un bit fuera de control

El comando Clear Display hace lo mismo como Cursor Home, pero también borra todas

las ubicaciones display.

Una última palabra sobre el comando Cursor / Display Shift, además de ser usado para

desplazar el cursor. Hace esto sencillos incrementos o decrementos de la dirección del

cursor y tiene en realidad muy poco en común 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 dirección de cursor,

pero también es posible utilizar auto-decremento. Además, es posible combinar el

desplazamiento de la pantalla Con ambos el auto-incremento y el auto-decremento.

Considere una calculadora electrónica. Inicialmente, un solo cero se encuentra en el lado

derecho de la pantalla. Como los números se introducen, se mueven a la izquierda,

dejando el cursor en una posición fija en el extremo derecho. Este modo de introducción

de caracteres puede ser emulado en la pantalla del módulo LCD. Hora de otro

experimento:

Envié los comandos apropiados Function Set, Display On / Off y Cursor como antes. A

continuación, y asumiendo una pantalla de 16 caracteres, establezca la dirección del

cursor a 00.010.000 ($ 10). A continuación, envíe 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 números 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 más 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: Gráficos Definidos por el Usuario

Los Comandos 01000000 a 01111111 ($ 40 a $ 7F) se utilizan para programar lo gráficos

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, después emita el comando Clear Display y luego envié el comando un Set Display

Address para posicionar el cursor en la dirección 00000000 ($ 00). Por último, mostrar el

contenido de las ocho posiciones de los caracteres de usuario mediante la introducción de

datos binarios 00000000 hasta 00000111 ($ 00 a $ 07) a la vez. Estos caracteres

inicialmente se mostrará como basura, o una serie de rayas.

Page 13: Como Usar Lcd

P á g i n a | 13

Angel Laredo Martínez

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 válido, pero por

ahora use 01000000 ($ 40). El cursor brincara al principio de la segunda línea, pero

ignore esto, ya que no es importante.

Los datos introducidos a partir de ahora van a construir el gráfico 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 introducción de otro conjunto de ocho bytes, el segundo carácter de usuario

puede ser definido, y así sucesivamente.

Cómo las direcciones CGRAM corresponden a los píxeles individuales de los caracteres

gráficos definidos por el usuario está ilustrado en la Figura 5. Hasta ocho gráficos pueden

ser programados, los cuales después llegan a ser a formar parte del conjunto de caracteres

y se puede acceder mediante los códigos 00000000 a 00000111 ($ 00 a $ 07), o los

códigos 00001000 a 00001111 ($ 08 a $ 0F), ambos producen el mismo resultado, es

decir, 64 códigos de comando disponibles para la programación del usuario.

Figura 5: Muestra cómo las direcciones CGRAM corresponden a píxeles individuales.

Se puede observar que la celda de carácter básico es en realidad de ocho píxeles de alto

por cinco píxeles de ancho, pero la mayoría de caracteres sólo usan las siete filas

superiores. La fila inferior se utiliza generalmente para el cursor de subrayado Debido a

que cada carácter de sólo cinco píxeles 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 volátil, lo que significa que cuando la fuente de alimentación

es removida del módulo LCD, los caracteres definidos por el usuario se perderán. 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 mayoría de los módulos LCD,

fue diseñado 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

Page 14: Como Usar Lcd

P á g i n a | 14

Angel Laredo Martínez

y de salida en un circuito típico. Microcontroladores mas grandes están disponibles, y

tienen más pines E / S, pero la miniaturización es un factor clave en estos días, 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 carácter.

“Nibble” es un nombre inventado por los primeros entusiastas de la informática en los

Estados Unidos, por medio de un byte, y es uno de los términos más frívolos que ha

sobrevivido. En el momento que los procesadores de 16-bit llegaron, la informática iba

en serio, y las analogías de consumo "Engullir" y "Mascar" nunca fueron adoptados!

Cuando se utiliza el modo de 4 bits, sólo los datos de las líneas D4 a D7 se utilizan. En

la tablilla de pruebas, Se ajustan los interruptores en las otras líneas, D0 a D3, a 0 lógico,

y dejarlos allí. Es ahora de otro inminente experimento.

En el uso normal, los datos no usados I / O líneas D0 a D3 se deben dejar flotantes, o

bien unidos a Una de las dos líneas de alimentación a través de una resistencia de algún

lugar entre 4k7 [C24] y 47k [C24]. No es deseable que se conecten directamente a tierra

a menos que la línea R / W también está conectada a tierra, Previniéndolos de estar

puestos en modo de salida. De lo contrario el dispositivo podría ser erróneamente

programado para la salida de 8-bits, el cual podría estar incompatible para las líneas D0

a D3, a pesar de la limitación de corriente existe.

Tras el encendido, el módulo 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 líneas inferiores de datos, D0 a D3, sólo la mitad de los comandos

se puede aplicar.

Por suerte, o mejor dicho, por su diseño inteligente, la selección 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 envío 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 línea. el Valor binario 00101000 (28 $) hará el truco. El valor 00111000 ($ 38)

puede ser una más número familiar, pero no se puede utilizar ahora, o la pantalla se pone

de vuelta en el Modo 8-bit! También, 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 líneas de datos D7, D6, D5 y D4 para 0010 ($ 2), los cuatro

bits a izquierda del código de 8-bits de y pulse el interruptor E. Entonces ajustamos las

mismas cuatro líneas de datos para 1000 ($ 8), los cuatro bits a mano derecha del código

de 8-bits, y pulse el interruptor E de nuevo. Es mucho más 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.

Page 15: Como Usar Lcd

P á g i n a | 15

Angel Laredo Martínez

Una nota final Las hojas de datos advierten que bajo ciertas condiciones, el módulo 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 después se aplicar energía , sea enviada una secuencia de comandos

de tres bytes de valor 0011XXXX ($ 3X) al módulo. El valor $ 30 es probablemente el

más conveniente. Esto garantizara que el módulo este en el modo de 8-bits, e inicializado

correctamente. Después de esto, cambie al modo 4-bits (y de hecho todos los otros

comandos) funcionará de forma fiable.

Page 16: Como Usar Lcd

P á g i n a | 16

Angel Laredo Martínez

Una serie de switchs era todo lo que se necesito para evaluar los comandos puestos en

su forma más fundamental, en binario (o hexadecimal).

Sin embargo, en casi todos los casos en los que un LCD es usado, un micro- procesador,

o más probablemente un Microcontrolador, será necesario para controlarlo. Este es el

asunto que examinaremos ahora.

Buenos Tiempos Los requisitos de temporización del chip HD44780, el dispositivo de control utilizado en

la mayoría módulos LCD basado en caracteres, se ilustran en la Figura 6. El diagrama

proporciona la información para la lectura y escritura de ciclos, aunque algunas hojas de

datos pueden mostrarla por separado. La tabla 4 detalla los parámetros de temporización

referidos en la Figura 6.

Figura 6: HD44780 diagrama de sincronización

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 temporización?

Bueno, nosotros los seres humanos dejamos bastante tiempo entre presionar un switchs

y el siguiente, por lo que el controlador LCD puede fácilmente hacerlo por nosotros. Los

microcontroladores son más rápidos que nosotros, sin embargo, ya que pueden cambiar

una línea 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 temporización y sus cifras tabuladas simplemente nos dice qué tan rápido

puede el chip LCD responder para que podamos programar el microcontrolador como

corresponde.

Page 17: Como Usar Lcd

P á g i n a | 17

Angel Laredo Martínez

Veamos un típico microcontrolador, uno de los dispositivos PIC el cual se han vuelto tan

popular, y ver cómo podemos programarlo para controlar un LCD de los detalles de

temporización.

Primero, se debe señalar sobre las discusiones, a partir de ahora, se supone que tiene un

conocimiento rudimentario de la programación de PICs, y que tiene el software adecuado

y equipo para hacerlo. Esta no es la intención de este artículo enseñar programación de

PICs.

El microcontrolador PIC podría ser programado para comenzar por la primera

configuración RS línea del LCD a su nivel lógico correcto. Esta es la línea que determina

si el LCD debe considerar datos como instrucciones de control o la información de

caracteres. En los casos en que los datos necesitan ser leídos nuevamente desde el LCD,

el microcontrolador también puede tener el control sobre la línea R / W (Lectura /

escritura), de lo contrario, se debería conectar a tierra, como en la tablilla de pruebas.

El microcontrolador puede establecer estas dos señales 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 "Válido" o "estable"

durante un período mínimo

de tiempo antes de que el

nivel de la línea "E"

(Disponible) esta puesta a un

1 lógico. En el diagrama de la

Figura 6, este período se

muestra como "tAS" (tiempo

- Configuración de

dirección), y en la tabla esto

esta especificado como

mínimo 140ns. Puede ser más

de 140ns, pero no debe ser

menos. Tabla 4: Parámetros de sincronización HD44780.

Una vez que la línea 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). Además, las ocho líneas de datos deben ser establecidas en sus apropiados

de niveles lógicos permitidos para establecer por al menos el "TDS" (tiempo-

Configuración de datos) período de 200ns antes de llevar a Bajo la línea E de nuevo.

Tenga en cuenta que la pantalla LCD permite a las líneas de datos ser configuradas

después de la línea 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 línea E es devuelta a un nivel Bajo, también hay dos tiempos de espera que se

deben tomar en cuenta. El parámetro "tAH" (tiempo- retención de dirección) indica que

las líneas RS y R / W no deben ser alteradas durante al menos 10 ns, y "tDH '" (tiempo -

retención de datos) muestra que ninguna de las líneas de datos debe cambiar por lo menos

20ns.

Page 18: Como Usar Lcd

P á g i n a | 18

Angel Laredo Martínez

Una restricción adicional existe. La línea 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 línea E es 450ns más 500ns. Teniendo en

cuenta los tiempos de subida y caída, 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

más de un millón de comandos (o un millón de caracteres) por segundo debe ser enviados

al display.

Ocupado El diagrama de temporización no dice toda la historia, incluso. Retrasos más largos son

necesarios para permitir al LCD procesar comandos y datos. Muchos comandos bloquean

el LCD por 40µs tiempo durante el cual se dice que esta "ocupado". Los comandos Clear

Display y Cursor Home, sin embargo, pueden tomar mucho más tiempo.

Los tiempos de ejecución 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 aún no han sido

experimentado, pero la lectura del estado

de la pantalla LCD es el método utilizado

para determinar si está o no ocupado.

La implicación práctica de estos tiempos

de instrucción es sólo un caso de tener que

poner un retraso entre una instrucción y el

siguiente. Los primeros dos comandos,

Clear Display y Cursor Home, tienen

tiempos variables de ejecución que

dependen de varios factores. No se habla

mucho de esta variación en las hojas de datos, pero sí implica regresar el cursor a la

dirección 10000000 ($ 80), sin desplazar el display y, en el caso de los Clear Display,

poniendo un carácter de espacio dentro de cada dirección de la pantalla.

Hay otra situación importante cuando el LCD estará ocupado. Esto es inmediatamente

después de que ha sido encendido. Se tarda unos 10 a 15 milisegundos para que la

secuencia de inicialización 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 envíen y podría llegar estar

bloqueado en una condición no corregible, que requiere que la energía 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 señales

Page 19: Como Usar Lcd

P á g i n a | 19

Angel Laredo Martínez

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 versión EPROM

del microcontrolador.

El uso de esta versión es deseable debido a que varias versiones diferentes de software

se deben programarse y borrarse durante el transcurso de la experimentación. Otras

versiones del microcontrolador no se pueden borrar tan fácilmente, 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 conexión de un microcontrolador

PIC16C84 a un módulo LCD.

La Opción de Reloj del microcontrolador (Clock Option) puede ajustarse por un RC

(resistencia / capacitor) o cualquiera de las opciones XT (cristal), pero la opción de RC

es más barato, y la precisión de temporización 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 darán una frecuencia de reloj de 2 MHz

aproximadamente. Por algunos momentos los valores más bajos de la resistencia o

capacitancia (para mayor velocidad) debe ser evitarse, para asegurar que los retrasos del

software sean suficientemente largos.

Page 20: Como Usar Lcd

P á g i n a | 20

Angel Laredo Martínez

La Tablilla de pruebas muestra la posición 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 fácilmente

traducido o adaptado a MPASM o TASM.

Page 21: Como Usar Lcd

P á g i n a | 21

Angel Laredo Martínez

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

códigos 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 más

complejo.

Precisamente lo que todas estas instrucciones hacen es importante y se describirán a

detalle.

Page 22: Como Usar Lcd

P á g i n a | 22

Angel Laredo Martínez

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

automáticamente como entradas, por lo que no se daña 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 más 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 más, 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

números 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.

Regíster $0D se utiliza como un contador que se establece inicialmente en cero por la

instrucción "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 instrucción para

decirle al ensamblador que detenga el montaje.

Una Buna lectura

El programa en el Listing 1 sólo escribe en la pantalla. En muchas aplicaciones esto es

muy satisfactorio, y tiene la ventaja de permitir que la línea 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 información de estado del LCD,

pero, por supuesto, la línea 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 temporización, como se describe la

secuencia de eventos.

Líneas RS y R / W se debe configurar en primer lugar, con R / W se establece en un 1

lógico en esta ocasión. Si RS es de puesto en Alto, se devuelven los datos indicando al

Page 23: Como Usar Lcd

P á g i n a | 23

Angel Laredo Martínez

carácter que está en la dirección actual del cursor. Si RS es puesto en Bajo, un byte de

estado se envía de vuelta, conteniendo dos elementos separados, los bits 0 a 6 mantienen

la dirección actual del cursor, y el bit 7 que contiene el Busy flag (señal indicador de

Ocupado).

Los dos formatos de instrucción de Read se muestran en la Tabla 6. Después de la

necesaria “tiempo-configuración de la dirección "(tAS), la línea E se puede poner en Alto.

Este es el punto en el que el ciclo de lectura difiere del ciclo de escritura, como las líneas

de datos del LCD cambiará para ser salidas.

Tabla 6: HD44780 Lectura de Instrucciones.

Es evidente que, antes de que el microcontrolador inicie este ciclo de lectura, debe

cambiar sus líneas de datos a entradas, de otro modo las salidas estarían conectadas a las

salidas y sobrevendría una lucha (conocido como bus de contención). En cualquier caso,

si las líneas del microcontrolador datos no fueron salidas en este momento, no sería capaz

de leer los datos.

Se toma un tiempo mientras el LCD cambia sus líneas 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 través de sus entradas, y tan pronto

como oportunamente lo tenga la línea E puede volver a bajar.

La mayor parte de la información 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

diseños se puede conseguir sin tener la línea 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 información en la pantalla en tan poco tiempo, checando el indicador de

Ocupado es la forma más 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

comprobación 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

instrucción "shortdelay" en el Listing 1 se sustituye por busywait", incluyendo las tres

Dato de carácter en la dirección actual del cursor

Dirección actual del cursor

Indicador de Ocupado

Page 24: Como Usar Lcd

P á g i n a | 24

Angel Laredo Martínez

líneas denominada "longdelay." El programa pondrá el mensaje en la pantalla mucho más

rápidamente que antes, como los retrasos innecesarios son eliminados.

Las dos primeras líneas de "busywait" cambiar la asignación del puerto B, de modo que

toda su I / O líneas se convierten en salidas. Después de esto, las líneas RS y R / W se

configuran listos para El estado de lectura. Para retardos cortos, la instrucción "nop" (no

operation “sin operación”) puede ser utilizada, es ideal para los pequeños retardos de

tiempo requerido por la interfaz del LCD.

La línea E es entonces puesta en Alto, después de un retardo corto para permitir el tiempo

de acceso de datos (tDA), el estado del indicador de Ocupado es leído dentro del

microcontrolador. Una instrucción “rótate left" (rlf) es utilizado aquí, para transferir el

indicador Ocupado en línea de datos D7, dentro del indicador de Acarreo (Carry flag) del

PIC, en los que puede ser almacenado antes de la prueba.

La línea E es llevado a Bajo, después de lo cual se realiza una indicador de Acarreo

(Carry flag) a través de la instrucción "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

código más, 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 técnica debe entenderse razonablemente bien.

Page 25: Como Usar Lcd

P á g i n a | 25

Angel Laredo Martínez

Sin embargo, varios cambios necesitan ser realizados, tanto para el circuito y el

programa, cuyos detalles serán dejados para ti para una completa implementación, pero

los principios involucrados son los siguientes:

Listado 3 muestra algunos de los cambios. Las líneas de datos D0 a D3 en el LCD debe

ser desconectado del microcontrolador (véase la Parte 1cómo tratar con estas líneas sin

usar del LCD). Las líneas de datos D0 a D3 en el microcontrolador están ahora libres

para ser utilizado por otros propósitos, 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 código binario 00100000 (hexadecimal $ 20) se envía

mientras la pantalla LCD sigue en el modo 8-bit, el modo que adopta automáticamente

cuando se enciende la primera vez. Este primer código es seguido por 00101000 (28 $)

enviará como dos nibbles separados, es decir, 0010 y 1000, ambos enviados a las líneas

D4 a D7. (No se olvide que las líneas 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 añadida, entre

"functionset" y "Displayon," para enviar $ 2, y luego $ 8. En la nueva rutina, la división

de un byte comando en dos nibbles se logra mediante el uso la instrucción del PIC

"swapf", que intercambia las mitades superior e inferior de cualquier registro.