SlideShare a Scribd company logo
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
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
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
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
- “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

ă
Memoria “Lower 128”

Microcontrolere - Capitolul 1
Corneliu BURILEANU

6
1.3. Registre
- 32 de registre fizice
- 8 registre logice – setul de lucru: R0, R1,…, R7
- SFR – setul de registre speciale:
Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

F7

B

EF

E8
E0

Byte 8
FF

F8
F0

Byte 7

E7

ACC

D8

DF

PSW
C8 T2CON

D7

D0

RCAP2L RCAP2H

TL2

TH2

C7

C0
B8
B0
A8
A0
98
90
88
80

CF

IP
P3
IE
P2
SCON SBUF
P1
TCON TMOD
P0
SP

BF
B7
AF
A7
9F
97

TL0
DPL

TL1
DPH

TH0

TH1

8F

PCON 87

Adresabile i pe bit
Disponibile numai pentru 8052
ş

Microcontrolere - Capitolul 1
Corneliu BURILEANU

7
ACC
B
PSW
SP
DPTR

Acumulator
Registrul extensie acumulator
„Program Status Word”
Indicator de stiv
Pointer date
ă

DPL
DPH
Port 0
Port 1
Port 2
Port 3
Control priorit i întreruperi
Control validare întreruperi
Control mod timer / counter
Control timer / counter
Control 2 timer / counter
timer / counter 0 high byte
timer / counter 0 low byte
timer / counter 1 high byte
timer / counter 1 low byte
timer / counter 2 high byte
timer / counter 2 low byte
timer / counter 2 registru captur high byte
timer / counter 2 registru captur high byte
Control serial
Buffer date seriale
Control alimentare
ă

ă
ă

P0
P1
P2
P3
IP
IE
TMOD
TCON
T2CON
TH0
TL0
TH1
TL1
TH2
TL2
RCAP2H
RCAP2L
SCON
SBUF
PCON

Microcontrolere - Capitolul 1
Corneliu BURILEANU

8
PSW

CY
AC
F0
RS1
RS0
OV
P

transport
transport auxiliar
disponibil utilizator
selec ie set de lucru registre
selec ie set de lucru registre
dep ire
definibil de c tre utilizator
paritate (în acumulator)
ă

AC

şă

CY

„Program Status Word”:

F0

RS1

RS0

OV

Microcontrolere - Capitolul 1
Corneliu BURILEANU

-

P

9
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
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
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

ă
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

ă
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

ă
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

ă
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

ă
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

ă
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
7) Salturi:

(PC) ← (PC)+disp dac (ACC) = 0
(PC) ← (PC)+disp dac (ACC) ≠ 0
(s) ← (s) – 1; dac (s) ≠ 0
(PC) ← (PC)+disp
(PC) ← (PC)+disp dac (ACC) ≠ (s)
(PC) ← (PC)+disp dac
(s) ≠ ((PC)+1)
ă

ă
ă

CJNE A, s, disp
CJNE s,#data,disp

(PC) ← adr
(PC) ← ((A)+(DPTR))
(SP) ← (SP) + 1, ((SP)) ← (PC)
(PC) ← adr
(PC) ← ((SP)), (SP) ← (SP) - 1
(PC) ← ((SP)), (SP) ← (SP) - 1
ă
ă

ă

RET
RETI
NOP
JZ disp
JNZ disp
DJNZ s, disp

Semantic

ă

Sintax
JMP adr
JMP @a+DPTR
CALL adr

Moduri de adresare
Dir. Ind. Reg. Im.

Microcontrolere - Capitolul 1
Corneliu BURILEANU

19
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
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

More Related Content

Similar to Mc cap 1

Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilorIulius Bors
 
Referat placa de baza andrei
Referat placa de baza andreiReferat placa de baza andrei
Referat placa de baza andreiFlorin Iordache
 
Curs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriCurs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriIulius Bors
 
Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdfCursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf
ChristinaArgesanu
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry piIulius Bors
 

Similar to Mc cap 1 (7)

Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilor
 
Referat placa de baza andrei
Referat placa de baza andreiReferat placa de baza andrei
Referat placa de baza andrei
 
Curs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriCurs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uri
 
Mc cap 6
Mc cap 6Mc cap 6
Mc cap 6
 
Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdfCursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry pi
 
Cap01
Cap01Cap01
Cap01
 

Recently uploaded

Proces verbal sedinta cu parintii (26.09.2023).docx
Proces verbal sedinta cu parintii (26.09.2023).docxProces verbal sedinta cu parintii (26.09.2023).docx
Proces verbal sedinta cu parintii (26.09.2023).docx
AureliaTertereanu
 
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELAPatrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
iecheisorayagabriela
 
Analiza SWOT - fisa de lucru aplicabila pentru liceu
Analiza SWOT - fisa de lucru aplicabila pentru liceuAnaliza SWOT - fisa de lucru aplicabila pentru liceu
Analiza SWOT - fisa de lucru aplicabila pentru liceu
Andreea Balaci
 
Raport proiect transfrontalier Culori fermecate.pdf
Raport proiect transfrontalier Culori fermecate.pdfRaport proiect transfrontalier Culori fermecate.pdf
Raport proiect transfrontalier Culori fermecate.pdf
savinioana
 
Antarctica caracterizare fizico geografica
Antarctica caracterizare fizico geograficaAntarctica caracterizare fizico geografica
Antarctica caracterizare fizico geografica
Alina70851
 
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia MonicaSă ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
NinaTofanErmurachi
 
