Diferencia entre revisiones de «HD44780U»
| Línea 66: | Línea 66: | ||
= Address Counter (AC) = | = Address Counter (AC) = | ||
Asigna las direciones a DDRAM y CGRAM<br/> | |||
Cuando la dirección de una instrucción se escribe en la IR, la información de la dirección se envia desde la IR a la AC<br/> | |||
La selección de cualquiera de los dos DDRAM o CGRAM también se determina al mismo tiempo por la instruccion --> La instrucción enviada a la IR a parte de ser instrucción también selecciona la DDRAM o CGRAM<br/> | |||
Después de escribir en (leer de) la DDRAM o CGRAM, el AC se incrementa automaticamente a 1 (decrementa 1) --> La AC pasa a valer la siguiente (o anterior) dirección después de ejecutar una operación de escritura (o lectura)<br/> | |||
Cuando RS = 0 y R/W = 1 el contenido de AC se envia por los pines DB0...DB6 | |||
= DDRAM y CGRAM = | = DDRAM y CGRAM = | ||
= CGROM = | = CGROM = | ||
Revisión del 23:34 9 feb 2013
Explicar enable, rs y rw
Explicar IR y DR
Explicar BF
Explicar AC
Explicar DDRAM y CGRAM
Explicar CGROM
Imagen instrucciones
Explicar instrucciones(añadiendo la instruccion se ejecuta cuando hay un flanco de bajada de enable)
Faltaria saber como se leen los datos
Pines
Pines de instrucciónes
Estos pines son los que sirven para ejecutar instrucciones. Como se ve en la tabla de inferior, dependiendo del valor de estos pines se selecionaran unas instrucciones a ejecutar u otras
RS RW Operación 0 0 Modo de instrucciones (display clear, ...) 0 1 Se lee el Busy Flag (DB 7 ) y el Address Counter(DB0 to DB6) 1 0 DR escribe en DDRAM o CGRAM 1 1 DR lee de DDRAM o CGRAM
Pin RS
El pin RS selecciona los registros (IR y DR). Cuando RS = 0 se ejecutan las instrucciones de IR, cuando RS = 1 se ejecutan las instrucciones de DR
Pin R/W
Este pin indica si la instrucción a ejecutar será de escritura, R/W = 0, o de lectura, R/W = 1
Pin Enable
Es el encargado de iniciar las instrucciones de lectura/escritura. Para cada instrucción que queramos hacer tenemos que seguir este procedimiento:
Con los pines RS/RW seleccionamos que tipo de instrucción enviaremos --> Colocamos la instrucción (o datos) a transmitir en los pines de datos --> Ponemos en HIGH el pin Enable --> Ponemos en LOW el pin Enable (en el flanco de bajada es cuando los datos se transmiten)
digitalWrite(E, LOW); delayMicroseconds(1); digitalWrite(E, HIGH); delayMicroseconds(1); digitalWrite(E, LOW); delayMicroseconds(100);
Pines de datos
Los pines de datos son los que van del DB7 al DB 0 (teniendo en cuenta que estamos utilizando una conexión de 8bit).
En estos pines es donde colocamos los datos a transmitir. Por ejemplo, si queremos transmitir la instrucción Display Clear (que es 0000001), en cada pin pondremos el valor correspondiente a la instrucción.
Registros
Instruction Register(IR)
Guarda las instrucciones (display clear, cursor shift, ...)
Guarda la información de la dirección de la DDRAM y de la CGRAM
Solo puede ser escrito desde la MPU
Data Register (DR)
Guarda temporalmente los datos que se leen/escriben en la DDRAM o la CGRAM
Los datos escritos en la DR desde la MPU son automáticamente escritos en la DDRAM o la CGRAM
Cuando la inforamción de la dirección se escribe en la IR, los datos se leen y se guardan en la DR desde la DDRAM o la CGRAM a través de una operacion interna
La transferencia de datos entre la MPU se completa cuando la MPU lee la DR
Después de la lectura, los datos de la DDRAM o CGRAM de la siguiente dirección se envian a la DR para la siguiente lectura desde la MPU
A través del pin RS se seleccionan estos dos registros
Busy Flag (BF)
Si BF vale 1, HD44780U está en modo internal operation y la siguiente instruccion no se aceptará Cuando RS = 0 y RW = 1, el BF sale por DB7. La siguiente instrucción tiene que ser escrita después de asegurarse de que BF es 0
Address Counter (AC)
Asigna las direciones a DDRAM y CGRAM
Cuando la dirección de una instrucción se escribe en la IR, la información de la dirección se envia desde la IR a la AC
La selección de cualquiera de los dos DDRAM o CGRAM también se determina al mismo tiempo por la instruccion --> La instrucción enviada a la IR a parte de ser instrucción también selecciona la DDRAM o CGRAM
Después de escribir en (leer de) la DDRAM o CGRAM, el AC se incrementa automaticamente a 1 (decrementa 1) --> La AC pasa a valer la siguiente (o anterior) dirección después de ejecutar una operación de escritura (o lectura)
Cuando RS = 0 y R/W = 1 el contenido de AC se envia por los pines DB0...DB6
DDRAM y CGRAM
CGROM
Instrucciones
Instrucciones referentes a IR
Clear Display
Return Home
Entry Mode Set
Display On/Off Control
Cursor or Display Shift
Function Set
Set CGRAM Address
Set DDRAM Address
Read Busy Flag and Address (instruccion de lectura)
Instrucciones referentes a DR
Write Data to CGRAM or DDRAM
Read Data from CGRAM or DDRAM (instrucción de lectura)
Documentación
- Simulador LCD.- Es una página muy interesante porque te permite simular el funcionamiento del LCD sin tener que implementarlo. Va muy bien para ver como funciona el lcd.
- Reading from HD44780-based LCDs.- Discusión de como se leen los datos
- Datasheet.- Datasheet del HD4478
- LiquidCrystal Library.- Libreria del lcd que traem implementada Arduino. A mi me ha servido de mucho mirar el código fuente para aprender el funcionamiento del lcd