Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
Ukady mikroprocesorowe.
Przykady rozwiza
Autor: Bartomiej Zieliski
ISBN: 83-7197-702-6
Format: B5, stron: 130
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 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 6.
98
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.
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:
99
w stanie wysokim);
STB wejcie wpisujce dane z urzdzenia zewntrznego do portu
Rysunek 6.1.
Wyprowadzenia
ukadw 8255
i Z-80 PIO
trjstanowymi;
B / A wejcie adresowe ukadu, suce do wyboru rejestrw wewntrznych
portu A lub B;
100
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
101
102
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.
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.
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.
104
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.
105
106
Przykad 3.
Zaprojektowa modu wywietlania multipleksowanego i klawiatury matrycowej, zawierajcy 64 klawisze i 8 wywietlaczy. Wykorzysta dwa rejestry wyjciowe i jeden
wejciowy.
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.
107
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
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
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.
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
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.