Też to potrafisz
T
e
ż
t
o
p
o
t
r
a
f
i
s
z
W poprzednim odcinku zapoznałeś
się, drogi Czytelniku ze znaczeniem po-
szczególnych wyprowadzeń mikrokont-
rolera 8051. Ze względu na chęć czysto
praktycznej nauki użytkowania tego
układu, nie opisywałem dokładnie wszys-
Mikrokontrolery?
tkich funkcji każdej z nóżek , a jedynie
krótko zaznajomiłem Cię z przedstawio-
nym w EdW 5/97 tematem. Być może
nie wszystkie pojęcia są dla Ciebie od ra-
zu oczywiste, lecz nie powinieneś się
tym przejmować, na tym etapie pozna-
wania mikroprocesora wszystko co Ci po-
trzeba to osłuchanie się z typowymi To takie proste...
hasłami na temat naszego bohatera. Na
pózniejszym etapie praktycznej nauki
z wykorzystaniem układu elektroniczne-
go, wiedza ta przyda Ci się z pewnością,
szczególnie że wtedy zaczniemy wspól-
nie wchodzić w temat 8051 coraz głębiej.
W tym odcinku kolejna porcja podsta-
wowych informacji które pozwolą Ci na
oswojenie się z naszym 8051!
Pamięć mikroprocesowa
Jak zapewne pamiętasz, w pierw-
szym odcinku naszego cyklu mówiąc
Część 2
o budowie rasowego mikrokontrolera
jednoukładowego, wspominaliśmy
Mikrokontroler 8051 opis układu
o drugim ważnym elemencie jego archi-
tektury, a mianowicie pamięci. Ten od-
cinek naszego cyklu zostanie poświęco- wszystkie interesujące nas pamięci bę- włączeniu zasilania układu. W drugiej pa-
ny właśnie jej. dą miały architekturę 8 bitową czyli mięci znajdują się zmienne (tak jak
Prawdopodobnie spotkałeś się bajtową bowiem nasz bohater 8051 w równaniach matematycznych) prze-
wcześniej z pojęciami pamięci RAM, jest mikrokomputerem 8 bitowym. chowujące określone dane i wyniki obli-
ROM, EPROM, EEPROM itd. Wszystkie podczas omawiania mikroprocesora, czeń. W 8051 dodatkowo w wydzielonej
one odnoszą się do cyfrowych układów często przy okazji pamięci zamiast sło- części tej drugiej pamięci znajdują się tak-
scalonych w strukturze których możliwe wa komórka pamięci będziemy uży- że specjalne komórki zwane rejestrami.
jest zapisanie i przechowanie informacji. wać zamiennie słowa rejestr . Prak- W słownictwie związanym z 8051 używa
Od wielu lat na rynku elektronicznym tycznie każdy rejestr w 8051 możemy się pojęcia SFR z angielskiego Special
znajduje się wiele takich układów, różnią- traktować jako oddzielną, posiadająca Function Registers rejestry specjalne-
cych się typem, pojemnością pamięci, swoje miejsce (adres) komórkę go przeznaczenia ( funkcji specjalnych ,
technologią wykonania, wszystko to bar- w przestrzeni jego pamięci danych. jak kto woli). Tego zwrotu będziemy
dzo często narzuca sposób ich wykorzys- każdy rejestr w 8051 jest 8 bitowy, w przyszłości używać bardzo często, war-
tywania w konkretnych rozwiązaniach niektóre z nich tworzą pary , dlatego to więc abyś sobie go zapamiętał.
R
y
s
u
n
e
k
1
układowych. czasami będziemy mówić o 16 bito- Rysunek 1 przedstawia poglądową
Zacznijmy od krótkiej powtórki doty- wych rejestrach (2x8bitów = 16bi- mapę pamięci zawartą w mikroproceso-
czącej samych pamięci i sposobu prze- tów = 2 bajty); rze 87C51 (8751). Już wiesz że ten typ
chowywania w nich informacji, i tak: powinieneś wiedzieć że w prawie każ- 51 ki charakteryzuje się 4 kB (kilobajta-
podstawową jednostką przechowania dym wskazanym (zaadresowanym) re- mi) wewnętrznej pamięci stałej do prze-
informacji w cyfrowych pamięciach jestrze (jak w komórce pamięci) mo- chowywania programu typu EPROM. Do-
jest bit; żesz zapisać dowolną liczbę 8 bitową,
bit może przyjmować jedna z dwóch lub odczytać wskazany (zaadresowa-
wartości: logiczne 0 lub 1; ny) rejestr;
podobnie jak np. w układzie metrycz- traktuj więc rejestr jako miejsce zapisu
nym, gdzie w celu uproszczenia pomia- lub odczytu 8 bitów (bajtu) informacji,
rów wprowadzono jednostki pochodne tak jak to ma miejsce w komórce 8 bi-
odległości (metr = 100cm = 1000mm), towej pamięci (dla maniaków cyfrówki
tak w przypadku jednostek informacji z serii TTL rada możesz sobie wyob-
wprowadzono bajt, który jest równy razić rejestr fizycznie jako trochę zmo-
8 bitom. dyfikowany np. 74198 lub 74373).
w odróżnieniu do typowych dziesięt- Wracajmy jednak do tematu.
nych systemów liczenia, przy omawia- Z pierwszego odcinka wiesz już że
niu rozmiarów jak i odwoływania się 8051 posiada 2 rodzaje pamięci. Pierw-
Rys. 1. Organizacja pamięci
do pamięci stosuje się szesnastkowy sza służy do przechowywania instrukcji
wewnętrznej w mikrokontrolerze 8751.
(heksadecymalny) zapis liczb; programu, który ma być wykonany po
ELEKTRONIKA DLA WSZYSTKICH 6/97 41
Też to potrafisz
T
e
ż
t
o
p
o
t
r
a
f
i
s
z
datkowo układ ten (podobnie jak wszyst- powiednią dla niego procedurę obsługi
kie inne 51 ki) zawiera w swojej struktu- (przyjęcia) przerwania.
rze 128 B (bajtów) pamięci danych RAM. W celu ujednolicenia systemu prze-
Tak więc masz do dyspozycji rwań procesora w pamięci programu
4kB = 4096 bajtów pamięci stałej EPROM określono odpowiednie miejsca adresy
wszystkie komórki są zawsze numero- od których rozpoczyna się wykonywanie
wane (adresowane) jak wspomniano określonych procedur obsługi przerwań.
wcześniej w kodzie heksadecymalnym W podstawowej rodzinie 51 są to adre-
tworzącej przestrzeń adresową o adre- sy: 3, 11, 19, 27, 35 i 43 (03h, 0Bh, 13h,
sach: 0 4095 (dziesiętnie) lub 0000h 1Bh, 23h, 2Bh szesnastkowo). Każdy
1FFFh (heksadecymalnie). Dalej będzie- z tych adresów określa początek wykona-
my posługiwać się tylko tym drugim spo- nia innej procedury obsługi przerwania,
sobem zapisu. dla 8051 są one następujące:
0
0
0
3
h
Wewnętrzna pamięć danych zajmuje 0003h przerwanie zewnętrzne z we-
adresy: 00h 7Fh (0 127 dziesiętnie). jścia (końcówki) INT0 (pin 12)
0
0
0
B
h
Musisz w tym miejscy wiedzieć że pomi- 000Bh przerw. wynikłe z przepełnienia
mo, że adresy komórek pamięci RAM po- pierwszego wewnętrznego licz-
Rys. 2. Rozmieszczenie adresów
krywają się z częścią adresów pamięci nika T0 procesora
zgłoszeń przerwań w 8051.
0
0
1
3
h
programu, fizycznie w układzie nie wy- 0013h przerwanie zewnętrzne z we-
stępuje żaden konflikt, bowiem dostęp jścia (końcówki) INT1 (pin 13)
0
0
1
B
h
do omawianych obydwu rodzaj pamięci lać jego początkowa wartość wynosi 001Bh przerw. wynikłe z przepełnienia
jest zupełnie inny. Mikroprocesor korzys- 0 (zero), toteż pierwszym rozkazem po- drugiego wewnętrznego liczni-
ta z innych poleceń w przypadku czytania branym z tej pamięci będzie ten umiesz- ka T1 procesora
0
0
2
3
h
lub zapisu do wewnętrznych 128 bajtów czony pod adresem 0000h. 0023h przerwanie wynikłe z odebrania
pamięci RAM, inne rozkazy służą do ob- Licznik rozkazów oznaczany jest lub zakończenia wysyłania da-
sługi pamięci programu. w skrócie jako PC z angielskiego nej poprzez wewnętrzny port
Poniżej pokrótce opiszę oba rodzaje Program Counter licznik programu szeregowy mikroprocesora
pamięci i ich znaczenie w pracy mikro- (rozkazów) warto o tym pamiętać. Licz- Dodatkowo w układach 8052, 8032
kontrolera. nik PC ma długość 16 bitów, czyli maksy- (8752) występuje:
0
0
2
B
h
malnie może liczyć do 65535 włącznie, 002Bh przerw. wynikłe z przepełnienia
Wewnętrzna pamięć
po czym zostaje wyzerowany. Stąd wyni- trzeciego wewnętrznego liczni-
programu
ka m.in. maksymalna wielkość pamięci ka T2.
N
a
r
y
s
u
n
k
u
2
Program napisany przez użytkownika, programu z jakiej procesor może korzys- Na rysunku 2 zilustrowano rozmiesz-
dedykowany konkretnemu zastosowaniu tać a mianowicie 64kB (65536 bajtów). czenie w/w adresów zgłoszenia przerwań.
8051 ki powinien zostać umieszczony Tak dużą pamięć posiadają niektóre Praktycznie wygląda to tak, że w mo-
wewnątrz mikrokontrolera czyli w we- mutacje 51-ki, ale prawie każdy z mikro- mencie zgłoszenia któregoś z wymienio-
wnętrznej pamięci programu. Jak powie- procesorów może współracować z tak nych przerwań, automatycznie zachowa-
działem wcześniej pamięć ta służy mikro- dużą pamięcią zewnętrzną. na zostaje aktualna wartość licznika PC,
kontrolerowi wyłącznie do odczytu rozka- W trakcie pobierania i wykonywania a następnie zostaje wpisana do niego
zów programu. W pamięci tej mogą być przez mikrokontroler kolejnych instrukcji wartość odpowiednia do rodzaju prze-
umieszczone także argumenty bezpo- licznik PC zmienia swoja wartość zawsze rwania jak opisano wyżej. Czyli np. jeżeli
średnie rozkazów oraz tablice ze stałymi wskazując na aktualny adres kolejnego wewnętrzny licznik procesora T1 został
potrzebnymi do pewnych działań progra- rozkazu w pamięci programu. Nasuwa przepełniony, do PC zostaje wpisana war-
mu, np. tablica sinusów, tablica czasów się prosty wniosek, że maksymalną war- tość 001Bh, po czym mikroprocesor roz-
zachodu słońca, lub cokolwiek innego. tość jaką może osiągnąć licznik w na- poczyna wykonywanie programu od tego
Mikroprocesor 8051 ma możliwość póz- szym przypadku będzie 4095 bowiem adresu w pamięci programu. Po zakoń-
niejszego pobrania ze swojej pamięci pro- w naszym przykładzie z kostką 87C51 czeniu wykonywania czynności związa-
gramu takiej stałej i wykorzystania jej np. mamy do dyspozycji 4kB pamięci progra- nych z przepełnieniem T1, licznik rozka-
w obliczeniach. Stała i tablice wprowadza- mu. O tym co się stanie po przekroczeniu zów PC przyjmie ponownie wartość jak
ne są przez programistę na etapie tworze- tej wartości powiem pózniej. z przed nadejścia przerwania i program
nia programu, ale o tym innym razem. Na początek warto tez wiedzieć, że potoczy się dalej.
Jeżeli program został przez nas utwo- oprócz wspomnianego miejsca star- Dokładne objaśnienie działania syste-
rzony a następnie zapisany w pamięci towego programu czyli adresu 0000h mu przerwań omówię przy innej okazji,
programu (o tym jak to się robi będzie (zero), w przestrzeni adresowej pamięci na razie istotne jest abyś wiedział o ist-
mowa dalej), mikrokontroler jest gotowy programu istnieje kilka innych istotnych nieniu adresów specjalnych w pamięci
do działania. Otóż po włączeniu zasilania dla programisty miejsc. Czy pamiętasz programu procesora 8051.
dzięki obwodowi Reset (cz. I artykułu), potoczne objaśnienie pojęcia przer-
Wewnętrzna pamięć danych
wyzerowane zostają prawie wszystkie wanie , pisaliśmy o tym w EdW 4/97?,
wewnętrzne układy mikroprocesora jeśli nie to radzę sobie to przypomnieć. W mikrokontrolerze pamięć ta prze-
w tym także uwaga: licznik rozkazów . Otóż wyobraz sobie, że nasz mikroproce- znaczona jest dla użytkownika do prze-
Ten ostatni służy mikroprocesorowi do sor wykonuje określony program pobiera- chowywania argumentów wartości
kolejnego pobierania rozkazów z pamięci jąc kolejne instrukcji z pamięci programu, zmiennych oraz wyników obliczeń aryt-
programu, a dokładnie do adresowania która to jest adresowana poprzez licznik metyczno logicznych.
(czyli wskazywania) gdzie w przestrzeni rozkazów PC. Wtem nadchodzi przer- W zależności od typu mikrokontrolera
adresowej pamięci programu znajduje się wanie mikroprocesor w zależności co pamięć ta ma pojemność 128 lub 256
kolejna komenda. Jak się możesz domyś- było jego zródłem powinien wykonać od- bajtów.
42 ELEKTRONIKA DLA WSZYSTKICH 6/97
Też to potrafisz
T
e
ż
t
o
p
o
t
r
a
f
i
s
z
Rys. 3. Wewnętrzna pamięć danych
w mikrokontrolerze 8051. Rys. 4.
Dla 8051 wynosi ona 128 B (8052 256 B). nie obszaru, to użytkownik może adreso- tu czyli fizycznie do jego wyprowadzeń.
Na rysunku 3 przedstawiono organizację wać ją poprzez proste adresowanie. Zapis do odpowiedniego rejestru portu
N
a
r
y
s
u
n
k
u
3
wewnętrznej pamięci danych. W pamięci użytkowej komórki o adre- spowoduje pojawienie się kombinacji na
W przestrzeni tej pamięci można wy- sach 0...7, 8...15, 16...23 i 24...31 tworzą końcówkach mikrokontrolera, odczyt re-
różnić kilka obszarów. Dwa główne, cztery zbiory uniwersalnych rejestrów jestru pozwoli użytkownikowi na zbada-
wspomniane wcześniej to obszar pamię- roboczych. Każdy z rejestrów oznacza nie poziomu logicznego na wybranej linii
ci użytkowej, oraz obszar rejestrów spe- się symbolami R0...R7. W danej chwili portu.
cjalnych SFR. Pamięć użytkowa zajmuje użytkownik ma możliwość dostępu (po- Jak widać z tabeli nie wszystkie 128
128 komórek, adresy: 0 127 przez nazwy R0...R7) tylko do jednego adresów z przestrzeni SFR jest wykorzys-
(00h 7Fh), natomiast obszar SFR obe- banku (zbioru) rejestrów roboczych. tanych. Puste adresy nie nadają się do
jmuje adresy 128 255 (80h FFh), z tym Przełączanie zbiorów odbywa się po- wykorzystania przez użytkownika. Nie
że nie wszystkie są wykorzystane przez przez odpowiednie ustawienie dwubito- jest to bynajmniej marnotrawienie cen-
rejestry specjalne. wego wskaznika zwanego jako RS nych bajtów pamięci, lecz czysta przezor-
I chociaż pamięć użytkownika podzie- z angielskiego Register bank Swich . ność projektantów rodziny 8051, którzy
lona jest na obszary, do których dostęp O szczegółach powiemy przy okazji oma- konstruując rozszerzone wersje poczci-
może odbywać się przez tzw. indeksowa- wiania znaczenia poszczególnych rejest- wej 51 ki wyposażają je w nowe dodat-
rów specjalnych SFR. kowo bloki funkcjonalne, a w wolnych
Tabela 1. Rejestry specjalne
Rejestry R0 i R1 z aktywnego banku miejscach przestrzeni SFR umieszczane
mikrokontrolera 8051.
pełnią rolę wskazników danych do po- są dodatkowe rejestry sterujące ich pracą
średniego adresowania wewnętrznej pa- (wspomniane pomosty ).
Adres Symbol Nazwa
A
d
r
e
s
S
y
m
b
o
l
N
a
z
w
a
mięci danych jak i zewnętrznej. W przy- I tak np. w mikrokontrolerze 8052
E0h ACC Akumulator
F0h B Rejestr B padku adresowania pamięci wewnętr- umieszczono dodatkowy licznik T2, do
D0h PSW Słowo stanu programu
znej można adresować cały obszar 8051 sterowania którego niezbędne stało się
81h SP 8 bitowy wskaznik stosu
czyli adresy 0...7Fh. Sposoby adresowa- zaimplementowanie w strukturze SFR re-
83h DPH bity 8 15 wskaznik danych
nia pamięci przedstawimy przy okazji jestrów T2CON, TH2, TL2, RLDH
82h DPL bity 0 7 DPTR
80h P0 Port 0
pierwszych kroków w asemblerze . i RLDL patrz tabela 1.
90h P1 Port 1
Na rys. 3 górna część przestrzeni adre- W tym miejscy widoczny jest geniusz
A0h P2 Port 2
sowej: 80h...FFh zajmują SFR. W tabe- architektury jednoukładowców z rodziny
B0h P3 Port 3
B8h IP Rejestr sterujący
li 1 opisano symbole oraz nazwę każdego 51. Otóż producenci wytwarzając nowe
priorytetem przerwań
z nich. W tym miejscu warto zapamiętać mutacje tych procesorów, nie musza się
A8h IE Rejestr kontrolny sterujący
iż rejestry specjalne stanowią niejako martwić o kompatybilność programo-
pracą systemu przerwań.
88h TCON Rejestr kontrolny pracy sprzętowy pomost komunikacyjny po- wą, czy architekturę dostępu do poszcze-
liczników T0 i T1 oraz
między programistą a wszystkimi bloka- gólnych bloków układu. W każdym przy-
przerwań INT0 i INT1
mi funkcjonalnymi mikrokontrolera. Dla padku dodatkowe rejestry specjalne ste-
89h TMOD Rejestr sterujący trybem
przykładu, aby dobrać się i odpowied- rujące ich pracą umieszczane są w tej sa-
pracy liczników T0 i T1
8Ch TH0 bity 8 15 16 bitowy
nio ustawić wewnętrzny licznik T1, nale- mej przestrzeni SFR, w taki sam sposób
8Ah TL0 bity 0 7 licznik T0
ży odpowiednio zmodyfikować zawar- dostępnej dla użytkownika. Czyli jeżeli
8Dh TH1 bity 8 15 16 bitowy
tość rejestru TMOD (rejestr trybu liczni- np. któryś z producentów zechce umieś-
8Bh TL1 bity 0 7 licznik T1
C8h T2CON rejestr sterujący licznikiem T2 ków T0 i T1) oraz TCON (rejestr sterujący cić w strukturze 8051 8 bitowy przetwor-
(w 8052)
licznikami oraz zgłaszaniem przerwań ze- nik analogowo cyfrowy, to prawdopo-
CDh TH2 bity 8 15 16 bitowy
wnętrznych INT0 i 1). dobnie w wolnych miejscach obszaru
CCh TL2 bity 0 7 licznik T2
W przestrzeni adresowej SFR znajdu- SFR umieści dodatkowe rejestry: a) re-
CBh RLDH bity 8 15 Słowo ładowane
CAh RLDL bity 0 7 do licznika T2
ją się także rejestry będące jednocześnie jestr sterujący pracą przetwornika, oraz b)
98h SCON Rejestr sterujący portem
portami wejścia wyjścia, tymi o których rejestr danych z przetwornika, prawda że
szeregowym
mówiliśmy w poprzednim odcinku arty- proste, no przynajmniej z naszego punktu
99h SBUF Bufor portu szeregowego
87h PCON Rejestr sterujący zasilania
kułu. Dzięki temu możliwy jest łatwy widzenia.
i szybki dostęp do dowolnych bitów por- Cd. na str. 46
ELEKTRONIKA DLA WSZYSTKICH 6/97 43
Wyszukiwarka
Podobne podstrony:
Mikrokontrolery To takie proste, cz 15 (układ licznikowy w 8052C & specjalne tryby pracy 8051)Mikrokontrolery to takie proste cz 03Mikrokontrolery To takie proste, cz 14 (opis układów licznikowych oraz układu przerwań 8051 c d )Mikrokontrolery To takie proste, cz 11 (opis podprogramów komputerka edukacyjnego)Mikrokontrolery To takie proste, cz 11 (opis podprogramów komputerka edukacyjnego)Mikrokontrolery To takie proste caloscwięcej podobnych podstron