Comandos
de control
Los comandos se envían a través del bus de datos.
Para que la pantalla los reconozca hay que poner la señal RS a nivel bajo.
Borrar pantalla: 0 0 0 0 0 0 0 1
Limpia la pantalla y pone el cursor en la primera
posición.
Tiempo de ejecución 1.64ms
Cursor al principio: 0 0 0 0 0 0 1 x
Coloca el cursor en la primera posición.
Tiempo de ejecución 1.64 ms
Modo de entrada: 0 0 0 0 0 1 i d
* i=1 la posición de la DDRAM se incrementa automáticamente
tras cada lectura o escritura a la misma, mientras que si i=0 se configura
para decrementar el puntero de DDRAM.
* d=1 la pantalla se desplaza en el sentido indicado
por el bit mencionado antes (i) cuando el cursor llega al filo de la pantalla.
Encendido-apagado: 0 0 0 0 1 p c i
Selecciona el encendido de la pantalla (p=1), la
visibilidad del cursor (c=1) y la intermitencia del mismo (i=1 parpadea).
Cursor/Desplazamiento: 0 0 0 1 p d x x
Selecciona si se desplaza toda la pantalla (p=1)
o sólo el cursor (p=0) sin alterar el contenido de la DDRAM; el bit d
selecciona el sentido de desplazamiento; será hacia la derecha si d=1.
Función: 0 0 1 l c f x x x
Selecciona el modo de transmisión, ciclo y fuente
de carácter.
* Si l=1 la comunicación es con 8 bits, mientras
que en el caso contrario solo se usan líneas d4-d7 del bus, mandando la
parte alta y luego, la baja del dato.
* El bit c indica el número de líneas; para c=0
se usará una sóla línea, mientras que si c=0 usaremos 2.
* El bit f establece el tipo de caracteres que
usaremos si f=1 los caracteres serán de 5 x 11 puntos, mientras que si
f=0 configuramos el controlador para usar caracteres de 5 x 7 puntos.
Dirección en la DDRAM: 1 d d d d d d d
Esta instrucción se utiliza para modificar el puntero
a la DDRAM.
Si la dirección es la 00h escribiremos en la primera
línea, y la segunda línea empieza en 40h. (Ojo : el display de 1x16 se
divide en dos mitades: la izquierda empieza en 00h y la derecha en 40h)
Inicialización
Los controladores de Hitachi se inicializarán de
manera automática si durante el encendido conseguimos que la tensión de
alimentación suba desde 0'5V hasta 4'5V en un tiempo comprendido entra
0'1 y 10ms. Puesto que ésto puede ser difícil de conseguir, podemos recurrir
a la inicialización por software. Consiste en enviar una serie de comandos
de los descritos anteriormente y esperar un determinado tiempo.
En la inicialización se configura también si la
transmisión se hace con 4 o con 8 hilos.
La inicialización para configurar el modo de 4
bits (el que utilizamos) es así:
- Aplicar VCC
- Esperar 15 ms
- Modo de 8 bits
- Esperar 4'1 ms
- Modo de 8 bits
- Esperar 100 ms
- Modo de 8 bits
- Esperar 4'1ms
- Modo 4 bits, una o dos líneas y la fuente que
se desee
- Esperar 40 ms-Apagar pantalla, quitar cursor
- Esperar 40 ms
- Encender pantalla y configurar cursor
- Esperar 40 ms
- Configurar desplazamiento de pantalla/cursor
- Esperar 40 ms.
En este momento, la inicialización ha sido completa.
Notas importantes:
Los tiempos de espera son los mínimos; puede esperarse
más. Esto es válido si sólo tenemos retardos de ms.
Fijémonos en que la configuración para 8 bits no
usa las líneas 0-3, y por eso sirve también con 4 hilos.
Cuando hay que mandar los comandos en 4 bits se manda primero la parte
alta y luego la baja
Programa
de ejemplo
Como complemento a este pequeño tutorial se acompaña
un programa que efectúa la programación del controlador por medio del
puerto paralelo de un PC compatible. El programa está escrito en C y funciona
tanto con Turbo C++ de Borland como con DJGPP (el compilador GNU). Las
conexiones pertinentes se muestran dentro del fichero lcd.c.
LCD.ZIP (fichero comprimido
de 1K)