Alfanumeryczny wyświetlacz LCD ze sterownikiem HD44780 -
podstawy
Obecnie, ze względu na swoją niską cenę,
alfanumeryczne wyświetlacze LCD są bardzo często stosowane w
układach zbudowanych w oparciu o mikrokontrolery. Wygląd typowego
modułu wyświetlacza 2 linie po 16 znaków przedstawiają poniższe
fotografie :
Rozmieszczenie wyprowadzeń typowego modułu LCD przedstawia poniższa
fotografia :
Opis funkcji poszczególnych wyprowadzeń przedstawia
poniższa tabela :
Po podłączeniu napięcia zasilającego oraz ustawieniu na
wyprowadzeniu V0 odpowiedniego napięcia regulacji kontrastu na wyświetlaczu powinna
ukazać się jedna linia wypełniona czarnymi prostokątami :
Świadczy to o tym, że kontroler wyświetlacza nie został poprawnie
zainicjowany oraz o tym, że napięcie regulacji kontrastu jest
ustawione w przybliżeniu na właściwą wartość. Do regulacji napięcia
kontrastu najlepiej wykorzystać potencjometr montażowy (widoczny na
zdjęciu pod wyświetlaczem). Większość wyświetlaczy
do poprawnego wyświetlenia znaków wymaga napięcia kontrastu
zbliżonego do 0V. Mogą się jednak zdarzyć wyświetlacze wymagające
ujemnego napięcia kontrastu.
Sterowanie wyświetlaczem alfanumerycznym ze sterownikiem HD44780
odbywa się na zasadzie wysyłania odpowiednich komend oraz zapisu
danych do wewnętrznej pamięci wyświetlacza. Komendy i dane są
rozróżniane na podstawie stanu linii RS (0 - komendy; 1 - dane).
Kierunek transmisji jest określany stanem linii R/W. Sterownik
HD44780 posiada dwa rodzaje pamięci : pamięć generatora znaków (CGROM)
oraz pamięć danych (DD RAM). Pamięć generatora znaków zawiera
graficzną postać 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 zdefiniować własne znaki (np. polskie
znaki diakrytyczne). Pamięć danych DD RAM ma pojemność 80 bajtów
(jeden sterownik HD4478 może obsłużyć maksymalnie 80 znaków, czyli
np. 2 linie po 40 znaków, lub 4 linie po 20 znaków).
Zestawienie rozkazów kontrolera HD44780 przedstawia poniższa tabela.
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 pozycji w lewym górnym 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 znaku w
pierwszej linii; maksymalny czas trwania instrukcji 1,64ms
Entry mode set - (RS = 0; R/W = 0, dane = 000001IS) - określenie
trybu pracy kursora/okna wyświetlacza :
- dla S = 1 po zapisaniu znaku do wyświetlacza kursor nie zmienia
położenia, natomiast przesuwa się cała zawartość wyświetlacza
- dla S = 0 po zapisaniu znaku do wyświetlacza kursor zmienia położenie,
a przesuwanie okna jest wyłączone
- dla I = 1 kursor lub okno wyświetlacza przesuwa się w prawo
(inkrementacja adresu znaku)
- dla I = 0 kursor lub okno wyświetlacza przesuwa się w lewo
(dekrementacja adresu znaku)
Maksymalny czas trwania instrukcji - 40us
Display ON/OFF - (RS = 0, R/W = 0, dane = 00001DCB)
- dla D = 1 - włączenie wyświetlacza
- dla D = 0 - wyłączenie wyświetlacza
- dla C = 1 - włączenie kursora
- dla C = 0 - wyłączenie kursora
- dla B = 1 - włączenie migania kursora
- dla B = 0 - wyłączenie migania kursora
Display cursor shift - (RS = 0, R/W = 0, dane = 0001SRxx)
- dla S = 1 - przesuwana jest zawartość okna
- dla S = 0 - przesuwany jest kursor
- dla R = 1 - kierunek przesuwu w prawo
- dla R = 0 - kierunek przesuwu w lewo
Function set (RS= 0, R/W = 0, dane = 001DNFxx)
- dla D = 1 - interfejs 8-bitowy
- dla D = 0 - interfejs 4-bitowy
- dla N = 1 - wyświetlacz dwuwierszowy
- dla N = 0 - wyświetlacz jednowierszowy
- dla F = 1 - matryca znaków 5*10 punktów
- dla F = 0 - matryca znaków 5*7punktów
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 się 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 adres pamięci.
Data read - (RS = 1, R/W= 1, dane = odczytywany bajt danych) -
odczyt danych z pamięci wyświetlacza, bądź pamięci CG RAM (jeśli
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)
|