170 likes | 332 Views
MCS51 - wykład 2. Wykład 2 2/17. Funkcjonowanie MCS51 Generator taktu Cykle maszynowe i rozkazowe Wbudowane porty równoległe Zerowanie układu. HMOS. XTAL2 XTAL1 GND. XTAL2 XTAL1 GND.
E N D
Wykład 2 2/17 Funkcjonowanie MCS51Generator taktuCykle maszynowe i rozkazoweWbudowane porty równoległeZerowanie układu
HMOS XTAL2 XTAL1 GND XTAL2 XTAL1 GND buforTTL zewnętrznygenerator rozwiązanieklasyczne Φ1 : 6MHz Φ2 : 6MHz XTAL2 XTAL1 GND wbudowanyoscylator 12MHz 1 cykl maszynowy MCS51 - układ taktowania 3/17 Standardowy zakres częstotliwości: 1,2 - 12MHz. Mikrokontrolery - rozszerzenia MCS51 mogą być taktowane 0Hz - >> 12MHz CHMOS XTAL2 XTAL1 GND buforCMOS zewnętrznygenerator
1 cykl maszynowy= 1 cykl rozkazowy MCS51 - cykle maszynowe 4/17 wykonanie 2 rozkazów 1-bajtowych zużywających po 1 cyklu maszynowym,np. MOV A,@R1, DEC R2. zał. odczyt z zewnętrznej pamięci programu Φ1 Φ2 PSEN ALE PCL M PC+1L N PC+1L N PC+2L O PC+2L O P0 P2 PCH PC+1H PC+1H PC+2H PC+2H 1 cykl maszynowy= 1 cykl rozkazowy M, N, O - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+2]
MCS51 - cykle maszynowe 5/17 wykonanie 2 rozkazów 2-bajtowych zużywających po 1 cyklu maszynowym,np. MOV R3,#5; ADD A,B. zał. odczyt z zewnętrznej pamięci programu Φ1 Φ2 PSEN ALE PCL M PC+1L N PC+2L O PC+3L P PC+4L Q P0 P2 PCH PC+1H PC+2H PC+3H PC+4H 1 cykl maszynowy= 1 cykl rozkazowy 1 cykl maszynowy= 1 cykl rozkazowy MN, OP, Q - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+2], P=ROM[PC+3], Q=ROM[PC+4]
MCS51 - cykle maszynowe 6/17 wykonanie 1 rozkazu 1-bajtowego zużywającego 2 cykle maszynowenp. RET, INC DPTR. zał. odczyt z zewnętrznej pamięci programu Φ1 Φ2 PSEN ALE PCL M PC+1L N PC+1L N PC+1L N PC+1L N P0 P2 PCH PC+1H PC+1H PC+1H PC+1H 1 cykl maszynowy 1 cykl maszynowy 1 cykl rozkazowy M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]
PCL M PC+1L N PC+2L O PC+2L O PC+2L O PCH PC+1H PC+2H PC+2H PC+2H MCS51 - cykle maszynowe 7/17 wykonanie 1 rozkazu 2-bajtowego zużywającego 2 cykle maszynowe,np. PUSH B, SJMP skok. zał. odczyt z zewnętrznej pamięci programu Φ1 Φ2 PSEN ALE P0 P2 1 cykl maszynowy 1 cykl maszynowy 1 cykl rozkazowy MN, O - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+3]
PCL M PC+1L N PC+2L O PC+3L P PC+3L P PCH PC+1H PC+2H PC+3H PC+3H MCS51 - cykle maszynowe 8/17 wykonanie 1 rozkazu 3-bajtowego zużywającego 2 cykle maszynowe,np. LCALL 23AAh, MOV DPTR,#1. zał. odczyt z zewn. pamięci programu Φ1 Φ2 PSEN ALE P0 P2 1 cykl maszynowy 1 cykl maszynowy 1 cykl rozkazowy MNO, P - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+2] P=ROM[PC+3]
PCL M PC+1L N ADRL DIN PC+1L N PCH PC+1H ADRH / P2 PC+1H MCS51 - cykle maszynowe 9/17 wykonanie 1 rozkazu realizującego odczyt z zewnętrznej RAM, np. MOVX A,@DPTR / MOVX A,@R0 Φ1 Φ2 PSEN ALE RD P0 P2 1 cykl maszynowy 1 cykl maszynowy 1 cykl rozkazowy M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]
PCL M PC+1L N ADRL DOUT PC+1L N PCH PC+1H ADRH / P2 PC+1H MCS51 - cykle maszynowe 10/17 wykonanie 1 rozkazu realizującego zapis do zewnętrznej RAM, np. MOVX @DPTR,A / MOVX @R1,A. Φ1 Φ2 PSEN ALE WR P0 P2 1 cykl maszynowy 1 cykl maszynowy 1 cykl rozkazowy M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]
Vcc zewn. magistrala/rejestr wyj. adresów lub danych odczyt rejestru wewn. mag. danych wpis do rejestru odczyt pinu P0.X D Q C Q 1 0 MCS51 - port P0 11/17 Struktura bitu portu P0 - dwukierunkowego
Vcc zewn. magistrala/rejestr wyj. adresów odczyt rejestru wewn. mag. danych wpis do rejestru odczyt pinu P2.X D Q C Q 1 0 MCS51 - port P2 12/17 Struktura bitu portu P2 - quasi-dwukierunkowego
Vcc odczyt rejestru wewn. mag. danych wpis do rejestru odczyt pinu P1.X D Q C Q MCS51 - port P1 13/17 Struktura bitu portu P1 - quasi-dwukierunkowego
Vcc wyj. funkcja alternatywna odczyt rejestru wewn. mag. danych wpis do rejestru odczyt pinu wej. funkcja alternatywna P3.X D Q C Q MCS51 - port P3 14/17 Struktura bitu portu P3 - quasi-dwukierunkowego z funkcjami alternatywnymi ! aby funkcja alternatywna danego bitu portu była aktywna, odpowiedni bit w rejestrze PX tego portu musi być ustawiony na „1”
MCS51 - port P3 15/17 Alternatywne funkcje bitów portu P3: P3.0 - RxD - wejście portu szeregowego; P3.1 - TxD - wyjście portu szeregowego; P3.2 - INT0 - wejście przerwania zewnętrznego; P3.3 - INT1 - wejście przerwania zewnętrznego; P3.4 - T0 - zewnętrzne wejście timera 0; P3.5 - T1 - zewnętrzne wejście timera 1; P3.6 - WR - impuls zapisu do pamięci zewnętrznej; P3.7 - RD - impuls odczytu z pamięci zewnętrznej.W 80X52 także P1.0 i P1.1 mają funkcje alternatywne: P1.0 - T2 - zewnętrzne wejście timera 2; P1.1 - T2EX - wejście bramkujące timera 2.
MCS51 - porty Px 16/17 Struktura portów powoduje, że niektóre rozkazy są typu read-modify-write, tzn. czytają rejestr portu, modyfikują go w ALU i odsyłają z powrotem. Są to rozkazy: ANL Px,argORL Px,argXRL Px,argJBC Px.bit,adrrelDJNZ Px,adrrelCPL Px.bitCLR Px.bitSET Px.bitMOV Px.bit,CINC PxDEC Px Rozkazy czytające bezpośrednio końcówki portów: ANL arg,PxORL arg,PxXRL arg,PxJB Px.bit,adrrelJNB Px.bit,adrrelCJNE A,Px,adrrelADD A,PxADDC A,PxSUBB A,PxMOV arg,PxXCH A,PxPUSH Px
Vcc Vcc RESET GND MCS51 - zerowanie 17/17 Aby reset był skuteczny, należy utrzymać wysoki poziom napięcia na wejściu RESET przez minimum 24 okresy pracy oscylatora (co odpowiada 2 c.m.). Zawartość wewnętrznej RAM nie jest zmieniana w trakcie operacji zerowania. Rejestry SFR przyjmują wartości: PC = 0000h A = 00h TMOD = 00h DPTR = 0000h B = 00h TCON = 00h PSW = 00h P0 = 0FFh TH0 = 00h SP = 07h P1 = 0FFh TL0 = 00h PCON = 00h P2 = 0FFh TH1 = 00h SCON = 00h P3 = 0FFh TL1 = 00h SBUF = ?? IP = 00h IE = 00h Vcc Vcc RESET GND