sterowanie sterowników wyświetlaczy graficznych 1


Programowanie sterowników wyświetlaczy graficznych
P R O J E K T Y
Programowanie
sterowników wyświetlaczy
graficznych, część 1
Wyświetlacz graficzny LCD
z kontrolerem T6963C
Artykuł ten jest dośĘ
nietypowy - przynajmniej jak
na EP. Opisujemy w nim
bowiem konstrukcj
urządzenia, ale tylko przy
okazji opisu sposobu
sterowania graficznych
wyświetlaczy LCD.
Artykułu tego nie mołna
przegapiĘ! Znajdziecie w nim
bowiem komplet informacji
o sposobach sterowania
graficznych wyświetlaczy oraz
Gdy budujemy jakiekolwiek kich (128x32 piksele), a kocząc
doskonałe narzdzie do
urządzenie mikroprocesorowe pra- na dułych ekranach uływanych
sterowania nimi.
wie zawsze zachodzi koniecznośĘ w laptopach.
wyświetlenia danych: wynikw W naszym przykładzie wyko-
pomiaru, wprowadzonych para- rzystania wyświetlacza graficzne-
metrw, czasu, daty itp. W wik- go ułyjemy modelu LM24014H
szości przypadkw wystarcza nam firmy Sharp o wymiarach ekranu
wizualizacja znakowa. Jest ona 240x64 piksele.
łatwo realizowalna (LED, LCD,
wyświetlacze alfanumeryczne), Budowa wyświetlacza
w miar tania, a takłe wielokrot- Podobnie jak w wyświetlaczach
nie opisywana i nie stwarzająca alfanumerycznych mamy do czy-
wikszych problemw programo- nienia ze zintegrowanym zespołem
wych. panelu LCD oraz elektroniki ste-
Jednak czasem - chociał raczej rującej, pozwalającej na stosunko-
rzadko w domowych, amatorskich wo proste sterowanie wyświetla-
aplikacjach - funkcje urządzenia czem. Schemat blokowy urządze-
wymagają wizualizacji graficznej. nia jest przedstawiony na rys. 1.
Jest tak na przykład w razie ko- Ekran panelu LCD jest matry-
nieczności przedstawiania prze- cą 240x64 sterowanych indywi-
biegw czasowych, zwizłego dualnie pikseli. Jest wykonany
i skutecznego zobrazowania prze- jako transfleksyjny, czyli mołe
biegu procesu technologicznego pracowaĘ zarwno ze światłem
lub stanu urządze itp. W takich zewntrznym - odbitym, jak i ze
przypadkach warto signąĘ po światłem przechodzącym, emito-
uniwersalne, graficzne wyświetla- wanym przez podświetlającą foli
cze LCD. Są one dostpne w rł- elektroluminescencyjną. Stanem
nych rozmiarach i wykonaniach, aktywnym (zapaleniem) piksela
począwszy od całkiem niewiel- jest jego zaciemnienie. Indywidu-
Elektronika Praktyczna 6/99
57
Programowanie sterowników wyświetlaczy graficznych
Przykład rozwiązania układowego
jest podany na schemacie inter-
fejsu sterującego wyświetlaczem
(przedstawimy go w EP7/99). Po-
br prądu dla poszczeglnych
napiĘ wynosi średnio ok. 12mA
dla +5V i ok. 1,5mA dla Vee=
-10V.
Organizacja procesu
wyświetlania
Wyświetlacz dysponuje tryba-
mi graficznym i tekstowym, ktre
mogą byĘ niezalełnie włączane
i wyłączane. W trybie graficznym
ekran jest podzielony na 64 linie,
a kałda linia na 40 zespołw
(pattern) po 6 pikseli. Kałdy
pattern odpowiada jednemu baj-
towi pamici, z wykorzystanymi 6
młodszymi bitami. Ustawienie bi-
tu (1) oznacza zapalenie (zaciem-
Rys. 1. Schemat blokowy wyświetlacza LM24014H.
nienie) piksela. W trybie teksto-
alne wysterowanie kałdego pik- 6- RD - odczyt (aktywny poziom wym ekran dzieli si na 8 linii
sela zapewnia zespł driverw niski) po 40 (font 6x8) lub 30 (font 8x8)
(U1 - wiersze, U2, U3, U4 - 7- CE - wejście zezwalające (ak- znakw. Znaki mogą byĘ pobie-
kolumny) podających w odpo- tywny poziom niski) rane z generatora wbudowanego
wiednie miejsca ekranu napicie 8- C/D - przełączanie: komendy/ (CG-ROM) lub ładowanego (CG-
przemienne midzy elektrodami dane (HI - komenda, LO - dana) RAM). Do dyspozycji mamy teł
wiersza i kolumny. Odpowiednie 9- NC - nie podłączone programowo konfigurowany kur-
napicia są formowane z zewnt- 10 - RESET - zerowanie (pozio- sor.
rznego zasilania przez pomocni- mem niskim) Tryby mogą ze sobą wspłpra-
czy układ U7. 11 - 18 - D0..D7 - magistrala cowaĘ w rłnych stylach:
Wszelkimi operacjami logicz- danych OR - sumowanie - znaki i grafika
nymi oraz komunikacją zajmuje 19 - FS - wybr szerokości fontu są wyświetlane niezalełnie od
si zespł sterujący: kontroler U5 (HI - 6x8, LO - 8x8) (dla trybu siebie,
wspłpracujący z pamicią SRAM tekstowego)
8kBx8 - U6, wspomagany deko- 20 - NC - nie podłączone
derem U8 i rezonatorem ceramicz- Operując odpowiednio po-
nym XTAL. Jako kontroler pracuje wyłszymi sygnałami realizu-
układ Toshiby T6963C. Chociał jemy potrzebne sekwencje za-
w wyświetlaczach graficznych nie pisu i odczytu komend i da-
ma tak uniwersalnego standardu nych. Zalełności czasowe po-
jaki stanowi na przykład układ midzy sygnałami zostały
Hitachi HD44780 w wyświetla- przedstawione na rys. 2.
czach alfanumerycznych - to Jak widaĘ, jest tu wiele
T6963C jest spotykany dosyĘ czs- zbiełności ze sposobem ste-
to i opisane dalej zasady jego rowania wyświetlaczem alfa-
obsługi mogą si przydaĘ takłe numerycznym, chociał oczy-
dla innych typw wyświetlaczy. wiście wystpuje o wiele wi-
ŁącznośĘ kontrolera z otoczeniem cej komend, trybw pracy itp.
zapewnia 20-pinowe typowe złą- Kilka słw o napiciach
cze (piny widziane od strony zasilania. Układy logiczne
panelu - nie od strony gniazda): mają typowe, własne zasila-
1- FGND - masa obudowy (me- nie +5V. Napicie dla pane-
talowej ramki mocującej panel lu LCD jest natomiast formo-
LCD) wane z napiĘ Vdd i Vee.
2- GND (inaczej Vss) - masa Maksymalny zakres Vee to
3- Vdd - zasilanie układw logiki -12V do -6V. Naleły zapew-
(+5V) niĘ regulacj tego napicia,
4- Vee - zasilanie panelu LCD gdył jego optymalna wartośĘ
(regulacja kontrastu - ok. -10V) (decydująca o kontraście) za-
5- WR - zapis (aktywny poziom leły (w granicach ok. 1V) od
Rys. 2. Przebiegi czasowe charakteryzujące
niski) egzemplarza wyświetlacza.
interfejs wyświetlacza LM24014H.
Elektronika Praktyczna 6/99
58
Programowanie sterowników wyświetlaczy graficznych
STA 2 - gotowośĘ Konfiguracja pamici. Argument
do odczytu danej dwubajtowy D1, D2, kod
w trybie AUTO: 1 - 010000AA:
gotw, 0 - zajty AA=00 - ustawienie adresu po-
STA 3 - gotowośĘ czątku obszaru tekstowego w pa-
do zapisu danej mici, w D1 młodszy bajt adre-
w trybie AUTO: 1 - su, w D2 starszy bajt adresu;
gotw, 0 - zajty AA=01 - ustawienie szerokości
STA 4 - nieistotny pola tekstowego (liczby znakw
STA 5 - wskanik w linii), w D1 liczba kolumn,
stanu po zerowaniu D2=0;
(przez ok. 2ms po AA=10 - ustawienie adresu po-
zerowaniu kontroler czątku obszaru graficznego w pa-
stabilizuje zegar mici, w D1 młodszy bajt adre-
Rys. 3. Format i znaczenie stanów sterujących. i nie wykonuje ope- su, w D2 starszy bajt adresu;
racji) AA=11 - ustawienie szerokości
AND - iloczyn - zapalone zostają STA 6 - wskanik błdu w niekt- ekranu graficznego (w 6-pikse-
tylko piksele, ktre są aktywne rych operacjach dotyczących ob- lowych patternach) w D1 liczba
w obu trybach, szaru graficznego, błąd (1) jest kolumn, D2=0.
EXOR - wyłącznośĘ - zapalone sygnalizowany przy prbie ope-
zostają tylko piksele rłniące racji graficznej pod adresem Zapis do wewntrznych rejest-
si w obu trybach, wykraczającym poza ustawiony rw. Argument dwubajtowy D1,
ATTR - tekst z atrybutami (grafika obszar graficzny pamici D2, kod 00100AAA:
musi byĘ wyłączona - atrybuty STA 7 - wskanik migania: 1 - AAA=001 - ustawienie pozycji
są pobierane z obszaru graficz- włączony, 0 - wyłączony. kursora, w D1 wspłrzdna po-
nego pamici). Wszystkie nie- Status odczytujemy przy pozio- zioma x w zakresie 0..127 (7
zbdne dane są przechowywane mie wysokim na linii C/D (zestaw bitw), w D2 wspłrzdna pio-
w pamici U6 w wydzielonych sygnałw przy poszczeglnych nowa y (od gry) w zakresie
obszarach: grafiki, tekstu, gene- operacjach jest przedstawiony na 0..31 (5 bitw);
ratora CG-RAM, atrybutw tek- rys. 3). AAA=010 - ustawienie offsetu
stu. Adresy tych obszarw są Komendy mogą byĘ bez argu- ładowalnego generatora znakw
wprowadzone do kontrolera mentw, z argumentem 1-bajtowym (CG-RAM), w D1 offset w zakre-
podczas konfiguracji. Kałda lub z argumentem 2-bajtowym. Tro- sie 0..31 (5 bitw), D2=0;
zmiana zawartości pamici jest ch nietypowy jest spo-
samoczynnie przenoszona na ek- sb wprowadzania argu-
ran. Poniewał pamiĘ ma struk- mentw: wpisujemy je
tur liniową - dodatkowo wpi- w pierwszej kolejności
sujemy do kontrolera łądaną w operacjach zapisu da-
szerokośĘ pola tekstu lub obrazu nych, a dopiero potem -
(w znakach tekstowych oraz w operacji zapisu ko-
patternach graficznych), co po- mendy - wpisujemy kod
zwala podzieliĘ obszar pamici komendy informując
na poszczeglne wiersze. Loka- kontroler co ma zrobiĘ
lizacja poszczeglnych obszarw z juł przesłanymi argu-
jest dowolna. mentami.
Dane mołemy wpro-
Sterowanie wyświetlaczem wadzaĘ pojedynczo (ko-
Do wyświetlacza wysyłamy ko- mendami zapisu jedne-
mendy konfiguracyjne i sterujące go bajtu), dla wikszych
oraz potrzebne dane. OdczytywaĘ blokw danych naleły
mołemy status, zawartośĘ pamici jednak uływaĘ trybu
oraz ekranu. W praktyce najbar- AUTO - kolejne wpisy-
dziej potrzebny jest odczyt statu- wane bajty danych są
su, gdył przed kałdym wpisem w tym trybie przyjmo-
danej lub komendy do kontrolera wane bez dodatkowej
musimy sprawdziĘ czy jest on komendy, z jednoczesną
gotw na jej przyjcie, o czym inkrementacją adresu
świadczy ustawienie odpowied- w pamici RAM.
nich bitw w słowie statusu: Przykładowe sek-
STA 0 - gotowośĘ do zapisu in- wencje operacji są
strukcji: 1 - gotw, 0 - zajty przedstawione na rys.
STA 1 - gotowośĘ do zapisu/ 4. Poniłej zamieszczono
odczytu danej: 1 - gotw, 0 - dokładne opisy po-
Rys. 4. Algorytmy sterowania wyświetlaczem
zajty szczeglnych komend.
LM24014H.
Elektronika Praktyczna 6/99
59
Programowanie sterowników wyświetlaczy graficznych
komendy dotyczącej jednego baj-
tu. Schemat ułycia do zapisu
jest pokazany na rys. 4. Naleły
pamitaĘ, łe przy włączonym
trybie AUTO gotowośĘ kontro-
lera określają oddzielne bity
słowa statusu (STA2 dla odczy-
tu, STA3 dla zapisu).
AA=00 - włączenie trybu AUTO
do zapisu,
AA=01 - włączenie trybu AUTO
do odczytu,
AA=1* - wyłączenie trybu AUTO
(* - stan dowolny).
Ustawianie stylu wyświetlania.
Komenda bez argumentu, kod
1000AAAA.
Bit 2 - ekran tekstowy widoczny, Bity 0,1,2 stanowią przełącznik
Bit 3 - ekran graficzny widoczny. stylu:
AAA=000 - OR (suma grafiki
Rys. 5. Okno programu testowego.
Ustawienie rozmiaru kursora. i tekstu),
AAA=100 - ustawienie wskani- Komenda bez argumentu, kod AAA=001 - EXOR (wyświetlanie
ka adresowego, w D1 młodszy 10100AAA: rłnicowe grafiki i tekstu),
bajt adresu, w D2 starszy bajt AAA+1= wysokośĘ kursora (np. AAA=011 - AND (iloczyn grafiki
adresu - nastpnie wykonywa- AAA=000 - jedna linia od dołu, i tekstu),
ne operacje zapisu lub odczytu AAA=111 - kursor na cały obszar AAA=100 - tekst z atrybutami.
bdą dotyczyĘ tego adresu. Do- znaku). Bit 3 stanowi niezalełną flag
datkowego wyjaśnienia wyma- wyboru generatora znakw: 1 -
ga offset CG-RAM. Struktura Odczyt/zapis bajtu danych. Ko- ładowany CG-RAM, 0 - wbudowa-
generatora znakw jest nast- menda bez argumentu przy od- ny CG-ROM. Przy włączeniu atry-
pująca: czycie, natomiast z argumentem butw tekstu naleły kody atrybu-
'opis kałdego znaku jest za- jednobajtowym D1 przy zapisie, tw ulokowaĘ w obszarze graficz-
warty w 8-bajtowym obszarze kod 11000AAA. nym pamici. Jednocześnie ozna-
pamici (kolejne bajty opisują Mechanizm uływania jest nast- cza to, łe tryb graficzny jest przy
kolejne wiersze znaku), pujący: najpierw naleły ustawiĘ ułyciu atrybutw nieaktywny.
'kod znaku podany w obszarze wskanik adresu, przy zapisie - Mołna albo przeładowaĘ obszar
tekstowym ekranu (0..$ff) wpisaĘ daną D1 i komend z ko- graficzny kodami atrybutw, albo
wskazuje na odpowiedni opis dem do zapisu, kontroler ulokuje wydzieliĘ dla atrybutw oddzielny
znaku - do ulokowania pełnej D1 pod podanym adresem. Przy blok pamici i odpowiednio prze-
tablicy znakw potrzebujemy odczycie - wpisaĘ komend z ko- stawiĘ adres obszaru graficznego.
wic 8x256=2048 bajtw (2kB), dem do odczytu (kontroler przy- Kody atrybutw wykorzystują
ktrych zaadresowanie wyma- gotuje zawartośĘ podanego wcześ- 4 najmłodsze bity:
ga 10 bitw. niej adresu) i odczytaĘ daną. 0000 - znak normalny,
Offset CG-RAM określa lokacj AAA=000 - zapis danej z inkre- 0011 - znak wygaszony,
2 kB generatora w 8 kB pamici - mentacją wskanika adresowego, 1000 - znak migający.
inaczej mwiąc jest najstarszymi, AAA=001 - odczyt danej z inkre- W dokumentacji sterownika po-
począwszy od 11, bitami adresu. mentacją wskanika adresowego, dano takłe 0101 - inwersja, ale nie
Na przykład offset=1 ustawia po- AAA=010 - zapis danej z dekre- wiedzieĘ czemu nie udało mi si
czątek obszaru generatora na $800 mentacją wskanika adresowego, tego uzyskaĘ. Generator CG-ROM
(rzecz jasna naleły zadbaĘ, aby AAA=011 - odczyt danej z dekre- pomija znaki sterujące - zaczyna si
generator mieścił si w granicach mentacją wskanika adresowego, od spacji $20. Naleły wic odpo-
obszaru pamici!). AAA=1*0 - zapis danej bez zmia- wiednio przeliczyĘ kody ASCII przy
ny wskanika adresowego, ładowaniu tekstu. Jeśli chcemy uły-
Ustawianie trybu wyświetlania. AAA=1*1 - odczyt danej bez waĘ własnych znakw musimy nie-
Komenda bez argumentu, kod zmiany wskanika adresowego stety załadowaĘ wszystko - nie
1001AAAA. W tej komendzie bi- (* - stan dowolny). mołna korzystaĘ czściowo z ROM
ty 0..3 są ułyte jako flagi, czyli i RAM. Ułatwieniem jest zamiesz-
mogą byĘ ustawiane niezalełnie. Tryb AUTO. Komenda bez ar- czony w kodzie rdłowym przykła-
Ustawienie (1) oznacza włącze- gumentu, kod 101100AA. dowy generator z polskimi znakami.
nie przypisanego danej fladze Pozwala na załadowanie lub
trybu. odczyt kolejno wikszej liczby Zapalanie indywidualnego bitu.
Bit 0 - miganie kursora, bajtw danych bez kałdorazo- Komenda bez argumentu, kod
Bit 1 - kursor widoczny, wego wywoływania poprzedniej 1111AAAA.
Elektronika Praktyczna 6/99
60
Programowanie sterowników wyświetlaczy graficznych
Bity 0,1,2 określają pozycj 3. Wpisanie odpowiedniej liczby
bitu w bajcie (wskazywanym danych.
przez zawartośĘ wskanika ad- 4. Wyłączenie trybu AUTO.
resowego). Bit 3 oznacza: 1 - Powyłszy opis nie objął mniej
zapalenie piksela, 0 - zgaszenie przydatnych w praktycznym wy-
piksela. korzystaniu wyświetlacza funkcji
odczytywania zawartości ekranu,
Typowe operacje kopiowania linii, czy teł uływa-
Po zerowaniu lub włączeniu nia okna przewijanego - pozosta-
zasilania naleły przeprowadziĘ wiam to Czytelnikom do ewentu-
inicjalizacj. Naleły zwłaszcza alnych własnych eksperymentw.
zwrciĘ uwag na fakt, łe zero- Rzecz jasna, w rzeczywistych
wanie nie zmienia rejestru stylu aplikacjach konieczne jest przygo-
wyświetlania - brak jawnego usta- towanie sobie szeregu - zalełnie
wienia stylu powoduje zagadko- od potrzeb - funkcji graficznych,
wy brak startu wyświetlacza. Sek- np. rysujących linie, ramki, wykre-
wencja operacji wygląda np. na- sy itp. Bardzo efektownym przy-
stpująco: kładem takiej profesjonalnej biblio-
1. Zerowanie i ustawienie: teki jest Window Server w palm-
- stylu, np. OR + CG-RAM, topach Psion. We własnych pro-
- adresu pola grafiki, jektach jednakłe na ogł wystarczą
- szerokości ekranu graficznego, znacznie prostsze rozwiązania.
- adresu pola tekstowego, W szczeglności czsto mołemy
- szerokości ekranu tekstowego, mieĘ do czynienia z ładowaniem
- offsetu CG-RAM, pełnoekranowej grafiki (logo firmo-
2. Załadowanie generatora zna- we, tło itd.). Do przygotowania
kw. grafiki w formacie zgodnym z po-
3. Zerowanie pamici tekstowej. trzebami wyświetlacza słuły spe-
4. Załadowanie pamici graficz- cjalnie napisany program. Pracuje
nej. on w środowisku Windows i po-
5. Włączenie trybu graficznego. zwala na przekodowanie typowych
Ładowanie bloku danych naj- plikw *.bmp. Dodatkowo mołna
lepiej - jak juł wspomniałem - z jego pomocą wygenerowaĘ goto-
wykonaĘ z ułyciem trybu AUTO wy tekstowy plik assemblerowy do
(patrz teł rys. 4): dołączenia do oprogramowania
1. Ustawienie wskanika adreso- mikrokontrolera sterującego wy-
wego na początek ładowanego świetlaczem. Wygląd okna progra-
obszaru. mu przedstawia rys. 5.
2. Włączenie trybu AUTO do Jerzy Szczesiul,
zapisu. jerzy.szczesiul@ep.com.pl
Elektronika Praktyczna 6/99
61


Wyszukiwarka

Podobne podstrony:
Dokumentacja sterownika wyświetlacza z NOKIA3510i
sterowanie wyświetlaczem telefonu Nokia part1
Najprostszy sterownik wyświetlacza alfanumerycznego
Najprostszy sterownik wyświetlacza alfanumerycznego
programowanie sterowników wyświetlaczy LCD 2
Sterowanie wyświetlaczem przez LPT
wyswietlacze graficzne bascom cz1
Kolorowy wyświetlacz graficzny z telefonu Siemens S65 M65 z kontrolerem Hitachi HD66773, cz 2
Kolorowy wyświetlacz graficzny z telefonu Siemens S65 M65 z kontrolerem Hitachi HD66773, cz 3
Sterowanie alfanumerycznych wyświetlaczy VFD
Sterowanie rejestrami przesuwnymi z wykorzystaniem interfejsu SPI na przykładzie 6 cyfrowego wyświet
Obsługa wyświetlacza Lcd z układem sterowania Hd44780U
automatyka i sterowanie wyklad
Sterownik dwubarwnych diod LED
Sterownik nadajnika do lowow na lisa

więcej podobnych podstron