2.2. Wyświetlacz alfanumeryczny LCD
Wykorzystywany w zestawie ZL9ARM wyświetlacz LCD (rysunek 5) jest wyposażony w sterownik HD44780, który komunikuje się z otoczeniem za pomocą równoległej magistrali danych (8- lub 4-bitowej), wyposażonej w trzy sygnały sterujące RS (Register Select), R/W (Read/Write) oraz E (Enable)
Rys. 5. Wykorzystywany alfanumeryczny wyświetlacz LCD 2x16 znaków.
Układ HD44780 jest od wielu lat jednym z najpopularniejszych sterowników wyświetlaczy alfanumerycznych. Interfejs i funkcjonalność tego układu stanowią nieformalny standard w dziedzinie alfanumerycznych modułów wyświetlających. Sterownik HD44780 ma następujące właściwości:
obsługa matryc znakowych LCD o rozmiarach 5x8 i 5x10 punktów 4-bitowy lub 8-bitowy interfejs równoległy typu 6800 pamięć RAM przechowująca do 80 znaków pamięć ROM przechowująca 240 szablonów znakowych
pamięć RAM przechowująca do 8 szablonów znakowych zdefiniowanych przez użytkownika
funkcja: kursora, czyszczenia ekranu i przesuwu okna
Sterownik wyposażono w cztery rejestry umożliwiające wymianę danych z otoczeniem: DataWR - rejestr przeznaczony do zapisu danych do sterownika DataRD - rejestr przeznaczony do odczytu danych ze sterownika ControlRD - rejestr sterujący i statusu wyświetlacza (do odczytu, status-control) ControlWR - rejestr sterujący (do zapisu, control)
O tym, do którego z wymienionych rejestrów nastąpi zapis lub z którego nastąpi odczyt decyduje kombinacja stanów na liniach RS i R/W a zapis i odczyt danych jest synchronizowany za pomocą linii E.
Sterowniki HD44780 są wyposażone w dwa rodzaje pamięci: DD (Display Data) i CG (Character Generator), do których użytkownik ma dostęp poprzez rejestry DataRD, DataWR, ControlRD i ControlWR. Pamięć CG składa się z pamięci CG-ROM zawierającej przygotowane przez producenta kody znaków oraz CG-RAM przeznaczonej na kody znaków definiowane przez użytkownika. Sposób adresowania znaków wyświetlanych przez kontroler HD44780 jest przedstawiony na rysunku 2. W pamięci CG-RAM pomiędzy adresami 0x00 i 0xlF znajduje się miejsce na umieszczenie 8 znaków zdefiniowanych przez użytkownika. Kształty tych znaków są definiowane jako matryce o wymiarach 5x8 punktów. Jeżeli wpisane
9