Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Mikrokontrolery MCS51.

Podobne prezentacje


Prezentacja na temat: "Mikrokontrolery MCS51."— Zapis prezentacji:

1 Mikrokontrolery MCS51

2 Literatura H.Małysiak - Mikrokomputery jednoukładowe serii MCS48, MCS51, MCS96 (PKJS Gliwice 1992) T.Prokop - Wybrane mikrokomputery jednomodułowe firmy INTEL (Wydawnictwa PW 1991) P.i P.Gałka - Podstawy programowania mikrokontrolera 8051 (Mikom 1995) T.Starecki - Mikrokontrolery jednoukładowe rodziny 51 (NOZOMI 1996) T.Starecki - mikrokontrolery 8051 w praktyce (BTC 2004) J.Janiczek, A.Stępień - Mikrokontrolery (WCKP 1999) J.Janiczek, A.Stępień - Laboratorium systemów mikroprocesorowych. cz I i II (WCKP, 1996) J.Doliński - Mikrokomputer jednoukładowy (Wyd. PLJ 1993) J.M.Sibigtroth - Zrozumieć małe mikrokontrolery (BTC 2003) R.Pełka - Mikrokontrolery, architektura, programowanie, zastosowania (WKŁ 1999) L.Grodzki - materiały do przedmiotu - pliki *.pdf dostępne na stronie www przedmiotu

3 Wykład /38 Architektura MCS51 Przestrzenie adresowe Tryby adresowania Lista rozkazów

4 rodziny MCS151 MCS251 rodzina MCS48: 8048/49/50 8020/21/22 6MHz
Historia /38 rodziny MCS151 MCS251 rodzina MCS48: 8048/49/ /21/22 6MHz rodzina MCS51: 8051/52 12MHz rodzina MCS96 1976 8085 1980 1983 1990

5 Architektura MCS /38 Układ 8051 z serii MCS51 charakteryzuje się następującymi cechami: ośmiobitową jednostką CPU; wbudowanym procesorem operacji bitowych; szeroką gamą 255 instrukcji, w tym rozkazów szybkiego mnożenia i dzielenia liczb 1-bajtowych; wbudowanym obwodem zegara systemu; obecnością 32 linii we/wy; wbudowaną wewnętrzną pamięcią RAM o pojemności 128 bajtów; wbudowaną wewnętrzną pamięcią ROM (8051) albo EPROM (8751) o pojemności 4kB; przestrzenią adresową 64kB dla zewnętrznej pamięci RAM; przestrzenią adresową 64kB dla zewnętrznej pamięci ROM (EPROM); wbudowanymi dwoma 16-bitowymi timerami; wbudowanym dwukierunkowym portem transmisji szeregowej; priorytetowym, wektorowym systemem przerwań.

6 RR & DR układ sterowania
Architektura MCS /38 Struktura blokowa układu 8051 128B SRAM rej. P2 rej. adr. RAM PC inkrementer PC rej. DPTR gen. taktu RR & DR układ sterowania XTAL1 XTAL2 PSEN ALE EA RST Acc PSW TMP1 TMP2 ALU rej. B rej. P1 PCON SCON SBUF TCON TH0 TL0 TH1 TL1 TMOD IP IE SP system przerwań, port SIO, 2 timery/liczniki rej. P0 rej. P3 4kB ROM rejestr adresu programu P P1.0 P P3.0 P P0.0 P P2.0 Vcc GND SFR

7 RR & DR układ sterowania
Architektura MCS /38 Struktura blokowa układu 8052 256B SRAM rej. P2 rej. adr. RAM PC inkrementer PC rej. DPTR gen. taktu RR & DR układ sterowania XTAL1 XTAL2 PSEN ALE EA RST Acc PSW TMP1 TMP2 ALU rej. B rej. P1 PCON SCON SBUF TCON TH0 TL0 TH1 TL1 TMOD IP IE SP system przerwań, port SIO, 3 timery/liczniki rej. P0 rej. P3 8kB ROM rejestr adresu programu P P1.0 P P3.0 P P0.0 P P2.0 Vcc GND SFR TH2 TL2 T2CON RCAP2H RCAP2L

