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
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
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
Plik z chomika:
lucastg1
Inne pliki z tego folderu:
1.pdf
(399 KB)
17_20.pdf
(102 KB)
21_22.pdf
(248 KB)
24_27.pdf
(203 KB)
30_36.pdf
(468 KB)
Inne foldery tego chomika:
01.97
02.97
03.97
04.97
05.97
Zgłoś jeśli
naruszono regulamin