1 / 49

Mikrokontrolery MCS51

Mikrokontrolery MCS51. Literatura .

idana
Download Presentation

Mikrokontrolery MCS51

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 8051. (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 1 1/38 Architektura MCS51Przestrzenie adresoweTryby adresowaniaLista rozkazów

  4. 8085 1976 Historia 2/38 rodziny MCS151 MCS251 rodzina MCS48:8048/49/508020/21/226MHz rodzina MCS51:8051/5212MHz rodzina MCS96 1980 1983 1990

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

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

  8. Architektura MCS51 6/38 Standardowe obudowy układów 8051/52

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

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

  11. Bity bezpośrednio adresowalne 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 0..127 (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). Architektura MCS51 - bity bezpośrednio adresowalne 9/38

  12. 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; nazwabitu IP ... - PT2BD PS BC ... B8h nazwarejestru adres rejestru w bloku SFR adres bitu bezpośrednioadresowalnego bit niezaimplementowany kursywa -dodatkowy obiektw 8052 Architektura MCS51 - SFR 10/38

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

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

  15. 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 = 00 01 10 11 aktywny bank 0 1 2 3 Brak flagi zera! Rozkazy skoków warunkowych JZ, JNZ bezpośrednio testują stan akumulatora. PSW CY D7 AC D6 F0 D5 RS1 D4 RS0 D3 OV D2 - D1 P D0 D0h Architektura MCS51 - SFR - PSW 13/38

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

  17. RAM B: A: 2Bh 11h 2Bh 5Ah: 57h: 59h: 58h: x 34h 2Bh 0Dh 2Bh x SP 81h stos stos stos SP: 58h 59h 58h 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. PUSH B POP A

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

  19. RAMwewn/zewn • rejestrowy pośredni R0/R1: kod rozkazu adres8b mov b,@r0movx @r1,a RAMzewn DPTR: kod rozkazu adres16b movx a,@dptr Funkcjonowanie MCS51 - tryby adresowania 17/38

  20. adresowanie indeksowo-względne PC/DPTR: baza ROM kod rozkazu  A: d movc a,@a+dptrmovc a,@a+pc RAMwewn. • bezpośredni kod rozkazu adres mov c,20h Funkcjonowanie MCS51 - tryby adresowania 18/38 Tryb adresowania operandów - bitów

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

  22. Lista rozkazów MCS51 20/38 1. Rozkazy arytmetyczne

  23. Lista rozkazów MCS51 21/38

  24. Lista rozkazów MCS51 22/38

  25. Lista rozkazów MCS51 23/38

  26. Lista rozkazów MCS51 24/38 2. Rozkazy logiczne

  27. Lista rozkazów MCS51 25/38

  28. Lista rozkazów MCS51 26/38

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

  30. Lista rozkazów MCS51 28/38 3. Rozkazy obrotów

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

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

  33. Lista rozkazów MCS51 31/38

  34. Lista rozkazów MCS51 32/38

  35. Lista rozkazów MCS51 33/38

  36. Lista rozkazów MCS51 34/38

  37. Lista rozkazów MCS51 35/38 6. Rozkazy skoków

  38. Lista rozkazów MCS51 36/38

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

  40. Lista rozkazów MCS51 38/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

More Related