You are on page 1of 17

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

Ukady mikroprocesorowe.
Przykady rozwiza
Autor: Bartomiej Zieliski
ISBN: 83-7197-702-6
Format: B5, stron: 130

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Ksika prezentuje podstawy konstrukcji urzdze cyfrowych i mikroprocesorowych.


Zawiera ona omwienia wybranych ukadw scalonych maej, redniej i duej skali
integracji oraz liczne przykady ich zastosowa. Pewne zdziwienie czytelnika moe
wprawdzie budzi dobr mikroprocesorw do ilustracji niektrych zagadnie (s to
mikroprocesory 8-bitowe Z-80, 8048 i 8051). Jeeli jednak gbiej przyjrze si
wspczesnym ukadom mikroprocesorowym, okazuje si, e podstawowe techniki
konstrukcyjne -- a takie wanie prezentuje ksika -- mimo upywu 20 lat, pozostay
niezmienione.
W poszczeglnych rozdziaach znajdziesz:
podstawowe waciwoci elektryczne ukadw cyfrowych oraz zasady ich
stosowania;
funkcje wybranych cyfrowych ukadw scalonych maej i redniej skali integracji
oraz rnorodne przykady ich zastosowa;
wyprowadzenia wybranych mikroprocesorw 8-bitowych (Z-80, 8048, 8051) oraz
zasady konstrukcji jednostki centralnej z ich wykorzystaniem;
pamici stae (ROM, PROM, EPROM, EEPROM) oraz statyczne (SRAM) oraz zasady
tworzenia blokw pamici o zadanej organizacji;
pamici dynamiczne (DRAM) oraz zasady tworzenia blokw pamici dynamicznej;
programowalne ukady rwnolegego wejcia-wyjcia (8255, Z-80 PIO) oraz ich
zastosowanie do sterowania klawiatur i wywietlaczem;
programowalne ukady czasowo-licznikowe (8253, Z-80 CTC) oraz ich
zastosowanie do pomiaru zalenoci czasowych;
zasady tworzenia zoonych ukadw wejcia-wyjcia oraz doczania ich do
rnych typw mikroprocesorw.

"
"
"
"
"
"
"
"

Ksika przeznaczona jest dla studentw kierunkw takich, jak informatyka, elektronika
czy automatyka. Moe by rwnie wykorzystana przez uczniw technikw
elektronicznych, a take przez wszystkich zainteresowanych podstawami konstrukcji
sprztu komputerowego.

Przedmowa ..........................................................................................................5
Rozdzia 1. Waciwoci ukadw TTL...................................................................7
Wejcia ukadw TTL.........................................................................................................7
Wejcie zwyke .............................................................................................................7
Wejcie Schmitta ..........................................................................................................8
Wyjcia ukadw TTL.........................................................................................................9
Wyjcie przeciwsobne ..................................................................................................9
Wyjcie z otwartym kolektorem ...................................................................................9
Dobr rezystora dla wyjcia z otwartym kolektorem .................................................10
Wywietlacz 7-segmentowy .......................................................................................12
Wyjcie trjstanowe....................................................................................................13
Typowe parametry ukadw cyfrowych............................................................................13
Przykady...........................................................................................................................14

Rozdzia 2. Funkcje ukadw TTL........................................................................19


Sterowniki wywietlaczy...................................................................................................20
Ukady porwnywania cyfr...............................................................................................20
Komparator 4-bitowy..................................................................................................21
Komparatory 8-bitowe ................................................................................................21
Multipleksery i demultipleksery........................................................................................22
Multipleksery ..............................................................................................................22
Demultipleksery..........................................................................................................24
Kodery i generatory parzystoci........................................................................................25
Kodery priorytetowe 74148 i 74348 ...........................................................................26
Ukady kontroli parzystoci 74180 i 74280 ................................................................26
Ukady czasowe.................................................................................................................27
Ukad 74121................................................................................................................27
Ukad 74123................................................................................................................27
Ukad NE555 ..............................................................................................................29
Przerzutniki .......................................................................................................................30
Ukad 7474..................................................................................................................30
Liczniki..............................................................................................................................31
Liczniki asynchroniczne .............................................................................................31
Liczniki synchroniczne ...............................................................................................32
Bufory i rejestry z wyjciami trjstanowymi ....................................................................35
Bufory .........................................................................................................................35
Rejestry .......................................................................................................................36
Przykady...........................................................................................................................37

Ukady mikroprocesorowe. Przykady rozwiza

Rozdzia 3. Mikroprocesor i jednostka centralna.................................................47


