Documente Academic
Documente Profesional
Documente Cultură
Variante
- Intel 8051 clasic
- 8051 extins: Philips 80C51MX, Dallas 390 etc,
- Intel / Atmel WM 251
Schema bloc
- CPU
- Oscilator cu cuar
- 4 kB ROM
- 128 B RAM
- 4 porturi I/O pe cte 1 B
- 1 port serial
- 2 numrtoare (timer) pe 16 b
- Controler de ntreruperi
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
- Exist i variante cu toat memoria de program extern
- Validarea cu
Iniializare programe:
vector de ntrerupere tip 0:
timer 0:
0000H
0003H
000BH
0002H
000AH
0013H 001AH
001BH
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,
RD, WR
- Magistrala de adrese poate avea numai 1 B sau 2 B
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:
128:
4 bancuri de cte 8 registre R0 R7
16 B un bloc de memorie adresabil pe bit restul memorie de
date
este adresabil direct i indirect
5
1.3. Registre
- 32 de registre fizice
- 8 registre logice setul de lucru: R0,
R0, R1,,
R1,, R7
- SFR setul de registre speciale:
Byte 1
F
8
F
0
E
8
E
0
D
8
D
0
C
C
B
8
B
0
A
8
A
09
8
9
0
8
8
0
Byte
2
Byte
3
Byte
4
Byte
5
Byte
6
Byte
7
Byte
8
FF
F7
EF
E7
ACC
DF
D7
PSW
T2CO
IP
P3
IE
P2
SCO
N P1
TCO
N P0
RCAP2
L
RCAP2
H
TL2
CF
TH2
C7
BF
B7
AF
A7
SBU
F
TMO
D SP
9F
97
TL0
DPL
Adresabile i pe bit
Disponibile numai pentru 8052
TL1
DPH
TH0
8F
TH1
PCO
N
87
ACC Acumulator
B
Registurl Extensie acumulator
PSW "Program Status Word"
SP
Indicator de stiva
DPTR Pointer date - DPL & DPH
P0
Port 0
P1
Port 1
P2
Port 2
P3
Port 3
IP
Control prioritati intreruperi
IE
Control validare intreruperi
TMOD Control mod timer/counter
TCON Control timer/counter
T2CON Control 2 timer/counter
TH0
timer/counter 0 high byte
TL0
timer/counter 0 low byte
TH1
timer/counter 1 high byte
TL1
timer/counter 1 low byte
TH2
timer/counter 2 high byte
TL2
timer/counter 2 low
byte
RCAP2H
timer/counter 2 registru captura high byte
RCAP2L timer/counter 2 registru captura low byte
SCONControl serial
SBUF Buffer date serial
PCON Control Alimentare
PSW Program Status Word:
CY
AC
F0
RS1
RS0
OV
P
CY
AC
transport
transport auxiliar
disponibil utilizator
selecie set de lucru registre
selecie set de lucru registre
depire
definibil de ctre utilizator
paritate (n acumulator)
F0
RS1
RS0
OV
Adresare direct:
- Adresa complet are 8 b n formatul instruciunii curente
- Se poate utiliza pentru memoria de date intern (Lower
(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
(Lower 128
128 i Upper 128)
128) sau 64 kB de memorie extern
- Pentru adresele pe 8 b se pot folosi R0,
R0, R1 sau SP
- Pentru adresele pe 16 b se poate folosi doar DPTR pentru memoria extern
1)
Instruciuni aritmetice:
Moduri de adresare
Sintax
ADD A, s
Semantic
(ACC) (ACC) + (s)
Dir
Ind
Reg
Im
ADDC A, s
SUBB A, s
INC A
INC s
(s) (s) + 1
INC DPTR
DEC A
(DPTR) (DPTR) + 1
(ACC) (ACC) - 1
DEC s
(s) (s) - 1
MUL AB
DIV AB
DA A
Ajustare zecimal
(s)-sursa . Aceasta entitate joaca rol de accumulator, altul decat ACC. Aceasta facilitate suplimentara, vine cu un dezavantaj are mai putine moduri de adresare.
Inmultirea este cablata(?) se face intr-un ciclu masina, totusi cu restrictii(se pot folosi numai A si B).
12
2)
Instruciuni logice:
Moduri de adresare
Sintax
ANL A,
s
Semantic
(ACC) (ACC) & (s)
Dir.
ANL s,
ANL s,
#data
ORL A,
ORL s,
ORL s,
#data
XRL A,
XRL s,
XRL s,
#data
CRL A
(ACC) 00H
CPL A
RL A
RLC A
RR A
RRC A
SWAP A
Ind.
Reg.
Im.
(ACC)h (ACC)l
Chiar si aici se regaseste limitarea: s-ul se poate accesa printr-o singura metoda, astfel nu se pierde operandul.
13
3)
Transferuri de date:
Moduri de adresare
MO
V
MO
V
MO
V
MO
V
PUSH
Sintax
A
s
,
s
A
,
d
s
,
DPTR
#data16
,
s
(ACC) (s)
Semantic
Di
In
Reg
(s) (ACC)
(d) (s)
POP d
XCH A, s
(ACC) (s)
(ACC)l (Ri)l
XCHD A, @Ri
Este o masina de clasa B(vezi AMP). Faptul ca exista MOV-ul pe 16biti, aduce complicatii suplimentare.
14
Observaii
; (SP) (SP) + 1
; ((SP)) (s)
POP d
; (d) ((SP))
; (SP) (SP) 1
Registrele dedicate sunt adresate direct, deci nu se poate folosi adresarea indirecta deorece nu se poate suprapune stiva peste registrele dedicate.
15
4)
MOV
X
MOV
X
MOV
X
MOV
X
Sintax
A, @Ri
@Ri, A
A,
@DPTR
@DPTR,
A
Semantic
(ACC) ((R0)) sau (ACC) ((R1))
((R0)) (ACC) sau ((R1)) (ACC)
(ACC) ((DPTR))
((DPTR)) (ACC)
Moduri de adresare
Dir. Ind. Reg. I
m
Observaii
Se foloseste MOV(X) deoarece avem aceeasi adresa pentru memorii distincte, si trb sa precizam uP ce memories a foloseasca.
5)
MOV
C
MOV
Lookup tablesC
Sintax
A @A+DPTR
,
A @A+PC
,
Semantic
(ACC) ((ACC)+(DPTR))
(ACC) ((ACC)+(PC))
Moduri de adresare
Dir. Indexat
Reg. Im.
Presupunem ca trb sa implementam functia sinus. O dezvoltam in serie si folosim inmultiri si adunari. Sau am o tabela in care sunt calculate toate gradele, aceasta tabela se numeste
lookup table, si de aici se transfera direct valoarea. O chestie tipic uC, mai bine se uita intr-o tabela decat sa calculeze.
16
6)
Instruciuni pe bit:
Moduri de adresare
Sintax
ANL C, bit
ANL C, /bit
ORL C, bit
ORL C, /bit
MOV C, bit
(CY) bit
MOV bit, C
bit (CY)
CLR C
(CY) 0
CLR bit
bit 0
SETB C
(CY) 1
SETB bit
bit 1
CPL C
CPL bit
JC disp
JNC disp
JB bit, disp
JNB bit, disp
JBC bit, disp
Semantic
Dir.
Ind.
Reg.
Im.
17
Observaii
Salturi:
Moduri de adresare
Sintax
Semantic
Dir.
JMP adr
(PC) adr
JMP @a+DPTR
(PC) ((A)+(DPTR))
CALL adr
RET
RETI
Ind.
Reg.
Im.
NOP
JZ disp
JNZ disp
DJNZ s, disp
CJNE A, s, disp
CJNE s,#data,disp
Observaii
- 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.
CALL.
- Toate salturile condiionate folosesc adresare relativ.
- DJNZ este ciclu cu contor; s se folosete drept contor(orice registru)
20
Intrebari LABORATOR:
Pentru un uC tip 8051: Sa se descrie formal semantica instrutiunii: PUSH s
Ce mod de adresare poate fi folosit pentru operandul s si unde se afla acesta?
Unde se poate forma stiva?
Sa se descrie formal semnatica instructiunii: POP d
Ce mod de adresare poate fi folosit pentru operandul d si unde se afla acesta?
Unde se poate forma stiva?
2. Gestionarea Memoriei
2.1 Memoria virtuala