Mikrokontrolery C51.pdf

(406 KB) Pobierz
1
1.1 MIKROKONTROLER 8051
1.1.1 Informacje ogólne
Ukad 8051 jest jednoukadowym, 8 – bitowym mikrokontrolerem o rozbudowanych
zasobach wewntrznych, tj.: programowalne ukady czasowo – licznikowe, ukad transmisji
szeregowej, ukad przerwa#, wewntrzna pami$ programu i danych. 16 – bitowa szyna adresowa
pozwala na do&czenie zewntrznych pamici danych o pojemno’ci 64kB i pamici programu
równie+ o pojemno’ci 64kB.
W zwi&zku z multipleksowaniem szyny adresowej A0 – A7 i szyny danych, mikrokontroler
musi generowa$ dodatkowy sygna steruj&cy zewntrznym buforem zatrzaskowym – ALE. Sygna
ten jest generowany podczas pobierania ka+dego sowa rozkazu dwukrotnie w ka+dym cyklu
maszynowym. Wyj&tek stanowi& rozkazy MOVX oraz MOVC przy dostpie do zewntrznej pamici
programu realizuj&cy dostp do pamici zewntrznej. Instrukcja ta jest jednobajtowa, wykonywana w
dwóch cyklach maszynowych. W pierwszym cyklu nastpuje odczyt kodu instrukcji (pierwszy
sygna ALE) oraz ustawienie adresu +&danej komórki pamici (drugi sygna ALE). W drugim cyklu
maszynowym nastpuje odczyt/ zapis szyny danych – nie mo+e wówczas wyst&pi$ sygna ALE, gdy+
zniszczyby on wcze’niej ustawiony adres komórki pamici.
Czas trwania cyklu maszynowego wynosi 12 taktów zegara, co dla czstotliwo’ci rezonatora
równej 12MHz daje czas 1
µ
s. Czas wykonywania instrukcji wynosi jeden, dwa lub cztery cykle
maszynowe, w zale+no’ci od instrukcji.
P0.0 – P0.7
P2.0 – P2.7
PORT 0
PORT 0
Vcc
GND
PORT LATCH
PORT LATCH
RAM
ROM
PROGRAM
ADDRESS
REGISTER
BUFFER
STACK
POINTER
ACCUMULATOR
PC
INCREMENTER
TMP 2
TMP 1
ALU
INTRRUPT,
SERIAL
PORT,
TIMER
PROGRAM
COUNTUNER
/PSEN
ALE
PSW
DPTR
/EA
RST
PORT LATCH
OSC
PORT 1
PORT LATCH
PORT 3
XTAL1
XTAL2
P1.0 – P1.7
P3.0 – P3.7
Rys. 1.1 Schemat blokowy mikrokontrolera 8051
1.1.2 Jednostka arytmetyczno – logiczna
Z jednostk& arytmetyczno – logiczn& wspópracuj& dwa rejestry bloku rejestrów specjalnych:
akumulator (ACC) – E0h i rejestr B – F0h. Akumulator najcz’ciej zawiera jeden z operandów i
zapisywany jest w nim wynik operacji, rejestr B jest natomiast wykorzystywany przy operacjach
mno+enia i dzielenia.
Jednostka arytmetyczno – logiczna mo+e wykonywa$ nastpuj&ce operacje za argumentach
o’miobitowych: dodawanie, dodawanie z przeniesieniem, odejmowanie z po+yczk&, inkrementacja,
dekrementacja, mno+enie w naturalnym kodzie binarnym daj&ce 16 – bitowy wynik, dzielenie w
naturalnym kodzie binarnym daj&ce 8 – bitowy wynik i 8 bitow& reszt, iloczyn logiczny, suma
logiczna, suma modulo 2, zerowanie i negacja akumulatora.
Jednostka arytmetyczno – logiczna mo+e wykonywa$ operacje logiczne równie+ na
pojedynczych bitach. Dla tych operacji akumulatorem jest bit przeniesienia C – D7h sowa stanu
70378871.009.png 70378871.010.png 70378871.011.png 70378871.012.png
PSW – D0h. Rejestr specjalny PSW bezpo’rednio wspópracuje z jednostk& arytmetyczno – logiczn&.
Jego zawarto’$ opisuje cechy wyniku ostatnio wykonywanej operacji.
Tab. 1.1 Bity rejestru specjalnego PSW
Nr bitu Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Symbol
C
AC
F0
RS1
RS0
OV
-
P
Adres
D7h
D6h
D5h
D4h
D3h
D2h
D1h
D0h
P – znacznik parzysto’ci
OV – znacznik przepenienia dla dodawania i odejmowania w kodzie U2
RS0 i RS1 – bity wyboru bloku rejestrów roboczych
F0 – znacznik uniwersalny (do dowolnego wykorzystania)
AC – znacznik przeniesienia poówkowego
C – znacznik przeniesienia
1.1.3 Pami() danych i pami() programu
Mikrokontroler 8051 posiada obszar 4kB pamici programu ROM programowanej mask& i
256 bajtow& przestrze# adresow& pamici RAM. Wewntrzna pamici danych RAM podzielona
jest na dwa bloki:
- dolna pami$ RAM zawieraj&ca obszar czterech banków pamici, obszar bitów
adresowanych bezpo’rednio i ci&gy obszar pamici RAM tzw. obszar u+ytkownika oraz
- górna pami$ RAM zawieraj&ca obszar rejestrów specjalnych.
W obszarze zarezerwowanym dla czterech banków pamici umieszczany jest stos programu.
Mo+e on by$ umieszczony w dowolnym miejscu, przez zapis odpowiedniego adresu do rejestru SP o
adresie 81h, bd&cego wskaGnikiem stosu. Wykonanie resetu mikrokontrolera ustawia warto’$
pocz&tkow& wskaGnika stosu SP równ& 07h. SP nale+y do bloku rejestrów specjalnych, a jego
zawarto’$ wskazuje na ostatnie zajte sowo stosu. WskaGnik stosu jest inkrementowany przed
ka+dym zapisem na stos poleceniem: PUSH A
i dekrementowany po ka+dym odczycie poleceniem POP A.
Oprócz pamici wewntrznej danych mo+liwe jest do&czenie do mikrokontrolera zewntrznej
pamici danych o pojemno’ci do 64kB. Poniewa+ mikrokontroler nie posiada osobnych rozkazów do
dostpu do urz&dze# wej’cia – wyj’cia, to w obszarze adresowym 64kB zewntrznej pamici danych
mog& by$ równie+ umieszczane rejestry do&czanych do systemu urz&dze# wej’cia – wyj’cia.
70378871.001.png
Pami$ programu przechowuje kody operacji przeznaczonych do wykonania przez
mikroprocesor, mo+e tak+e su+y$ do przechowywania staych u+ywanych w programie. Pami$
programu adresowana jest przez 16-bitowy licznik rozkazów (PC). Mikrokontroler 8051 mo+e tak+e
korzysta$ z zewntrznej pamici programu o pojemno’ci do 64kB. To, z której z tych pamici
pobierane s& rozkazy zale+y od stanu wyprowadzenia /EA. W przypadku korzystania tylko z
wewntrznej pamici programu, wyprowadzenie /EA musi by$ ustawione w stan wysoki, przez
po&czenie tego wyprowadzenia z zasilaniem ukadu (przed rozpoczciem pracy ukadu). Je’li
pojemno’$ wewntrznej pamici programu jest niewystarczaj&ca, cz’$ programu mo+e by$
umieszczona w pamici zewntrznej. Wówczas dopóki warto’$ licznika rozkazów nie przekracza
rozmiaru wewntrznej pamici programu, rozkazy pobierane s& z pamici wewntrznej.
Przekroczenie przez licznik rozkazów warto’ci 0FFFH powoduje pobieranie rozkazów z zewntrznej
pamici programu. Je’li mikrokontroler ma korzysta$ wy&cznie z zewntrznej pamici programu,
wyprowadzenie /EA musi by$ ustawione w stan niski, przez zwarcie tego wyprowadzenia z mas&
ukadu.
PC zawiera adres aktualnego rozkazu przeznaczonego do wykonania. Rozkaz ten jest
pobierany z pamici do rejestru rozkazów (istnieje mo+liwo’$ odczytu warto’ci tego rejestru, ale nie
jest on dostpny dla zapisu). Na podstawie zawarto’ci rejestru rozkazów, dekoder rozkazów steruje
wyborem Gróda argumentu, miejsca umieszczenia wyniku, funkcjami jednostki arytmetyczno –
logicznej itp. – w ten sposób mikroprocesor wykonuje zadan& operacj. Je+eli nie jest wykonywany
rozkaz skoku, to zawarto’$ licznika rozkazów jest inkrementowana po odczycie ka+dego bajtu z
pamici programu. Reset mikrokontrolera powoduje ustawienie licznika rozkazów w stan 0000h.
a)
b)
FFFFh
FFFFh
Zewn2trzna
Pami2=
Programu
1000h
0FFFh
FFh
Dost2pne
tylko przez
adresowanie
po7rednie
Dost2pne
przez
adresowanie
bezpo7rednie
(SFR)
23h
1Bh
80h
13h
7Fh
Dost2pne
przez
adresowanie
po7rednie i
bezpo7rednie
0Bh
03h
00h
00h
/RD /WR
/PSEN
Rys. 1.2 Mapy pamici mikrokontrolera 8051 a) pamici danych, b) pamici programu
1.1.4 Blok rejestrów specjalnych
Blok rejestrów specjalnych (SFR) znajduje si w obszarze pamici danych mikrokontrolera o
adresach 128 – 240 (80h – F0h). Obszar rejestrów SFR mikrokontrolera '51 jest wykorzystywany
dwojako – z jednej strony umieszczone s& w nim wszystkie (za wyj&tkiem licznika rozkazów i
czterech banków rejestrów R0 – R7) rejestry steruj&ce prac& mikrokontrolera lub wykorzystywane
bezpo’rednio przy wykonywaniu programu; z drugiej za’ strony rejestry SFR stanowi& rodzaj
interfejsu pomidzy mikroprocesorem a ukadami peryferyjnymi umieszczonymi wewn&trz
mikrokontrolera. Wszystkie operacje sterowania wewntrznymi ukadami peryferyjnymi oraz
przesyania danych midzy nimi a CPU, odbywaj& si wa’nie za po’rednictwem rejestrów SFR.
Dostp do ka+dego z tych rejestrów mo+liwy jest wy&cznie w trybie adresowania rejestrowego.
70378871.002.png 70378871.003.png 70378871.004.png 70378871.005.png 70378871.006.png 70378871.007.png 70378871.008.png
Zgłoś jeśli naruszono regulamin