Jednostka centralna Z-80...................................................................................................47
Opis wyprowadze Z-80.............................................................................................48
Buforowanie wyprowadze ........................................................................................49
Generator sygnau zegarowego i ukad zerowania .....................................................50
Ukad pracy krokowej.................................................................................................51
Jednostka centralna 8048 ..................................................................................................52
Opis wyprowadze 8048.............................................................................................52
Buforowanie wyprowadze ........................................................................................54
Doczenie ekspanderw ............................................................................................54
Zwikszenie liczby przerwa......................................................................................56
Ukad pracy krokowej.................................................................................................57
Jednostka centralna 8051 ..................................................................................................57
Opis wyprowadze 8051.............................................................................................59
Buforowanie wyprowadze ........................................................................................60
Doczenie ekspanderw ............................................................................................61
Zwikszenie liczby przerwa......................................................................................61
Ukad pracy krokowej.................................................................................................62

Rozdzia 4. Pamici stae i statyczne .................................................................63


Pamici PROM..................................................................................................................64
Pamici EPROM ...............................................................................................................65
Pamici statyczne RAM ....................................................................................................66
Konstrukcja moduw pamici..........................................................................................68
Przykady...........................................................................................................................68

Rozdzia 5. Pamici dynamiczne.........................................................................79


Przegld ukadw pamici DRAM ...................................................................................79
Przykady...........................................................................................................................80

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia................................................97


Programowalne ukady wejcia-wyjcia ...........................................................................97
Ukad 8255..................................................................................................................98
Ukad Z-80 PIO...........................................................................................................99
Przykady.........................................................................................................................102

Rozdzia 7. Ukady czasowe .............................................................................111


Programowalne ukady czasowe .....................................................................................111
Ukad 8253................................................................................................................111
Ukad Z-80 CTC .......................................................................................................113
Przykady.........................................................................................................................114

Rozdzia 8. Zo.one ukady wejcia-wyjcia ......................................................121


Dodatek A Literatura ......................................................................................129

Rozdzia 6.

Jednostka centralna wyposaona w pamici programu i danych nie tworzy jeszcze


penego systemu mikroprocesorowego. Kady system musi bowiem komunikowa si
z otoczeniem. Komunikacja ta moe by prowadzona szeregowo lub rwnolegle.
Transmisja szeregowa, w ktrej informacja przesyana jest szeregowo bit po bicie,
stosowana jest najczciej do czenia kilku lub wicej ukadw w celu uzyskania
przetwarzania rozproszonego. Natomiast transmisja rwnolega, polegajca na przesyaniu od razu caych bajtw, pozwala m.in. na wyposaenie systemu mikroprocesorowego w ukad komunikacji z uytkownikiem. W najprostszym przypadku ukad taki
zawiera klawiatur i zesp wywietlaczy 7-segmentowych.

Programowalne ukady wejcia-wyjcia


Ukad rwnolegego wejcia-wyjcia mona zbudowa wykorzystujc ukady TTL,
takie jak rejestry i bufory, take z wyjciami trjstanowymi. Obsuga takiego ukadu
wymaga jednak programowego generowania i sprawdzania niezbdnych sygnaw
sterujcych. Oczywicie jest to rozwizanie najprostsze sprztowo, ale pochaniajce
cenny czas mikroprocesora. Ponadto zoony modu moe zawiera nawet kilkanacie
ukadw scalonych. Zamiast nich mona wykorzysta specjalizowane, programowalne ukady duej skali integracji, specjalnie przeznaczone do stosowania w moduach
rwnolegego wejcia-wyjcia. Ukady takie pozwalaj nie tylko na sprztow realizacj sygnaw sterujcych, lecz potrafi take wykonywa szereg dodatkowych
czynnoci, takich jak np. automatyczne wykrywanie zmiany stanu okrelonych sygnaw. Nie trzeba chyba dodawa, jak wpywa to na odcienie mikroprocesora.
Na kolejnym etapie rozwoju ukadw scalonych znajduj si specjalizowane sterowniki okrelonych urzdze, np. stacji dyskietek, dyskw twardych, monitorw itp.
Ukady te wykraczaj poza ramy niniejszej ksiki i nie bd tu omawiane.

98

Ukady mikroprocesorowe. Przykady rozwiza

Ukad 8255
Ukad 8255 firmy Intel jest programowalnym ukadem rwnolegego wejcia-wyjcia.
Jest on wyposaony w dwie grupy wyprowadze, sucych do:
doczenia ukadu do magistrali systemowej,
sterowania urzdzeniami zewntrznymi.

Interfejs systemowy ukadu zawiera nastpujce sygnay:


D0 D7 dwukierunkowa, 8-bitowa magistrala danych z wyjciami

trjstanowymi;
A0 A1 wejcia adresowe ukadu, suce do wyboru jego rejestrw

wewntrznych;
CS wejcie uaktywnienia ukadu, aktywne w stanie niskim;
RD wejcie dania odczytu informacji z ukadu, aktywne w stanie

niskim;
WR wejcie dania zapisu informacji do ukadu, aktywne w stanie

niskim;
RES wejcie zerowania ukadu, aktywne w stanie wysokim.

