Papa Francisco canoniza los martires de Rumanía (Rumanian).pptx
Mc cap 1
1. 1. MICROCONTROLERE COMPATIBILE INTEL 8051
1.1. Caracteristici generale
Variante
- Intel 8051 clasic
- 8051 „extins”: Philips 80C51MX, Dallas 390 etc,
- Intel / Atmel WM 251
„SoC” – Sistem pe un singur cip
Microcontrolere - Capitolul 1
Corneliu BURILEANU
1
2. Schema bloc
- CPU
- Oscilator cu cuar
- 4 kB ROM
- 128 B RAM
- 4 porturi I/O pe câte 1 B
- 1 port serial
- 2 num r toare (timer) pe 16 b
ă ă
- Controler de întreruperi
Microcontrolere - Capitolul 1
Corneliu BURILEANU
2
3. 1.2. Organizarea memoriei
Memoria de program i date sunt fizic separate („Harvard”)
ş
a) Memoria de program
- Este de tip ROM sau EPROM
- Harta memoriei are 64 kB
- Pe cip se afl , de regul , 4 kB, 8 kB sau 16kB. Restul memoriei este extern
ă
ă
ă
i variante cu toat memoria de program extern
ă
ă
şă
- Exist
- Validarea cu PSEN (Program Store Enable)
←
- Dup RESET, (PC)
0000H
ă
- Loca ii de memorie rezervate :
Ini ializare programe:
vector de întrerupere tip 0:
timer 0:
vector de întrerupere tip 1:
timer 1:
0000H ÷ 0002H
0003H ÷ 000AH
000BH
0013H ÷ 001AH
001BH
Microcontrolere - Capitolul 1
Corneliu BURILEANU
3
4. b) Memoria de date
- Memoria extern are 64 kB
ă
- Memoria extern e accesat cu magistrala de date i adrese prin intermediul Port 0
ş
ă
ă
i eventual Port 2
ş
- Validarea se face cu RD, WR
- Magistrala de adrese poate avea numai 1 B sau 2 B
- Memoria intern este accesat cu adrese pe 1B
ă
ă
- Sunt 3 blocuri de câte 128 B:
“Lower 128”,
“Upper 128”,
“SFR Space”.
Microcontrolere - Capitolul 1
Corneliu BURILEANU
4
5. - “Upper 128” i SFR Space sunt fizic separate i adresate cu moduri de adresare diferite
- “Upper 128” nu e implementat în 8051 clasic
- “Upper 128” este adresabil indirect la variantele la care e implementat
- “Lower 128”:
4 bancuri de câte 8 registre R0 ÷ R7
16 B – un bloc de memorie adresabil pe bit
restul – memorie de date
este adresabil direct i indirect
ş
ş
ă
ă
ă
ş
Microcontrolere - Capitolul 1
Corneliu BURILEANU
5
ă
10. 1.4. Moduri de adresare
Adresare direct :
- Adresa complet are 8 b în formatul instruc iunii curente
- Se poate utiliza pentru memoria de date intern („Lower 128 ”)
- Se poate utiliza pentru SFR
ă
ă
ă
Adresare indirect :
- Poate fi pe 8 b sau pe 16 b
- Se pot accesa 256 B de memorie intern de date („Lower 128” i „Upper 128”)
sau 64 kB de memorie extern
- Pentru adresele pe 8 b se pot folosi R0, R1 sau SP
- Pentru adresele pe 16 b se poate folosi doar DPTR – pentru memoria extern
ă
ş
ă
ă
ă
Adresare implicit (în registru):
- Datele sunt accesate în unul dintre cel 8 registre din setul de lucru R0,…, R7
- Selec ia registrului vizat se face cu 3 bi i în chiar codul instruc iunii
- Anumite instruc iuni se refer la anumite registre (acumulator, pointer de date etc.)
Selec ia registrului se face în chiar codul instruc iunii
ă
ă
Microcontrolere - Capitolul 1
Corneliu BURILEANU
10
11. Adresare imediat :
- O constant care se afl în formatul instruc iunii curente, imediat dup cod
- Constanta poate fi pe 8 b sau 16 b
ă
ă
ă
ă
Adresare indexat :
- Se folose te doar pentru memoria de program !
- Pentru tabele de translatare cu DPTR sau PC ca baz
- Pentru salturi – ACC con ine deplasamentul
ă
i ACC intrare în tabel
ă
ş
şă
Microcontrolere - Capitolul 1
Corneliu BURILEANU
11
12. 1.5. Setul de instruc iuni
1) Instruc iuni aritmetice:
Semantic
(ACC) ← (ACC) + (s)
(ACC) ← (ACC) + (s) + (CY)
(ACC) ← (ACC) - (s) - (CY)
(ACC) ← (ACC) + 1
(s) ← (s) + 1
(DPTR) ← (DPTR) + 1
(ACC) ← (ACC) - 1
(s) ← (s) - 1
(B) ↑ (A) ← (B) * (A)
(A) ← (A) div (B), (B) ← (A) mod (B)
Ajustare zecimal
ă
ă
Sintax
ADD A, s
ADDC A, s
SUBB A, s
INC A
INC s
INC DPTR
DEC A
DEC s
MUL AB
DIV AB
DA A
Moduri de adresare
Dir. Ind. Reg. Im.
Microcontrolere - Capitolul 1
Corneliu BURILEANU
12
ă
13. 2) Instruc iuni logice:
Semantic
(ACC) ← (ACC) & (s)
(s) ← (s) & (ACC)
(s) ← (s) & ((PC)+1)
(ACC) ← (ACC) ∀ (s)
(s) ← (s) ∀ (ACC)
(s) ← (s) ∀ ((PC)+1)
(ACC) ← (ACC) ⊕ (s)
(s) ← (s) ⊕ (ACC)
(s) ← (s) ⊕ ((PC)+1)
(ACC) ← 00H
(ACC) ← not (ACC)
Rote te ACC stânga cu 1 bit
Rote te ACC cu CY stânga cu 1 bit
Rote te ACC dreapta cu 1 bit
Rote te ACC cu CY dreapta 1 bit
(ACC)h ↔ (ACC)l
ă
ş
ş
ş
ş
Sintax
ANL A, s
ANL s, A
ANL s, #data
ORL A, s
ORL s, A
ORL s, #data
XRL A, s
XRL s, A
XRL s, #data
CRL A
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
Moduri de adresare
Dir. Ind. Reg. Im.
Microcontrolere - Capitolul 1
Corneliu BURILEANU
13
ă
14. 3) Transferuri de date:
Semantic
(ACC) ← (s)
(s) ← (ACC)
(d) ← (s)
(DPTR) ← ((PC)+2) ↑ ((PC)+1)
(SP) ← (SP) + 1, ((SP)) ← (s)
(d) ← ((SP)), (SP) ← (SP) - 1
(ACC) ↔ (s)
(ACC)l ↔ (Ri)l
ă
Sintax
MOV A, s
MOV s, A
MOV d, s
MOV DPTR, #data16
PUSH s
POP d
XCH A, s
XCHD A, @Ri
Microcontrolere - Capitolul 1
Corneliu BURILEANU
Moduri de adresare
Dir. Ind. Reg. Im.
14
ă
15. Observa ii
- Memoria extern este accesat cu MOVX
ă
ă
- Stiva cre te în sus!
PUSH s ; (SP) ← (SP) + 1
; ((SP)) ← (s)
ş
POP d
; (d) ← ((SP))
; (SP) ← (SP) – 1
- Cum accesarea stivei se face de fapt cu adresare indirect prin (SP),
ă
rezult c stiva poate ajunge numai în „Upper 128” (dac exist !) i NU în SFR.
ş
ă
ă
ă
Microcontrolere - Capitolul 1
Corneliu BURILEANU
15
ă
16. 4) Transferuri de date cu memoria extern :
ă
Semantic
(ACC) ← ((R0)) sau (ACC) ← ((R1))
((R0)) ← (ACC) sau ((R1)) ← (ACC)
(ACC) ← ((DPTR))
((DPTR)) ← (ACC)
ă
Sintax
MOVX A, @Ri
MOVX @Ri, A
MOVX A, @DPTR
MOVX @DPTR, A
Moduri de adresare
Dir. Ind. Reg. Im.
ă
Observa ii
- Acumulatorul este folosit întotdeauna.
- Folosirea lui DPTR impune utilizarea tuturor celor 8 bi i ai Port 2 ca magistral de adrese.
ă
5) Citire din tabele de translatare în memoria de program („lookup tables”):
Semantic
(ACC) ← ((ACC)+(DPTR))
(ACC) ← ((ACC)+(PC))
ă
Microcontrolere - Capitolul 1
Corneliu BURILEANU
ă
Sintax
MOVC A, @A+DPTR
MOVC A, @A+PC
Moduri de adresare
Dir. Indexat
Reg. Im.
16
ă
17. 6) Instruc iuni pe bit:
Semantic
(CY) ← (CY) & bit
(CY) ← (CY) & not bit
(CY) ← (CY) ∀ bit
(CY) ← (CY) ∀ not bit
(CY) ← bit
bit ← (CY)
(CY) ← 0
bit ← 0
(CY) ← 1
bit ← 1
(CY) ← not (CY)
bit ← not bit
(PC) ← (PC)+disp dac (CY) = 1
(PC) ← (PC)+disp dac (CY) = 0
(PC) ← (PC)+disp dac bit = 1
(PC) ← (PC)+disp dac bit = 0
(PC) ← (PC)+disp dac bit = 1; bit ← 0
ă
ă
ă
ă
ă
ă
Sintax
ANL C, bit
ANL C, /bit
ORL C, bit
ORL C, /bit
MOV C, bit
MOV bit, C
CLR C
CLR bit
SETB C
SETB bit
CPL C
CPL bit
JC disp
JNC disp
JB bit, disp
JNB bit, disp
JBC bit, disp
Moduri de adresare
Dir. Ind. Reg. Im.
Microcontrolere - Capitolul 1
Corneliu BURILEANU
17
ă
18. Observa ii
- Bi ii sunt adresa i în „Lower 128” i în SFR.
ş
- CY face parte din PSW.
ă
- Salturile se fac cu adresare relativ –128 la +127 B în memoria de program fa
de pozi ia
ă
instruc iunii curente.
Microcontrolere - Capitolul 1
Corneliu BURILEANU
18
20. Observa ii
- JMP este un mnemonic general pentru:
SJMP salt cu adresare relativ – format 2B.
ă
LJMP salt cu adresare direct – format 3B.
ă
AJMP salt cu adresare direct co constant pe 11b – format 2B.
ă
ă
- Identic pentru CALL.
- Toate salturile condi ionate folosesc adresare relativ .
ă
- DJNZ este ciclu cu contor; s se folose te drept contor.
ş
Microcontrolere - Capitolul 1
Corneliu BURILEANU
20
21. 1.6. Desf urarea în timp a instruc iunilor
şă
- Un ciclu ma in are 6 st ri S1,…, S6.
ă
ă
ş
- Fiecare stare are 2 perioade tact
- A adar, fiecare ciclu ma in are 12 perioade de tact
ă
ş
ş
- În general, instruc iunile dureaz 1 ciclu ma in .
ă
ş
ă
- Se face „fetch” în S1 i în S4.
ş
- MOVX necesit 2 cicluri ma in .
ă
ş
ă
În acest caz nu exist „fetch” în cadrul celui de-al 2-lea ciclu ma in .
ă
ş
ă
Microcontrolere - Capitolul 1
Corneliu BURILEANU
21