8 Standardowe obudowy układów 8051/52
Architektura MCS /38 Standardowe obudowy układów 8051/52

9 Przestrzenie adresowe układów MCS51
Architektura MCS /38 Przestrzenie adresowe układów MCS51 0FFh 80h bank 0 00h bank 1 08h bank 2 10h bank 3 18h 7Fh h bity bezpośr. adresowalne 07h h 2Fh 20h RAM 7Fh 30h opcjonalny RAM SFR ROM zewn. ROM wewn. 0000h 0FFFFh ROM zewnętrzny ROMMAX EA=0 EA=1 0FFFFh RAM zewnętrzny 0000h RAM wewnętrzny adres startowy programu = 0000h adresy = k*8+3 - wektory przerwań

10 Architektura MCS51 - rejestry robocze 8/38
Banki rejestrów roboczych Komórki wewnętrznego RAM z obszaru 00h..1Fh mogą być używane jako 4 banki rejestrów roboczych: R0 00h: R1 01h: R2 02h: R3 03h: R4 04h: R5 05h: R6 06h: R7 07h: bank00 08h: 09h: 0Ah: 0Bh: 0Ch: 0Dh: 0Eh: 0Fh: bank01 10h: 11h: 12h: 13h: 14h: 15h: 16h: 17h: bank10 18h: 19h: 1Ah: 1Bh: 1Ch: 1Dh: 1Eh: 1Fh: bank11 Numer aktualnie aktywnego banku rejestrów wskazują bity RS1, RS0 w PSW. Typowym zastosowaniem banków rejestrów jest obsługa przerwań.

11 Architektura MCS51 - bity bezpośrednio adresowalne 9/38
Są to bity fragmentu wewnętrznego RAM i wybranych rejestrów SFR. Są bezpośrednio dostępne dla rozkazów operacji bitowych. Pełnią funkcję 1-bitowych rejestrów logicznych. Bity komórek RAM z obszaru 20h..2Fh mają adresy bezpośrednie od (00..7Fh), zgodnie ze wzorem: adrbitu = (adrbajtu - 20h)*8 + pozycjawbajcie W przypadku rejestrów SFR, bity bezpośrednio adresowalne mają rejestry o adresie będącym wielokrotnością 8 (np. 80h, C8h).

12 Architektura MCS51 - SFR 10/38
SFR - blok rejestrów specjalnych: przestrzeń 128 adresów od 80h do 0FFh; zawiera rejestry umożliwiające: dostęp do wbudowanych peryferii sterowanie pracą mikrokontrolera kontrolowanie systemu przerwań ekstensywne wykorzystanie adresów w standardzie (8051) pozwala na projektowanie licznych rozszerzeń jego struktury o różnorodne urządzenia zewnętrzne; rejestry zdefiniowane przez Intela dla 8051 jako standard, mają takie same adresy w SFR w innych układach rodziny MCS51; ... - PT2 BD PS BC IP B8h bit nie zaimplementowany kursywa - dodatkowy obiekt w 8052 adres bitu bezpośrednio adresowalnego adres rejestru w bloku SFR nazwa rejestru nazwa bitu