Interfejs urzdze zewntrznych zawiera trzy dwukierunkowe, 8-bitowe porty wejcia-wyjcia: A, B i C. Porty mog pracowa w kilku trybach, przy czym pewne tryby
jednych portw wymuszaj uycie pozostaych portw w okrelonych trybach.
W trybie 0 prostego wejcia-wyjcia (bez potwierdzenia) moe pracowa
dowolny port. Podczas programowania trybu pracy naley ustali m.in. kierunek
transmisji obowizujcy dla caego portu, przy czym port C moe by podzielony na
dwie poowy, dla ktrych kierunek ten mona ustali indywidualnie. Ukad zapamituje dane wyjciowe, natomiast dane wejciowe nie. Odczyt informacji polega zatem na odczytaniu aktualnego stanu wyprowadze portu.
W trybie 1 jednokierunkowym z potwierdzeniem mog pracowa porty A i B.
Sygnay sterujce dla portw w tym trybie zapewnia port C, tak wic niektrych jego
bitw nie mona wwczas swobodnie wykorzysta. Tryb i kierunek transmisji (wejcie lub wyjcie) mona ustali indywidualnie dla obu portw. Dane wejciowe i wyjciowe s zapamitywane w rejestrach ukadu.
Port A jest jedynym, ktry moe pracowa w trybie 2 dwukierunkowym z potwierdzeniem. Port B moe wwczas pracowa w dowolnym trybie, natomiast port C
zapewnia sygnay sterujce, podobnie jak w trybie 1. Dane wejciowe i wyjciowe
s zapamitywane w rejestrach ukadu.
Znaczenie sygnaw sterujcych w trybach 1 i 2 jest nastpujce:

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

99

IRQ sygna zgoszenia przerwania dla mikroprocesorw (aktywny

w stanie wysokim);
STB wejcie wpisujce dane z urzdzenia zewntrznego do portu

(stan aktywny niski);


IBF (ang. Input Buffer Full) zajto odbiornika; stan aktywny (wysoki)

oznacza, e mikroprocesor nie odczyta jeszcze danych wpisanych przez


urzdzenie;
OBF (ang. Output Buffer Full) zajto nadajnika; stan aktywny (niski)

oznacza, e urzdzenie moe pobra z portu informacj wpisan przez


mikroprocesor;
ACK wejcie potwierdzajce odebranie informacji przez urzdzenie

(stan aktywny niski).


Interfejs urzdze zewntrznych

Rysunek 6.1.
Wyprowadzenia
ukadw 8255
i Z-80 PIO

Interfejs magistrali systemowej

Ukad Z-80 PIO


Ukad Z-80 PIO firmy Zilog jest programowalnym ukadem rwnolegego wejciawyjcia. Podobnie jak 8255 jest on wyposaony w dwie grupy wyprowadze, sucych do:
doczenia ukadu do magistrali systemowej,
sterowania urzdzeniami zewntrznymi.

Interfejs systemowy ukadu zawiera nastpujce sygnay:


D0 D7 dwukierunkowa, 8-bitowa magistrala danych z wyjciami

trjstanowymi;
B / A wejcie adresowe ukadu, suce do wyboru rejestrw wewntrznych

portu A lub B;

100

Ukady mikroprocesorowe. Przykady rozwiza


C / D wejcie adresowe ukadu, suce do wyboru rejestru sterujcego

lub danych portu;


CE wejcie uaktywnienia ukadu, aktywne w stanie niskim;
M1 wejcie sygnau M1 z mikroprocesora;
IORQ wejcie sygnau IORQ z mikroprocesora;
RD wejcie dania odczytu informacji z ukadu, aktywne w stanie

niskim;
IEI wejcie zezwolenia na generacj przerwania;
IEO wyjcie zezwolenia na generacj przerwania;
INT wyjcie zgoszenia przerwania, aktywne stanem niskim;
CLK wejcie zegarowe.

Interfejs urzdze zewntrznych zawiera dwa dwukierunkowe, 8-bitowe porty wejcia-wyjcia: A i B, z ktrych kady jest wyposaony w dwa sygnay sterujce (wyjcie RDY i wejcie STB ). Porty mog pracowa w kilku trybach. Znaczenie sygnaw sterujcych jest zalene od trybu pracy portu.
Tryb 0 jest trybem wyjciowym z potwierdzeniem. Wpisanie danych do rejestru
portu powoduje przejcie sygnau RDY tego portu w stan aktywny (poziom wysoki).
Sygna ten pozostaje aktywny do chwili pojawienia si narastajcego zbocza sygnau
STB , po czym jest zerowany. Jeeli sygna STB nie pojawi si, to RDY zostanie
automatycznie wyzerowane na pocztku kolejnego zapisu danych. Dziki temu podczas operacji zapisu RDY jest zawsze w stanie niskim (nieaktywnym).
Bezporednie poczenie STB i RDY powoduje wygenerowanie impulsu o czasie
trwania rwnym okresowi zegara, podawanego na wejcie CLK. Nie jest wwczas
generowane przerwanie.
Tryb 1 jest trybem wejciowym z potwierdzeniem. Otoczenie zapisuje informacj
do rejestru portu danych za pomoc sygnau STB . Zbocze narastajce tego sygnau
powoduje zgoszenie przerwania oraz przejcie wyjcia RDY w stan niski (brak gotowoci, czyli bufor wejciowy zapeniony). Narastajce zbocze sygnau RD powoduje przejcie RDY w stan wysoki.
Tryb 2 jest trybem dwukierunkowym z potwierdzeniem, przy czym moe w nim
pracowa tylko port A. Sygnay sterujce portu B zabiera si wwczas na potrzeby
portu A, tak wic port B moe pracowa tylko w trybie 3 bitowym. Sygnay sterujce portu A uywane s w operacjach wyjciowych, a portu B w wejciowych.
Poza tym zasady stosowania obu par sygnaw s takie same jak w trybach 1 i 2.
Tryb 3 tzw. bitowy nie wymaga uywania sygnaw sterujcych. W trybie
tym mona m.in. automatycznie sprawdza zadane warunki logiczne. Spenienie

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

