Documente Academic
Documente Profesional
Documente Cultură
Microcontrolerul 8051
Page 1 of 7
operaţii logice la nivel de bit (Boolean Operations);
un ciclu de instrucţiune de o microsecundă la o frecvenţă a ceasului de 12 MHz;
pentru funcționare are nevoie de o singură sursă de tensiune de +5V.
Familia MCS-8051 cuprinde diverse variante ale circuitului standard:
- circuitul 8051 conține 4KB memorie PROM și 128 octeți RAM;
- circuitul 8031 conține 128 octeți RAM și nu are memorie ROM (ROMless);
- circuitul 8751 conține 4KB memorie EPROM și 128 octeți RAM
- circuitul 8052 conține 8KB memorie PROM și 256 octeți RAM
- circuitul 8032 conține 256 octeți RAM nu are memorie ROM
- circuitul 8732 conține 8KB memorie EPROM și 256 octeți RAM
- circuitul 8754 conține 16KB memorie EPROM și 256 octeți RAM
- circuitul 8758 conține 32KB memorie EPROM și 256 octeți RAM.
Toate aceste versiuni preyintă procesorul propriu zis, 4 porturi paraleel de câte 8 biți (3
având un caracter opțional), un canal pentru comunicații seriale, 2 canale timer, logică de
întreruperi ce gestionează 2 întreruperi externe și 3 întreruperi interne (2 de la canalul timer și
una de la canalul serial).
Diferenţele între reprezentanţii familiei MCS-51 constau în tipurile de memorie de
program (ROM/EPROM) cu care sunt prevăzute:
- 8751 are 4kocteţi „UV-EPROM” (programabil cu ultraviolete);
- 8051 are 4kocteţi „mask-programmed ROM” (programabil prin mascare);
- 8031 nu are memorie de program on-chip, dar permite adresarea unei memorii
externe ROM de până la 64kocteţi.
Page 2 of 7
registrul în care se încarcă instrucţiunea din memoria program, iar PLA (Programmable Logic
Array) este decodorul pentru instrucţiune (notate cu RI şi, respectiv, DI, în Figura 1).
Page 3 of 7
Figura 1 – Schema bloc a microcontrolerului 8051
Registrele de uz general
Microcontrolerul foloseşte patru bancuri de registre situate în memoria RAM, fiecare
banc conţinând 8 registre, notate R0 ÷ R7. La un moment dat procesorul lucrează doar cu
registrele din bancul de memorie curent. Instrucţiunile care adresează registrele folosesc 3 biţi
pentru specificarea registrului.
F8 FF
F0 B F7
E8 EF
E0 ACC E7
D8 DF
D0 PSW D7
C8 CF
C0 C7
B8 IP BF
B0 P3 B7
A8 IE AF
A0 P2 A7
98 SCON SBUF 9F
90 P1 97
88 TCON TMOD TL0 TL1 TH0 TH1 8F
80 P0 SP DPL DPH PCON 87
Legenda:
- sunt SFR de control (controleaza modul de functionare si configurarea MC)
- sunt SFR asociate porturilor I/O (8051 are 4 porturi I/O de 8b fiecare)
- sunt alte SFR (nu controleaza in mod direct configurarea lui 8051, dar
bineinteles 8051 nu poate functiona fara ele)
Page 5 of 7
Deşi arhitectura este bazată pe acumulator există instrucţiuni de transfer la care sursa
poate fi orice locaţie din memoria internă, iar destinaţia poate fi orice registru sau locaţie de
memorie, regiştrii pot fi încărcaţi cu o constantă, ş.a.m.d..
Registrul PSW ("Program Status Word") - reprezintă registrul de stare și este pe 8 biți.
Conţine biţi de stare (indicatori condiţionali) care reflectă starea curentă a UCP. Indicatorii
condiţionali sunt afectaţi de execuţia unor instrucţiuni. Registrul PSW trebuie salvat prin
program înainte de servirea rutinelor de cerere de întrerupere alături de PC şi DP:
MSB LSB
P - OV RS0 RS1 F0 A C
7 6 5 4 3 2 1 0
C - flag (indicator) de transport setat hard/soft de anumite instrucţiuni logice şi
aritmetice;
A - flag (indicator) de transport auxiliar util la operațiile în BCD (zecimale codificate
binar);
F0 - flag 0 – bit ce poate fi folosit de utilizator pentru scopuri generale de semnalizare;
RS0, RS1 - biţi folosiți pentru selectarea bancului de regiștri activi . Selecția se
face conform tabelului următor; ei pot fi setaţi sau resetaţi software.
RS1 RS0 SELECȚIE
0 0 Bancul activ în celulele , adică Blocul 0
0 1 Bancul activ în celulele , adică Blocul 1
1 0 Bancul activ în celulele , adică Blocul 2
1 1 Bancul activ în celulele 18 , adică Blocul 3
Page 7 of 7