El controlador LCD Hitachi HD44780 es un controlador alfanumérico de pantalla de cristal líquido (LCD) de matriz de puntos desarrollado por Hitachi en la década de 1980 . El conjunto de caracteres del controlador incluye caracteres ASCII , caracteres Kana japoneses y algunos símbolos en dos líneas de 28 caracteres. Con un controlador de extensión, el dispositivo puede mostrar hasta 80 caracteres. [1] El HD44780 es uno de los LCD de caracteres más populares jamás fabricados, con numerosas pantallas de terceros que utilizan su interfaz de 16 pines y su conjunto de instrucciones para compatibilidad.
Arquitectura
El controlador LCD Hitachi HD44780 está limitado a pantallas de texto monocromáticas y se utiliza a menudo en fotocopiadoras , máquinas de fax , impresoras láser , equipos de prueba industriales y equipos de red, como enrutadores y dispositivos de almacenamiento .
Las pantallas LCD compatibles se fabrican en varias configuraciones estándar. Los tamaños habituales son una fila de ocho caracteres (8 × 1) y los formatos 16 × 2, 20 × 2 y 20 × 4. Los tamaños personalizados más grandes se hacen con 32, 40 y 80 caracteres y con 1, 2, 4 u 8 líneas. La configuración más grande fabricada con más frecuencia es de 40 × 4 caracteres, que requiere dos controladores HD44780 direccionables individualmente con chips de expansión, ya que un solo chip HD44780 solo puede direccionar hasta 80 caracteres.
Las pantallas LCD de caracteres pueden tener una luz de fondo , que puede ser LED , fluorescente o electroluminiscente .
Las pantallas LCD de caracteres utilizan una interfaz de 16 contactos, normalmente con pines o conexiones de borde de tarjeta en centros de 0,1 pulgadas (2,54 mm). Aquellos sin luz de fondo pueden tener solo 14 pines, omitiendo los dos pines que alimentan la luz. Esta interfaz fue diseñada para conectarse fácilmente a la interfaz Intel MCS-51 XRAM, usando solo dos pines de dirección, lo que permitió mostrar texto en la pantalla LCD usando comandos MOVX simples, ofreciendo una opción rentable para agregar pantalla de texto a los dispositivos. [ cita requerida ] El pinout es el siguiente:
- Suelo
- VCC +3,3 a + 5V (típico)
- Ajuste de contraste (VO) Esta es una entrada analógica, normalmente conectada a un potenciómetro. El usuario debe poder controlar este voltaje independientemente de todos los demás ajustes, para optimizar la visibilidad de la pantalla que varía, entre otras cosas, con la temperatura y, en algunos casos, con la altura sobre el nivel del mar. Con un ajuste incorrecto, la pantalla parecerá funcionar mal.
- Registro Seleccione (RS). RS = 0: comando, RS = 1: datos
- Lectura / Escritura (R / W). R / W = 0: Escritura, R / W = 1: Lectura (En la mayoría de las aplicaciones, leer desde el HD44780 no tiene sentido. En ese caso, este pin se puede conectar permanentemente a tierra y no es necesario asignar pines io para dirigirlo. )
- Reloj (Activar). Borde descendente activado
- Bit 0 (no se utiliza en el funcionamiento de 4 bits)
- Bit 1 (no se utiliza en el funcionamiento de 4 bits)
- Bit 2 (no se utiliza en el funcionamiento de 4 bits)
- Bit 3 (no se utiliza en la operación de 4 bits)
- Poco 4
- Poco 5
- Poco 6
- Poco 7
- Ánodo de retroiluminación (+) (si corresponde)
- Cátodo de retroiluminación (-) (si corresponde)
El voltaje de funcionamiento nominal para la retroiluminación LED es de 5 V con brillo total, con atenuación a voltajes más bajos dependiendo de detalles como el color del LED. Las luces de fondo sin LED a menudo requieren voltajes más altos (IE electroluminiscente ).
Selección de modo
En el modo de 8 bits, todas las transferencias ocurren en un ciclo del pin de habilitación con los 8 bits en el bus de datos y los pines RS y RW estables. En el modo de 4 bits, los datos se transfieren como pares de " nibbles " de 4 bits en los pines de datos superiores, D7-D4 con dos pulsos de habilitación y los pines RS y RW estables. Los cuatro bits más significativos (7-4) deben escribirse primero, seguidos de los cuatro bits menos significativos (3-0). La secuencia alta / baja debe completarse cada vez o el controlador no recibirá correctamente más comandos.
La selección del modo de 4 u 8 bits requiere una selección cuidadosa de comandos. Hay dos consideraciones principales. Primero, con D3-D0 desconectado, estas líneas siempre aparecerán bajas (0b0000) para el HD44780. En segundo lugar, la pantalla LCD puede estar inicialmente en uno de tres estados:
- (Estado1) modo de 8 bits
- (State2) Modo de 4 bits, esperando el primer conjunto de 4 bits
- (State3) modo de 4 bits, esperando el segundo conjunto de 4 bits
State3 puede ocurrir, por ejemplo, si un control anterior fue abortado después de enviar solo los primeros 4 bits de un comando mientras la pantalla LCD estaba en modo de 4 bits.
El siguiente algoritmo asegura que la pantalla LCD esté en el modo deseado:
El mismo comando se envía tres veces, Conjunto de funciones con interfaz de 8 bits D7-D4 = 0b0011, los cuatro bits inferiores son indiferentes, utilizando pulsos de habilitación únicos. Si el controlador está en modo de 4 bits, los cuatro bits inferiores se ignoran, por lo que no se pueden enviar hasta que la interfaz tenga una configuración de tamaño conocido.
Comenzando en el estado 1 - configuración de 8 bits
Enviar comando de conjunto de funciones. Se ejecutará el comando, establezca el modo de 8 bits. Enviar comando de conjunto de funciones. Se ejecutará el comando, establezca el modo de 8 bits. Enviar comando de conjunto de funciones. Se ejecutará el comando, establezca el modo de 8 bits.
Comenzando en el estado 2 - configuración de 4 bits, esperando la primera transferencia de 4 bits
Enviar comando de conjunto de funciones. Se recibieron los primeros cuatro bits. Enviar comando de conjunto de funciones. Últimos cuatro bits, comando aceptado, configurar el modo de 8 bits. Enviar comando de conjunto de funciones. Se ejecutará el comando, establezca el modo de 8 bits.
Comenzando en el estado 3 - configuración de 4 bits, esperando la última transferencia de 4 bits
Enviar comando de conjunto de funciones. Últimos cuatro bits, comando desconocido ejecutado. Enviar comando de conjunto de funciones. En el modo de 8 bits se ejecutará el comando, de lo contrario los primeros 4 bits. Enviar comando de conjunto de funciones. Se ejecutará el comando de 8 bits o los últimos 4 bits del comando anterior, configure el modo de 8 bits.
En los tres casos iniciales, la interfaz del bus está ahora en modo de 8 bits, 1 línea, 5 × 8 caracteres. Si se desea una configuración diferente en el modo de 8 bits, se debe enviar un comando de conjunto de funciones de bus de 8 bits para establecer los parámetros completos. Si se desea el modo de 4 bits, se debe enviar 0b0010 en D7-D4 con un solo pulso de habilitación. Ahora el controlador estará en modo de 4 bits y una secuencia de comando de conjunto de funciones de bus de 4 bits completo (dos habilitaciones con bits de comando 7-4 y 3-0 en ciclos posteriores) completará la configuración del registro de conjunto de funciones.
Conjunto de instrucciones
El conjunto de instrucciones HD44780 se muestra a continuación: [2]
Instrucción | Código | Descripción | Tiempo de ejecución (máx.) (Cuando f cp = 270 kHz) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
RS | R / W | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | |||
Pantalla clara | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Borra la pantalla y devuelve el cursor a la posición inicial (dirección 0). | 1,52 ms |
Inicio del cursor | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | Devuelve el cursor a la posición inicial. También devuelve la pantalla que se cambia a la posición original. El contenido de DDRAM permanece sin cambios. | 1,52 ms |
Modo de entrada configurado | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | IDENTIFICACIÓN | S | Establece la dirección de movimiento del cursor (I / D); especifica cambiar la pantalla (S). Estas operaciones se realizan durante la lectura / escritura de datos. | 37 μs |
Control de encendido / apagado de la pantalla | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | Activa o desactiva todas las pantallas (D), el cursor activado / desactivado (C) y el parpadeo del carácter de posición del cursor (B). | 37 μs |
Desplazamiento de cursor / visualización | 0 | 0 | 0 | 0 | 0 | 1 | CAROLINA DEL SUR | R / L | * | * | Establece el movimiento del cursor o el cambio de visualización (S / C), la dirección de cambio (R / L). El contenido de DDRAM permanece sin cambios. | 37 μs |
Conjunto de funciones | 0 | 0 | 0 | 0 | 1 | DL | norte | F | * | * | Establece la longitud de datos de la interfaz (DL), el número de líneas de visualización (N) y la fuente de caracteres (F). | 37 μs |
Establecer dirección CGRAM | 0 | 0 | 0 | 1 | Dirección CGRAM | Establece la dirección CGRAM. Los datos CGRAM se envían y reciben después de esta configuración. | 37 μs | |||||
Establecer dirección DDRAM | 0 | 0 | 1 | Dirección DDRAM | Establece la dirección DDRAM. Los datos DDRAM se envían y reciben después de esta configuración. | 37 μs | ||||||
Leer indicador de ocupado y contador de direcciones | 0 | 1 | BF | Dirección CGRAM / DDRAM | Lee el indicador de ocupado (BF) que indica que se está realizando una operación interna y lee el contenido del contador de direcciones CGRAM o DDRAM (según la instrucción anterior). | 0 μs | ||||||
Escribe CGRAM o DDRAM | 1 | 0 | Escribir datos | Escriba datos en CGRAM o DDRAM. | 37 μs | |||||||
Leer de CG / DDRAM | 1 | 1 | Leer datos | Leer datos de CGRAM o DDRAM. | 37 μs | |||||||
Nombres de bits de instrucción - I / D - 0 = disminución de la posición del cursor, 1 = aumento de la posición del cursor; S - 0 = sin cambio de pantalla, 1 = cambio de pantalla; D - 0 = pantalla apagada, 1 = pantalla encendida; C - 0 = cursor desactivado, 1 = cursor activado; B - 0 = el cursor se apaga, 1 = el cursor se enciende; S / C - 0 = mover cursor, 1 = cambiar pantalla; R / L - 0 = desplazamiento a la izquierda, 1 = desplazamiento a la derecha; DL - 0 = interfaz de 4 bits, 1 = interfaz de 8 bits; N - 0 = 1/8 o 1/11 de derecho (1 línea), 1 = 1/16 de derecho (2 líneas); F - 0 = 5 × 8 puntos, 1 = 5 × 10 puntos; BF - 0 = puede aceptar instrucción, 1 = operación interna en curso. |
DDRAM es la RAM de datos de pantalla y CGRAM es la RAM del generador de caracteres. [3] La DDRAM tiene 80 bytes (40 por fila) direccionados con un espacio entre las dos filas. La primera fila son las direcciones 0 a 39 decimal o 0 a 27 hexadecimal. La segunda fila tiene direcciones de 64 decimales a 103 decimales o de 40 a 67 hexadecimales.
El CGRAM es una memoria de lectura / escritura que se utiliza para codificar hasta 8 caracteres en el generador de caracteres. Consta de 64 campos en las direcciones 0 a 3F. Cada campo tiene una asignación de 5 bits a una fila de píxeles de cada carácter. Cada 8 campos en el CGRAM se utilizan para cada carácter. Los 3 bits inferiores de los códigos de caracteres de 0-7 y 8-15 seleccionan los grupos de 8 campos en la memoria CGRAM.
La lectura y escritura en la DDRAM se realiza configurando la entrada RS en alto durante las transferencias de bus. La DDRAM también debe seleccionarse mediante el comando Set DDRAM address que selecciona la DDRAM para el acceso y también establece la dirección de inicio para el acceso DDRAM.
Asimismo, la lectura y escritura en el CGRAM se realiza configurando la entrada RS en alto durante las transferencias de bus. El CGRAM también debe seleccionarse mediante el comando Establecer dirección CGRAM que selecciona el CGRAM para el acceso y también establece la dirección de inicio para el acceso CGRAM.
Los tiempos de ejecución enumerados en esta tabla se basan en una frecuencia de oscilador de 270 kHz. La hoja de datos indica que para una resistencia de 91 kΩ a 5V Vcc el oscilador puede variar entre 190 kHz y 350 kHz resultando en tiempos de espera de 52,6 us y 28,6 us en lugar de 37 us. Si una pantalla con la resistencia recomendada de 91 kΩ se alimenta desde 3.3 voltios, el oscilador funcionará mucho más lento. Si no se utiliza el bit de ocupado y los circuitos externos cronometran las instrucciones, esto debe tenerse en cuenta.
Fuente
La ROM original del generador de caracteres HD44780 contiene 208 caracteres en una matriz de puntos de 5 × 8 y 32 caracteres en una matriz de puntos de 5 × 10. Los chips compatibles más recientes están disponibles con una resolución más alta, combinados con pantallas con más píxeles. [ cita requerida ]
Se han desarrollado dos versiones de la ROM: [4]
- HD44780UA00, la versión estándar ( japonesa ), que incluye caracteres katakana y algunas letras griegas y símbolos matemáticos
- HD44780UA02, una versión europea , que incluye el conjunto completo de caracteres griegos, cirílicos y de Europa occidental (con diacríticos )
El subconjunto ASCII de 7 bits para la versión japonesa no es estándar: proporciona un símbolo de Yen donde normalmente se encuentra el carácter de barra invertida , y símbolos de flecha izquierda y derecha en lugar de tilde y el carácter de borrado .
Se puede programar un número limitado de caracteres personalizados en el dispositivo en forma de mapa de bits mediante comandos especiales. Estos caracteres deben escribirse en el dispositivo cada vez que se enciende, ya que se almacenan en una memoria volátil .
Ver también
- LCD Smartie : controlador de pantalla de código abierto para Microsoft Windows
- JIS X 0201 : codificación de caracteres estándar japonesa de 7 y 8 bits
Referencias
- ^ Sánchez y Cantón 2007 , p. 275
- ^ Huang 2009 , p. 326
- ^ "Hoja de datos de HD44780U" (PDF) .
- ^ "Hoja de datos HD44780U" (PDF) .
Otras lecturas
- Huang, Han-Way (2009). El HCS12 / 9S12: Introducción a la interfaz de software y hardware (2ª ed.). Aprendizaje de Delmar Cengage. ISBN 978-1-4354-2742-6.
- Sánchez, Julio; Cantón, Maria P. (2007). Programación de microcontroladores: el Microchip PIC . Prensa CRC. ISBN 978-0-8493-7189-9.