101

takiego warunku (przejcie wartoci wyniku funkcji logicznej z 0 na 1) moe


spowodowa generacj przerwania. Tryb ten mona zatem stosowa do sterowania
obiektem, unikajc koniecznoci cigego programowego sprawdzania stanu poszczeglnych sygnaw.
Nieco wikszego komentarza wymaga ukad przerwa, stosowany w ukadach mikroprocesorowych rodziny Z-80. W pewnym sensie mona powiedzie, e ukady te realizuj koncepcj rozproszonego sterownika przerwa. Nie ma tu bowiem potrzeby
stosowania specjalnego ukadu penicego t funkcj.
Okrelenie priorytetw przerwa pochodzcych od poszczeglnych ukadw odbywa
si ju na etapie projektowania systemu mikroprocesorowego. Kady ukad rodziny
Z-80 jest wyposaony w wejcie IEI oraz wyjcie IEO. Su one do kaskadowego
poczenia ukadw w acuch priorytetw (ang. daisy chain1). Ukad o najwyszym
priorytecie ma wejcie IEI stale ustawione na 1, a jego wyjcie IEO steruje wejciem IEI kolejnego ukadu. Wyjcia INT wszystkich ukadw s zwarte i doczone
do wejcia INT mikroprocesora Z-80.
Zamy, e ukady nr 2 i 3 zgaszaj przerwanie. Mikroprocesor generuje cykl przyjcia przerwania, ktry jest dekodowany przez wszystkie ukady na podstawie stanu linii
M1 i IORQ . Ukad nr 1 moe odpowiedzie (jego wejcie IEI ma stan wysoki), ale nie
zgasza przerwania. Dlatego te jego wyjcie IEO jest w stanie wysokim. Ukad nr 2
moe zatem odpowiedzie i rzeczywicie to czyni, gdy zgasza przerwanie. Jego wyjcie IEO przyjmuje wwczas stan niski, zatem ukad nr 3 i ewentualne kolejne ukady
nie mog w tej chwili odpowiedzie na przyjcie przerwania. Ukad nr 2 jest zatem jedynym, ktry odpowiedzia mikroprocesorowi i wysa mu wektor przerwania. Mikroprocesor przechodzi wobec tego do obsugi przerwania od ukadu nr 2.

Rysunek 6.2. Zasada dziaania przerwa w ukadach Z-80 PIO

W dosownym tumaczeniu acuch stokrotek.

102

Ukady mikroprocesorowe. Przykady rozwiza

Przykady
Przykad 1.
Zaprojektowa prosty modu wejcia-wyjcia, zawierajcy cztery rejestry wejciowe
i cztery rejestry wyjciowe. Modu powinien wsppracowa z mikroprocesorem Z-80
i zajmowa adresy: a) FC FFh lub b) 3C 3Fh w przestrzeni wejcia-wyjcia.

Rysunek 6.3. Rozwizanie przykadu 1a

Skoro modu ma zawiera w sumie osiem rejestrw (cztery wejciowe i cztery wyjciowe) i zajmowa tylko cztery komrki w przestrzeni adresowej, to rejestry wyjciowe musz wspdzieli adresy z rejestrami wejciowymi. Od strony programowej
wyglda to tak, jak gdyby pod jednym adresem by zarwno rejestr wejciowy, jak
i wyjciowy. Natomiast w ukadzie cykle odczytu odwouj si fizycznie do innego
ukadu, ni cykle zapisu.
Mikroprocesor Z-80 generuje 8-bitowe adresy w przestrzeni wejcia-wyjcia. Dwie
najmodsze linie adresowe su do wyboru ukadu wewntrz moduu, natomiast pozostae do sprawdzenia, czy adres na magistrali znajduje si w zakresie przeznaczonym dla moduu. Warunek ten naley sprawdza, gdy sygna IORQ jest w stanie
niskim, co oznacza dostp mikroprocesora do przestrzeni wejcia-wyjcia. Dodatkowo mona sprawdza stan sygnau M1 powinien by on w stanie wysokim.
Upewniamy si w ten sposb, e mikroprocesor rzeczywicie zamierza przeprowadzi odczyt lub zapis ukadu wejcia-wyjcia, a nie zamierza realizowa cyklu potwierdzenia przerwania, w ktrym oba te sygnay s aktywne.

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

