Controlador LCD Hitachi HD44780

Controlador LCD alfanumérico

Controlador LCD HD44780 y controladores HD44100 en la parte posterior de un módulo LCD 40266

El controlador LCD Hitachi HD44780 es un controlador de pantalla de cristal líquido (LCD) de matriz de puntos alfanumérico 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 40 caracteres. Mediante un controlador de extensión, el dispositivo puede mostrar hasta 80 caracteres. [1] Numerosas pantallas de terceros son compatibles con su interfaz de 16 pines y su conjunto de instrucciones, lo que lo convierte en un controlador de LCD popular y económico. [2]

Arquitectura

Diagrama de bloques de un módulo LCD basado en HD44780U

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 formatos de 16×2, 20×2 y 20×4. Se fabrican tamaños personalizados más grandes con 32, 40 y 80 caracteres y con 1, 2, 4 u 8 líneas. La configuración más grande que se fabrica con más frecuencia es la 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 retroiluminación , que puede ser LED , fluorescente o electroluminiscente . El voltaje de funcionamiento nominal para la retroiluminación LED es de 5 V con brillo máximo, con atenuación a voltajes más bajos según los detalles, como el color del LED. Las retroiluminaciones que no son LED suelen requerir voltajes más altos.

Interfaz

Placa de desarrollo del proyecto del microcontrolador Freescale HCS12 /9S12 Dragon12-P que utiliza una pantalla LC basada en HD44780

Las pantallas LCD de caracteres utilizan una interfaz de 16 contactos, que normalmente utilizan pines o conexiones en el borde de la tarjeta con centros de 0,1 pulgadas (2,54 mm). Las que no tienen retroiluminación 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, utilizando solo dos pines de dirección, lo que permitió mostrar texto en la pantalla LCD utilizando comandos MOVX simples, lo que ofrece una opción rentable para agregar una pantalla de texto a los dispositivos. [ cita requerida ]

El pinout predominante es el siguiente (existen excepciones):

Alfiler#NombreDirecciónDescripción
1VssFuerzaTierra de la fuente de alimentación
2VccFuerzaFuente de alimentación (+3,3 o +5 V según módulo)
3VeeAporteAjuste de contraste (entrada analógica)
4R.R.AporteSeleccionar registro (0 = comando, 1 = datos)
5R/ EAporteLectura/ Escritura (0 = escribir en el módulo de visualización, 1 = leer desde el módulo de visualización)
6miAporteHabilitar reloj (activado por flanco descendente)
7DB0E/SBit de datos 0 (no se utiliza en operaciones de 4 bits)
8DB1E/SBit de datos 1 (no se utiliza en operaciones de 4 bits)
9DB2E/SBit de datos 2 (no se utiliza en operaciones de 4 bits)
10DB3E/SBit de datos 3 (no se utiliza en operaciones de 4 bits)
11DB4E/SBit de datos 4
12DB5E/SBit de datos 5
13DB6E/SBit de datos 6
14DB7E/SBit de datos 7
15LED+FuerzaÁnodo de retroiluminación (+) (si corresponde)
16LED−FuerzaCátodo de retroiluminación (−) (si corresponde)

Notas:

  • Vee (también V0): se trata de una entrada analógica, normalmente conectada a un potenciómetro. El usuario debe poder controlar este voltaje independientemente de todos los demás ajustes, con el fin de 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. Si el ajuste es incorrecto, la pantalla parecerá funcionar mal.
  • R/ W : En la mayoría de las aplicaciones, no es necesario leer desde el HD44780. En ese caso, este pin se puede conectar permanentemente a tierra y no es necesario asignar pines del procesador para controlarlo.

Selección de modo

Una pantalla de 20×4 caracteres

En el modo de 8 bits, todas las transferencias se realizan en un ciclo del pin de habilitación (E) con los 8 bits en el bus de datos y los pines RS y R/ W 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 R/ W 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.

Para seleccionar el modo de 4 u 8 bits es necesario seleccionar cuidadosamente los comandos. Hay dos consideraciones principales. En primer lugar, con D3–D0 desconectados, estas líneas siempre aparecerán altas (binario 1111) para el HD44780, ya que hay MOSFET pull-up internos . [3] En segundo lugar, la pantalla LCD puede estar inicialmente en uno de tres estados:

  • Estado 1: modo de 8 bits
  • Estado 2: modo de 4 bits, esperando el primer conjunto de 4 bits
  • Estado 3: modo de 4 bits, esperando el segundo conjunto de 4 bits

