of 41 /41
Mikrokontroler Intel 8051 dr inż. Wiesław Madej

Mikrokontroler Intel 8051 - Politechnika Koszalińskakscps.weii.tu.koszalin.pl/pliki/4142_Intel 8051.pdf · Mikrokontroler Intel 8051 •Wprowadzony na rynek w 1980 roku •Następca

Embed Size (px)

Text of Mikrokontroler Intel 8051 - Politechnika Koszalińskakscps.weii.tu.koszalin.pl/pliki/4142_Intel...

  • 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