Dodatek A Wyświetlacz LCD. Przeznaczenie i ogólna charakterystyka Wyświetlacz ciekłokrystaliczny HY-62F4 zastosowany w ćwiczeniu jest wyświetlaczem matrycowym zawierającym moduł kontrolera i układ wykonawczy wykonany w technologii LSI (HD4478), pozwalający wyświetlać znaki alfanumeryczne i symbole graficzne. Wyświetlacz może współpracować z mikrokomputerem jednoukładowym lub mikroprocesorem z szyną danych cztero- lub ośmiobitową. Wyświetlacz wyposażony jest również w wewnętrzną pamięć RAM (8 bajtów) i ROM (która zawiera matryce 5 7 punktów lub 5 punktów dekodowanych znaków)..2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych Rysunek.. przedstawia schemat blokowy układu wyświetlacza, zaś tabela. opis sygnałów wejściowych i wyjściowych. Nr styku Nazwa Tabela. Poziom Opis Sygnału VSS - Masa 2 VDD - +5V 3 V - Ustawianie kontrastu 4 RS / -kod instrukcji -dana 5 R/W / -wpis danej -czytanie danej 6 E impuls zapisu/odczytu 7 DB / 8 DB / 9 DB2 / DB3 / DB4 / Linie danych 2 DB5 / 3 DB6 / 4 DB7 / 5 VLED - Podświetlenie 6 NC - -
.3 Opis schematu blokowego Rys.. przedstawia schemat blokowy wyświetlacza LCD. Jego zasadniczymi blokami funkcjonalnymi są: DB..DB3 DB4..DB7 E RS R/W Bufor WE/WY Flaga zajętości (BF) Rejestr danych (DR) Rejestr instrukcji (IR) ROM generatora znaków (CG ROM) Dekoder instrukcji RAM generatora znaków (CG RAM) RAM danych Licznik adresów (AC) Układ sterowania kursorem (DD RAM) Sterowanie wyświetlaczem LCD CL CL2 M Układ konwersji danych równoległe szeregowe 6 bitowy rejestr przesuwny 4 bitowy rejestr przesuwny 4 bitowy rejestr zatrzaskowy Sterowanie segmentami Sterowanie sygnałami wspólnymi D SEG..SEG6 COM..COM6 Rys.. Schemat blokowy wyświetlacza
Rejestr instrukcji IR: rejestr ośmiobitowy przechowujący instrukcje sterujące, informację o adresach wewnętrznej pamięci danych RAM (DD RAM) oraz pamięci RAM generatora znaków (CG RAM). Uwaga: do rejestru IR można jedynie zapisać informację. - Rejestr danych DR: rejestr ośmiobitowy chwilowo przechowujący dane zapisywane lub odczytywane do/z DD RAM lub CG RAM. Dane wpisywane do rejestru DR są automatycznie przepisywane do pamięci danych DD RAM lub pamięci znaków CG RAM przez operację wewnętrzną. Rejestr DR jest także wykorzystywany do przechowywania danej podczas operacji czytania danych z pamięci DD RAM lub CG RAM. Po zapisaniu adresu do rejestru IR dana jest przepisywana do rejestru DR z pamięci DD lub CG przez operację wewnętrzną. Po odczycie przez MPU danej z rejestru DR, do rejestru DR przesyłana jest dana z komórki pamięci DD lub CG o adresie zwiększonym o. Przy pomocy sygnału RS dokonywany jest wybór między rejestrem IR i DR. - Flaga zajętości (BF): kiedy przyjmuje ona wartość "", wyświetlacz znajduje się w trybie wykonywania operacji wewnętrznej i następna instrukcja nie będzie zaakceptowana. Jak pokazuje tabela.2, flaga zajętości jest wystawiana jako bit DB7 (dla RS = "", R/W = ""). Tabela.2 RS R/W E Opis sygnału IR przepisywany wewnętrzną operacją (kasowanie wyświetlacza, itd.) Czytanie flagi zajętości BF (DB7) i licznika adresów (DB6..DB) DR przepisywany przez wewnętrzną operację (DR do CG lub DD RAM) DR zapisywany przez wewnętrzną operację (CG lub DD RAM do DR) Następna instrukcja może być wpisana po stwierdzeniu, że BF = "". Na rys..2. przedstawiono przebiegi czasowe sygnałów sterujących i odpowiedzią układów wyświetlacza dla przypadku zapisu instrukcji (przypadek dla szyny 8 bitowej). B - trwa operacja wewnętrzna NB - zezwolenie na wpis następnej instrukcji DBi - wpisywane odczytywane dane R, R/W, E - sygnały sterujące wyświetlaczem Rys..2. Przykładowy przebieg zapisu instrukcji do wyświetlacza LCD Pamięć wyświetlanych danych (DD RAM): Pamięć wyświetlanych danych przechowuje dane w postaci 8-mio bitowych kodów. Jej pojemność wynosi 8 8 bitów (8 znaków).
Ta część pamięci, która nie jest wykorzystywana do wyświetlania może być użyta jako RAM ogólnego przeznaczenia. Zależność między adresami DD RAM i położeniem znaku na wyświetlaczu LCD pokazana jest poniżej. Adres DD RAM (ADD) jest wytwarzany w liczniku adresów (AC) i ma postać binarną. Pamięć znaków ROM (CG ROM): generator ten wytwarza wzory 5 7 lub 5 pikseli odpowiadające wyświetlanym 8-mio bitowym danym. Wzory znaków dla obydwu typów reprezentacji podano w tabelach przedstawiających zestawy znaków. Pamięć znaków RAM (CG RAM): pamięć ta pozwala na zdefiniowanie własnego zestawu znaków, poprzez wpisanie odpowiednich wzorów 5 7 lub 5 pikseli. Blok sterowania wyświetlaczem LCD: blok ten zawiera 6 wzmacniaczy sterujących liniami wspólnymi i 4 wzmacniaczy sterujących segmentami. Po wybraniu przez program generatora znaków i liczby linii znakowych następuje automatyczna selekcja wzmacniaczy sterujących liniami wspólnymi. Matryce znaków są przesyłane szeregowo przez rejestr 4- bitowy i zatrzaskiwane po przesłaniu wszystkich znaków. Zatrzaśnięte dane sterują wzmacniaczem wyjściowym wytwarzającym odpowiedni kształt sygnału. Blok sterowania kursorem: blok ten wytwarza kursor lub powoduje jego migotanie. Kursor pojawia się na pozycji wyznaczonej stanem licznika adresów DD RAM. Poniżej pokazano przykładowe położenie kursora dla stanu licznika 7 heksadecymalnie: AC6 AC5 AC4 AC3 AC2 AC AC Praca w trybie jednowierszowym 2 3 2 4 3 5 4 6 5 7 6 8 7 9 8. 4 - położenie znaku 27 - adres DD RAM Praca w trybie dwuwierszowym -położenie kursora 2 3 4 5 6 7 8 9 4 - położenie znaku 2 3 4 5 6 7 8. 27 - adres DD RAM 4 4 4 43 44 45 46 47 48. 67 - adres DD RAM Uwaga: adresy DD RAM podane są w kodzie heksadecymalnym W wyświetlaczu zastosowanym w Laboratorium dostępne są dwa wiersze po 6 znaków. Sterownik wyświetlacza zajmuje dwa słowa w pamięci RAM: xf9 COMM_LCD Przy zapisie - adres rejestru instrukcji (IR), przy odczycie zwraca bajt, zawierający bit flagi zajętości (BF bit 7) oraz siedmiobitowy adres pozycji znaku (bity 6..) xf9 DATA_LCD Adres rejestru danych (DR)
.4 Programowanie układu wyświetlacza LCD.4. Inicjalizacja wyświetlacza Układ wyświetlacza jest automatycznie zerowany po włączeniu zasilania. Poniżej przedstawiono proces inicjalizacji wyświetlacza: ) Zerowanie wyświetlacza po włączeniu zasilania (flaga zajętości jest ustawiana w stan BF= i może być testowana dopiero po wysłaniu pierwszego słowa operacyjnego). Wpisywanie sekwencji instrukcji wg powyższego schematu jest konieczne w przypadku szybkiego wysyłania instrukcji programujących (np. w momencie inicjalizacji systemu mikroprocesorowego). 2) Wysłanie słowa operacyjnego, ustawiającego parametry wyświetlacza ADRES COMM_LCD D7 D6 D5 D4 DL D3 N D2 F D X D X - matryca znaków 5x7 punktów - matryca znaków 5x punktów - jeden wiersz znaków - dwa wiersze znaków (tylko dla F=) - słowo danych: 4 bity -słowo danych: 8 bitów Uwaga:. W przypadku pracy w trybie wyświetlania dwóch linii znakowych, matryca znaków może składać się tylko z 5 7 punktów. 2. Przed wysłaniem każdego kolejnego słowa (danej lub instrukcji) należy sprawdzać flagę gotowości BF.
3) Wyświetlacz włączony / wyłączony ADRES COMM_LCD D7 D6 D5 D4 D3 D2 D D C D B - migotanie kursora wyłączone - migotanie kursora włączone -kursor wyłączony -kursor włączony -wyświetlacz wyłączony -wyświetlacz włączony 4) Zerowanie wyświetlacza ADRES COMM_LCD D7 D6 D5 D4 D3 D2 D D 5) Ustawienie trybu pracy wyświetlacza ADRES COMM_LCD D7 D6 D5 D4 D3 D2 D I/D D S - wpis znaku od lewej strony - wpis znaku od prawej strony - dekrementacja - inkrementacja Wysłanie tej instrukcji kończy proces inicjalizacji wyświetlacza i umożliwia wpisywanie wyświetlanych znaków..4.2 Zestaw instrukcji sterujących MPU ma bezpośredni dostęp do Rejestru Instrukcji (IR) oraz Rejestru Danych (DR). Wewnętrzne operacje w wyświetlaczu LCD określane są sygnałami generowanymi przez MPU: - sygnał wyboru rejestrów RS - sygnał czytaj/pisz R/W - sygnały szyny danych DB7 - DB6
Sygnały wysyłane do rejestru IR tworzą zestaw instrukcji który został podany w tabeli.3. Podano tam znaczenie poszczególnych bitów: Tabela.3 Uwaga:. Zmiana trybu w trakcie pracy nie powoduje zmiany zawartości DDRAM i CGRAM. 2. Zmiana liczby wierszy wyświetlanych znaków musi być przeprowadzona poprzez realizację procedury inicjalizacji wyświetlacza.
.4.3 Definiowanie znaku (dla matrycy 5 7) w tablicy CG RAM Wyświetlacz LCD umożliwia zdefiniowanie do 8 własnych wzorów znaków dla matrycy 5 7 pikseli i do 4 znaków dla matrycy 5 pikseli. Adresy początków definicji znaków dla matrycy 5 7 są wielokrotnością ośmiu (np. H, 8H, H,...), a dla matrycy 5 są wielokrotnością szesnastu (np. H, H, 2H...). Wpisywanie informacji może nastąpić w dowolnym momencie po wykonaniu procedury inicjalizacji wyświetlacza. Po zakończeniu definiowania własnych znaków należy wykonać operację ustawienia adresu DD RAM. Poniżej przedstawiono przykładowy ciąg poleceń dla zdefiniowania znaku litery 'ą' w formacie 5 7 pikseli, jako znaku o kodzie (adres 8 w pamięci CG RAM).. ) Wpisanie adresu CG RAM 2) Wpisanie danych definiujących symbol Uwaga: Wpisanie danej do CG RAM inkrementuje licznik adresów. 3) Wpisanie adresu DD RAM Od tej pory zdefiniowany znak 'ą' jest dostępny jako znak o kodzie H.
.4.4 Tablica znaków CG ROM