of 34 /34
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 7 4. MATERIAŁ NAUCZANIA 4.1. Mikrokontroler 8051 4.1.1. Materiał nauczania Mikrokontroler - to komputer wykonany w jednym układzie scalonym, uŜywany do sterowania urządzeniami elektronicznymi. Układ oprócz jednostki centralnej CPU posiada zintegrowaną Ŝnego rodzaju pamięć oraz układy wejścia wyjścia. Mikrokontroler stanowi uŜyteczny i całkowicie autonomiczny system mikroprocesorowy, który z reguły nie potrzebuje współ pracować z układami zewnętrznymi. Mikrokontroler 8051 Jednym z najbardziej rozpowszechnionych 8-bitowych systemów mikroprocesorowych jest jednoukł adowy komputer 8051 (firmy Intel) zwany równieŜ mikrokontrolerem 8 bitowym, którego schemat blokowy przedstawiono na rys.1 Rys.1. Uproszczony schemat blokowy mikrokontrolera 8051 Elementy architektury układu 8051 W mikrokontrolerze 8051 moŜemy wyróŜnić następuj ące bloki składowe: - ukł ad arytmetyczno-logiczny (ALU, RF, A, RP) - blok rejestrów specjalnych (SFR), - pamięć danych (RAM) 128B, - pamięć programu (EROM) 4kB, - porty wejścia/wyjścia (P0, P1, P2 i P3),

4. MATERIA Ł NAUCZANIA 4.1. Mikrokontroler · PDF fileMikrokontroler 8051 4.1.1. Materia ł nauczania Mikrokontroler - to komputer wykonany w jednym uk ładzie scalonym, u Ŝywany

  • Author
    lamlien

  • View
    215

  • Download
    2

Embed Size (px)

