Para poder usar un display LCD es necesario enviar comandos y datos al LCD, en este artículo se explican con detalle todos los comandos del controlador Hitachi HD44780 y compatibles.
El controlador del display no ejecuta inmediatamente los comandos, necesita un tiempo antes de poder ejecutar el siguiente comando. Existen dos formas para saber cuando se puede enviar el siguiente comando, la mas profesional consiste en leer el estado del bit BUSY, otra forma mas sencilla es esperar un tiempo entre cada comando, este tiempo tiene que ser lo suficientemente grande como para poder garantizar que se ha ejecutado el último comando. En la tabla siguiente se muestran los tiempos necesario para ejecutar cada comando, estos tiempos dependen de la frecuencia de trabajo del controlador.
Comando | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | HEX |
Descripción |
Tiempo ejecución (270 khz) |
Borrar pantalla |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
01 |
Borra la pantalla y pone el cursor en la posición 1 de la pantalla |
1,52ms |
Ir a Inicio |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
x |
02 |
Mueve el cursor y el display a la posición inicial |
1,52ms |
Modo |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I/D |
S |
04-07 |
Dirección desplazamiento del cursor y desplazamiento de la pantalla. |
37us |
Cursor y display on-off |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
08-0F |
Activa o desactiva el cursor, la pantalla y el parpadeo. |
37us |
Desplazar cursor o pantalla |
0 |
0 |
0 |
0 |
0 |
1 |
S/C |
R/L |
x |
x |
10-1F |
Desplazamiento del cursor o de la pantalla y sentido del desplazamiento. |
37us |
Configuración |
0 |
0 |
0 |
0 |
1 |
DL |
N |
D |
x |
x |
20-3F |
Modo 8bits o 4 bits, número de líneas del display y tamaño de la fuente 5x7 o 5x10. |
37us |
Dirección CGRAM |
0 |
0 |
0 |
1 |
CGRAM |
40-7F |
Establecer dirección memoria CGRAM |
37us |
|||||
Dirección DDRAM |
0 |
0 |
1 |
DDRAM |
80-FF |
Establecer dirección memoria DDRAM |
37us |
||||||
BUSY - AC |
0 |
1 |
BF |
AC |
|
Leer flag BUSY y contendido del contador de memoria AC |
0us |
||||||
Escribir dato |
1 |
0 |
Dato a escribir |
|
Escribir dato en CGRAM o DDRAM |
37us |
|||||||
Leer dato |
1 |
1 |
Dato a leer |
Leer dato de CGRAM o DDRAM |
37us |
CODIGO |
0 |
1 |
I/D |
Decrementa la posición del cursor | Incrementa la posición del cursor |
S |
Display fijo | Desplazamiento del display |
D |
Display apagado | Display encendido |
C |
Cursor apagado | Cursor encendido |
B |
Cursor sin parpadeo | Cursor con parpadeo |
S/C |
Mueve el cursor | Desplaza el display |
R/L |
Desplazamiento a la izquierda | Desplazamiento a la derecha |
DL |
Bus de datos de 4 bits | Bus de datos de 8 bits |
N |
LCD de una línea | LCD de dos líneas |
F |
Caracteres de 5x7 puntos | Caracteres de 5x10 puntos |
BF |
Controlador libre | Controlador ocupado |