13 Architektura MCS51 - SFR 11/38
P2.7 A7 P2.6 A6 P2.5 A5 P2.4 A4 P2.3 A3 P2.2 A2 P2.1 A1 P2.0 A0 P2 A0h EA AF - AE ET2 AD ES AC ET1 AB EX1 AA ET0 A9 EX0 A8 IE A8h P3.7 B7 P3.6 B6 P3.5 B5 P3.4 B4 P3.3 B3 P3.2 B2 P3.1 B1 P3.0 B0 P3 B0h - BF - BE PT2 BD PS BC PT1 BB PX1 BA PT0 B9 PX0 B8 IP B8h TF2 CF EXF2CE RCLKCD TCLKCC EXEN2CB TR2 CA C/T2 C9 CP/RL2C8 T2CON C8h CAh RCAP2L CBh RCAP2H CCh TL2 CDh TH2 CY D7 AC D6 F0 D5 RS1 D4 RS0 D3 OV D2 - D1 P D0 PSW D0h A.7 E7 A.6 E6 A.5 E5 A.4 E4 A.3 E3 A.2 E2 A.1 E1 A.0 E0 A E0h B.7 F7 B.6 F6 B.5 F5 B.4 F4 B.3 F3 B.2 F2 B.1 F1 B.0 F0 B F0h

14 Architektura MCS51 - SFR 12/38
SBUF SM0 9F SM1 9E SM2 9D REN 9C TB8 9B RB8 9A TI 99 RI 98 SCON 98h P1.7 97 P1.6 96 P1.5 95 P1.4 94 P1.3 93 P1.2 92 P1.1 91 P1.0 90 P1 90h 8Dh TH1 8Ch TH0 8Bh TL1 8Ah TL0 GATE C/T M1 M0 TMOD 89h TF1 8F TR1 8E TF0 8D TR0 8C IE1 8B IT1 8A IE0 89 IT0 88 TCON 88h SMOD - GF1 GF0 PD IDL PCON 87h 83h DPH 82h DPL 81h SP P0.7 87 P0.6 86 P0.5 85 P0.4 84 P0.3 83 P0.2 82 P0.1 81 P0.0 80 P0 80h

15 Architektura MCS51 - SFR - PSW 13/38
CY D7 AC D6 F0 D5 RS1 D4 RS0 D3 OV D2 - D1 P D0 PSW D0h CY - flaga przeniesienia AC - flaga przeniesienia połówkowego przy dodawaniu (między bitami 3 i 4) F0 - flaga do wykorzystania w programie OV - flaga nadmiaru po operacjach arytmetycznych P - flaga parzystości liczby jedynek w akumulatorze A RS1,RS0 - bity wyboru aktywnego banku rejestrów: RS1,RS0 = aktywny bank Brak flagi zera! Rozkazy skoków warunkowych JZ, JNZ bezpośrednio testują stan akumulatora.

16 Architektura MCS51 - SFR - A, B 14/38
Wykorzystywany w większości operacji ALU. Jego bity są bezpośrednio adresowalne. Pośredniczy przy odwołaniach do zewnętrznej pamięci danych. A.7 E7 A.6 E6 A.5 E5 A.4 E4 A.3 E3 A.2 E2 A.1 E1 A.0 E0 A E0h B.7 F7 B.6 F6 B.5 F5 B.4 F4 B.3 F3 B.2 F2 B.1 F1 B.0 F0 B F0h Pomocniczy rejestr roboczy. Wykorzystywany przy rozkazach mnożenia i dzielenia pojedynczych bajtów. Jego bity są bezpośrednio adresowalne.

17 Architektura MCS51 - SFR - SP i stos 15/38
Rejestr adresujący wierzchołek stosu programowego - wskazuje na ostatnio zapisany na stos bajt. Po resecie przyjmuje wartość 07h ! Stos Funkcjonuje tylko w wewnętrznym RAM (! ograniczony obszar). Zapis na stos powoduje przesuwanie się wierzchołka stosu w kierunku wyższych adresów, odczyt - odwrotnie. ! Możliwe jest „zawinięcie” stosu modulo rozmiar wbudowanej wewn. RAM. 2Bh B: 11h A: 58h SP: x 59h: 0Dh 58h: 34h 57h: 5Ah: RAM stos PUSH B POP A stos 58h 2Bh stos 59h 2Bh