103

Jeeli adres jest rzeczywicie adresem moduu, to w zalenoci od realizowanego cyklu maszynowego uaktywnia si jeden z demultiplekserw 74139. Jeden z nich wcza ukady wyjciowe, drugi natomiast wejciowe. Wybr konkretnego ukadu odbywa si na podstawie stanu dwch najmodszych linii adresowych mikroprocesora.
Ukady wyjciowe to oczywicie rejestry zastosowano tu ukady 74374, ktre zapamituj informacj w chwili wystpienia zbocza narastajcego sygnau wpisujcego CLK. Umoliwia to sterowanie wej sygnaami aktywnymi w stanie niskim, poniewa mikroprocesor Z-80 utrzymuje dane na magistrali jeszcze przez pewien krtki
czas po przejciu sygnau RD lub WR w stan wysoki. Czas ten wystarcza do zapamitania informacji przez ukad 74374.
Ukady wyjciowe to bufory z wyjciami trjstanowymi. Dlaczego bufory? Ot
przedstawiony ukad nie wykorzystuje jakichkolwiek sygnaw sterujcych ze strony
otoczenia systemu. Nie ma moliwoci zapamitania danych wejciowych w rejestrze, bo nie mona okreli momentu, w ktrym powinno to nastpi. Dlatego te jedynym sposobem odczytania informacji z otoczenia jest wczytanie danych znajdujcych si na wejciach moduu w chwili realizowania cyklu odczytu przez
mikroprocesor. Zamiast buforw mona te zastosowa rejestry 74573, przy czym ich
wejcia wpisujce (C) powinny by w stanie wysokim. W zasadzie ukady te peni
wwczas funkcj buforw.

Rysunek 6.4. Rozwizanie przykadu 1b

Dekoder adresw w wersji b) mona zrealizowa wykorzystujc dwa demultipleksery


74138. Pierwszy z nich sprawdza linie adresowe A2 A4 oraz A7, a take stan sygnaw sterujcych. Ukad jest aktywny, gdy mikroprocesor przeprowadza odczyt lub
zapis przestrzeni adresowej wejcia-wyjcia przy A7 = 0. Wwczas, jeeli wyjcia

104

Ukady mikroprocesorowe. Przykady rozwiza

A2 A4 take s w stanie wysokim, wyjcie Y 7 przyjmuje stan niski. Powoduje to


uaktywnienie drugiego ukadu 74138, o ile A5 = 1 i A6 = 0. Wwczas wybrane
wyjcie tego ukadu przyjmuje stan niski. Wybr wyjcia odbywa si na podstawie
stanu dwu najmodszych linii adresowych oraz sygnau RD . Gdy mikroprocesor realizuje odczyt, wybiera si jedno z wyj Y 0 - Y3 , gdy zapis Y 4 - Y 7 .
Wczenie drugiego demultipleksera nastpuje, gdy okrelone wyjcie pierwszego jest
aktywne. Gdyby zatem wprowadzi moliwo wyboru wyjcia, mona by byo ustawia modu w jednej z omiu przestrzeni adresowych, zalenie od numeru wyjcia
pierwszego demultipleksera, ktre steruje wejciem bramkujcym drugiego ukadu.
Warto zada sobie pytanie, czy pominicie sygnau zapisu nie spowoduje niepodanego uaktywniania si ukadw wyjciowych. Mikroprocesor Z-80 odwouje si do przestrzeni adresowej wejcia-wyjcia tylko w trzech cyklach maszynowych: odczytu, zapisu i potwierdzenia przerwania. Ostatni z nich mona wykluczy, poniewa pierwszy
demultiplekser 74138 jest wwczas nieaktywny. Poniewa realizowany jest zawsze albo odczyt, albo zapis, wystarczy sprawdzi tylko jeden sygna w tym przypadku
RD . Jeeli bowiem cykl maszynowy nie jest cyklem odczytu, to na pewno jest to zapis.
Pozostaa cz moduu pozostaje bez zmian.

