|
|
mikrokontrolery.net |
||||||||||||||||||
|
Alfanumeryczne wyświetlacze LCD ze sterownikiem HD44780 Obecnie ze względu na swoją niską cenę, alfanumeryczne wyświetlacze LCD są bardzo często stosowane w układach opartych na mikrokontrolerach. Chciałbym przedstawić tutaj sposób sterowania takim wyświetlaczem. Sterowanie wyświetlaczem alfanumerycznym wyposażonym we sterownik HD44780 odbywa się na zasadzie wysyłania odpowiednich komend oraz zapisu danych do wewnętrzenj pamięci wyświetlacza. Komendy i dane są rozróżniane na podstawie stamu linii RS (0 - komendy; 1 - dane). Kierunek transmisji jest okreslany stanem linii R/W. Sterownik HD44780 posiada dwa rodzaje pamięci : pamięć generatora znaków (CGROM) oraz pamięc danych (DD RAM). Pamięć generatora znaków zawiera graficzną postac znaków wyświetlanych na wyświetlaczu (można porównać do czcionki). Oprócz znaków zdefiniowanych na stałe przez producenta sterownika do dyspozycji użytkownika pozostaje 8-znakowa pamięć RAM, w której można zdefiniowac własne znaki (np. polskie znaki diakrytyczne). Pamięc danych DD RAM ma pojemność 80 bajtów (jeden sterownik HD4478 może obłużyć maksymalnie 80 znaków, czyli np. 2 linie po 40 znaków, lub 4 linie po 20 znaków). W przypadku gdy wyswietlacz posiada mniej znaków niż oferuje sterownik, to te bajty można wykorzystać jako pamięć RAM ogólnego przeznaczenia. Instrukcje sterujące wyświetlaczem
Display clear - (RS = 0, R/W = 0, dane = 00000001) -instrukcja ta powoduje wyczyszczenie wyświetlacza poprzez wypełnienie go spacjami, ustawienie trybu zapisu danych od pozucji w lesym górnum rogu wyświetlacza oraz wyłączenie trybu przesuwania okna; maksymalny czas trwania instrukcji - 1,64ms Display/cursor home - (RS - 0, R/W = 0, dane = 0000001x) - instrukcja powoduje ustawienie kursora na pozycji pierwszego zanku w pierwszej linii; maksymalny czas trwania instrukcji 1,64ms Entry mode set - (RS = 0; R/W = 0, dane = 000001IS) - okreslenie trybu
pracy kursora/okna wyświetlacza : Display ON/OFF - (RS = 0, R/W = 0, dane 0001DCB) Display kursor shift - (RS = 0, R/W = 0, dane = 0001SRxx) Function set (RS= 0, , R/W = 0, dane = 001DNFxx) CG RAM set - (RS= 0, RW = 0, dane = 01AAALLL) - ustawia adres pamięci generatora znaków. AAA - 3-bitowy adres znaku, LLL - 3-bitowy numer linii składającej sie na graficzne odwzorowanie znaku. DD RAM set - (RS = 0, R/W = 0, dane = 1AAAAAAA) - ustawia adres pamięci wyświetlacza, pod który nastąpi zapis (bądź odczyt) danych operacją Data write lub Data read. Busy flag read - (RS = 0, R/W = 1, dane = BAAAAAAA) - odczyt flagi zajętości i adresu pamięci wyświetlacza. B - flaga zajętości wyświetlacza, AAAAAAA - 7-bitowy adrtes pamięci DD RAM. Data read - (RS = 1, R/W= 1, dane = odczytywany bajt danych) - odczyt danych z pamięci wyświetlacza, bądź pamieci CG RAM (jesli poprzednio wydano komendę CG RAM set) Data write - (RS = 1, R/W = 0, dane = zapisywany bajt danych) - zapis
danych do pamięci wyświetlacza, bądź pamięci CG RAM (jeśli poprzednio wydano
komendę CG RAM set) |
||||||||||||||||||
|
|
|||||||||||||||||||
|
|
|||||||||||||||||||
|
|
|||||||||||||||||||
|
(c) 2004-2008 Radosław Kwiecień |