programowanie sterowników wyświetlaczy LCD 2


Programowanie sterowników wyświetlaczy graficznych
P R O J E K T Y
Programowanie
sterowników wyświetlaczy
graficznych, część 2
Wyświetlacz graficzny LCD
z kontrolerem T6963C
W drugiej czÍÅ›ci artykuÅ‚u
prezentujemy zestaw
uruchomieniowy oraz
podstawowe funkcje
oprogramowania
przygotowanego do sterowania
pracą graficznego wyświetlacza
LCD i tworzenia plikÛw
graficznych w postaci
Zestaw uruchomieniowy wypa-
binarnej.
Cel skonstruowania zestawu dek (dla dodatkowego zabezpiecze-
Zaczynamy od opisu
uruchomieniowego byÅ‚ dwojaki: nia zarÛwno portu jak i wyÅ›wiet-
zestawu uruchomieniowego.
- zapoznanie siÍ z rÛÅ‚norodnymi lacza) zastosowano bufory: jedno-
mołliwościami wyświetlacza kierunkowy U5 - 74HC541 dla
w wygodny sposÛb (bez prowi- sterowania oraz dwukierunkowy
zorycznych podÅ‚Ä…czeÒ, ktÛre na- U4 - 74HC245 dla danych. Przy-
raÅ‚ajÄ… drogi zespÛÅ‚ na uszkodze- pisanie pinÛw portu sygnaÅ‚om ste-
nie oraz z prostym w obsÅ‚udze rujÄ…cym nie ma jakiegoÅ› szczegÛl-
interfejsem sterującym); nego znaczenia - zostało wybrane
- wykorzystanie do sterowania na etapie projektowania.
wyÅ›wietlaczem portu rÛwnoleg- OprÛcz opisanych wczeÅ›niej
Å‚ego z poziomu Windows. sygnaÅ‚Ûw sterujÄ…cych wyÅ›wietlacza
W efekcie powstaÅ‚a pÅ‚ytka po- wystÍpuje jeszcze linia wÅ‚Ä…czania
Å‚Ä…czeniowa wspÛÅ‚pracujÄ…ca z pro- podÅ›wietlenia (SELECT) oraz we-
gramem sterującym uruchamianym jście kontroli włączenia wyświet-
w środowisku Win95/98. Schemat lacza (BUSY). Bufory są uaktyw-
przystawki jest przedstawiony na niane po połączeniu płytki kablem
rys. 6. Na płytce (rys. 7) umiesz- z komputerem (piny 18 i 19 złą-
czono elementy interfejsu Å‚Ä…czÄ…ce- cza), co zabezpiecza je przed sta-
go (złącza, bufory), zasilania +5V nami nieustalonymi (mogącymi po-
i -12V oraz przetwornicy podÅ›wiet- wodowaĘ konflikty pomiÍdzy bu-
lenia. Do poÅ‚Ä…czenia z portem rÛw- forami a wyÅ›wietlaczem). PoÅ‚Ä…cze-
noległym komputera (musi to byĘ nie z wyświetlaczem zapewnia 20-
port pracujący w trybie bi-directio- pinowe złącze ZL1. Mołna
nal, inaczej byte-mode) słuły zastosowaĘ złącze dowolego typu
gniazdo DB25HM. Potrzebny jest (nawet odcinek podwÛjnej listwy)
zatem kabel z koÒcÛwkami DB25M - w prototypie zastosowano piono-
i DB25F. Jest to pewne utrudnie- we z îÅ‚apkamiî, znacznie uÅ‚atwia-
nie, ale mołna do płytki interfejsu jące demontał zestawu. Elementy
łatwiej przyłączyĘ inne sterowniki. R3, C7 zapewniają zerowanie wy-
Wprawdzie linie sterujące wyświet- świetlacza. W trakcie uruchamia-
lacza sÄ… elektrycznie zgodne z li- nia przydaje siÍ czasem teÅ‚ przy-
niami portu, jednak na wszelki cisk zerowania rÍcznego P1. Wej-
Elektronika Praktyczna 7/99
63
Programowanie sterowników wyświetlaczy graficznych
ście CE jest uaktywnione na stałe,
na stałe teł jest ustawiony rozmiar
fontu 6x8 (wyglÄ…d fontÛw 8x8 nie
jest zbyt rewelacyjny).
Blok gÅ‚Ûwnego zasilania +5V
zrealizowano w sposÛb tradycyjny,
to jest ze stabilizatorem ST1 typu
7805 (zmontowanym na niewielkim
radiatorze), pojemnościami filtrują-
cymi oraz diodÄ… zabezpieczajÄ…cÄ…
D1. Taki układ pozwala na zasi-
lenie pÅ‚ytki napiÍciami z zakresu
8..15V. Do uzyskania -12V ułyto
scalonej przetwornicy DC/DC Ma-
xima MAX765 (U3). Ma to na celu
zachowanie jednonapiÍciowego za-
silania - rÛwnie dobrze moÅ‚na
doprowadziĘ -12V z zewnątrz. Z ra-
cji małego poboru prądu, aplikacja
MAX765 nie jest zoptymalizowana:
dławik i kondensator zostały po
prostu wziÍte z podrÍcznych zapa-
sÛw (normalnie dÅ‚awik powinien
byĘ dobrany pod kątem prze-
niesienia odpowiednio
dułego prądu, a elektrolit -
dla minimalnego ESR).
Potencjometr wieloobroto-
wy R1 wyprowadzony na
przÛd pÅ‚ytki sÅ‚uÅ‚y do regu-
lacji kontrastu wyświetlacza.
Elementy R6, R8, Q1, U1
dostarczajÄ… napiÍcia przemiennego
(ok. 70V i 400..450Hz) do zasilania
podświetlenia. Zastosowano gotowe,
dedykowane elementy: foliÍ pod-
świetlającą LFOB 08 (światło białe)
i przetwornicÍ E1449 (ERG Inc.).
Przetwornica mołe byĘ zasilana
napiÍciem z przedziaÅ‚u 3,0..5,5V, po-
bierając typowo prąd około 50mA.
Mołna teł ułyĘ innych przetwornic
- np. z oferty ELFY.
Rozmiary płytki są dostosowa-
ne do umieszczenia na niej - za
pomocÄ… dwÛch skoÅ›nych wsporni-
kÛw - moduÅ‚u wyÅ›wietlacza pod
dogodnym kÄ…tem (w prototypie
wsporniki sÄ… wykonane z plexi
10mm). Dla wygody ułytkowania,
od doÅ‚u przymocowane sÄ… nÛÅ‚ki.
Rezystory R9, R20 o wartości
68&! zostały dolutowane w trakcie
uruchamiania dla redukcji zakÅ‚ÛceÒ
- kiedy układ nie bardzo
chciał zadziałaĘ. Chociał
ostatecznie okazaÅ‚o siÍ, Å‚e
przyczyna jest inna - na
wszelki wypadek je pozo-
stawiono.
WstÍpne uruchomie-
nie interfejsu sprowadza
siÍ do kontroli napiÍĘ zasilania
oraz ustawienia potencjometrem
R1 napiÍcia Vee ok. -9,5V. To
w zasadzie przy starannym mon-
Rys. 6. Schemat elektryczny interfejsu.
Elektronika Praktyczna 7/99
64
Programowanie sterowników wyświetlaczy graficznych
taÅ‚u powinno wystarczyĘ (przy sprzÍtu). I uwaga - jako domyÅ›lny W:=LptBase;
budowie - dla unikniÍcia niespo- (bez parametru) jest przyjmowany B:=AByte;
dzianek - sprawdzano oddzielnie LPT2 (na takim uruchamiano pro- asm
pracÍ kaÅ‚dej linii sygnaÅ‚owej gram). DziaÅ‚anie zostaÅ‚o przetes- PUSH DX
z ułyciem pomocniczego oprogra- towane na konfiguracjach: MOV DX,W
mowania). PrzetwornicÍ podÅ›wiet- - Optimus Pentium 200MHz, MOV AL,B
lenia włączajmy raczej tylko z ob- z LPT2 na karcie ISA TC-210; OUT DX,AL { dane do portu danych }
ciąłeniem. Wyświetlacz dołącza- - HP Vectra Pentium MMX 200MHz, POP DX
my do interfejsu odcinkiem taÅ›my z LPT1 na pÅ‚ycie gÅ‚Ûwnej. end;
z zaciÅ›niÍtymi wtykami (sygnaÅ‚y, W razie kÅ‚opotÛw z komunika-
zasilanie) oraz przewodem z 2- cjÄ… pojawi siÍ odpowiednie okien- W:=LptBase+2;
pinową wsuwką (podświetlenie) ko ostrzegawcze. SzybkośĘ działa- B:=BaseCtrl and not $4;
i mocujemy do wspornikÛw z uÅ‚y- nia programu sterujÄ…cego nie
ciem tulejek. mołe przekraczaĘ podanych
wczeÅ›niej wymogÛw czaso-
Konfiguracja wych kontrolera wyświetla-
i uruchomienie cza. SpÛjrzmy na kluczowe
oprogramowania procedury odczytu i zapisu
Gotowy interfejs dołączamy (Object Pascal):
opisanym wcześniej kablem do function ReadByte:Byte;
wybranego portu rÛwnolegÅ‚ego var
komputera - zazwyczaj bÍdzie to W:Word;
LPT1 z adresem $378. Port naleły B:byte;
ustawiĘ w tryb bi-directional (by- begin
te-mode). W starszych rozwiÄ…za- W:=LptBase+2;
niach mołe byĘ wymagane prze- B:=BaseCtrl or $22;
stawienie zworek na karcie, now- {linia Read = AUTOFEED - bit
sze płyty mają port wbudowany 1 inwertowany }
i wystarczy ustawienie trybu asm
w BIOS-ie. Nie naleły uruchamiaĘ PUSH DX
oprogramowania w trybach ECP/ MOV DX,W
EPP, ktÛre uÅ‚ywajÄ… sygnaÅ‚Ûw ste- MOV AL,B
rujÄ…cych dla potrzeb wbudowa- OUT DX,AL { poziom niski na
nych mechanizmÛw handshakingu linii Read, DIR = In }
(nie uzyskamy łączności z inter- POP DX
fejsem, a sam port moÅ‚e siÍ za- end;
wiesiĘ - przypadkowe uruchomie-
nie w ECP na HP Vectra spowo- W:=LptBase;
dowaÅ‚o utratÍ dwustronnej komu- asm
nikacji z drukarką ał do całkowi- PUSH DX
tego wyłączenia zasilania kompu- MOV DX,W
tera). Natomiast w trybie standard IN AL,DX { dane z portu danych
doprowadzimy do konfliktu na }
liniach - zwarcia rzÍdu 45 mA nie MOV B,AL
powinny wprawdzie uśmierciĘ POP DX
sprzÍtu, ale lepiej nie ryzykowaĘ end;
(zwłaszcza z portem na płycie).
NastÍpnym wymogiem jest uru- Result:=B;
chomienie systemu Windows 95/ W:=LptBase+2;
98. Program wykorzystuje bowiem B:=BaseCtrl;
bezpośrednie odwołania do por- asm
tÛw I/O, ktÛre nie bÍdÄ… tolerowa- PUSH DX
ne przez Windows NT (w tym MOV DX,W
przypadku naleły zrealizowaĘ do- MOV AL,B
stÍp do portÛw z uÅ‚yciem dodat- OUT DX,AL { poziom wysoki
kowych komponentÛw). na linii Read, DIR = Out }
AplikacjÍ uruchamiamy z para- POP DX
metrem określającym numer por- end;
tu. Cyfra ì1î - oznacza LPT1 end;
z adresem $378, a î2" - LPT2 {           }
z adresem $278. Dla prostoty zre- procedure WriteByte(ABy-
zygnowano z automatycznej loka- te:Byte);
lizacji portÛw - takie przypisanie var
jest dzisiaj juł praktycznie stan- W:Word;
dardowe (w razie wątpliwości B:Byte;
Rys. 7. Rozmieszczenie elementów na płytce
naleÅ‚y sprawdziĘ konfiguracjÍ begin
drukowanej.
Elektronika Praktyczna 7/99
65
Programowanie sterowników wyświetlaczy graficznych
{linia Write = INIT - bit 2 nie inwer- opisane wcześniej operacje ob-
WYKAZ ELEMENTÓW
towany } sługi wyświetlacza. Natomiast
Interfejs
asm czÍśĘ ìekranowaî programu po-
Rezystory
PUSH DX zwala na wygodne wprowadza-
MOV DX,W nie odpowiednich komend. Są R1: montażowy potencjometr
MOV AL,B one zgrupowane w menu gÅ‚Ûw- wieloobrotowy 10k&!
R2, R4, R5, R6, R7: 100k&!
OUT DX,AL { poziom niski na linii nym:
Write } - Widok - włączanie i wyłączanie
R3, R8: 10k&!
POP DX trybu graficznego i tekstowego;
R9: R20: 68&!
end; - Tryb - wybÛr stylu wyÅ›wietla-
Kondensatory
nia;
C1..C3: 100nF
- Kursor - obsługa kursora (wi-
W:=LptBase+2;
C4: 47µF/16V
docznośĘ, wielkośĘ, miganie
B:=BaseCtrl;
C5: 150µF/16V
asm i pozycja);
C6: 47µF/16V (niskie ESR,
PUSH DX - Znaki - wybÛr generatora zna-
preferowany OS-CON Sanyo)
MOV DX,W kÛw;
C7: 4,7µF/16V
MOV AL,B - Funkcje - operacje dodatkowe:
C8: 10µF/16V
OUT DX,AL { poziom wysoki na linii podświetlenie oraz programowe
Write - wpis } zerowanie wyświetlacza; Półprzewodniki
POP DX - Program - ma dwie czÍÅ›ci: prze- D1: 1N4148
end; Å‚Ä…cznik grafika/tekst odnosi siÍ
D2: 1N5817
do zawartości ekranowego sy-
U3: MAX765
end; mulatora wyświetlacza, nato-
U4: 74HC245
O ile nasz port bÍdzie zbyt miast pozostaÅ‚e komendy prze-
U5: 74HC541
szybki moÅ‚e siÍ okazaĘ konieczne syÅ‚ajÄ… odpowiednie dane z pro-
Q1: BC337 itp.
wprowadzenie odpowiednich gramu do RAM wyświetlacza;
ST1: 7805 (na niewielkim
opÛünieÒ. Dla podanych powyÅ‚ej - Bmp - umoÅ‚liwia zaÅ‚adowanie
radiatorze z blachy miedzianej)
konfiguracji konieczne było przy bitmapy z pliku *.bmp.
Różne
zapisie wcześniejsze wystawienie Interfejs/symulator wyświetla-
LM 24014H: wyświetlacz graficzny
danych (przed opadajÄ…cym zbo- cza ma dwa ekrany: graficzny, do
z podświetleniem LFOB 08 lub 09
czem WR). OkazaÅ‚o siÍ, Å‚e zbyt ktÛrego Å‚adujemy plik *.bmp oraz
E1449: przetwornica DC/AC do
szybko byÅ‚a wykonywana funkcja tekstowy, do ktÛrego moÅ‚emy wpi-
zasilania podświetlenia
sprawdzajÄ…ca status (ciÄ…gÅ‚a pÍtla sywaĘ wÅ‚asny tekst i ewentualnie
gniazdo DB: 25 HM do druku
ReadByte) - ostateczna wersja jest nadawaĘ mu atrybuty.
podana poniłej (dla trybu zwyk- Ekran graficzny wyświetla bit- złącze 20: pin (pionowe
Å‚ego). WywoÅ‚ania Application.Pro- mapÍ *.bmp w trybie ìstretchî, z Å‚apkami) do druku
cessMessages oprÛcz spowolnie- tzn. dopasowuje jÄ… do swojego
przycisk miniaturowy do druku
nia pÍtli pozwalajÄ… na wycofanie wymiaru, gdy rzeczywiste wymia-
zacisk śrubowy ARK: 2
siÍ z funkcji przy braku wÅ‚aÅ›ci- ry bitmapy mogÄ… byĘ inne.
dÅ‚awik 47µH (tu zastosowany
wego rezultatu (program nadal Wyświetlacz pokałe wymiary
zwykły, zalecany z prądem
reaguje na komunikaty systemo- rzeczywiste, dlatego program in-
nasycenia powyżej 0,75A,
we): formuje o załadowaniu bitmapy
najlepiej na toroidzie)
function CheckStatus:Boolean; rÛÅ‚nej od 240x64. Bitmapa z ek-
akcesoria montażowe: wsporniki
var ranu zostaje przekodowana i prze-
wyświetlacza, nóżki, tulejki itd.
słana do wyświetlacza po wybra-
k:Integer;
przewód połączeniowy 25: żyłowy
niu komendy GraphMem z menu
B:Byte;
z wtykami DB: 25 M oraz DB: 25 F.
begin Program.
k:=0; Ekran tekstowy podzielony jest
na siatkÍ znakÛw 40x8. MoÅ‚emy mÛgÅ‚by byĘ np. domowy sterow-
SetCmdLine(COMMAND);
w nią wpisywaĘ tekst z klawiatu- nik zrobiony ze starej, przezna-
repeat
ry. Prawy przycisk myszy otwiera czonej do skasowania płyty PC -
Application.ProcessMessages;
kontekstowe menu atrybutÛw. ten temat wielokrotnie przewinÄ…Å‚
B:=ReadByte;
Wpisanie znaku oraz ustalenie siÍ na liÅ›cie EP (wtedy raczej
Inc(k);
if (k=100) then begin atrybutu zawsze dotyczy caÅ‚ego posÅ‚uÅ‚ymy siÍ DOS-em, ale zasa-
Application.MessageBox( Sprawdz pod- zaznaczonego w siatce obszaru. dy obsługi wyświetlacza pozosta-
Å‚Ä…czenia i zasilanie , PrzesÅ‚anie tekstu oraz atrybutÛw nÄ… te same). NaleÅ‚y wtedy takÅ‚e
do RAM jest realizowane komen- zadbaĘ o bardziej odporne na za-
 Brak odpowiedzi ,mb_Ok);
dami TextMem i AttrMem z menu kÅ‚Ûcenia doÅ‚Ä…czenie wyÅ›wietlacza
Result:=False;
Exit; Program. (krÛtsze kable, ekranowana zabu-
end; Wybrano takÄ… etapowÄ… obsÅ‚ugÍ dowa, wspÛlne zasilanie itd.) -
until ((B and $3)=$3); dla zwiÍkszenia poglÄ…dowoÅ›ci w prezentowanym zestawie cza-
dziaÅ‚ania zestawu. Nic nie stoi na sem wystÍpujÄ… bÅ‚Ídy przesyÅ‚ania
Result:=True;
end; przeszkodzie, łeby w bardziej (chociał nie ma to w tym przy-
Na tych elementarnych pro- praktycznej aplikacji akcje klawia- padku powałnego znaczenia).
cedurach bazują pozostałe, bar- tury przesyłaĘ natychmiast do Jerzy Szczesiul,
dziej złołone funkcje realizujące wyświetlacza. Taką aplikacją jerzy.szczesiul@ep.com.pl
Elektronika Praktyczna 7/99
66


Wyszukiwarka

Podobne podstrony:
Obsługa wyświetlacza Lcd z układem sterowania Hd44780U
Wyświetlacz LCD
Budowa i zasada działania programowalnych sterowników PLC
Programowalny sterownik czasowy
Kurs AVR GCC Wyświetlacz LCD od Nokii310
6 Programowanie sterownikow BR
Dokumentacja sterownika wyświetlacza z NOKIA3510i
sterowanie wyświetlaczem telefonu Nokia part1
Termometr cyfrowy z wyświetlaczem LCD
Laboratorium 3 wyświetlacz LCD
sterowanie sterowników wyświetlaczy graficznych 1
Sterowanie Wskaĺşnikami Lcd Sterownik

więcej podobnych podstron