MCS51 - wykład 2

17
MCS51 - wykład 2

description

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. - PowerPoint PPT Presentation

Transcript of MCS51 - wykład 2

Page 1: MCS51 - wykład 2

MCS51 - wykład 2

Page 2: 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

Page 3: MCS51 - wykład 2

MCS51 - układ taktowania 3/17

Standardowy zakres częstotliwości: 1,2 - 12MHz.

Mikrokontrolery - rozszerzenia MCS51 mogą być taktowane 0Hz - >> 12MHz

XTAL2

XTAL1

GND

rozwiązanieklasyczne

zewnętrznygenerator

XTAL2

XTAL1

GND

buforTTL

HMOS

zewnętrznygenerator

XTAL2

XTAL1

GNDbuforCMOS

CHMOS

wbudowanyoscylator

XTAL2XTAL1GND

Φ1 : 6MHz

Φ2 : 6MHz12MHz

1 cykl maszynowy

Page 4: MCS51 - wykład 2

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 cykl maszynowy= 1 cykl rozkazowy

PCL

PCH

M PC+1L

PC+1H

N PC+1L

PC+1H

N PC+2L

PC+2H

O PC+2L

PC+2H

O

1 cykl maszynowy= 1 cykl rozkazowy

Φ1

Φ2

PSEN

ALE

P0

P2

M, N, O - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+2]

MCS51 - cykle maszynowe 4/17

Page 5: MCS51 - wykład 2

1 cykl maszynowy= 1 cykl rozkazowy

PCL

PCH

M PC+1L

PC+1H

N PC+2L

PC+2H

O PC+3L

PC+3H

P PC+4L

PC+4H

Q

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 cykl maszynowy= 1 cykl rozkazowy

Φ1

Φ2

PSEN

ALE

P0

P2

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 5/17

Page 6: MCS51 - wykład 2

1 cykl maszynowy

PCL

PCH

M PC+1L

PC+1H

N PC+1L

PC+1H

N PC+1L

PC+1H

N PC+1L

PC+1H

N

wykonanie 1 rozkazu 1-bajtowego zużywającego 2 cykle maszynowenp. RET, INC DPTR. zał. odczyt z zewnętrznej pamięci programu

1 cykl maszynowy

Φ1

Φ2

PSEN

ALE

P0

P2

M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]

MCS51 - cykle maszynowe 6/17

1 cykl rozkazowy

Page 7: MCS51 - wykład 2

1 cykl maszynowy

PCL

PCH

M PC+1L

PC+1H

N PC+2L

PC+2H

O PC+2L

PC+2H

O PC+2L

PC+2H

O

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 cykl maszynowy

Φ1

Φ2

PSEN

ALE

P0

P2

MN, O - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+3]

MCS51 - cykle maszynowe 7/17

1 cykl rozkazowy

Page 8: MCS51 - wykład 2

1 cykl maszynowy

PCL

PCH

M PC+1L

PC+1H

N PC+2L

PC+2H

O PC+3L

PC+3H

P PC+3L

PC+3H

P

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 cykl maszynowy

Φ1

Φ2

PSEN

ALE

P0

P2

MNO, P - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1], O=ROM[PC+2] P=ROM[PC+3]

MCS51 - cykle maszynowe 8/17

1 cykl rozkazowy

Page 9: MCS51 - wykład 2

PCL

PCH

M PC+1L

PC+1H

N ADRL

ADRH / P2

DIN PC+1L

PC+1H

N

wykonanie 1 rozkazu realizującego odczyt z zewnętrznej RAM, np. MOVX A,@DPTR / MOVX A,@R0

M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]

MCS51 - cykle maszynowe 9/17

1 cykl maszynowy 1 cykl maszynowy

Φ1

Φ2

PSEN

ALE

RD

P0

P2

1 cykl rozkazowy

Page 10: MCS51 - wykład 2

wykonanie 1 rozkazu realizującego zapis do zewnętrznej RAM, np. MOVX @DPTR,A / MOVX @R1,A.

M, N - bajty kodów rozkazów: M=ROM[PC], N=ROM[PC+1]

MCS51 - cykle maszynowe 10/17

1 cykl maszynowy 1 cykl maszynowy

Φ1

Φ2

PSEN

ALE

WR

P0

P2

1 cykl rozkazowy

PCL

PCH

M PC+1L

PC+1H

N ADRL

ADRH / P2

DOUT PC+1L

PC+1H

N

Page 11: MCS51 - wykład 2

D Q

C Q

Vcc

P0.X

zewn. magistrala/rejestr

wyj. adresów lub danych

odczyt rejestru

wewn. mag. danych

wpis do rejestru

odczyt pinu

10

MCS51 - port P0 11/17

Struktura bitu portu P0 - dwukierunkowego

Page 12: MCS51 - wykład 2

MCS51 - port P2 12/17

Struktura bitu portu P2 - quasi-dwukierunkowego

D Q

C Q

Vcc

P2.X

zewn. magistrala/rejestr

wyj. adresów

odczyt rejestru

wewn. mag. danych

wpis do rejestru

odczyt pinu

10

Page 13: MCS51 - wykład 2

MCS51 - port P1 13/17

Struktura bitu portu P1 - quasi-dwukierunkowego

D Q

C Q

Vcc

P1.X

odczyt rejestru

wewn. mag. danych

wpis do rejestru

odczyt pinu

Page 14: MCS51 - wykład 2

MCS51 - port P3 14/17

Struktura bitu portu P3 - quasi-dwukierunkowego z funkcjami alternatywnymi

wyj. funkcja alternatywna

odczyt rejestru

wewn. mag. danych

wpis do rejestru

odczyt pinu

wej. funkcja alternatywna

D Q

C Q

Vcc

P3.X

! aby funkcja alternatywna danego bitu portu była aktywna, odpowiedni bit w rejestrze PX tego portu musi być ustawiony na „1”

Page 15: MCS51 - wykład 2

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.

Page 16: MCS51 - wykład 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,Px ORL arg,PxXRL arg,PxJB Px.bit,adrrelJNB Px.bit,adrrelCJNE A,Px,adrrelADD A,PxADDC A,PxSUBB A,PxMOV arg,PxXCH A,PxPUSH Px

Page 17: MCS51 - wykład 2

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

RESET

GND

Vcc Vcc

RESET

GND

Vcc