El estado 3 puede ocurrir, por ejemplo, si se canceló un control anterior después de enviar solo los primeros 4 bits de un comando mientras el HD44780 estaba en modo de 4 bits.

El siguiente algoritmo garantiza 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 = binario 0011, los cuatro bits inferiores son "no importa", 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 esté en una configuración de tamaño conocido.

Comenzando en el estado 1 (configuración de 8 bits):

  • Envía el comando de configuración de función. Se ejecutará el comando y se configurará el modo de 8 bits.
  • Envía el comando de configuración de función. Se ejecutará el comando y se configurará el modo de 8 bits.
  • Envía el comando de configuración de función. Se ejecutará el comando y se configurará el modo de 8 bits.

Comenzando en el estado 2 (configuración de 4 bits, esperando la primera transferencia de 4 bits):

  • Envía el comando de configuración de funciones. Se reciben los primeros 4 bits.
  • Enviar comando de configuración de función. Últimos 4 bits, comando aceptado, configuración de modo de 8 bits.
  • Envía el comando de configuración de función. Se ejecutará el comando y se configurará 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 configuración de función. Últimos 4 bits, comando desconocido ejecutado.
  • Envía el comando de configuración de funciones. En el modo de 8 bits, se ejecutará el comando; de lo contrario, se recibirán 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; establece el modo de 8 bits.

En los tres casos iniciales, la interfaz de bus está ahora en modo de 8 bits, 1 línea, 5×8 caracteres. Si se desea una configuración diferente en modo de 8 bits, se debe enviar un comando de configuración de función de bus de 8 bits para configurar todos los parámetros. Si se desea el modo de 4 bits, se debe enviar el binario 0010 en D7–D4 con un solo pulso de habilitación. Ahora el controlador estará en modo de 4 bits y una secuencia completa de comandos de configuración de función de bus de 4 bits (dos habilitaciones con los bits de comando 7–4 y 3–0 en ciclos subsiguientes) completará la configuración del registro de configuración de función.

Conjunto de instrucciones

El conjunto de instrucciones HD44780 se muestra a continuación: [4]

Conjunto de instrucciones basado en HD44780U
InstrucciónCódigoDescripciónTiempo de ejecución
(máximo)
(cuando f cp = 270 kHz)
R.R.R/WB7B6B5B4B3B2B1B0
Pantalla clara0000000001Borra la pantalla y devuelve el cursor a la posición inicial (dirección 0).1,52 ms
Cursor a la página de inicio000000001*Devuelve el cursor a la posición inicial. También devuelve la pantalla desplazada a la posición original. El contenido de DDRAM permanece sin cambios.1,52 ms
Modo de entrada establecido00000001IDENTIFICACIÓNSEstablece la dirección de movimiento del cursor (I/D); especifica que se debe desplazar la pantalla (S). Estas operaciones se realizan durante la lectura/escritura de datos.37 microsegundos
Control de encendido y apagado de la pantalla0000001DdoBEstablece el encendido/apagado de toda la pantalla (D), el encendido/apagado del cursor (C) y el parpadeo del carácter de posición del cursor (B).37 microsegundos
Cambio de cursor/pantalla000001CAROLINA DEL SURDerecha/Izquierda**Establece el movimiento del cursor o el desplazamiento de la pantalla (S/C) y la dirección de desplazamiento (R/L). El contenido de DDRAM permanece sin cambios.37 microsegundos
Conjunto de funciones00001DESCARGARnorteF**Establece la longitud de los datos de la interfaz (DL), el número de líneas de visualización (N) y la fuente de los caracteres (F).37 microsegundos
Establecer la dirección CGRAM0001Dirección CGRAMEstablece la dirección CGRAM. Los datos CGRAM se envían y reciben después de esta configuración.37 microsegundos
Establecer la dirección DDRAM001Dirección DDRAMEstablece la dirección DDRAM. Los datos DDRAM se envían y reciben después de esta configuración.37 microsegundos
Leer la bandera de ocupado y el contador de direcciones01BFDirección CGRAM/DDRAMLee 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 (dependiendo de la instrucción anterior).0 microsegundos
Escribir CGRAM o DDRAM10Escribir datosEscribir datos en CGRAM o DDRAM.37 microsegundos
Leer desde CG/DDRAM11Leer datosLeer datos de CGRAM o DDRAM.37 microsegundos
Nombres de bits de instrucción —

