53_55.pdf

(157 KB) Pobierz
Mikroprocesorowy system edukacyjny, część 2 - AVT-353
Mikroprocesorowy system edukacyjny
P R O J E K T Y
Mikroprocesorowy system
edukacyjny, czêæ 2
kit AVT-353
Drug¹ czêæ artyku³u
rozpoczynamy od krótkiego
opisu sposobu programowania
portu I/O, stanowi¹cego okno
na wiat prezentowanego
systemu mikroprocesorowego.
W dalszej czêci artyku³u
omówiono programowanie
wywietlacza LCD
z wbudowanym sterownikiem
HD44780.
Programowanie portu I/O
Opis systemu uruchomienio-
wego by³by niekompletny bez,
chocia¿ skrótowego, omówienia
sposobu programowania uniwer-
salnego uk³adu wejcia/wyjcia
U3. Jak wspomniano, udostêpnia
on trzy porty oznaczone jako
PA, PB i PC. Porty PA i PB s¹
niepodzielne, natomiast port PC
jest podzielony logicznie na dwie
czêci: mniej znacz¹c¹ tetradê
PCl z bitami od PC0 do PC3,
oraz bardziej znacz¹c¹ PCh (bity
od PC4 do PC7). Obie czêci
portu PC, jak i PA oraz PB,
zaprogramowaæ mo¿na jako nie-
zale¿ne wejcia, lub wyjcia.
W zewnêtrznej przestrzeni da-
nych mikrokontrolera uk³ad za-
jmuje cztery komórki pamiêci.
Przyjêto dla portu PA komórkê
o adresie 0, dla PB adres 1, a dla
PC adres 2. Ostatni¹ komórkê,
oznaczon¹ adresem 3 zajmuje
rejestr kontrolny CTRL. Zapisu-
j¹c do niego bajt danych uzys-
kany wed³ug poni¿szego wzoru
mo¿emy okreliæ funkcjê portów
uk³adu:
76543210
1 0 0 PA PCh 0 PB PCl
gdzie PA, PB, PCl, PCh, przy
wartoci 0 funkcjonuje jako wyj-
cie, a przy 1 jako wejcie.
Tak wiêc wpisuj¹c do rejestru
CTRL (adres 3) wartoæ np. 8Ah
definiujemy porty PA oraz PCl
jako wyjcie, natomiast porty PB
wraz z PCh jako wejcie.
Przez wpisanie do rejestru
CTRL inaczej utworzonego bajtu
uzyskujemy mo¿liwoæ indywidu-
alnego ustawiania lub kasowania
bitów portu PC zaprogramowa-
nych uprzednio jako wyjcia:
76543210
0 0 0 0 PCn PCn PCn C/S
gdzie: PCn jest okrelonym dwój-
kowo numerem bitu portu (0..7),
C/S o wartoci 0 oznacza zero-
wanie wybranego bitu, a 1 jego
ustawienie.
Wpisuj¹c do rejestru CTRL war-
toæ np. 5, uzyskujemy ustawienie
linii PC2 portu (zaprogramowa-
nego uprzednio jako wyjcie).
Ten krótki opis nie wyczerpuje
wszystkich mo¿liwoci zastosowa-
nego uk³adu, jest jednak wystar-
czaj¹cy dla rozpoczêcia pierw-
szych prób. Celem uzyskania szer-
szych informacji nale¿y siêgn¹æ
do kart katalogowych uk³adu sca-
lonego 8255 firmy INTEL.
Adaptacja
i programowanie
wywietlacza LCD
W kolejnej czêci opisu przed-
stawiony zostanie sposób przysto-
sowania wywietlacza ciek³okrys-
talicznego do systemu edukacyj-
nego oraz jego mo¿liwoci. Do³¹-
Elektronika Praktyczna 11/97
53
30484782.001.png 30484782.002.png
Mikroprocesorowy system edukacyjny
czenie wywietlacza otwiera sze-
rokie mo¿liwoci prezentacji wy-
ników pracy programów u¿ytkow-
nika. Wywietlacz umo¿liwia, miê-
dzy innymi, wywietlenie wszys-
tkich znaków standardowego zbio-
ru ASCII oraz dziêki wbudowanej
w sterownik inteligencji prze-
niesienie czêci zadañ zwi¹za-
nych z obs³ug¹ procesu wywie-
tlania bezporednio z programu
u¿ytkownika do kontrolera wy-
wietlacza. Dalszy opis dotyczy
wywietlacza alfanumerycznego
o dowolnej organizacji (np. 1 linia
po 16 znaków, 1x20, 2x16, itd.),
sterowanego przez zintegrowany
kontroler typu HD44780 firmy
HITACHI lub jego odpowiednik.
Przede wszystkim nale¿y usta-
liæ kolejnoæ wyprowadzeñ wy-
wietlacza korzystaj¹c z rys. 5 ,
który przedstawia po³o¿enie koñ-
cówek komunikacyjnych kontrole-
ra, odpowiadaj¹cych koñcówkom
dwóch z³¹cz wykonanych na p³yt-
ce systemu uruchomieniowego. Je-
¿eli odnalezione w ten sposób
wyprowadzenia wywietlacza,
odpowiadaj¹ bezporednio koñ-
cówkom z³¹cza LCD1 lub LCD2,
to wywietlacz mo¿na pod³¹czyæ
bezporednio. Je¿eli jednak pro-
ducent zastosowa³ inne rozwi¹za-
nie wyprowadzeñ wywietlacza,
powstaje koniecznoæ w³asnorêcz-
nego wykonania przejciówki po-
miêdzy nim, a systemem urucho-
mieniowym. Nale¿y zwróciæ uwa-
gê na zgodnoæ oznaczeñ wypro-
wadzeñ scalonego kontrolera wy-
wietlacza z oznaczeniami wystê-
puj¹cymi w opisie koñcówek
z³¹cz, wykonanych na p³ytce sys-
temu (patrz schemat elektryczny).
Dalszy opis bêdzie dotyczy³ pro-
gramowania funkcji kontrolera.
Do poznania mo¿liwoci kon-
trolera wywietlacza u¿yjemy in-
terfejsu równoleg³ego komputera
PC, oraz znajduj¹cego siê na
do³¹czonej do systemu dyskietce
programu lcd4.exe .
Aby rozpocz¹æ test, wywiet-
lacz nale¿y pod³¹czyæ do kompu-
tera PC w sposób przedstawiony
na rys. 6 . Pomiêdzy z³¹czem
interfejsu a panelem zastosowano
szeæ rezystorów zabezpieczaj¹-
cych przed ewentualnymi zwar-
ciami, mog¹cymi powstaæ w trak-
cie póniejszych dowiadczeñ. Je-
¿eli zastosowany panel LCD nie
posiada potencjometru regulacji
kontrastu, to nale¿y odnaleæ koñ-
cówkê 30 kontrolera na z³¹czu
panela. Umo¿liwia ona zewnêt-
rzn¹ regulacjê kontrastu - dla
uproszczenia koñcówkê tê nale¿y
tymczasowo pod³¹czyæ do masy.
Uruchomienie program testu
mo¿liwoci kontrolera realizuje
komenda : <lcd4.exe [LPTn]> ,
gdzie <LPTn> okrela interfejs
równoleg³y, przez który odbywaæ
siê bêdzie komunikacja z wywiet-
laczem. Dopuszczalnymi nazwami
s¹: LPT1, LPT2 oraz HGC dla
interfejsu równoleg³ego karty HER-
CULES lub czêci komputerów
typu notebook. W razie pomi-
niêcia oznaczenia przyjête zosta-
nie domylne z³¹cze równoleg³e
oznaczone LPT1.
Wszelkie operacje wykonywa-
ne z poziomu programu odbywaj¹
siê w sposób analogiczny jak
w systemie operacyjnym i polega-
j¹ na wprowadzaniu z klawiatury
komputera ci¹gów prostych pole-
ceñ. Tak wiêc dowiadczenia zdo-
byte podczas prób przenosz¹ siê
w sposób bezporedni do progra-
mów u¿ytkownika (napisanych
z u¿yciem procedur systemu ope-
racyjnego). Po uruchomieniu pro-
gram zg³asza siê nag³ówkiem mó-
wi¹cym o oznaczeniu wybranego
³¹cza równoleg³ego oraz sposobie
identyfikacji rozkazów i danych,
po którym wywietlany jest znak
zachêty. Informuje on o mo-
¿liwoci wpisania ci¹gu znaków,
który nastêpnie zostanie przes³any
do kontrolera wywietlacza. Roz-
poznawane s¹ nastêpuj¹ce sek-
wencje rozkazów i danych:
! - inicjacja sterownika panela,
prze³¹czenie w tryb komunika-
cji czterobitowej, ustawienie
obs³ugi jednej linii o d³ugoci
80 znaków, np. bezporednio
po uruchomieniu programu
wprowadziæ nale¿y ci¹g rozka-
zów: !@0C@01 umo¿liwiaj¹cy
wywietlenie tekstów wprowa-
dzanych w dalszej kolejnoci
z klawiatury;
@hh - dwuznakowa liczba heksa-
decymalna okrelaj¹ca rozkaz
dla kontrolera;
#hh - dwuznakowa liczba heksa-
decymalna okrelaj¹ca dan¹
przes³an¹ do pamiêci kontrole-
ra; sekwencja jest przeznaczo-
na typowo dla definicji zna-
ków u¿ytkownika;
$n - jednoznakowa liczba umo¿li-
wiaj¹ca wywietlenie jednego
z omiu znaków definiowanych
przez u¿ytkownika;
tekst - przes³anie ci¹gu znaków do
pamiêci kontrolera.
Znaki !, @, #, $ s¹ zastrze¿one
i nie powinny byæ u¿ywane w in-
nym kontekcie, ni¿ opisany wy-
¿ej. Próba niew³aciwego ich u¿y-
cia jest sygnalizowana jako b³¹d.
Pozosta³a czêæ ci¹gu znaków,
wystêpuj¹ca po b³êdnym u¿yciu
znaku zastrze¿onego jest ignoro-
wana. Kontroler HD44780 realizu-
je nastêpuj¹ce rozkazy, podzielo-
ne funkcjonalnie na trzy grupy:
1) Rozkazy o znaczeniu trwa-
³ym - po wprowadzeniu okrelone
dzia³anie utrzymuje siê a¿ do
wydania innego rozkazu z danej
podgrupy:
- podgrupa A - organizacja wy-
wietlacza:
@20 - tryb jednoliniowy (stan
po inicjacji);
@28 - tryb dwuliniowy;
- podgrupa B - kontrola wywiet-
lania:
@08 - wygaszenie wywietlacza
(stan po inicjacji);
@0C - w³¹czenie wywietlacza
bez za³¹czenia kursora;
@0D - w³¹czenie wywietlacza
oraz za³¹czenie kursora fun-
kcjonuj¹cego jako pulsowanie
znaku;
@0E - w³¹czenie wywietlania,
oraz za³¹czenie kursora fun-
kcjonuj¹cego jako podkrele-
nie znaku (zale¿y od typu
wywietlacza);
- podgrupa C - sposób wprowa-
dzania znaków:
@04 - kursor przesuwa siê od
pozycji pocz¹tkowej w lewo,
np. @01@87@04<tekst> , po
czym przeskakuje na pozycjê
Rys. 5. Wyprowadzenia sterownika
Hitachi.
54
Elektronika Praktyczna 11/97
30484782.003.png
Mikroprocesorowy system edukacyjny
koñcow¹ linii znikaj¹c
z wywietlacza - aby zoba-
czyæ wprowadzone znaki na-
le¿y kilkukrotnie powtórzyæ
rozkaz @1C , co zobrazuje na
wywietlaczu jednoczenie
koniec ( @CF ) i pocz¹tek linii
( @80 );
@05 - wstawia znak na pozycjê
kursora, przesuwa tekst w pr-
awo, kursor pozostaje przy
tym nieruchomy, np.
@01@87@05<tekst> od lewej
strony wywietlacza pojawia-
j¹ siê koñcowe znaki linii
(ostatni znak - @CF , pierwszy
- @80 );
@06 - kursor przesuwa siê od
pozycji pocz¹tkowej w prawo
(stan po inicjacji), po czym
znika z wywietlacza - aby
zobaczyæ wprowadzone znaki
nale¿y kilkukrotnie powtó-
rzyæ rozkaz @18 , co zobrazu-
je je na wywietlaczu, jed-
noczenie jednak z lewej stro-
ny zniknie pocz¹tek linii;
@07 - wstawia znak na pozycjê
kursora, przesuwa tekst w le-
wo, kursor pozostaje przy
tym nieruchomy, np.
@01@87@07<tekst> .
2) Rozkazy o znaczeniu chwi-
lowym - po wykonaniu nie wp³y-
waj¹ na dalsze dzia³anie kontro-
lera panela:
- inicjacja pamiêci wywietlanych
tekstów:
@01 - kasowanie wywietlacza,
kursor i okno wywietlacza
od pozycji pocz¹tkowej linii
(pozycja @80 );
@02 - kursor i okno wywiet-
lacza od pozycji pocz¹tkowej
linii (pozycja @80 );
- kierunek ruchu kursora lub wy-
wietlanego tekstu:
@10 - przesuwa kursor w lewo
o znak; @14 - przesuwa kur-
sor w prawo o znak;
@18 - przesuwa kursor wraz
z wywietlanym tekstem
w lewo, ods³aniaj¹c kolejne
znaki z prawej strony;
@1C - przesuwa kursor wraz
z wywietlanym tekstem
w prawo, ods³aniaj¹c kolejne
znaki z lewej strony;
- ustawienie pozycji kursora:
@<80h+nn> - dwuznakowa
liczba heksadecymalna po-
wsta³a w wyniku zsumowa-
nia bazy ( 80h ), i przesuniêcia
( nn ), gdzie:
<nn> - liczba heksadecymalna
okrelaj¹ca po³o¿enie kursora
w pamiêci wywietlanych tek-
stów; dla trybu jednoliniowe-
go s¹ dostêpne pozycje kur-
sora z zakresu: nn = 0..4F (80
znaków), wybierane rozkaza-
mi @80 do @CF , natomiast
dla trybu dwuliniowego s¹
dostêpne pozycje kursora:
- pierwsza linia: nn = 0..27 (40
znaków), wybierane @80 do @A7 ;
- druga linia: nn = 40..67 (40
znaków), wybierane @C0 do @E7 ;
np. umieszczenie kursora w ós-
mej pozycji realizuje rozkaz @87 ;
3) Rozkaz definicji znaków
u¿ytkownika:
@<01zzzwww> - dwuznakowa
liczba heksadecymalna zapi-
sana binarnie, okrelaj¹ca do-
stêp do programowanego
wiersza wybranego znaku,
gdzie:
<www> - numer wiersza znaku
(0 do 6);
<zzz> - numer programowane-
go znaku (0 do 7).
Wszystkie bajty danych wpro-
wadzane po tym rozkazie s¹ kie-
rowane do pamiêci znaków defi-
niowanych przez u¿ytkownika -
opuszczenie opcji mo¿liwe jest po
wydaniu rozkazu inicjacji pamiêci
lub ustawienia pozycji kursora
(np. @02 , lub @80 ), np. przyk³ado-
wa definicja znaku zapisanego
binarnie: 01110 - 0Eh, 00001 -
01h, 01111 - 0Fh, 10001 - 11h,
01111 - 0Fh, 00010 - 02h, 00001
- 01h, 00000 - 00h wygl¹da
nastêpuj¹co:
@01$3 - wywietlenie znaku
niezdefiniowanego;
@58#0E#01#0F#11#0F#02#01#00
- definicja znaku;
@81 - opuszczenie opcji defi-
nicji znaku;
@01bl$3d - wywietlenie tekstu
z zdefiniowanym znakiem.
Opis sposobu programowania
kontrolera wywietlacza wydawaæ
siê mo¿e enigmatyczny, jednak ze
wzglêdu na wystêpuj¹c¹ du¿¹ ró¿-
norodnoæ typów, ró¿ni¹cych siê
przede wszystkim organizacj¹,
trudno by³oby w sposób zwiêz³y
przedstawiæ wszystkie aspekty ich
programowania. Z koniecznoci
ograniczono siê do organizacji
jednoliniowej, wychodz¹c z za³o-
¿enia, ¿e organizacja dwuliniowy
w niewielkim stopniu odbiega od
przedstawionej w opisie. Zasadni-
Rys. 6.
cza ró¿nica dotyczy w³aciwie
jednego rozkazu - ustawienia po-
zycji kursora. Pamiêtaæ jednak
nale¿y, aby bezporednio po uru-
chomieniu programu lcd4.exe za-
inicjowaæ kontroler dla trybu
dwuliniowego ci¹giem rozkazów:
!@28@0C@01 .
Z³o¿ony wydawaæ siê mo¿e
sposób opisu niektórych rozkazów
- praktyka autora pokazuje, ¿e dla
efektywnego u¿ycia panela LCD,
jest konieczna znajomoæ rozka-
zów z grupy drugiej (rozkazy
o znaczeniu chwilowym). Rozkazy
z grupy pierwszej maj¹ znaczenie
raczej drugoplanowe, natomiast
rozkaz z grupy trzeciej w praktyce
realizowany jest przez specjalizo-
wan¹ procedurê systemu opera-
cyjnego.
Celem uzupe³nienia nale¿y do-
daæ, ¿e sposób zestawienia kolej-
noci rozkazów realizowanych
przez kontroler wywietlacza zo-
sta³ podyktowany koniecznoci¹
maksymalnego uproszczenia oraz
ujednolicenia opisu. Odbiega on
tym samym od informacji, jakie
znaleæ mo¿na w katalogach firmy
HITACHI lub innych, produku-
j¹cych odpowiednik opisanego ste-
rownika.
Krzysztof Kury³owicz
Elektronika Praktyczna 11/97
55
30484782.004.png
Zgłoś jeśli naruszono regulamin