Studiu Nike, Dascalu Ana-Georgiana, Crp.
Studiu Nike, Dascalu Ana-Georgiana, Crp.Studiu Nike, Dascalu Ana-Georgiana, Crp.
Studiu Nike, Dascalu Ana-Georgiana, Crp.
GeorgianaDascalu1
 
Papa Francisco canoniza los martires de Rumanía (Rumanian).pptx
Papa Francisco canoniza los martires de Rumanía (Rumanian).pptxPapa Francisco canoniza los martires de Rumanía (Rumanian).pptx
Papa Francisco canoniza los martires de Rumanía (Rumanian).pptx
Martin M Flynn
 

Recently uploaded (8)

Proces verbal sedinta cu parintii (26.09.2023).docx
Proces verbal sedinta cu parintii (26.09.2023).docxProces verbal sedinta cu parintii (26.09.2023).docx
Proces verbal sedinta cu parintii (26.09.2023).docx
 
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELAPatrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
Patrimoniul cultural PROIECT clasa a 6 a IECHEI SORAYA GABRIELA
 
Analiza SWOT - fisa de lucru aplicabila pentru liceu
Analiza SWOT - fisa de lucru aplicabila pentru liceuAnaliza SWOT - fisa de lucru aplicabila pentru liceu
Analiza SWOT - fisa de lucru aplicabila pentru liceu
 
Raport proiect transfrontalier Culori fermecate.pdf
Raport proiect transfrontalier Culori fermecate.pdfRaport proiect transfrontalier Culori fermecate.pdf
Raport proiect transfrontalier Culori fermecate.pdf
 
Antarctica caracterizare fizico geografica
Antarctica caracterizare fizico geograficaAntarctica caracterizare fizico geografica
Antarctica caracterizare fizico geografica
 
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia MonicaSă ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
Să ne împrietenim cu lectura Ermurachi Nina/ Pruncia Monica
 
Studiu Nike, Dascalu Ana-Georgiana, Crp.
Studiu Nike, Dascalu Ana-Georgiana, Crp.Studiu Nike, Dascalu Ana-Georgiana, Crp.
Studiu Nike, Dascalu Ana-Georgiana, Crp.
 
Papa Francisco canoniza los martires de Rumanía (Rumanian).pptx
Papa Francisco canoniza los martires de Rumanía (Rumanian).pptxPapa Francisco canoniza los martires de Rumanía (Rumanian).pptx
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 ă
  • 6. Memoria “Lower 128” Microcontrolere - Capitolul 1 Corneliu BURILEANU 6
  • 7. 1.3. Registre - 32 de registre fizice - 8 registre logice – setul de lucru: R0, R1,…, R7 - SFR – setul de registre speciale: Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 F7 B EF E8 E0 Byte 8 FF F8 F0 Byte 7 E7 ACC D8 DF PSW C8 T2CON D7 D0 RCAP2L RCAP2H TL2 TH2 C7 C0 B8 B0 A8 A0 98 90 88 80 CF IP P3 IE P2 SCON SBUF P1 TCON TMOD P0 SP BF B7 AF A7 9F 97 TL0 DPL TL1 DPH TH0 TH1 8F PCON 87 Adresabile i pe bit Disponibile numai pentru 8052 ş Microcontrolere - Capitolul 1 Corneliu BURILEANU 7
  • 8. ACC B PSW SP DPTR Acumulator Registrul extensie acumulator „Program Status Word” Indicator de stiv Pointer date ă DPL DPH Port 0 Port 1 Port 2 Port 3 Control priorit i întreruperi Control validare întreruperi Control mod timer / counter Control timer / counter Control 2 timer / counter timer / counter 0 high byte timer / counter 0 low byte timer / counter 1 high byte timer / counter 1 low byte timer / counter 2 high byte timer / counter 2 low byte timer / counter 2 registru captur high byte timer / counter 2 registru captur high byte Control serial Buffer date seriale Control alimentare ă ă ă P0 P1 P2 P3 IP IE TMOD TCON T2CON TH0 TL0 TH1 TL1 TH2 TL2 RCAP2H RCAP2L SCON SBUF PCON Microcontrolere - Capitolul 1 Corneliu BURILEANU 8
  • 9. PSW CY AC F0 RS1 RS0 OV P transport transport auxiliar disponibil utilizator selec ie set de lucru registre selec ie set de lucru registre dep ire definibil de c tre utilizator paritate (în acumulator) ă AC şă CY „Program Status Word”: F0 RS1 RS0 OV Microcontrolere - Capitolul 1 Corneliu BURILEANU - P 9
  • 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
  • 19. 7) Salturi: (PC) ← (PC)+disp dac (ACC) = 0 (PC) ← (PC)+disp dac (ACC) ≠ 0 (s) ← (s) – 1; dac (s) ≠ 0 (PC) ← (PC)+disp (PC) ← (PC)+disp dac (ACC) ≠ (s) (PC) ← (PC)+disp dac (s) ≠ ((PC)+1) ă ă ă CJNE A, s, disp CJNE s,#data,disp (PC) ← adr (PC) ← ((A)+(DPTR)) (SP) ← (SP) + 1, ((SP)) ← (PC) (PC) ← adr (PC) ← ((SP)), (SP) ← (SP) - 1 (PC) ← ((SP)), (SP) ← (SP) - 1 ă ă ă RET RETI NOP JZ disp JNZ disp DJNZ s, disp Semantic ă Sintax JMP adr JMP @a+DPTR CALL adr Moduri de adresare Dir. Ind. Reg. Im. Microcontrolere - Capitolul 1 Corneliu BURILEANU 19
  • 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