Przykad 2.
Zaprojektowa system wejcia-wyjcia, realizujcy zapamitywanie informacji wejciowej i wyjciowej. Ukad powinien informowa mikroprocesor o zapisaniu danych
wejciowych, a otoczenie o ich odczytaniu oraz informowa otoczenie o zapisaniu
nowej informacji, a mikroprocesor o jej odczytaniu. Ponadto modu powinien zapewnia moliwo przesyu danych bez potwierdzenia. Modu powinien wsppracowa z mikroprocesorem 8051 i zajmowa adresy 00 01h w przestrzeni zewntrznej pamici danych. W zadaniu naley rwnie umoliwi pniejsze doczenie
64 KB zewntrznej pamici danych.
Aby mc pniej doczy 64 KB pamici danych, naley wprowadzi do ukadu sygna, umoliwiajcy okrelenie, czy cykl odczytu lub zapisu zewntrznej pamici danych ma si odnosi do pamici, czy te do przedstawionego moduu. Sygna ten jest
na schemacie oznaczony jako M/IO; jego stan wysoki oznacza odwoanie do moduu,
niski za do pamici. W ramach moduu nie okrelono sposobu jego wytwarzania.
Przykadowy sposb rozwizania to uycie wolnej linii ktrego z portw mikroprocesora 8051. Wwczas sygna ten mona atwo zmienia programowo.
Przyjto, e podczas odwoa do rejestrw moduu mikroprocesor generuje adres
8-bitowy. Adres moe by te 16-bitowy, jednak linie A8 A15 nie s uwzgldnione
w dekoderze adresw. Dekoder uaktywnia si, gdy bity A2 A7 s w stanie niskim,
sygna M/IO w wysokim, a mikroprocesor realizuje cykl odczytu lub zapisu zewntrznej pamici danych. Wwczas, zalenie od stanu linii A0 i A1 oraz sygnau
RD uaktywnia si odpowiednie wyjcie drugiego demultipleksera 74138, umoliwiajc zapis lub odczyt danego rejestru.

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

105

Rysunek 6.5. Rozwizanie przykadu 2.

Pod adresem 01h znajduje si zestaw ukadw wejcia-wyjcia, ktre umoliwiaj


transmisj bez potwierdzenia. Dziaaj one tak samo, jak w przykadzie 1. dane
wyjciowe wpisywane s do rejestru 74574, a wejciowe wczytywane s bez zapamitywania przez bufor 74541.
Pod adresem 00h umieszczono zestaw rejestrw realizujcych wejcie-wyjcie z potwierdzeniem. Przesyane dane zawsze zapisuje si do odpowiedniego rejestru. Zapis
pod adres 00h powoduje wpisanie danej do ukadu wyjciowego 74574 oraz wpisanie
0 do przerzutnika 7474. Na skutek tego sygna OBF poprzez stan niski informuje
otoczenie, e w rejestrze wyjciowym s dane do pobrania. Aby je odczyta, otoczenie powinno ustawi sygna RIA w stan niski. Wwczas na wyjciach OA0 OA7
pojawia si zawarto rejestru wyjciowego, a do przerzutnika wpisuje si stan 1.
Powoduje to zgoszenie przerwania INT1 do mikroprocesora.
Otoczenie moe take zapisa dane do ukadu wejciowego. W tym celu ustawia ono
odpowiednio wejcia IA0 IA7, ktrych stan zapamituje si w rejestrze podczas narastajcego zbocza sygnau WIA. Powoduje to wpisanie 0 do przerzutnika, ktry
generuje do otoczenia sygna IBF informujcy o zapenieniu rejestru wejciowego
oraz zgasza przerwanie INT0 do mikroprocesora. Jeeli w procedurze obsugi przerwania mikroprocesor odczyta zawarto rejestru, to do przerzutnika wpisze si 1,
co spowoduje przejcie sygnau IBF w stan niski. Oznacza to, e otoczenie moe zapisa kolejny bajt danych.

106

Ukady mikroprocesorowe. Przykady rozwiza

Przykad 3.
Zaprojektowa modu wywietlania multipleksowanego i klawiatury matrycowej, zawierajcy 64 klawisze i 8 wywietlaczy. Wykorzysta dwa rejestry wyjciowe i jeden
wejciowy.

Rysunek 6.6. Rozwizanie przykadu 3.

Jeden rejestr zawiera adres zaczonego wywietlacza, drugi kod wywietlanej cyfry. Kod ten podaje si bezporednio na wybrany wywietlacz, zatem mona wczy
dowoln kombinacj jego segmentw. Zmiana kodu BCD lub dwjkowego na kod
wywietlacza odbywa si wycznie na drodze programowej. W rejestrze wyboru aktywnego wywietlacza wszystkie bity prcz jednego maj stan 1. Wysterowanie wsplnego wejcia segmentw wywietlacza wymaga zastosowania wzmacniacza tranzystorowego, poniewa prd pyncy przez to wejcie jest zbyt duy dla
wyj ukadw cyfrowych. Jeeli tranzystor jest doczony do wyjcia bdcego
w stanie niskim, to napicie baza-emiter wystarcza do wprowadzenia go w stan nasycenia, co powoduje zaczenie wywietlacza. Napicie na kolektorze jest wwczas
bliskie VCC. Gdy natomiast wyjcie rejestru jest w stanie wysokim, tranzystor znajduje si w stanie odcicia (zatkania) i wywietlacz jest wyczony.
Stan niski na wybranym wyjciu rejestru mona te uy do wyboru sprawdzanej linii
klawiatury. Jest to zatem klawiatura z krcym zerem. Zamy, e wcinity klawisz znajduje si na przeciciu linii Si i Ki, przy czym linia Si jest wybrana na odpowiadajcym jej wyjciu rejestru jest stan niski. Stan ten przenosi si na lini K i
i moe by odczytany przez bufor 74541. Znajc numer linii Si i Ki mona jednoznacznie okreli, ktry klawisz zosta wcinity.

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

