Mikrokomputer 8051 cz.1.pdf
(
647 KB
)
Pobierz
46968307 UNPDF
Projekty AVT
Mikrokomputer
edukacyjny z 8051
„Przygnieceni” olbrzymią ilością lis−
tów od Czytelników, gorąco zainte−
resowanych tematem nauki progra−
mowania procesorów 8051 posta−
nowiliśmy nieco wyprzedzić teorię
przedstawianą w cyklu artykułów
„Mikrokontrolery? To takie pros−
te...” i opublikować praktyczny
układ podstawowego systemu mik−
roprocesorowego, który będzie ba−
zą sprzętową podczas przyszłych
lekcji nauki pisania programów na
‘51−kę. Wyprzedzenie ma też na ce−
lu danie odpowiedniej ilości czasu
Czytelnikom na
zmontowanie i uruchomienie pre−
zentowanego urządzenia, tak że
w momencie rozpoczęcia praktycz−
nych lekcji programowania, każdy
krok prezentowany przez autora
w artykule będzie można spraw−
dzić w praktyce na „pierwszym
własnym systemie mikroproceso−
rowym, zmontowanym w domo−
wym zaciszu...”.
Zaprojektowany przez autora i spraw−
dzony w redakcyjnym laboratorium „sys−
temik” nazwany przez nas bez przesady
„mikrokomputerkiem” będzie podstawą
przy nauce programowania procesorów
8051. Dzięki niemu i zawartemu w nim
programowi zwanemu dalej „moni−
torem” początkujący w dziedzinie proce−
sorów będą mieli możliwość stawiania
pierwszych kroków w pisaniu własnych
mniej lub bardziej złożonych aplikacji. Mo−
nitor pełni bardzo podobną rolę jak BIOS
w prawdziwym rasowym komputerze PC
lub każdym innym, czyli pozwala na ko−
munikowanie się procesora z zewnętrzny−
mi układami dołączonymi do niego. W na−
szym przypadku będą to podstawowe
„więzi” łączące 8051 z nami, czyli: kla−
wiatura i wyświetlacz, oraz z kompute−
rem (np. PC) : złącze transmisji szerego−
wej w standardzie RS232c.
Stworzony przez autora „monitor” i za−
warte w artykułach przykłady programo−
wania umożliwią także naukę osobom nie
mającym w domu komputera. Każdy jed−
nak musi sobie zdać sprawę, że chcąc po−
siąść głębszą wiedzę n.t. mikroproceso−
rów, wcześniej czy później takowy sprzęt
chociażby w postaci poczciwego PC−XT
(obecnie spotykany jedynie w muzeach,
wersja PC−AT do nabycia na giełdach za
kilkadziesiąt zł) trzeba będzie nabyć.
Przy projektowaniu autor kierował się
maksymalnym uproszczeniem całej kon−
strukcji do niezbędnego minimum, po−
zwalającego jednak na swobodne „sur−
fowanie” po ‘51−ce, z wykorzystaniem
wszystkich jego możliwości, opisywa−
nych w cyklu teoretycznym w EdW.
Niemałe znaczenie miało tu też zminima−
lizowanie kosztów. Niestety nie udało się
nie przekroczyć bariery kilkudziesięciu
złotych, lecz ten jednorazowy poniesiony
wydatek w przyszłości z pewnością przy−
niesie wymierne efekty, czego najlep−
szym przykładem jestem ja – wasz autor.
„...Bo wszystko zaczęło się dawno temu
od tego, kiedy zmontowałem właśnie ta−
ki systemik.....”, a teraz chcę Wam, dro−
dzy Czytelnicy, go zaprezentować.
I jeszcze jedna uwaga. Być może dla
niektórych z Was prezentowany układ
wyda się bardzo skomplikowanym i np.
nie zrozumiecie wszystkiego o czym na−
piszę, nie przejmujcie się tym. Mogę za−
pewnić, że wszystkie opisane w układzie
elementy „przetrawiać” będziemy jesz−
cze niejednokrotnie, toteż z pewnością
w trakcie mającego się już niedługo roz−
począć kursu programowania, wyjaśnicie
sobie wiele rzeczy, co do których może−
cie mieć wątpliwości. Ja hołduję zasa−
dzie, że „najlepszą nauką jest praktyka...,
a tej jest najwięcej w elektronice, wierz−
cie mi. Dlatego prezentowany mikrokom−
puterek będzie niezbędny każdemu
z Was, kto zechce poznać tajniki progra−
mowania procesorów ‘51, a w przyszłoś−
ci także wielu innych.
Opis układu
Schemat blokowy całego systemu mik−
roprocesorowego przedstawia rysunek 1.
Układ elektryczny naszego komputerka
składa się z dwóch części. Pierwsza cześć
to zestaw – płytka składająca się z proceso−
ra, zewnętrznych pamięci programu i da−
nych, dekodera adresowego oraz dodatko−
E
LEKTRONIKA DLA WSZYSTKICH 8/97
7
Projekty AVT
Rys. 1. Schemat blokowy urządzenia
plikowany schemat nie jest tak straszny, jak
się za chwile okaże. Przypominam jeszcze
raz że analizę możesz rozpocząć pod wa−
runkiem że zapoznałeś się z IV cz. artykułu
z serii „Mikrokontrolery..., to takie proste”
zamieszczonym w tym numerze EdW.
Sercem całego urządzenia jest znany
Ci już mikrokontroler 80C51 – U1. W na−
szym układzie można także z powodze−
niem zastosować opisywaną już wersję
80C52, lub obie starsze wersje wykona−
ne w technologii HMOS (8051/8052).
Popatrzmy, z lewej strony u góry widzi−
my znajomy układ zewnętrznego obwodu
rezonatora kwarcowego X1 wraz z kon−
densatorami C3 i C4. Znaczenie tych ele−
mentów już znasz. Nieco niżej widać układ
„resetu” złożony z elementów C1−S1 oraz
dodatkowo R1 i D1. Klawisz S1 służy do
ręcznego resetowania całego komputer−
ka, jego wciśnięcie powoduje zwarcie
końcówki RESET procesora U1 do plusa
zasilania, co w efekcie prowadzi do jego
skasowania. Dodatkowa bramka NAND
U6d wyprowadza ten sygnał lecz zanego−
wany na złącze systemowe CONN1, które
nie jest pokazane na schemacie z rysunku
2 dla zwiększenia czytelności rysunku.
Opis tego złącza oraz dodatkowych złącz
znajdujących się na płytce drukowanej
przedstawimy w części opisującej montaż
układu. Końcówki 12...15 procesora oraz
cały port 1 (końc. 1...8) pozostają niedołą−
czone w celu dowolnego wykorzystania
w naszych przyszłych aplikacjach.
Teraz spójrzmy na prawo od mikrokon−
trolera. Widać tu znany już Czytelnikom
układ zatrzasku adresowego U2, w roli
którego pracuje zachwalany przez autora
kursu 74HCT574 (lub LS). Dalej mamy
dołączona zewnętrzną pamięć programu
w postaci EPROM – U3 o pojemności
8kB (27C64). Dołączenie końcówek adre−
sowych A0...A12 danych D0...D7 oraz
sygnału odczytu /PSEN wydaje się być
jasne. Końcówki tej pamięci o numerach
1 i 27 są wykorzystywane jedynie przy
programowaniu pamięci EPROM (w od−
powiednich programatorach) i przy nor−
malnym użyciu układu powinny zawsze
być zwarte do plusa zasilania (+5V).
Zanim wyjaśnię sposób dołączenia we−
jścia /CE pamięci U3, przyjrzyjmy się ukła−
dowi U5 – który w naszym układzie pełni
rolę dekodera adresowego. Mniej wtajem−
niczonych w technikę cyfrową uspokajam,
że temat ten poruszymy przy okazji kursu
programowania procesorów 8051. Jako
U5 pracuje zwykły dekoder 1 z 8, którego
wejścia wyboru A,B,C (piny 1,2,3) dołączo−
ne są do trzech najstarszych linii adreso−
wych A13, A14, A15. W ten sposób w za−
leżności od adresu jaki wystawia mikropro−
cesor na końcówki portów będzie uaktyw−
nione jedno z wyjść dekodera (logiczne
„0”) uaktywniając tym samym układ dołą−
czony do jego wyjścia. W tabellii 1 przedsta−
wiono zakresy adresów i odpowiadające
im, aktywne wyjścia dekodera.
Jak widać cała 64 kilobajtowa prze−
strzeń adresowa procesora U1 została
podzielona na 8 części po 8kB, które są
wybierane właśnie za pomocą 3 najstar−
szych linii adresowych i dekodera U5.
wych układów: resetu i układu współpracy
z portem szeregowym komputera PC.
Druga płytka to moduł zawierający 8−po−
zycyjny wyświetlacz 7−segmentowy, 18−
klawiszowa klawiaturę wraz z układami de−
kodującymi i dopasowującymi do współ−
pracy z procesorem 8051. Obie części opi−
szemy oddzielnie. Tak więc zaczynamy.
Płytka bazowa
Schemat elektryczny płytki bazowej za−
wierającej mikroprocesor przedstawiono
na rysunku 2. Tu proszę Czytelników o cier−
pliwość i spokój, ten na pozór dość skom−
Rys. 2. Schemat elektryczny płytki bazowej
8
E
LEKTRONIKA DLA WSZYSTKICH 8/97
Projekty AVT
Jak się zaraz okaże w każdej z tych
części pracuje odrębny układ komputer−
ka, a dzięki kilku zworom można łatwo
zmienić przydzielony mu adres.
boru /CE układu U4 spowoduje jego uak−
tywnienie).
A do jakiego adresu pamięć będzie ob−
sługiwana? Otóż w przypadku pamięci
32kB oczywiście do adresu maksymalne−
go, czyli FFFFh. Kiedy zaś włożymy
w podstawkę jako U4 kostkę SRAM
6264 (8kB), adresem końcowym będzie
8000h + 8kB, czyli z prostego rachunku:
9FFFh (każde 2000h to przecież dziesięt−
nie 8192, czyli 8kB).
Zaraz, zaraz,...ale przecież np. dla adre−
su A000h linia A15 też będzie uaktywniała
tę pamięć SRAM, co wtedy? Tak moi dro−
dzy, wtedy adres zostanie tzw. „prze−
winięty”, czyli począwszy od adresu
A000h będą od początku odczytywane ko−
lejne komórki pamięci tak jak spod adresu
8000h. Zauważmy że to samo będzie dla
adresu C000h i E000h. Można powiedzieć
że w przestrzeni adresowej powyżej
8000h pamięć U4 o pojemności 8kB wi−
dziana jest w naszym układzie jako cztery
jednakowe kopie – często nazywane „lus−
trami”. Nie jest to bynajmniej wada i jest
charakterystyczne w przypadkach kiedy
mamy do czynienia z prostymi dekodera−
mi adresu, takimi jak nasz układ U5.
Pamiętajmy że sytuacja ta dotyczy tyl−
ko pamięci 6264, zaś dla kości 32kB
(62256) każda z 32768 komórek jej pa−
mięci jest reprezentowana przez oddziel−
ny adres z zakresu 8000h...FFFFh.
Bramki U6a i U6b realizują iloczyn lo−
giczny sygnałów /RD (odczytu z ze−
wnętrznej pamięci danych) i sygnału
/PSEN (odczytu z zewnętrznej pamięci
programu) – patrz artykuł na str. 40. Dzię−
ki temu pamięć U4 może pracować jako
pamięć danych lub pamięć do wykony−
wania programów napisanych przez Cie−
bie drogi Czytelniku, a zapisywanych
ręcznie za pomocą klawiatury i wyświet−
lacza, lub ładowanym z komputera PC.
Na płytce drukowanej przewidziano moż−
liwość „ograniczenia” pracy pamięci U4 do
trybu jako „tylko pamięci danych”. Do tego
celu służy zwora Z, która dołącza sygnał /RD
procesor U1 bezpośrednio do wejścia pa−
mięci U4 – /OE. W tym jednak przypadku
należy dodatkowo odizolować (np. przez od−
gięcie nóżki 6 U6) wyjście bramki U6b.
Tryb ten nie będzie jednak wykorzysty−
wany w naszym kursie programowania,
a jedynie ma uelastycznić cały układ
i przygotować go na wyzwania, jakie
z pewnością postawisz przed nim, drogi
Czytelniku, w przyszłości.
Pozostał do omówienia układ U7, któ−
ry pełni rolę konwertera napięć o pozio−
mach logicznych TTL (+5V, 0V) na pozio−
my zgodne ze standardem transmisji sze−
regowej RS232 (−12V, +12V), wykorzysty−
wanej w komputerach PC, np. w typo−
wym gnieździe dla myszki. Nie będę się
wgłębiał w teorię i sposób działania tej
Wykaz ellementów
Płytka bazowa (AVT−2250/1)
Rezystory
R1: 8,2k
R2: 220...330
Kondensatory
C1, C7...C11: 10uF/16V
C2, C5, C6: 100nF
C3, C4: 30...33pF
Półłprzewodniikii
U1: 80C51 (80C52)
U2: 74HCT573 (LS573)
U3: 27C64 EPROM
U4: 6264 (62256) SRAM
U5: 74HCT138 (LS138)
U6: 74HCT00 (LS00)
U7: MAX232 (ICL232)
D1: 1N4148
LD1: LED dowolna
Pozostałłe
X1: Q 11,0592 MHz
L1: 220...330 uH dławik
S1: mikroswicz
Z1: złącze DB9M do druku
Z2: ARK2
JP1, JP2, JP4: złącze typu „goldpin” 1x3
JP3: jak wyżej, lecz 2x3
Z: jak wyżej, lecz 1x2
listwa „goldpin” 2x40 i 2x5 po 1 szt.
jumpery – 4 szt.
podstawki pod układy scalone
płytka drukowana AVT−2250/1
Płytka wyświetlacza i klawiatury
(AVT−2250/2)
Rezystory
R2...R9: 390
R10...R17: 6,8k
R18: 33k
R19...R23: 10k (8,2k...11k)
R24...R31: 68
Kondensatory
C6: 1uF stały
C7, C8, C10...C12: 100nF
C9: 47uF/10V
Półłprzewodniikii
U8: 74HCT574 (LS574)
U9: 74HCT123
U10: 74HCT175 (LS175)
U11: 74HCT27 (LS27)
U12: 74HCT125 (LS125)
U13: 74HCT02 (LS02)
U14: ULN2803A
U15: 74LS145
T1...T8: BC328
D2...D17: 1N4148 lub podobna
DL1...DL8: LTS2801 (w.anoda)
lub odpowiednik
Pozostałłe
X1: Q 11,0592 MHz
K1...K18: mikroswicz
JP6: listwa typu „goldpin” 1x3
listwa „goldpin” 2x8 – 1szt.
jumper – 1szt.
podstawki pod układy scalone
płytka drukowana AVT−2250/2
Tabela 1
A15,,A14,,
adres
aktywne
A13
wyjjściie
0, 0, 0 0000h...1FFFh
Y0
0, 0, 1 2000h...3FFFh
Y1
0, 1, 0 4000h...5FFFh
Y2
0, 1, 1 6000h...7FFFh
Y3
1, 0, 0 8000h...9FFFh
Y4
1, 0, 1 A000h...BFFFh
Y5
1, 1, 0 C000h...DFFFh
Y6
1, 1, 1 E000h...FFFFh
Y7
Dwa pierwsze obszary po 8 kB przydzie−
lono zewnętrznej pamięci programu (U3−
EPROM). Zworka JP1 określa który z nich
jest aktywny. Wprowadzono ja po to aby
rozszerzyć możliwości naszego komputer−
ka o tryb pracy procesora z wewnętrzną
i zewnętrzną pamięcią programu. Zagadnie−
niem tym zajmiemy się dokładnie przy innej
okazji, kiedy już poznacie możliwości syste−
miku podczas nauki programowania.
Kolejne cztery obszary (po 8kB) nazwa−
no umownie jako IO1...IO4. Pierwszy
i drugi z nich (IO1 i IO2) wykorzystywane
są do uaktywnienia płytki wyświetlacza
i klawiatury. Pojawienie się logicznego „0”
(przy stanie linii adresowych wg. tabeli 1)
na wyjściu dekodera IO1 spowoduje uak−
tywnienie sekcji wyświetlacza, natomiast
wyjście IO2 uaktywnia klawiaturę umożli−
wiając tym samym jej odczyt.
Dwa ostanie wyjścia dekodera dołą−
czono do jumpera JP3, dzięki któremu
możliwe jest odpowiednie, w zależności
od potrzeb, skonfigurowanie zewnętrznej
pamięci danych której rolę pełni układ
U4. W naszym układzie przewidziano
możliwość zastosowania dwóch typów
pamięci najbardziej rozpowszechnionych
na rynku o pojemnościach 8kB (typ 6264)
i 32kB (typ 62256). W zależności od tego
którą z nich zastosujemy należy odpo−
wiednio za pomocą jumpera JP2 dołą−
czyć wyprowadzenie 26 tego układu do
plusa zasilania (dla 6264) lub do lini−
i adresowej A13 (dla 62256).
Dodatkowo na jumper JP3 doprowa−
dzono zanegowany sygnał z linii najstar−
szej adresowej A15. Linia ta decyduje
przecież o tym czy obsługiwana jest
część pamięci o adresach 0000h...7FFFh
(pierwsze 32kB, A15=0), czy druga
8000h...FFFFh (drugie 32kB, A15=1). Je−
żeli teraz zewrzemy za pomocą jumpera
JP3 wejście wyboru SRAM U4 z tą linią
to zauważmy że pamięć ta będzie obsłu−
giwana (zapisywana lub odczytywana)
począwszy od adresu 8000h (A15=1, −>
zanegowane przez U6c daje w efekcie
logiczne „0” to podane na wejście wy−
Uwaga::
W ofercie handlowej znajdują się
oddzielnie zestawy: AVT−2250/1 – „płytka
bazowa” oraz AVT−2250/2 – „płytka klawia−
tury i wyświetlacza”. Oba można nabyć na
ogólnych zasadach sprzedaży kitów AVT.
części, wystarczy wiedzieć że jeden
„scalak” (MAX232) oraz kilka „elek−
trolitów” (C7...C9) zamienia te poziomy,
umożliwiając tym samym prawidłową
E
LEKTRONIKA DLA WSZYSTKICH 8/97
9
Projekty AVT
transmisję pomiędzy naszym systemem
a komputerem wyposażonym w gniazdo
RS232. Dodatkowy dławik L1 zapobiega
przedostawaniu się zakłóceń z układu U7
do szyny zasilającej nasz mikrokompute−
rek. Kondensator C11 dodatkowo filtruje
napięcie zasilające konwerter. Jego wy−
jście połączone jest do typowego gniazda
9−pinowego, co umożliwia bezproblemo−
we połączenie z PC tem za pomocą typo−
wego kabla, którego opis przedstawimy
w kolejnym odcinku.
gicznego „0” na jednym z wyjść tego
układu powoduje załączenie odpowied−
niego tranzystora i w konsekwencji zasi−
lenie jednej z ośmiu pozycji wyświetla−
cza. Rezystory w bazach wszystkich tran−
zystorów odpowiednio polaryzują je. Trzy
najmłodsze wejścia dekodera U15 dołą−
czone są do 4−bitowego zatrzasku U10
(74LS175). Zadaniem tego ostatniego
jest zapamiętanie jednej z ośmiu pozycji
wyświetlacza, w tym celu wejścia D1,
D2, D3 układu U10 dołączone są bezpo−
średnio do szyny danych mikroprocesora
– do 3 najmłodszych jej bitów (D0...D2).
Zauważmy teraz że jeżeli procesor za−
adresuje obszar o adresie 4001h (patrz
rys.2) uaktywniony zostanie sygnał IO1
z dekodera adresowego U5, przyjmując
logiczne „0”. Dodatkowo przy zapisie
przez procesor sygnał /WR przyjmie stan
„0”, co w efekcie spowoduje pojawienie
się tego na wejściu 3 bramki U11b. We−
jście 4 tej bramki tez będzie w stanie „0”
bo IO1=0, natomiast za pośrednictwem
linii A0, której stan (dla adresu 4001h)
jest równy „1” a poprzez bramkę U11c
jest negowany, wejście 5bramki U11b
także będzie w stanie logicznego „0”.
W efekcie na wyjściu 6 tej bramki pojawi
się logiczne „1”, co po podaniu na we−
jściu CLK U10 spowoduje zapisanie w za−
trzasku 3 najmłodszych bitów które
określą zapalaną pozycję wyświetlacza.
Trudne? Jeżeli tak, radzę przeczytać cier−
pliwie ten fragment jeszcze raz.
Sprawę pozycji wyświetlacza mamy
z głowy, do szczęścia, a raczej do „zapale−
nia” znaku pozostaje nam odpowiednie wy−
sterowanie segmentów A...G oraz kropki
(nazywanej w przyszłości segmentem H lub
DP). Realizowane to jest za pośrednictwem
układu U8 (74HCT574) który steruje ukła−
dem wykonawczym U14 – ULN2803. Wy−
jścia tego ostatniego dołączone są poprzez
rezystory ograniczające prąd do segmen−
tów wszystkich pozycji na raz.
Układ U8 jest 8−krotnym zatrzaskiem,
aktywowanym (w odróżnieniu do
74HCT573) dodatnim zboczem sygnału
podanego na jego wejście CLK. Zapis ak−
tualnej cyfry – czyli kombinacji 0 i 1 w ko−
lejności odpowiadającej ułożeniu segmen−
tów na wyświetlaczu odbywa się bardzo
podobnie jak w przypadku zapisu numeru
pozycji. Różnica polega na tym że przy za−
pisie mikroprocesor powinien podać adres
4000h, czyli z wyzerowaną linią adresowa
A0. W konsekwencji tego na wejściach
bramki U11a pojawią się logiczne zera, bo:
– sygnał A0=0 bo adres = 4000h
– sygnał /WR=0 bo procesor zapisuje
– sygnał IO1=0 bo dla adresu 4000h wy−
jście dekodera U5 (rys.2) IO1 jest =0.
W efekcie na wyjściu bramki U11a po−
jawi się logiczna „1”, której dodatnie zbo−
cze zapisze w rejestrze U8 stan lini−
i danych D0...D7, określających w tym
momencie cyfrę lub znak zapalany na wy−
świetlaczu. Kolejność bitów i odpowiada−
jąca im segmenty są następujące:
bity:
7-6-5-4-3-2-1-0
segmenty:
H-G-F-E-D-C-B-A
Dzięki temu upraszcza się kodowanie
poszczególnych cyfr czy symboli pokazywa−
Płytka wyświetlacza
Do tej części układu dochodzą, jak wi−
dać z rysunku 2, sygnały szyny danych
D0...D7, oraz dodatkowe: odczytu i zapisu:
/RD i /WR, oraz sygnały uaktywniające:
IO1 (wyświetlacz) i IO2 (klawiaturę). Spój−
rzmy na nieco skomplikowany sprzętowo
schemat ideowy tej części przedstawiony
na rysunku 3. Nie bój się drogi Czytelniku,
„nie taki diabeł straszny, jak go... rysuje
autor!”. Jak się za chwilę przekonasz dzia−
łanie tej części nie jest tak skomplikowa−
ne, jak to wygląda na pierwszy rzut oka.
Wyświetlacz jak i klawiatura pracują
w trybie multipleksowania, czyli w jednej
chwili aktywny jest tylko jeden wyświet−
lacz oraz możliwe jest zbadanie tylko jed−
nej sekcji klawiatury.
Zacznijmy od wyświetlaczy. Anody
DL1...DL8 zasilane są poprzez tranzysto−
ry PNP T1...T8 za pośrednictwem wyjść
dekodera 1 z 10 U15, w roli którego pra−
cuje znany dobrze z domowego podwór−
ka układ TTL 74LS145. Pojawienie się lo−
Rys. 3. Schemat elektryczny płytki wyświetlacza i klawiatury
10
E
LEKTRONIKA DLA WSZYSTKICH 8/97
Projekty AVT
nych na wyświetlaczu, np. dla zapalenia cyf−
ry „4” trzeba podać na szynę danych bajt:
01100110 (binarnie), prawda że proste !
No dobrze ale po co jest ten generator
monostabilny zbudowany z wykorzysta−
niem połówki układu U9? Otóż jest to
proste zabezpieczenie wyświetlaczy
przez „przeciążeniem” w wypadku za−
wieszenia się procesora lub ewentualnie
nieprawidłowej obsługi przez wykonanie
błędnego programu. Zauważmy wszak−
że, ze wartość rezystorów w segmen−
tach: R24...R31 jest bardzo mała, lecz ko−
nieczna ze względu na to że każda pozy−
cja świeci się tylko przez 1/8 całego okre−
su. Jeżeli teraz np. w sytuacji awaryjnej
procesora, wyświetlacz po prostu
„stanie” – tzn. że będzie aktywna na sta−
łe jedna i ta sama jego pozycja, to dość
duży prąd segmentów może przegrzać
struktury LED i w konsekwencji je uszko−
dzić, a tego byśmy nie chcieli.
Dlatego właśnie wprowadzono uni−
wibrator U9a. Jego wyjście /Q połączone
jest z najstarszym wejściem „D” dekode−
ra załączania pozycji U15. Jeżeli procesor
pracuje normalnie, to sekwencyjnie zapi−
suje do rejestru segmentów U8 odpo−
wiednie dane, co w efekcie powoduje
pojawianie się impulsów wyzwalających
U9a na jego wejściu
B. Konsekwencją tego jest generowa−
nie z podtrzymywaniem impulsu niskiego
przez ten uniwibrator. To powoduje akty−
wację jednego z 8−miu pierwszych wyjść
dekodera U15 i zapalanie kolejnych pozy−
cji wyświetlacza.
Jeżeli oczywiście procesor przestanie
to robić odpowiednio często (u nas 512
razy na sekundę) generowany impuls po
bardzo krótkim czasie ustalonym wartoś−
cią elementów R18 i C6, się skończy, na
wyjściu /Q U9a pojawi się logiczna „1”,
czyli wszystkie pozycje zostaną natych−
miast wygaszone. Dodatkowa zwora JP6
umożliwia odłączenie tej funkcji i perma−
nentne uaktywnienie dekodera pozycji
U15 poprzez zwarcie wejścia D do masy
(czego nie zalecam robić, szczególnie
podczas uruchamiania układu lub pierw−
szych kroków w programowaniu). Oczy−
wiście w przypadku rezygnacji z poży−
tecznych usług uniwibratora U9, montaż
tego układu w płytce jest zbędny.
Pozostaje sprawa odczytu klawiatury.
Można powiedzieć ogólnie że klawisze są
odczytywane parami w tych samych mo−
mentach kiedy uaktywniona jest jedna z oś−
miu pozycji wyświetlacza. Popatrzmy przez
chwilę na schemat elektryczny (rysunek 3).
Załóżmy że procesor zapisał znak do
rejestru U8, po czym zapalił np. pozycję
2 wyświetlacza – aktywna końcówka
2 U15, to na linii dołączonej do tego wy−
jścia dekodera U15 panuje logiczne „0”.
Teraz procesor podając na szynę adreso−
wą adres 6000h powoduje uaktywnienie
wyjścia dekodera adresowego U5 (patrz
rysunek 2) oznaczonego jako IO2. Na je−
go wyjściu pojawia się „0”. Wraz z nade−
jściem sygnału żądania odczytu przez
procesor, sygnał /RD także przyjmie po−
ziom „0”, co w konsekwencji spowoduje
pojawienie się logicznej jedynki na wy−
jściu bramki U13b, a po zanegowaniu
przez U13a, spowoduje uaktywnienie
trójstanowych bramek zawartych w ukła−
dzie U12, które „przeniosą” stany linii do−
łączonych do wejść tych bramek. Dzięki
rezystorom R19, R20, R22, R23 przy nie
naciśniętym żadnym klawiszu na wy−
jściach pojawią się logiczne „1”−ki które
za pośrednictwem linii D0...D3 szyny da−
nych odczytane zostaną przez procesor.
Teraz jeżeli np. naciśniemy klawisz „9”,
zwieramy tym samym poprzez diodę we−
jście bramki U12a. Na jej wyjściu pojawi
się także „0” co odczyta procesor i stwier−
dzi naciśnięcie klawisza. U1 dzięki znajo−
mości, która aktualnie pozycja wyświetla−
cza jest aktywna, może łatwo obliczyć po−
zycję naciśniętego klawisza i stwierdzić że
był to klawisz K10. Kwestią umowną i le−
żącą w rękach programisty jest nadanie
mu akurat cyfry „9”. Tak dzieje się dla po−
zostałych klawiszy dołączonych sekcjami
do wyjść dekodera U15. Trochę bardziej
uprzywilejowany odczyt mają dwa specjal−
ne klawisze K17 i K18. Zauważmy że przy
każdym odczycie klawiatury przez proce−
sor U1, niezależnie od aktualnie aktywnej
kolumny wyświetlacza, procesor może
stwierdzić fakt naciśnięcia jednego z tych
klawiszy (lub obu naraz), odczytując stan li−
nii D3 i D4 szyny danych.
Ta dodatkowa możliwość odmiennego
odczytu klawiszy M i OK będzie potrzeb−
na przy okazji nauki programowania.
Zastosowane diody D2...D17 mają za
zadanie zapobiec błędnemu wyświetla−
niu informacji na wyświetlaczu w przy−
padku naciśnięcia kilku klawiszy na raz,
co jest efektem zwarcia kilku wyjść deko−
dera U7 ze sobą (przy braku tych diod
oczywiście).
Jeżeli przebrnąłeś drogi Czytelniku
przez ten wyczerpujący opis i rozumiesz
jak działa moduł wyświetlacza i klawiatu−
ry, to dobrze! Jeżeli nie, to przeczytaj ar−
tykuł jeszcze raz następnego dnia, sięga−
jąc w razie potrzeby do katalogów ukła−
dów serii TTL. Sądzę że nie będzie to jed−
nak potrzebne.
Słławomiir Surowiińskii
*
Opis montażu systemu zostanie opub−
likowany w następnym numerze EdW.
E
LEKTRONIKA DLA WSZYSTKICH 8/97
11
Plik z chomika:
kormoran55
Inne pliki z tego folderu:
Programiki do elektroniki(1).rar
(53207 KB)
altium designer.pdf
(449477 KB)
J.Janiczek_A.Stępień - Systemy mikroprocesorowe(1).rar
(22902 KB)
Podstawy_metrologii_elektrycznej_.pdf
(104832 KB)
Systemy Mikroprocesorowe - Mikrokontrolery - Janusz Janiczek(1).pdf
(7066 KB)
Inne foldery tego chomika:
• Ośla łączka - czyli zaczynamy
+ Ksiązki 1 +(1)
Dialogys 3.80 multilanguage
Dokumenty
Eagle
Zgłoś jeśli
naruszono regulamin