18 Funkcjonowanie MCS51 - tryby adresowania 16/38
Tryby adresowania operandów - bajtów natychmiastowy kod rozkazu operand mov r6,#130 rejestrowy operand kod rozkazu Rx: mov a,r6 bezpośredni kod rozkazu adres RAM wewn. inc 20h

19 Funkcjonowanie MCS51 - tryby adresowania 17/38
rejestrowy pośredni RAM wewn/zewn adres8b kod rozkazu R0/R1: adres16b DPTR: RAM zewn mov movx

20 Funkcjonowanie MCS51 - tryby adresowania 18/38
adresowanie indeksowo-względne PC/DPTR: d kod rozkazu ROM baza A: movc movc Tryb adresowania operandów - bitów bezpośredni kod rozkazu RAM wewn. mov c,20h adres

21 Funkcjonowanie MCS51 - tryby adresowania 19/38
ROM zewn. ROM wewn. 0000h 0FFFFh ROM zewnętrzny ROMMAX EA=0 EA=1 0FFh 80h bank 0 00h bank 1 08h bank 2 10h bank 3 18h 7Fh h bity bezpośr. adresowalne 07h h 2Fh 20h RAM 7Fh 30h opcjonalny RAM SFR rejestrowy pośredni bezpośredni rejestrowy bezpośredni-bitów rejestrowy pośredni z DPTR rejestrowy pośredni z R0/R1 RAM zewnętrzny RAM wewnętrzny indeksowo-względny Dostępność trybów adresowania

22 Lista rozkazów MCS /38 1. Rozkazy arytmetyczne

23 Lista rozkazów MCS /38

24 Lista rozkazów MCS /38

25 Lista rozkazów MCS /38

26 Lista rozkazów MCS /38 2. Rozkazy logiczne

27 Lista rozkazów MCS /38

28 Lista rozkazów MCS /38

29 Lista rozkazów MCS /38 ;zadanie: generacja fal prostokątnych w przeciwfazach na liniach P1.0 i P1.1 XRL SJMP cykle masz. rozkazy P1.1 P1.0 mov P1,#0FEh powt1: xrl P1,#03h sjmp powt1 powt2: cpl P1.0 cpl P1.1 sjmp powt2 CPL SJMP cykle masz. rozkazy P1.1 P1.0 CLR A A:=0 CPL A A:=not A

30 Lista rozkazów MCS /38 3. Rozkazy obrotów

31 Lista rozkazów MCS /38 4. Rozkazy operacji bitowych

32 Lista rozkazów MCS /38 5. Rozkazy przesłań

33 Lista rozkazów MCS /38

34 Lista rozkazów MCS /38

35 Lista rozkazów MCS /38

36 Lista rozkazów MCS /38

37 Lista rozkazów MCS /38 6. Rozkazy skoków

38 Lista rozkazów MCS /38

39 Lista rozkazów MCS /38 7. Rozkazy wywołań procedur i powrotów

40 Lista rozkazów MCS /38 8. Wpływ rozkazów na PSW

41 MCS51 - przykłady programowania 1/9

42 MCS51 - przykłady programowania 2/9

43 MCS51 - przykłady programowania 3/9

44 MCS51 - przykłady programowania 4/9

45 MCS51 - przykłady programowania 5/9

46 MCS51 - przykłady programowania 6/9

47 MCS51 - przykłady programowania 7/9
Przypadek „bezpieczny”: stan licznika T0: wykonany rozkaz: 8877h MOV R1,TH0 8878h MOV R0,TL0 wartość w R1R0=8878h Przypadek „krytyczny”: stan licznika T0: wykonany rozkaz: 88FFh MOV R1,TH0 8900h MOV R0,TL0 ! błędna wartość w R1R0=8800h

48 MCS51 - przykłady programowania 8/9

49 MCS51 - przykłady programowania 9/9


Pobierz ppt "Mikrokontrolery MCS51."

Podobne prezentacje


Reklamy Google