107

Doczenie diod do kadego klawisza gwarantuje poprawn prac klawiatury. Gdyby


diod nie byo, mikroprocesor mgby bdnie interpretowa stan klawiatury. Zamy,
e wcinito trzy klawisze, znajdujce si na przeciciu linii Si i Ki, Sj i Ki oraz Sj i Kj.
Pobudzenie linii Si powoduje ustawienie linii Ki w stan niski. Stan ten nastpnie przenosi si przez drugi klawisz na lini Sj, a z niej przez trzeci klawisz na Kj.
W rezultacie mikroprocesor odczytujc stan klawiatury wczyta bajt, w ktrym dwa
bity maj warto 0. Poprawno lokalizacji wcinitego klawisza zaley teraz od
kolejnoci sprawdzania bitw sowa stanu. Jeeli wczeniej sprawdzona bdzie linia Ki, to
mikroprocesor otrzyma par Si i Ki, a wic kod pierwszego klawisza. Gdyby natomiast najpierw sprawdzi lini Kj, otrzyma par Si i Kj, oznaczajc klawisz, ktry nie
by wcinity. Opisany efekt bdnego dekodowania klawiatury matrycowej mona
cakowicie usun przez wczenie diod w taki sposb, by stan aktywny linii przechodzi tylko w kierunku S  K. Kierunek wczenia diod zaley wic od tego, czy
jest to klawiatura z krcym zerem, czy z krc jedynk.
Przedstawiony ukad jest do prosty, wymaga jednak stosunkowo zoonej obsugi
programowej. Do zada mikroprocesora nale tu:
zmiana kodu dwjkowego na kod 1 z n przed zapisaniem do rejestru

wyboru aktywnej linii;


zmiana kodu BCD lub dwjkowego na kod wywietlacza 7-segmentowego

przed zapisaniem do rejestru wywietlanego znaku;


zmiana kodu 1 z n na kod dwjkowy po odczytaniu stanu klawiatury;
sprawdzanie, czy wcinito jakikolwiek klawisz;
dotrzymywanie zadanej czstoci przeczania wywietlaczy i przegldania

klawiatury.
Wszystkie wymienione zadania mona zrealizowa sprztowo, tj. za pomoc odpowiednich ukadw scalonych, take przy uyciu programowalnych ukadw rwnolegego wejcia-wyjcia.

Przykad 4.
Zaprojektowa modu wywietlania multipleksowanego i klawiatury matrycowej, zawierajcy 64 klawisze i 8 wywietlaczy. Alfabet wywietlacza skada si wycznie
z cyfr dziesitnych w kodzie BCD. Wykorzysta ukad 8255 pracujcy w trybie z potwierdzeniami. Ukad powinien wsppracowa z mikroprocesorem 8051 i zgasza
dwa osobne przerwania:
od klawiatury gdy wykryto wcinicie klawisza,
od wywietlacza gdy trzeba zmieni aktywny wywietlacz.

108

Ukady mikroprocesorowe. Przykady rozwiza

Rysunek 6.7. Rozwizanie przykadu 4.

Port PB ukadu 8255 pracuje jako wyjcie. Linie PB0 PB2 poprzez demultiplekser
74139 wybieraj aktywny wywietlacz i pobudzaj klawiatur. Wsplne wejcia wywietlaczy steruje si za porednictwem wzmacniaczy tranzystorowych. Na wyjciach
PB3 PB6 podawany jest kod cyfry do wywietlenia. Dodatkowo najstarszy bit portu
steruje wywietlaniem kropki dziesitnej poprzez bramk wzmacniajc.
Wpisaniu informacji do portu PB towarzyszy automatyczna aktywacja sygnau
OBFB . Powoduje to adowanie kondensatora. Gdy kondensator si naaduje, bramka
Schmitta wytwarza sygna ACKB , informujcy o zuyciu danych portu PB i koniecznoci wpisania nowej informacji. Ukad 8255 generuje sygna przerwania od
portu PB. Odpowiednio dobierajc opnienie w ukadzie mona zatem zmienia czsto odwieania wywietlaczy.
Port PA ukadu pracuje jako wejcie suce do wczytywania stanu klawiatury. Gdy
ukad wykryje wcinity klawisz, jedna z linii Ki przyjmuje stan niski, skutkiem czego wyjcie 8-wejciowej bramki NAND przyjmuje stan wysoki. Na wejciu STBA
pojawia si stan aktywny, a zawarto linii portu PA wpisuje si do rejestru wewntrznego w ukadzie 8255. Po zapamitaniu tej informacji ukad automatycznie generuje sygna przerwania od portu PA. Sygna ten mona wykorzysta w mikroprocesorze 8051 jako zgoszenie przerwania od klawiatury.
Dziki sprztowej realizacji wielu funkcji moduu mikroprocesor musi tylko zmienia
kod 1 z n na kod dwjkowy po odczytaniu stanu klawiatury. Czynno ta jest
wykonywana w procedurze obsugi przerwania klawiatury. Alternatywnie mona

