Author
duongnhu
View
238
Download
1
Embed Size (px)
MikrokontrolerIntel 8051
dr in. Wiesaw Madej
Mikrokontroler Intel 8051
Wprowadzony na rynek w 1980 roku
Nastpca rodziny 8048
Intel zakooczy produkcj w marcu 2006
Obecnie produkowany przez rne firmy np. (Atmel, Analog Devices, Cypress, Maxim i inne)
Cechy charakterystyczne I8051
mikrokontroler 8-io bitowy (szyna danych 8bit, adresowa 16bit)
architektura CISC
moliwod podczenia zewntrznej pamici programu i/lub danych (64kB)
rejestry konfiguracyjne (SFR)
Wewntrzna pamid danych (RAM)
Dolny obszar pamici RAM:
4 banki rejestrw (00h 1Fh)
16 bajtw oglnego zastosowania (20h2Fh)
pamid oglnego zastosowania (30h 7Fh)
Obszar rejestrw specjalnych (SFR) 80h-0FFh
Grny obszar pamici (tylko adresowanie
porednie)
Organizacja pamici RAM
Pami o adresach 80h 0FFh jest jednoznacznie rozrnialna dziki rnemu rodzajowi adresowania
Mapa dolnego obszaru RAM
Po wyzerowaniukontrolera aktywnymbankiem rejestrw jest RB0
Stos w kontrolerach I8051
umieszczony tylko w wewntrznej pamici danych
pooenie kooca stosu okrela wskanik stosu SP (stack pointer)
wykorzystywany do zapamitywania adresw powrotw procedur oraz jako podrczna pamid danych
Taktowanie mikrokontrolera
8051 posiada wbudowany oscylator
Piny przeznaczone do podczenia rezonatora s przewanie oznaczane jako XTAL
Istnieje moliwod podczenia zewntrznego sygnau zegarowego
Nowe wersje kontrolerw z rdzeniem 51 mog mied wbudowane dodatkowe ukady pozwalajce na zmian czstotliwoci taktowania podczas wykonywania programu (np. ptle synchronizacji fazowej PLL)
Zerowanie kontrolera I8051
Zerowanie ma na celu wprowadzenie procesora w stanpocztkowy pracy po wczeniu zasilania
Gwne zadania ukadu zerowania:
Zaadowanie licznika PC wartoci 0000h
Przyjecie przez wskanik stosu wartoci 07h
Rejestry wyjciowe portw (ale niekoniecznie wyprowadzenia) przyjmuj wartod 0FFh
Rejestry peryferiw przyjmuj takie wartoci, aby ukad peryferyjny pozosta nieaktywny
Zerowanie nie zmienia zawartoci wewntrznej pamici danych (np. gdy zerujemy kontroler przy wczonym zasilaniu)
Porty mikrokontrolera Komunikacja ze wiatem zewntrznym W standardowym 8051 s 4 porty omiobitowe:
P0,P1,P2,P3 (s take zmodyfikowane wersje kontrolerw o dwch portach (np.P3 i P1)
Porty P0 i P2 s predefiniowane do obsugi zewntrznych pamici: ROM i RAM
Funkcje tzw. alternatywne portw: /WR, /RD, szyna danych P0 i szyna adresowa P0 P2
Linie portw typu open collector wejcia komparatora analogowego
Obecnie porty su take do programowania wewntrznej pamici programu (EEPROM, FLASH)
Ukady peryferyjne I8051
Liczniki T0 i T1 Interfejs szeregowy UART (Universal Asynchronous
Receiver Trasmitter) Komparatory analogowe Liczniki czuwajce (watchdog) Nowsze kontrolery maja wewntrzna pamid danych
EEPROM, a take mog byd wyposaone w sprztowe interfejsy szeregowe np.: I2C, SPI, CAN czy nawet USB; ponadto w zaawansowanych konstrukcjach mona spotkad wielokanaowe przetworniki A/C, multipleksery, czujniki temperatury, modulatory PWM
Liczniki T0 i T1
Wybr trybu pracy i sterowanie za pomoc rejestrw TCON i TMOD
Praca jako licznik lub czasomierz
Max. czstotliwod pracy w trybie licznika (zliczanie impulsw zewntrznych) wynosi 1/24 czstotliwoci zegarowej (detekcja opadajcego zbocza)
Cztery tryby pracy
Interfejs szeregowy - UART
Cztery tryby pracy
Przy pracy asynchronicznej transmisja fullduplex
Pojemnod bufora 1 bajt (SBUF)
Dwa niezalene rejestry SBUF:
do zapisu danych (nadawanie)
do odbioru danych
Sterowanie czem rejestr SCON
Interfejs szeregowy tryb 0
Staa prdkod transmisji rwna 1/12 czstotliwoci zegarowej kontrolera
Taktowanie za pomoc linii TxD
Nadawanie i odbir danych linia RxD
Nadawanie inicjalizowane zapisem bajtu do rejestru SBUF
Bity sygnalizujce koniec nadawania (TI) i koniec odbioru (RI) musza byd zerowane programowo.
Interfejs szeregowy tryb 1
Transmisja asynchroniczna
Nadawanie danych inicjalizowane zapisem do rejestru SBUF
Odbir danych wyzwalany opadajcym zboczem linii RxD
Warunkiem odebrania ramki danych jest RI=0 i albo SM2=0, albo wany(=1) bit stopu (jeli SM2=1,to bajt bdzie odebrany, gdy bdzie wany (=1) bit stopu). Odebrany bit stopu jest przesyany do bitu RB8 (SCON)
Interfejs szeregowy tryb 2
Podobny do trybu 1,ale jest kilka rnic:
Za bitem D7 (przed bitem stopu) jest nadawany (odbierany) bit TB8 (RB8) 9 bit danych
Przy odbiorze ramki danych do RB8 jest wpisywany 9 bit, a nie bit stopu
Warunkiem odbioru jest RI=0 i albo SM2=0, albo 9 bit danych rwny 0 (gdy SM2=1, to dane s odbierane tylko wtedy, gdy 9 bit danych jest rwny 1).
Inne dostpne szybkoci transmisji
Interfejs szeregowy tryb 3
Prawie identyczny z trybem 2 pracy UARTu
Jedyna rnica polega na innej prdkoci transmisji
Licznik czuwajcy - watchdog
Przepenienie licznika powoduje wyzerowanie kontrolera
Pozwala na prawidowa prace systemu nawet po zawieszeniu programu (reset)
Projektant uywajc watchdoga musi cyklicznie programowo (przed jego przepenieniem) go zerowad
Zalenie od typu ukadu rne sterowanie licznikiem watchdog (rejestry WCON lub WMCON)
W trybie (obnionego poboru mocy) zamroenia (Power Down) watchdog zatrzymuje sie
Watchdog zasada dziaania(watchdog wczony)
Ukad przerwao w I8051
Szybkie reagowanie na zdarzenia w systemie
Szybsze oprogramowanie (nie trzeba cyklicznie sprawdzad np. ukadw peryferyjnych)
Dostpne s take przerwania zewntrzne
Po zakooczeniu obsugi przerwania kontroler powraca do wykonywania programu gwnego od miejsca, gdzie zosta zawieszony (program)
Ukad przerwao c.d.
W 8051 o wejciu do procedury obsugi przerwaniadecyduj m.in. bity pochodzce od ukadwperyferyjnych (oprcz komparatora) tzw. wskanikiprzerwania, oraz bity okrelajce, czy dane przerwaniejest aktywne.
Ponadto mona zablokowad cay ukad przerwaojednym bitem.
Ukad przerwao c.d.Przerwania wystpujce w kontrolerach I8051
Ukad przerwao - priorytetyW przypadku zgoszenia przerwania przez wicej ni 1 ukad, ukadprzerwao musi rozstrzygnd, ktre peryferia najpierw obsuyd. Suydo tego celu priorytet przerwao, tzn. w wymienionej sytuacji najpierwzostanie obsuone przerwanie o wyszym priorytecie. Jeli podczasobsugi przerwania przyjdzie przerwanie o priorytecie jeszcze wyszym,to ukad przerwao przejdzie do obsugi nowego przerwania (o ile jestustawiony bit zezwolenia), a dopiero potem dokooczy obsugpoprzedniego przerwania.
Priorytet poszczeglnych przerwao mona zmienid, suy do tego celurejestr IP. Naturalny priorytet przerwao przedstawia sie nastpujco:
Przerwania zewntrzneW mikrokontrolerze I8051 s dostpne dwa rda przerwao
zewntrznych:- przerwanie /INT0- przerwanie /INT1Oba przerwania mog zostad aktywowane (zgoszone), jeli nastpi jedna z
dwch sytuacji:- na wejciu pojawi sie stan niski- na wejciu zostao wykryte zbocze opadajce sygnau (w jednym cyklu
masz. jest stan wysoki, a w nastpnym cyklu masz. jest stan niski.W przypadku przerwao wyzwalanych poziomem stan niski musi zanikndprzed powrotem z procedury obsugi przerwania, poniewa ukad przerwaomoe uznad, e zostao zgoszone nowe przerwanie.Przy wyzwalaniu poziomem, wskaniki przerwao s sterowanebezporednio stanem wejd (co oznacza, e jedynym sposobemprogramowego wyzwolenia przerwania jest zapis zera do przerzutnikarejestru portu).
Obsuga przerwao
Jeli ukad przerwao wykryje, e jaki wskanik przerwania jestustawiony, a bit zezwalajcy na przerwanie jest aktywny (bitglobalnego zezwolenia te), to zostanie sprztowo wykonanainstrukcja dalekiego wywoania procedury. Moe jednak tonastpid pniej. Bedzie tak, gdy:- Jest wykonywana procedura obsugi przerwania o takim
samym lub wyszym priorytecie- Bieca instrukcja nie zdya si jeszcze wykonad- wykonywana jest instrukcja RETI (powrt z obsugi przerw.) lub
inna modyfikujca bity priorytetu lub bity zezwoleo naprzerwanie
Na koocu procedury naley umiecid rozkaz RETI.
Zmniejszenie poboru mocy
S dostpne dwa tryby zmniejszonego poboru mocy:
- tryb upienia (Idle)
- tryb zamroenia (Power Down)
Tryb Idle
Zablokowanie sygnau taktujcego CPU
Zawartod RAM i SFR jest podtrzymywana
Linie portw utrzymuj stan jaki miay w momencie wejcia do trybu Idle
Funkcje alternatywne portw s aktywne
Nie s wyczone ukady peryferyjne
Wyjcie z trybu Idle: poprzez wyzerowanie lub przerwanie
Do ustawienia trybu suy bit IDL (PCON)
Tryb Power Down
Zatrzymanie generatora -> wstrzymanie wszystkich ukadw peryferyjnych
Zawartod RAM i SFR jest podtrzymana
Mona obniyd napicie zasilania nawet do 2V
Wejcie w tryb po ustawieniu bitu PD (PCON)
Praktycznie mona opucid ten tryb wykonujc zerowanie kontrolera
Najmniejszy pobr prdu okoo 100uA
Rejestry specjalne SFR
Umieszczone w wewntrznej pamici RAM 80h-0FFh
Za pomoc rejestrw SFR mona sterowad prac wszystkich ukadw peryferyjnych
Zazwyczaj znaczna czed pamici w bloku SFR nie jest wykorzystana, ale nie mona jej wykorzystad jako normalnej pamici
Rejestry o adresach podzielnych przez 8 to rejestry o moliwoci pracy na bitach
Najwaniejsze rejestry SFR
Akumulator ACC 0E0h
Akumulator pomocniczy B 0F0h
DPH 83h
DPL 82h
IE - rejestr zezwoleo na przerwania 0A8h
IP rejestr priorytetw przerwao 0B8h
P0, P1, P2, P3 rejestry portw
PCON tryby zmniejszonego poboru mocy 87h
Najwaniejsze rejestry SFR c.d.
PSW - rejestr statusowy 0D0h SBUF - bufor UARTu 99h SCON - sterowanie UARTem 98h SP - wskanik stosu 81h TCON - sterowanie licznikw T0i T1 88h TH0 8Ch TH1 8Dh TL0 8Ah TL1 8Bh
Najwaniejsze rejestry SFR c.d.
TMOD - steruje trybami pracy licznikw T0 i T1 89h
WCON - licznik watchdoga 96h
WMCON - licznik watchdoga i pamici danych EEPROM 96h
Tryby adresowania w I8051
Rejestrowe
Bezporednie
Natychmiastowe
Porednie zawartoci rejestru
Porednie sum zawartoci rejestru bazowego i indeksowego
Tryby adresowania w I8051 c.d.
Adresowanie rejestrowe operandem instrukcji jest jeden zrejestrw R0 ..R7 z aktywnego banku rejestrw, akumulator ,rejestr B lub wskanik danych DPTR
Adresowanie bezporednie operand jest jawnie podanym 8 bitowym adresem rejestru SFR, rejestru dolnego obszaru RAM lubbitu adresowalnego bezporednio
Adresowanie natychmiastowe operandem jest staa (8 lub 16bitowa) umieszczona w kodzie programu (pamid ROM)
Adresowanie porednie okrelenie adresu za pomoc zawartociR0 lub R1 (z aktywnego banku rejestrw) odwoanie doprzestrzeni 256 bajtw
Adresowanie sum zawartoci rejestru bazowego i indeksowego suy do kopiowania bajtu z pamici programu.
Instrukcje I8051
Lista instrukcji zawiera 111 rozkazw
Instrukcje mog modyfikowad wskaniki stanu CPU:P, CY, AC, OV
Rozkazy mog wykonywad operacje arytmetyczne,logiczne, skokw bezwarunkowych i warunkowych,obsugi zewntrznej pamici RAM, obsuga pamiciprogramu
Lista rozkazw I8051
Oznaczenia stosowane przy skrconym opisie instrukcji: Rr - rejestry R0-R7 direct - obszar wewntrznej pamici danych (128B) i rejestry SFR @Ri - adres z rejestrw indeksowych R0 lub R1 bit - bity pamici danych i SFR adresowalne bezporednio #data - staa 8-bitowa. #data16 - staa 16-bitowa. addr16 - adres 16-bitowy (obszar 64kB). addr11 - adres 11-bitowy (w stronie 2kB). rel - adres wzgldny -128...+127 /bit - negacja bitu (n) - rozkaz wykonywany w n cyklach maszynowych. Brak oznaczenia oznacza
1 cykl
Lista rozkazw I8051 c.d.
Operacje arytmetyczne: ADD - dodawanie.
Dziaanie: A=A+dana.Dozwolone argumenty: A, Rr A, direct A, @Ri A, #dataModyfikowane znaczniki: C, AC, OV.
ADDC - dodawanie z przeniesieniem.Dziaanie: A=A+dana+C.Dozwolone argumenty: A, Rr A, direct A, @Ri A, #dataModyfikowane znaczniki: C, AC, OV.
SUBB - odejmowanie z poyczk.Dziaanie: A=A-dana-C.Dozwolone argumenty: A, Rr A, direct A, @Ri A, #dataModyfikowane znaczniki: C, AC, OV.
Lista rozkazw I8051 c.d.
Operacje logiczne: ANL - iloczyn logiczny AND.
Dziaanie: wykonuje logiczny iloczyn na odpowiednich bitach argumentw, wynik zapisuje do pierwszego argumentu.Dozwolone argumenty:A, Rr A, direct A, @Ri A, #data direct, A direct, #data(2)
ORL - suma logiczna OR.Dziaanie: wykonuje sume logiczna odpowiednich bitw argumentw, wynik zapisuje do pierwszego argumentu.Dozwolone argumenty: A, Rr A, direct A, @Ri A, #data direct, A direct, #data(2)
XRL - suma mod 2 (XOR).Dziaanie: wykonuje sumowanie mod 2 odpowiednich bitw argumentu, wynik zapisuje do pierwszego z nich.Dozwolone argumenty: A, Rr A, direct A, @Ri A, #data direct, A direct, #data(2)
Podsumowanie
Mikrokontrolery Intel 8051 (MCS-51) s rozbudowanymsystemem mikroprocesorowym znajdujcym si wjednym ukadzie scalonym. S wykonane wzmodyfikowanej architekturze harwardzkiej. Nale dogrupy mikrokontrolerw CISC.
Oprcz moliwoci programowania mikrokontrolera w asemblerze rodziny MCS-51, istnieje rwnie moliwod programowania w kompilowanych jzykach wysokiego poziomu najczciej wykorzystywany do tego celu jest jzyk C.
Dzikuj za uwag