I/D – 0 = decrementar posición del cursor, 1 = incrementar posición del cursor; S – 0 = sin cambio de pantalla, 1 = cambio de pantalla; D – 0 = pantalla apagada, 1 = pantalla encendida; C – 0 = cursor apagado, 1 = cursor encendido; B – 0 = parpadeo del cursor apagado, 1 = parpadeo del cursor encendido; S/C – 0 = mover cursor, 1 = cambiar pantalla; R/L – 0 = cambiar a la izquierda, 1 = cambiar a la derecha; DL – 0 = interfaz de 4 bits, 1 = interfaz de 8 bits; N – 0 = 1/8 o 1/11 de trabajo (1 línea), 1 = 1/16 de trabajo (2 líneas); F – 0 = 5×8 puntos, 1 = 5×10 puntos; BF – 0 = puede aceptar instrucción, 1 = operación interna en progreso.

DDRAM es la RAM de datos de visualización y CGRAM es la RAM de generación de caracteres. [5] La DDRAM tiene 80 bytes (40 por fila) direccionados con un espacio entre las dos filas. La primera fila contiene las direcciones de 0 a 39 decimales o de 0 a 27 hexadecimales. La segunda fila contiene las direcciones de 64 a 103 decimales o de 40 a 67 hexadecimales.

La 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 hexadecimal. Cada campo consta de 5 bits que se asignan a una fila de píxeles de cada carácter. Cada 8 campos de la CGRAM se utilizan para cada carácter. Los 3 bits inferiores de los códigos de caracteres de 0 a 7 y de 8 a 15 seleccionan los grupos de 8 campos en la memoria CGRAM.

La lectura y escritura en la memoria DDRAM se realiza configurando la entrada RS en alto durante las transferencias de bus. La memoria DDRAM también se debe seleccionar mediante el comando Set DDRAM address (Establecer dirección DDRAM), que selecciona la memoria DDRAM a la que se accederá y también configura la dirección de inicio para el acceso a la memoria DDRAM.

De la misma manera, la lectura y escritura en la CGRAM se realiza configurando la entrada RS en alto durante las transferencias de bus. La CGRAM también debe seleccionarse mediante el comando Establecer dirección de CGRAM, que selecciona la CGRAM para el acceso y también configura la dirección de inicio para el acceso a la CGRAM.

Los tiempos de ejecución que se indican 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 V CC = 5 V, el oscilador puede variar entre 190 kHz y 350 kHz, lo que da como resultado tiempos de espera de 52,6 μs y 28,6 μs en lugar de 37 μs. Si una pantalla con la resistencia recomendada de 91 kΩ se alimenta con 3,3 voltios, el oscilador funcionará mucho más lento. Si no se utiliza el bit de actividad y las instrucciones se sincronizan mediante el circuito externo, esto debe tenerse en cuenta.

Fuente

Retroiluminación ámbar en una pantalla HD44780 de 8×2 caracteres

La ROM del generador de caracteres HD44780 original contiene 208 caracteres en una matriz de puntos de 5×8 y 32 caracteres en una matriz de puntos de 5×10. Hay chips compatibles más recientes disponibles con mayor resolución, compatibles con pantallas con más píxeles. [ cita requerida ]

Se han desarrollado dos versiones de la ROM: [5]

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 en el dispositivo un número limitado de caracteres personalizados 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 la memoria volátil .

Véase también

  • LCD Smartie : controlador de pantalla de código abierto para Microsoft Windows
  • JIS X 0201 : codificación de caracteres de 7 y 8 bits estándar japonesa

Referencias

  1. ^ Sánchez y Cantón 2007, p. 275
  2. ^ "Uso del Hitachi HD44780 con Arduino". Best-Microcontroller-Projects . Consultado el 2 de enero de 2023 .
  3. ^ "HD44780U (LCD-II)" (PDF) . Hitachi. pág. 54 . Consultado el 5 de enero de 2023 .
  4. ^ Huang 2009, pág. 326
  5. ^ ab "Hoja de datos del HD44780U" (PDF) . Consultado el 23 de diciembre de 2021 .

Lectura adicional

  • Huang, Han-Way (2009). HCS12/9S12: Introducción a la interconexión de software y hardware (2.ª ed.). Delmar Cengage Learning. ISBN 978-1-4354-2742-6.
  • Sánchez, Julio; Cantón, María P. (2007). Programación de microcontroladores: el PIC de Microchip . CRC Press. ISBN 978-0-8493-7189-9.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Controlador_LCD_Hitachi_HD44780&oldid=1223710819"