Text of 4. MATERIA Ł NAUCZANIA 4.1. Mikrokontroler · PDF fileMikrokontroler 8051 4.1.1. Materia ł...

  • Projekt wspfinansowany ze rodkw Europejskiego Funduszu Spoecznego

    7

    4. MATERIA NAUCZANIA

    4.1. Mikrokontroler 8051

    4.1.1. Materia nauczania

    Mikrokontroler - to komputer wykonany w jednym ukadzie scalonym, uywany dosterowania urzdzeniami elektronicznymi. Ukad oprcz jednostki centralnej CPU posiadazintegrowan rnego rodzaju pami oraz ukady wejcia wyjcia. Mikrokontroler stanowiuyteczny i cakowicie autonomiczny system mikroprocesorowy, ktry z reguy niepotrzebuje wsppracowa z ukadami zewntrznymi.

    Mikrokontroler 8051

    Jednym z najbardziej rozpowszechnionych 8-bitowych systemw mikroprocesorowychjest jednoukadowy komputer 8051 (firmy Intel) zwany rwnie mikrokontrolerem 8bitowym, ktrego schemat blokowy przedstawiono na rys.1

    Rys.1. Uproszczony schemat blokowy mikrokontrolera 8051

    Elementy architektury ukadu 8051W mikrokontrolerze 8051 moemy wyrni nastpujce bloki skadowe: ukad arytmetyczno-logiczny (ALU, RF, A, RP) blok rejestrw specjalnych (SFR), pami danych (RAM) 128B, pami programu (EROM) 4kB, porty wejcia/wyjcia (P0, P1, P2 i P3),

  • Projekt wspfinansowany ze rodkw Europejskiego Funduszu Spoecznego

    8

    programowany ukad czasowy (T0, T1), ukad transmisji szeregowej, blok przerwa, generator sygnau taktujcego, ukad sterowania.

    Ukad arytmetyczno - logicznyPodstawowymi elementami skadowymi ukadu arytmetyczno-logicznego s:

    8-bitowa jednostka przetwarzajca (ALU) z ukadem korekcji dziesitnej, rejestry pomocnicze uywane przy wykonywaniu oblicze (niedostpne dla

    programisty), dekoder rozkazw.

    Z ukadem arytmometru wsppracuj ponadto dwa rejestry operacyjne: akumulator (A)i rejestr pomocniczy RP oznaczany rwnie B. Akumulator zawiera jeden z operandw orazzapisywany jest w nim wynik operacji. Rejestr RP zawiera drugi operand wykorzystywanygwnie przy operacjach mnoenia i dzielenia. Argumentami operacji wykonywanych przezarytmometr mog by rwnie zawartoci innych rejestrw specjalnych, zawartoci komrekpamici lub dane wprowadzane bezporednio.

    Arytmometr (ALU) moe wykonywa nastpujce operacje na argumentachomiobitowych: dodawanie, dodawanie z przeniesieniem, odejmowanie z poyczk, zwikszanie i zmniejszanie zawartoci akumulatora, mnoenie w naturalnym kodzie binarnym dajce 16-bitowy wynik, dzielenie w naturalnym kodzie binarnym dajce 8-bitowy wynik i 8-bitow reszt, iloczyn logiczny, suma logiczna i suma modulo 2, zerowanie, negacja i rotacja zawartoci akumulatora, korekcja dziesitna zawartoci akumulatora.

    Z arytmometrem cile powizany jest rejestr flagowy. Wartoci bitw w rejestrzeflagowym zmieniaj si w czasie wykonania przez arytmometr operacji arytmetyczno-logicznej i opisuj rezultaty ostatnio wykonywanego rozkazu. Miejsca wystpowaniaposzczeglnych bitw rejestru flagowego przedstawiono na rys. 2. Wikszo bitwflagowych jest identyczna z flagami innych procesorw 8-bitowych: P (parity) - to znacznik parzystoci wartoci bitw zapisanych akumulatorze, 1

    oznacza parzysta liczb jedynek w zapisanych w akumulatorze, 0 nieparzyst, OV (overflow) - znacznik przepenienia (nadmiaru) dla dodawania i odejmowania

    w kodzie U2, 1 oznacza wystpienie nadmiaru bd przepenienia, 0 jego brak, RSO, RS1 - to bity wyboru banku rejestrw roboczych, wedug kodu podanego na rys.3, F0 - jest znacznikiem uniwersalnym dowolnego zastosowania, AC (auxiliary carry) - znacznik przeniesienia powkowego; ustawiany w przypadku

    wystpienia przeniesienia miedzy bitami 3 i 4 akumulatora, 1 wystpienieprzeniesienia, 0 jego brak,

    C (CY) (carry) - jest znacznikiem przeniesienia ustawianym w przypadku przepenieniasidmego bitu akumulatora b7, 1 wystpienie przeniesienia, 0 jego brak.

    bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

    C AC F0 RS1 RS0 OV - PRys.2. Rejestr flagowy mikrokontrolera 8051 [7]

  • Projekt wspfinansowany ze rodkw Europejskiego Funduszu Spoecznego

    9

    RS1 RS0 Wybrany bank

    0 0 bank 00 1 bank 11 0 bank 21 1 bank 3

    Rys.3. Znaczenie bitw RS0 i RS1 [7]

    Pami danychWewntrzna pami danych zawiera dwa bloki: 128 bajtw cigego obszaru pamici RAM (rys. 4), 128 bajtw bloku rejestrw specjalnych (SFR) mikrokontrolera.

    Obszar od adresu 0 do 31 (0H-1FH) zajmuj cztery banki rejestrw roboczych, po osiemrejestrw w banku (adresowane bitami RS1 i RS0 rejestru flagowego). Rejestry oznaczonesymbolami R0 - R7 mog by wykorzystywane do przechowywania danych. Rejestry R0 i R1kadego bloku, mog by wykorzystane do indeksowego adresowania wewntrzneji zewntrznej pamici danych. Po wyzerowaniu mikrokontrolera sygnaem RST uytkownikdysponuje blokiem 0 rejestrw roboczych. Jest to obszar pamici o adresach 32-47(20H-2FH), ktry moe by uywany do przechowywania dowolnych danych wykorzystywanychw programie. Cech tego obszaru jest moliwo zaadresowania dowolnego, pojedynczegobitu komrki pamici, w obszarze 0-127 (0H-7FH), natomiast numer bitu wskazujemyz wyliczenia: (n-32)*8+i (n jest adresem bajtu, i numerem bitu w tym sowie). Map pamiciwewntrznej RAM przedstawiono na rys.4.

    Adresy 48-127 (30H-7FH) Pami danych uytkownikaAdresy 32-47 (20H-2FH) Pami adresowana bitowo (adresy bitw 0-127)Adresy 24-31 (18H-1FH) Blok 3 - rejestry R0-R7Adresy 16-23 (10H-17H) Blok 2 - rejestry R0-R7Adresy 8-15 (8H-0FH) Blok 1 - rejestry R0-R7Adresy 0-7 (0H-7H) Blok 0 - rejestry R0-R7

    Rys.4. Mapa pamici RAM mikrokontrolera 8051 [7]

    Do adresacji pojedynczych bitw odwouj si specyficzne rozkazy mikrokontrolera.W wewntrznej pamici danych umieszczany jest rwnie stos, lokowany w dowolnym

    miejscu pamici wewntrznej sterownika. Po wyzerowaniu ukadu sygnaem RST zawartowskanika stosu (Stack Pointer) SP = 7. Wskanik stosu jest inkrementowany przed kadymzapisem na stos i dekrementowany po kadym odczycie.

    Oprcz bloku pamici wewntrznej mikrokontroler moe wsppracowa z 64 KBzewntrznej pamici. Poniewa nie dysponuje on niezalenymi rozkazami komunikacjiz urzdzeniami WE/WY, w obszarze adresowym 64KB pamici zewntrznej musz byrwnie uwzgldnione rejestry urzdze WE/WY.

    Blok rejestrw specjalnych mikrokontrolera 8051

    Blok rejestrw specjalnych (SFR - Special Function Registers) umieszczono w tzw.niespjnym obszarze pamici sterownika, o adresach 128-240 (80H-0F0H). S onewykorzystywane na dwa sposoby: s tam lokowane wszystkie (za wyjtkiem licznikarozkazw i czterech bankw rejestrw R0-R7) rejestry sterujce prac ukadu lubwykorzystywane s bezporednio do zapisu programu. Rejestry SFR mog rwnie pracowajako interfejs pomidzy mikroprocesorem a ukadami zewntrznymi sterownika. Dostp dokadego z tych rejestrw odbywa si w trybie adresowania bezporedniego. Wykaz rejestrwspecjalnych sterownika zamieszczono w tabl. 1.

  • Projekt wspfinansowany ze rodkw Europejskiego Funduszu Spoecznego

    10

    Tabela 1 Rejestry specjalne (SFR) mikrokontrolera 8051 [7]Nazwa Adres Peniona funkcja

    PO 128 (80H) Port WE/WY P0SP 129 (81H) Wskanik stosuDPL 130 (82H) Rejestr indeksowy DPTR (mniej znaczcy bajt)DPH 131 (83H) Rejestr indeksowy DPTR (bardziej znaczcy bajt)PCON 135 (87H) Rejestr sterujcy stanami upienia procesoraTCON 136 (88H) Rejestr sterujcy ukadw czasowych T0 i T1TMOD 137 (89H) Rejestr trybu pracy ukadw czasowych T0 i T1TLO 138 (8AH) Rejestr danych ukadu czasowego T0 (mniej znaczcy)TL1 139 (8BH) Rejestr danych ukadu czasowego T1 (mniej znaczcy)THO 140 (8CH) Rejestr danych ukadu czasowego T0 (bardziej znaczcy)TH1 141 (8DH) Rejestr danych ukadu czasowego T1 (bardziej znaczcy)P1 144 (90H) Port WE/WY T1SCON 152 (98H) Rejestr sterujcy ukadu transmisji szeregowejSBUF 153 (99H) Rejestr danych ukadu transmisji szeregowejP2 160(0A0H) Port WE/WY T2IE 168(0A8H) Rejestr maski przerwaP3 176(0B0H) Port WE/WY T3IP 184(0B8H) Rejestr priorytetw przerwaPSW 208 (0D0H) Sowo stanu procesora/FlagiA 224 (OEOH) AkumulatorRP 240 (OFOH) Rejestr oglnego przeznaczeniaRejestry specjalne mikrokontrolera 8051.

    W standardowym ukadzie 8051 zainstalowano 4KB programowalnej pamici typuEPROM (niektre wersje ukadu wyposaono w pami EEPROM). W pamici staejzapisywane s kody staych operacji kontrolera. Pami programu adresowana jest 16-bitowym licznikiem rozkazw (PC). Mikrokontroler 8051 moe take korzysta z 64KBpamici zewntrznej. Wyborem rodzaju pamici steruje linia EA .W przypadku korzystania zwewntrznej pamici programu sygna EA musi mie warto wysok. Jeli mikrokontroler

    ma korzysta z zewntrznej pamici programu linia EA musi by ustawione w stan niski.Poniewa zerowanie sygnaem RST ustawienie licznik rozkazw w stan 0000H, pocztek

    programu musi by umieszczony pod tym samym adresem. Zwykle umieszczana jest taminstrukcja skoku do dalszego obszaru pamici programu, poniewa poczwszy od adresu0003H pierwsze kilkadziesit bajtw (Tabl. 2) rezerwowane jest przez procedury obsugiprzerwa.

    Tabela 2 Adresy wektorw przerwa sterownika 8051 [7]Adres Zawarto0003H Pocztek procedury obsugi przerwania zewntrznego

    INT0'000BH Pocztek procedury obsugi przerwania z ukadu0013H Pocztek procedury obsugi przerwania zewntrznego001BH Pocztek procedury obsugi przerwania z ukadu0023H Pocztek procedury obsugi przerwania z ukadu transmisji

    Licznik PC zawiera adres aktualnego rozkazu przeznaczonego do wykonania. Kodrozkazu przekazywany do rejestru rozkazw (jednostki sterujcej) steruje wyborem rda

  • Projekt wspfinansowany ze rodkw Europejskiego Funduszu Spoecznego

    11

    argumentw, miejsca umieszczenia wyniku, funkcjami arytmometru, itp. Jeeli nie jestwykonywany rozkaz skoku, to zawarto licznika rozkazw jest inkrementowana po odczyciekadego bajtu z pamici programu

    Porty wejcia/wyjciaS to linie we/wy mikrokontrolera 8051 pogrupowane s w cztery 8-bitowe porty:

    1) P0 - linie P0.0/AD0 - P0.7/AD72) P1 - linie P1.0 - P1.73) P2 - linie P2.0/A8 - P2.7/A154) P3 - linie P3.0/RxD', P3.1/TxD', P3.2/INT0', P3.3/INT1', P3.4/T0, P3.5/T1, P3.6/WR',

    P3.7/RD'Wszystkie linie portw P0-P3 pracujce jako standardowe linie wejcia/wyjcia s niezalenepod wzgldem kier