Mikrokontrolery cz4.pdf

(496 KB) Pobierz
1265725 UNPDF
Też to potrafisz
Kontynuujemy opis mikrokontrole−
ra 8051. W tym odcinku powiemy
w jaki sposób można dołączyć ze−
wnętrzną pamięć pogramu oraz
danych. Podane konkretne rozwią−
zania sprzętowe poparte schema−
tami elektrycznymi, z pewnością
dadzą Ci pojęcie na temat kontruo−
wania podstawowych bloków fun−
kcjonalnych małego systemu mik−
roprocesorowego. Opis takiego
układu będącego jednocześnie ba−
zą do naszej przyszłej nauki pro−
gramowania 8051 prezentujemy
w niniejszym numerze EdW, warto
jednak abyś najpierw zapoznał się
z niniejszym artykułem.
Mikrokontrolery?
To takie proste...
Część 4
Mikrokontroler 8051 – opis układu
Zewnętrzna pamięć programu
Jak się dowiedziałeś z wcześniejszych
części naszego cyklu, procesor 8051 i mu
podobne mają możliwość dołączenia do−
datkowej zewnętrznej pamięci programu,
np. typu EPROM. W pamięci tej podobnie
jak w wewnętrznej pamięci programu za−
szytej w kostce 8751 (8752) programista
umieszcza poszczególne rozkazy progra−
mu , używając do tego celu np. programa−
tora pamięci EPROM lub programatora do
programowania mikroprocesorów z rodzi−
ny MCS−51. Wiesz już że procesor może
pracować w następujących konfiguracjach:
a) tylko z wewnętrzną pamięcią progra−
mu (dla kostek 8751, 8752)
b) z wewnętrzna i zewnętrzną pamięcią
programu jednocześnie, w tym przy−
padku zewnętrzna pamięć programu
stanowi jak gdyby „przedłużenie” pa−
mięci wewnętrznej.
c) oraz tylko z zewnętrzną pamięcią pro−
gramu np. typu EPROM.
Pierwszy tryb jest bardzo wygodny, po−
zwala na „pełne” wykorzystanie wszyst−
kich zalet mikrokontrolera jednoukłado−
wego w całym tego słowa znaczeniu. Pro−
gramista wykorzystując procesor w wers−
ji z wbudowaną pamięcią programu
(8751,8951, xx52) cały kod swego progra−
mu umieszcza wewnątrz kości, dzięki
czemu ma do dyspozycji wszystkie porty
mikrokontrolera – w tym także P0 i P2.
(patrz poprzednie odcinki naszego cyklu).
Kostka 87C51 (89C51) ma „tylko” 4kB
(8x52 8kB pamięci programu), najczęściej
te „tylko” w zupełności wystarcza, lecz
zdarza się że jest to za mało, wtedy ko−
nieczne jest dołączenie dodatkowej ze−
wnętrznej pamięci programu w postaci
kostki EPROM. W tym przypadku (jak
wspomniałem w poprzednim odcinku)
maksymalna długość programu równa
wielkości obu pamięci zewnętrznej jak
i wewnętrznej nie może przekroczyć
64kB – czyli 65536 8−bitowych słów.
Czyli że np. do kostki 87C52 (zawiera−
jącej 8 kB wewnętrznej EPROM) można
dołączyć maksymalnie 56kB EPROM
z zewnątrz.
Trzeci tryb pracy tylko z zewnętrzną pa−
mięcią programu jak pamiętasz z pierw−
szej części cyklu wymaga zwarcia wypro−
wadzenia /EA (pin 31 procesora 8051/52)
do masy. Parę lat temu, kiedy procesory
‘51 z wbudowaną wewnętrzną pamięcią
programu kosztowały niemało, natomiast
kostki bez niej można było nabyć za kilka−
dziesiąt tysięcy (starych złotych) nazywa−
łem ten tryb pracy „oszczędnościowym”
(chyba tylko dla własnej kieszeni). Jak się
wkrótce przekonasz drogi Czytelniku pier−
wsze praktyczne kroki z wykorzystaniem
twego pierwszego systemu mikroproce−
sorowego warto będzie poczynić korzys−
tając właśnie z tego trybu.
Tak jak przy nauce jazdy samochodem
istnieje większe ryzyko stłuczki, tak
w przypadku mikroprocesora nie warto
na początku ryzykować uszkodzeniem
kostki z zapisanym w niej programem, le−
piej jest kod programu umieścić w ze−
wnętrznej pamięci EPROM.
A propos „pierwszego systemu
z 8051” – w bieżącym numerze EdW
znajdziesz opis kitu zawierającego wszys−
tkie niezbędne elementy do zbudowania
małego lecz w pełni funkcjonalnego sys−
temiku do nauki programowania i obsługi
procesorów rodziny MCS−51. Publikacja
tego systemu jest celowa i wyprzedza
nieco rozpoczęcie nauki programowania.
Wszystko po to abyś drogi Czytelniku
miał trochę czasu na nabycie tego zesta−
wu, zapoznanie się z nim, zmontowanie
oraz wstępne sprawdzenie poprawnego
działania. Wtedy wraz z pierwszym arty−
kułem dotyczącym programowania 8051
będziesz mógł rozpocząć praktyczne lek−
cje z mikrokontrolerem. Początek kursu
planowany jest w październiku.
Wracajmy jednak do naszego artykułu.
Pozostając wiernym zasadzie przekazy−
wania Tobie, tylko niezbędnych, praktycz−
nych informacji na temat ‘51−ki nie będę
się rozwodził nad teorią obsługi zewnę−
trznej pamięci programu przez sam pro−
cesor, a jedynie przedstawię Ci nieza−
wodny sposób dołączenia jej do układu
mikrokontrolera.
Rysunek 5 przedstawia schemat elekt−
ryczny takiego połączenia. W układzie tym
40
E LEKTRONIKA DLA WSZYSTKICH 8/97
1265725.038.png
Też to potrafisz
Rys. 5. Sposób dołączenia zewnętrznej pamięci programu do procesora
zrezygnowano z użycia wewnętrznej pa−
mięci programu – wykorzystano więc kos−
tkę w wersji bez ROM (8051/52), pin /EA
zwarto do masy, w jako zewnętrzną pa−
mięć programu wykorzystano kostkę EP−
ROM o pojemności 64kB typu 27C512.
Oczywiście w praktyce nie jest konieczne
używanie tak pojemnej pamięci. Do na−
szych celów i eksperymentów wystarczy
pamięć 27C64 o pojemności 8kB. W ta−
kim przypadku linie adresowe A15, A14,
A13 (piny 28, 27 i 26 portu P2) pozostaną
niedołączone, lecz niestety i tak będą nie
do wykorzystania, bowiem w trybie adre−
sowania zewnętrznej pamięci programu
(jak i danych) cały port P2 przekazuje star−
szy bajt 16−bitowego adresu.
Zgodnie z opisem z I części artykułu,
w układzie wykorzystano dodatkowy re−
jestr w postaci układu 74HCT573, które−
go zadaniem jest zatrzaśnięcie młodszej
części 16−bitowego adresu, czyli sygna−
łów A0...A7. W czasie trwania dodatniego
poziomu sygnału na wyjściu ALE, mikro−
procesor wystawia: na piny portu P2 star−
sza część 16−bitowego adresu A8...A15,
natomiast na port P0 wystawiona zostaje
młodsza część adresu A0...A7, która zo−
staje od razu przekazana poprzez
74HCT573 na wejścia adresowe A0...A7
pamięci EPROM. Dzieje się tak dlatego że
układ ‘573 aktywowany jest poziomem,
toteż w przypadku gdy na jego wejściu
C (połączonym z ALE) panuje stan wyso−
ki, rejestr ten jest „przezroczysty” tzn. że
dane pojawiające się na jego wejściach
D1...D8 natychmiast pojawiają się na wy−
jściach Q1...Q8. Dołączenie wejścia /OC
układu U2 do masy powoduje odblokowa−
nie na stałe wyjść Q1...Q8
(gdy /OC=1 to wyjścia te przechodzą
w stan wysokiej impedancji – lecz w na−
szym przypadku nie ma to praktycznego
zastosowania).
Następnie podczas opadającego zbocza
sygnału ALE młodsza cześć adresu zostaje
„zapamiętana” w U2, a procesor może wte−
dy z portu P0 odczytać kolejny bajt z pamię−
ci EPROM podając stan niski na wyprowa−
dzenie /PSEN, które jak widać ze schematu
jest dołączone do wejścia /OE pamięci.
Wejście wyboru pamięci U3 /CE jest
na stałe zwarte do masy, co oznacza że
pamięć EPROM jest ciągle aktywna a do
jej odczytu wystarczy niski poziom poda−
ny na wejście /OE.
Czasem w różnych aplikacjach szczegól−
nie w urządzeniach zasilanych bateryjnie
wejście /OC układu U2 oraz wejście wybo−
ru pamięci EPROM /CE są razem dołączone
do wyjścia sygnału ALE. Nie jest to błędem,
bowiem podczas cyklu odczytu z zewnętr−
znej pamięci tak programu jak i danych
wszystkie operacje tak odczytu jak i zapisu
do tych pamięci odbywają się podczas sta−
nu niskiego na wyjściu ALE procesora.
Cykl odczytu z zewnętrznej pamięci
programu możesz dodatkowo prześle−
dzić na rysunku 6.
Podsumowując te akapit powinieneś
zapamiętać, że
– przestawiony sposób dołączenia ze−
wnętrznej pamięci programu jest typo−
wym dla tej konfiguracji pracy procesora
– odczyt kolejnych bajtów (rozkazów) z ze−
wnętrznej EPROM odbywa się za pośred−
nictwem sygnału /PSEN, o którym pisa−
łem w I części naszego cyklu przy okazji
omawiania wyprowadzeń procesora
– dodatkowo w układzie z zewnętrzną
pamięcią programu (jak się zaraz oka−
że także i danych) niezbędny jest do−
datkowy układ scalony w postaci 8−
krotnego rejestru równoległego
74HCT573. Można użyć wersji LS.
Natomiast kostki 74HCT373 (LS373),
które maja taka samą strukturę we−
wnętrzną, różnią się od układu 573
rozmieszczeniem wyprowadzeń
D1...D8 i Q1...Q8.
Zainteresowanych w/w układami od−
syłam do katalogów serii TTL. My w na−
szych rozwiązaniach będziemy nagmin−
nie korzystać z układów ‘573 ze względu
na bardziej korzystny rozkład jego wypro−
wadzeń wprost dostosowany do użycia
Rys. 6. Cykl odczytu z zewnętrznej pamięci programu
E LEKTRONIKA DLA WSZYSTKICH 8/97
41
1265725.039.png 1265725.040.png 1265725.041.png 1265725.001.png 1265725.002.png 1265725.003.png 1265725.004.png 1265725.005.png 1265725.006.png 1265725.007.png 1265725.008.png
Też to potrafisz
Rys. 7. Sposób dołączenia zewnętrznej pamięci danych 32kB do procesora 8051
wraz z poczciwym 8051 oraz pochodny−
mi w obudowach DIL−40.
– 8 kostek 6264 (8x 8kB = 64kB) lub
w ostateczności
– 32 kostki 6116 (32x 2kB = 64kB).
Oczywiście dwie ostatnie sytuacje
w przypadku wymaganej maksymalnej po−
jemności zewnętrznej SRAM są nieprak−
tyczne, po pierwsze ze względu na ilość
układów scalonych co prowadzi do zwięk−
szenia płytki drukowanej, po drugie pojawia
się konieczność stosowania dodatkowego
dekodera adresu w postaci np. układu serii
TTL−LS typ 74LS138 – dekoder 1 z 8.
Rysunek 7 pokazuje podstawowy układ
dołączenia zewnętrznej kostki SRAM
o pojemności 32kB do mikrokontrolera
8051. Jak widać układ połączeń jest bar−
dzo zbliżony do schematu z rysunku 5,
gdzie omawialiśmy praktyczny sposób do−
łączenia zewnętrznej pamięci programu
typu EPROM. Dla zwiększenia czytelności
rysunku rezygnujemy z rysowania każ−
dego z połączeń magistrali adresowej
(A0...A15) oraz danych (AD0...AD7) od−
dzielnie, w zamian zastąpimy je wspól−
nym „fachowym” symbolem „szyny”
– w postaci pogrubionej kreski. Każde
połączenie „odchodzące” od takiej
magistrali ma swoją nazwę (etykietę),
czyli że końcówki układów scalonych
(w tym przypadku: procesora U1, pa−
mięci U3 oraz zatrzasku U2) przy któ−
rych znajduje się taka sama etykieta li−
terowa, są ze sobą elektrycznie połą−
czone. Prawda, że prostsze?!
Przyzwyczajmy się zatem do takie−
go sposobu czytania i rysowania sche−
matów, szczególnie jeżeli przedsta−
wiony schemat zawiera wielokońców−
kowe układy scalone takie jak mikro−
procesor. Wracajmy jednak do tematu.
Do adresowania pamięci wykorzys−
tuje się, podobnie jak do pamięci pro−
gramu, te same linie adresowe:
A0...A15, oraz danych: AD0...AD7.
Jednak sterowanie odczytem zewnętr−
znej pamięci danych zajmuje się sygnał
/RD (końcówka 17 – U1) od skrótu „Read”
– przypomnij sobie część I naszego cyklu).
Podanie odpowiednich stanów logicznych
na końcówki adresowe pamięci (U3) odpo−
wiadające adresowi komórki pamięci we−
wnątrz układu, a następnie podanie stanu
niskiego na końcówkę /RD spowoduje po−
jawienie się danej (z pamięci) na wyprowa−
dzeniach magistrali AD0...AD7 i w konsek−
wencji odczyt jej przez mikroprocesor, za
pośrednictwem portu P0.
Sytuację te w postaci przebiegów
przedstawia rysunek 8. Nie podaję tu cza−
sów poszczególnych cykli, po pierwsze
z czysto prakt]ycznego powodu, po dru−
gie ze względu że zależą one od częstot−
liwości zegara (rezonatora kwarcowego
dołączonego do procesora).
Skoro wiemy jak praktycznie (sprzęto−
wo) realizowany jest odczyt z zewnętrznej
Zewnętrzna pamięć danych
W podobny sposób jak w przypadku
zewnętrznej pamięci programu, do więk−
szości procesorów serii MCS−51 (w tym
8051/52) dołącza się zewnętrzną pamięć
danych. Do tego celu używa się zazwy−
czaj (a prawie zawsze) kostek pamięci
statycznych nazywanych często SRAM
od skrótu: „Static RAM”, czyli pamięć
statyczna. Pamięć taka powinna charak−
teryzować się 8−bitową organizacją da−
nych oraz równoległym adresowaniem,
tak jak w przypadku zwykłych EPROM
ów. Najpopularniejsze i spotykane w han−
dlu, a przy tym najlepiej nadające się do
naszych potrzeb kości pamięci SRAM to:
a) 6116 – pamięć SRAM o pojemności
2kB (6116 – 16kbitów, czyli 16384 bi−
tów / 8 = 2kB = 2048 B ).
b) 6264 – j/w lecz o pojemności 8kB (6264 –
64kbity, czyli 65536 / 8 = 8kB = 8192 B)
c) 62256 – j/w lecz o pojemności 32kB
(62256 – 256 kbitów, czyli 262144
/ 8 = 32kB...)
Cena układów wymienionych pamięci
jest obecnie znikoma, nie znaczy to jednak
że warto stosować pamięci z zapasem
(np. największe 32kB), zawsze warto prze−
widzieć wielkość praktycznie wykorzysty−
wanej ilości komórek pamięci i odpowied−
nio dobrać wymagany typ pamięci.
Pierwszy wymienionych układ SRAM
6116 spotykany jest w handlu w typowej
obudowie 24−końcówkowej o rozstawie
600 mils, dwa ostatnie natomiast w obu−
dowach 28−pinowych (600 mils, spotyka−
ne tez są wersje w „wąskich” obudo−
wach o rozstawie 300 mils).
Do kontrolerów serii ‘51 można dołą−
czyć maksymalnie 64kB zewnętrznej pa−
mięci danych. Można więc w takim
(skrajnym) przypadku zastosować:
– 2 kostki 62256 (2x 32kB = 64kB) lub
Rys. 8. Cykl odczytu i zapisu
z zewnętrznej pamięci danych
42
E LEKTRONIKA DLA WSZYSTKICH 8/97
1265725.009.png 1265725.010.png 1265725.011.png 1265725.012.png 1265725.013.png 1265725.014.png 1265725.015.png 1265725.016.png 1265725.017.png 1265725.018.png 1265725.019.png 1265725.020.png 1265725.021.png 1265725.022.png 1265725.023.png 1265725.024.png
Też to potrafisz
pamięci danych, to warto powiedzieć jak
dokonywany jest zapis. Otóż do tego ce−
lu służy kolejny sygnał procesora nazywa−
ny /WR (od skrótu „write”− zapis), a wy−
stawiany przez procesor na końcówkę 16
(U1) w czasie tej operacji. Podobnie ja
w przypadku odczytu, najpierw procesor
ustala adres na końcówkach A0...A15
(port P2 oraz wyjścia zatrzasku U2), na−
stępnie podaje daną na port P0, po czym
wystawia stan niski na pin /WR, co po−
woduje zapis danej w pamięci SRAM.
Jak już wcześniej wspomniałem, za−
stosowanie zewnętrznej pamięci tak pro−
gramu jak i danych wiąże się ze zuboże−
niem typowej „jednoukładowości” mik−
rokontrolera, bowiem zajęte zostają portu
P0 i P2 procesora. O ile w przypadku pra−
cy z zewnętrzną pamięcią programu dzie−
je się tak zawsze: port P0 pracuje jako
multipleksowana (na zmianę) szyna da−
nych lub młodszej części adresu, a port
P2 wystawia starsze 8 bitów 16−bitowe−
go adresu, o tyle w przypadku pracy z ze−
wnętrzną pamięcią danych (bez zewnętr−
znej pamięci programu) istnieje możli−
wość oszczędniejszego gospodarowania
portami procesora.
W przykładzie opisanym powyżej mó−
wiliśmy , że procesor przy odczycie lub
zapisie „....wystawia 16−bitowy adres
(A0...A15) ... . Do tego potrzebne są
2 porty, które w takim przypadku nie na−
dają się do dodatkowego wykorzystania,
jako np. wyjścia sterowania przekaźnika−
mi, lub czymkolwiek innym.
Istnieje jednak możliwość innego odczy−
tu zewnętrznej pamięci danych, nazywana
„stronicowaniem”. Ma ona zastosowanie
szczególnie wtedy, kiedy zewn. pamięć da−
nych mam mniejszy rozmiar od maksymal−
nej przestrzeni adresowej procesora np.
2kB. Jak widać z rysunku 9 pamięć taka
(U3) ma tylko 11 linii adresowych (A0...A10),
co pozwala na zaadresowanie 2048 komó−
rek pamięci (bajtów). Tak więc pozostałe li−
nie adresowe procesora A11...A15 pozosta−
łyby niewykorzystane gdyby zastosować
odczyt jak w poprzednim przypadku z peł−
nym adresem A0...A15.
Przy „stonicowanym „ sposobie ob−
sługi zewn. pamięci danych, procesor
wystawia tylko młodszą część 16−bitowe−
go adresu (linie AD0...AD7), zaś port P2
pozostaje „nietknięty”. Wnikliwy czytel−
nik zauważy że w konsekwencji takiego
sposobu obsługi możliwe będzie zaadre−
sowanie tylko 256 bajtów (2 do potęgi
8 = 256) tej pamięci, a nie jak w naszym
przykładzie aż 2kB. No tak, chyba że
przed odczytem przez procesor, sami, za
pomocą sygnałów A8...A10 (wystawia−
nych poprzez 3 piny portu P0) ustawimy
niejako „fizyczny” adres 256 bajtowej
strony adresowanej pamięci.
Zauważmy przecież że za pomocą tych
trzech końcówek można „zaadresować”
8 stron po 256 bajtów każda co w sumie
da nam do dyspozycji pełne 2048 bajtów,
czyli 2kB. Zauważmy też że, co najważ−
niejsze, pozostałe końcówki portu P2 po−
zostają wolne i możemy je dowolnie wy−
korzystać jako wejścia lub wyjścia cyfro−
we... Prawda, że genialne?!
No tak, ale kiedy ten procesor adresuje
pamięć za pomocą pełnego adresu, a kie−
dy za pomocą stronicowania .....!. Otóż
w celu rozróżnienia przedstawionych
dwóch typów adresowania wprowadzone
są dwie różne instrukcje procesora, któ−
rych używa programista (w przyszłości Ty
! drogi Czytelniku) podczas projektowania
układu i pisania programu, w zależności od
potrzeb, ale o tym powiemy dokładnie
przy okazji nauki programowania 8051.
dzone przez programistę na etapie
tworzenia programu, stałe np. w posta−
ci tablic (sinusów, logarytmów nie−
zbędnych do obliczeń) lub cokolwiek
innego, nie będącego typową
„instrukcją” programu lub jej argumen−
tem. Aż się prosi żeby te dane umiesz−
czane były w zewnętrznej pamięci da−
nych (w wewnętrznej RAM prawdopo−
dobnie zabrakłoby na nie miejsca), czy−
li w układach SRAM. Nie ma sprawy,
można przecież je przenieść (progra−
mowo) z EPROM do SRAM w czasie
inicjacji mikroprocesora, tylko po co !.
Czy nie lepiej „jakoś” połączyć obszar
pamięci programu i danych, zachowu−
jąc oczywiście odrębne obszary adre−
sowe, pozostawiając tylko jednolity
sposób odczytu tych danych?!
I druga sytuacja, bardziej praktyczna
w fazie nauki sytuacja.
b) Zbudowałem uniwersalny mikroste−
rownik z 8051...., chciałbym mieć moż−
liwość wpisywania na bieżąco (np. za
pomocą komputera) moich programów
i testowania ich w tym układzie bez po−
trzeby każdorazowego programowania
pamięci EPROM za pomocą drogiego
programatora, na który mnie zresztą nie
stać ..... . Czy nie dało by się wykorzys−
tać dołączoną pamięć danych SRAM ja−
ko część obszaru adresowego pamięci
programu (i odwrotnie) i wpisywać do
niej nowe programy bez wyjmowania
układu scalonego z podstawki ?... .
W przedstawionych dwóch przypad−
kach, rozwiązaniem problemu jest wyko−
rzystanie do odczytu danych tak z pamięci
programu jak i danych, iloczynu sygnałów:
– odczytu z zewnętrznej pamięci danych /RD
oraz
– odczytu z zewnętrznej pamięci progra−
mu /PSEN
Iloczyn taki w praktyce najłatwiej jest
wykonać za pomocą pojedynczej 2−we−
jściowej bramki AND, jak pokazano na
rysunku 10. Przedstawiono nieco rozbudo−
waną konfigurację procesora pracującego
„Miksowanie” przestrzeni
adresowych programu
i danych
Często w praktyce podczas konstruo−
wania i oprogramowywania układów wy−
korzystujących zewnętrzne pamięci tak
programu jak i danych zdarzają się nastę−
pujące dwie sytuacje:
a) w zewnętrznej pamięci programu (EP−
ROM – stałej) znajdują się, wprowa−
Rys. 9. Przykład adresowania zewnętrznej pamięci danych 2kB poprzez stronicowanie
E LEKTRONIKA DLA WSZYSTKICH 8/97
43
1265725.025.png 1265725.026.png 1265725.027.png 1265725.028.png 1265725.029.png 1265725.030.png 1265725.031.png
Też to potrafisz
Rys. 10. Sposób zmiksowania zewnętrznych pamięci danych i programu
z zewnętrzną pamięcią programu U3 (EP−
ROM 8kB) oraz pamięci danych U4
(SRAM 8kB). Zauważmy jednak że odczyt
z obu pamięci może odbywać się „tak
samo”. Dzięki wymnożeniu sygnałów /RD
i /PSEN, procesor ma możliwość odczytu
kolejnej instrukcji programu (za pomocą
/PSEN) tak z pamięci U3 jak i U4, bowiem
sygnał RD&PS (będący iloczynem /RD
i /PSEN) steruje wejściami /OE odczytu
obu pamięci (U3 i U4). Oczywiście sprawa
zapisu nadal dotyczy tylko pamięci SRAM
U4 (dołączony sygnał /WR procesora U1
do końcówki /WE pamięci U4).
W celu rozdzielenia obszarów adreso−
wych obu pamięci (tak aby nie następo−
wał konflikt przy odczycie na magistrali
AD0...AD7, co może mieć miejsce
w przypadku jednoczesnego pojawienia
się danej na wyjściach 11...19 układu U3
i U4), wykorzystano linię adresową A15.
Dzięki niej pamięć EPROM (U3) będzie
aktywna kiedy sygnał A15 będzie miał
stan niski, co jest adekwatne do obszaru
adresowania równemu: 0000h.....7FFFh
(oczywiście wtedy pamięć U4 jest nieak−
tywna, bo sygnał wyboru CS2 – U4 ma
stan linii A15 = niski).
Pamięć SRAM U4 będzie natomiast
obsługiwana w obszarze adresowym dla
A15 równego logicznemu „1”, czyli w za−
kresie: 8000h...FFFFh.
Na zakończenie, krótki przykład w jaki
sposób w takim układzie (z rys.10) reali−
zowany jest przypadek b) omawiany
wcześniej.
Otóż w pamięci EPROM U3 na stałe
znajduje się program umożliwiający np.
przesłanie danych (którymi mogą być tak−
że instrukcje programu) z komputera do
naszego układu mikroprocesorowego,
chociażby tego z rys.10. Program ten
często zwany „monitorem” lub „biosem”
wykonywany zostaje zaraz po włączeniu
zasilania procesora, bowiem pamięć EP−
ROM z rys.10 – układ U3 zaczyna się od
adresu początkowego 0000h.
Nie jest na razie istotne w jaki sposób
wspomniane dane zostają przesłane z kom−
putera, (może być w tym celu użyty port
szeregowy lub np. równoległy komputera).
Ważne jest że po przesłaniu mogą one
być zapisane w zewnętrznej pamięci
SRAM – U4, która przecież daje się zapi−
sywać jak zwykłą pamięć danych dzięki
sygnałowi /WR.
Kiedy już te dane, będące np. kawał−
kiem jakiegoś nowego, utworzonego
przez Ciebie programu (powiedzmy ze−
garka z 256 alarmami i tyloma timerami)
zostana wpisane do pamięci U4, możesz
teraz rozkazać procesorowi (wydając od−
powiednią instrukcję), „skoczyć” do ad−
resu 8000h i stamtąd rozpocząć dalsze
wykonywanie programu. Co będzie
w efekcie ...?, w efekcie dzięki bramce
AND (rys.10) jak powiedziałem wcześ−
niej, dalej wykonywanym programem bę−
dzie ten przesłany wcześniej z kompute−
ra i umieszczony w SRAM, czyli np. twój
super−zegarek (lub cokolwiek co w przy−
szłości stworzysz).
Zaletami takiego rozwiązania są:
– brak konieczności stosowania drogich
programatorów EPROM
– bardzo szybkie ładowanie nowych pro−
gramów do pamięci SRAM, co pozwo−
li uczącemu się programiście (takiemu
jak Ty) na szybkie obserwowanie efek−
tów swojej pracy
– niepotrzebne jest oczywiście kasowa−
nie SRAM przed zapisem nowej wers−
ji tworzonego programu
Nie brakuje i wad:
– po wyłączeniu zasilania program umiesz−
czony w SRAM zostaje wymazany (ale
dalej znajduje się np. w komputerze);
– konieczne jest „posiadanie” EPROM
ze wspomnianym „biosem” (moni−
torem).
Jak się wkrótce przekonasz, drogi Czy−
telniku, na etapie nauki programowania
i obsługi procesorów 8051 pierwsza „wa−
da” w praktyce wcale nie jest wadą.
O drugi drobiazg (zaprogramowany EP−
ROM) nie musisz się martwić, będziesz
mógł go otrzymać wraz zestawem dla po−
czątkujących programistów, który znaj−
dziesz w tym numerze EdW.
Bardziej ambitnych muszę w tym
miejscu uspokoić. Jestem pewien, że
każdy kto ukończy nasz kurs projektowa−
nia będziecie w stanie sam napisać swój
własny program monitora. Na razie na
etapie wstępnej nauki programowa−
nia, do której niebawem przejdziemy, nie−
zbędna będzie wersja „gotowa” bio−
su, wierzcie mi drodzy Czytelnicy, za−
oszczędzi to wam wielu stron teorii, któ−
ra na początku mogłaby niejednego
z Was przerazić swoimi rozmiarami,
a którą sami nabędziecie z czasem, ucząc
się pisać pierwsze swoje programy.
W następnym odcinku omówię po−
krótce (praktyczne rady) ważniejsze te−
maty dotyczące „czasowego” sposobu
wykonywania przez mikrokontroler 8051
programu, po czym przejdziemy do pier−
wszych kroków w programowaniu.
Słławomiir Surowiińskii
44
E LEKTRONIKA DLA WSZYSTKICH 8/97
1265725.032.png 1265725.033.png 1265725.034.png 1265725.035.png 1265725.036.png 1265725.037.png
Zgłoś jeśli naruszono regulamin