Rozdzia 6. Ukady rwnolegego wejcia-wyjcia

109

zakodowa stan klawiatury uywajc kodera priorytetowego, np. ukadu 74148 lub
74348. Rozwizanie takie jest konieczne, gdy liczba linii Ki przekracza liczb wolnych linii wejciowych portu.

Przykad 5.
Zaprojektowa modu wywietlania multipleksowanego i klawiatury matrycowej, zawierajcy 128 klawiszy i 8 wywietlaczy. Alfabet wywietlacza skada si z 32 znakw. Wykorzysta ukad Z-80 PIO pracujcy w trybie z potwierdzeniami. Ukad powinien wsppracowa z mikroprocesorem Z-80 i zgasza dwa osobne przerwania:
od klawiatury gdy wykryto wcinicie klawisza,
od wywietlacza gdy trzeba zmieni aktywny wywietlacz.

Rysunek 6.8. Rozwizanie przykadu 5.

Aby mona byo sterowa omioma wywietlaczami i pokazywa na nich do 32 rnych znakw, potrzeba 8 linii wyjciowych portu. Oczywicie przeczanie wywietlaczy wymaga zewntrznego dekodowania (ukad 74138) i wykorzystuje 3 najmodsze bity portu. Pozostae bity podaj kod znaku do wywietlenia. Zmian tego
5-bitowego kodu na kod wywietlacza zajmuje si pami PROM (74S188) o organizacji 328. Jest to ukad z wyjciami z otwartym kolektorem, a wic moe sterowa
wywietlaczami bezporednio, o ile prd wiecenia pojedynczego segmentu nie przekracza maksymalnego prdu wyjciowego ukadu w stanie niskim.
Ukad opniajcy wczony midzy linie sterujce portu PB powoduje automatyczn
generacj przerwania od tego portu po upywie zadanego czasu.

110

Ukady mikroprocesorowe. Przykady rozwiza

Jeeli nie mona wykorzysta wicej ni 8 linii wyjciowych do przegldania klawiatury, to ukad musi mie 16 linii wejciowych z klawiatury. Do dyspozycji pozostaje jednak tylko jeden port 8-bitowy. Dlatego te konieczne jest uycie dwch
koderw priorytetowych (74348) poczonych kaskadowo. Wyjcia adresowe ( A 0 - A 2 )
tych ukadw s trjstanowe, mona wic poczy je razem, poniewa s one aktywne tylko wtedy, gdy ukad jest wczony (wejcie EI w stanie niskim), a wrd wej
informacyjnych co najmniej jedno jest aktywne.
Jeli wszystkie wyjcia klawiatury (linie K0 K15) s nieaktywne, to wyjcia adresowe pierwszego ukadu s w stanie wysokiej impedancji, a wyjcie EO przyjmuje stan
niski. Identyczna sytuacja panuje na wyjciach drugiego kodera, zatem wejcie STB
ukadu PIO pozostaje nieaktywne.
Jeli aktywna jest co najmniej jedna linia klawiatury doczona do pierwszego kodera,
to wybiera on lini o najwyszym priorytecie, a jej numer pojawia si na wyjciach
adresowych. Jednoczenie wyjcie EO przyjmuje stan wysoki, co blokuje prac drugiego ukadu. Stan tego sygnau uzupenia te zakodowany numer linii, dziki czemu
mona stwierdzi, z ktrego kodera pochodzi informacja. Wyjcie EO drugiego kodera jest te w stanie wysokim, a wic na wejciu STB ukadu PIO jest stan aktywny.
W zwizku z tym 4-bitowy kod linii klawiatury jest zapamitywany w rejestrze wejciowym ukadu PIO.
Jeeli linie przyczone do pierwszego kodera s nieaktywne, ale aktywna jest co
najmniej jedna linia wejciowa drugiego kodera, to na jego wyjciach pojawia si
numer linii o najwyszym priorytecie. Sygna EO jest w stanie wysokim, co powoduje wpisanie informacji do rejestru wejciowego ukadu PIO. Jest ona uzupeniona
o stan wyjcia EO pierwszego kodera (w tym przypadku jest to stan niski).
Zapamitanie informacji w porcie PA powoduje zgoszenie przerwania od tego portu.
Ukad PIO moe zgasza przerwania od obu portw, o ile zostanie odpowiednio zaprogramowany. Poniewa ukad ma tylko jedno wyjcie zgoszenia przerwania, rozrnienie ich odbywa si dopiero w trakcie cyklu potwierdzenia przyjcia przerwania
przez mikroprocesor na podstawie wektora przerwa, ktry PIO przekazuje mikroprocesorowi.

You might also like