Sunteți pe pagina 1din 27

1

Sisteme ncorporate

Curs 2

2
Sisteme ncorporate
2. Arhitecturi de microcontrolere
2.1. Arhitectura 8051
Microcontroler pe 8 bii, nucleul unei familii n continu dezvoltare;
Caracteristici:
este realizat n tehnologie CMOS,
include 4 Ko memorie ROM i 128 octei memorie RAM,
include procesor boolean,
include o unitate aritmetic i logic,
are 4 porturi de intrare/ ieire care pot fi utilizate ca porturi de uz general dar au i
funciuni specifice,
poate adresa 64 Ko memorie extern de program i 64 Ko memorie extern de
date,
are 2 contoare/ temporizatoare, independente,
include un port serial UART full duplex,
set de instruciuni orientat pe aplicaii n timp real, instruciuni simple i rapide,
poate gestiona 5 surse de ntreruperi, cu 2 nivele de prioriti,
consum mic: 16 mA n modul normal, 3,7 mA n modul Idle i 50 A n modul
Power Down.
3
Sisteme ncorporate

Structura intern

Sistem de
ntreruperi
ntreruperi externe
CPU
Generator
de tact
Logic de
control a
magistralei
Porturi de I/E
Port
serial
Contor
0
Contor
1
1280
RAM
4 ko
ROM
Registre cu
funciuni
speciale
P0 P1 P2 P3 TxD RxD T0 T1
4
Sisteme ncorporate
Diferenele ntre membrii familiei de microcontrolere bazate pe
80C51 apar la nivelul structurii interne i a vitezei de lucru, adic a
frecvenei tactului acceptat la intrrile oscilatorului intern.

Toi membrii familiei includ blocurile de mai sus i sunt pstrate
toate caracteristicile acestora, de la organizare pn la adrese, dar
apar resurse suplimentare:
mai mult memorie intern care poate fi i programabil,
mai multe registre interne,
mai multe contoare/ temporizatoare,
mai multe porturi de intrare/ ieire,
noi blocuri ca generator de ieiri cu durate programabile,
convertor analog/ digital,
interfee CAN i I2C
etc.
5
Sisteme ncorporate
2.2. Configuraia terminalelor:

8
0
C
5
1
(11) P3.0 / RXD
(13 P3.1 / TXD
(14) P3.2 / INT0
(15) P3.4 / INT1
(16) P3.5 / T0
(17) P3.6 / T1
(18) P3.7 / /WR
(19) P3.8 / /RD
(21) XTAL1
(20) XTAL2
(44) V
CC
(22) V
SS
10
11
12
13
14
15
16
17
19
18
40
20
39-32
1-8
P0.0-7 / AD0-7 (43-36)
P1.0-7 (2-9)
P2.0-7 / A8-15 (24-31)
ALE (33)
/PSEN (32)
/EA (35)
RST (10)
24-31
30
29
31
9
6
Sisteme ncorporate
2.3. Organizarea memoriei
16 linii de adrese dar poate gestiona 128 Ko;
Distinge ntre spaiul de memorie de program i cel de memorie de
date, activnd semnale de comand diferite:
/PSEN pentru memoria de program i
/RD, /WR pentru memoria de date.
Primii 4 Ko din memoria de program sunt interni; accesul la ei se
face cu terminalul /EA = 1;
Dac terminalul /EA = 0 sau dac accesul se face la o locaie cu
adresa peste 0FFFH, va fi adresat memoria extern de program;
Locaii cu funciuni predeterminate din memoria de program:
0000H pentru RESET,
Acceptarea unei cereri de ntrerupere: 0003H pentru INT0, 000BH
pentru T0, 0013H pentru INT1, 001BH pentru T1 i 0023H pentru
interfaa serial.
7
Sisteme ncorporate
Memoria de date: intern i extern.
Memoria de date intern:
128 octei, ocup zona 0000 007FH;
Structura memoriei:
00H 07H: bloc 0,
08H 0FH: bloc 1,
10H 17H: bloc 2,
18H 1FH: bloc 3,
10H 2FH: Bit RAM,
30H 7FH: Data RAM.
Zona 00 - 1FH este divizat n 4 blocuri de cte 8 octei, notate cu
Blocul 0 3;
Exist un grup de registre, R0-7 care se suprapune, la un moment
dat, peste un singur bloc din cele 4;
Blocul care se suprapune peste registrele R0-7 este selectat de
programator prin intermediul rangurilor RS1 i RS0 din registrul de
stare al programului, PSW ("Program Status Word");
8
Sisteme ncorporate
Zona 00 - 1FH poate fi accesat direct, prin intermediul unei adrese
pe 8 bii sau prin adresare de registru;
Execuia instruciunii DEC R5:


Bloc 3
RS1 RS0
R5
RS1 = RS0 = 1
(1D) 1 1D
PSW
9
Sisteme ncorporate
Registrele R0 i R1 pot fi folosite pentru adresarea indirect a
memoriei de date;
Ex.: instruciunea INC @R0:

RS1 RS0
RS1 = RS0 = 1
R0
PSW
10
Sisteme ncorporate
Avantajul adresrii memoriei prin intermediul registrelor R0-7:
instruciuni scurte:
Pentru adresare de registru sunt necesare doar 3 ranguri care se
gsesc, mpreun cu codul instruciunii, n primul octet al acesteia.
La adresarea indirect, prin intermediul registrelor R0 sau R1 este
nevoie de un singur rang, aflat, de asemenea, n primul octet al
instruciunii.
Zona 20H - 2FH din RAM-ul intern este denumit Bit RAM, ntruct
fiecare din cei 128 bii poate fi adresat individual.
2 modaliti de a adresa biii din aceast zon:
Una folosete adresa lor: 00 - 7FH, cu 00 pentru bitul 0 de la locaia 20H
i 7FH pentru bitul 7 de la locaia 2FH;
Cealalt se refer la octeii 20H - 2FH; astfel biii 00 - 07 pot fi adresai
ca 20.0 - 20.7, biii 08 - 0FH ca 21.0 - 21.7 etc.
De exemplu instruciunea CLR 20.0 va avea n al doilea octet al ei un
cmp de 5 ranguri care specific octetul 20H i un cmp de 3 ranguri care
specific bitul selectat.
Fiecare octet din aceast zon poate fi adresat i ca octet distinct.
11
Sisteme ncorporate
Zona 30H - 7FH este denumit Data RAM i este o zon de
memorie RAM de uz general;
Memoria intern RAM poate fi adresat prin adresare direct sau
indirect.
La adresarea direct poate fi folosit orice combinaie n domeniul
00 7FH iar la adresarea indirect este folosit registrul R0 sau R1
care vor conine adresa locaiei accesate.

Memoria de date extern poate fi accesat doar prin intermediul
instruciunii MOVX care folosete adresare indirect.
Se pot folosi adrese pe 16 bii i atunci va fi folosit registrul DPTR
pentru a genera adresa dar pot fi folosite i adrese pe 8 bii i atunci
va fi folosit registrul R0 sau R1 pentru a genera adresa.
Cel de-al doilea caz este util atunci cnd memoria extern de date
este puin i poate fi gestionat ca pagini de 256 octei.
12
Sisteme ncorporate
Ciclurile main

Execuia unei instruciuni se desfoar n cadrul unor cicluri
main;
Un ciclu main este divizat n 6 stri, notate cu S1 - S6, o stare
fiind alctuit din 2 faze, notate cu P1 i P2;
Deci un ciclu main ncepe n starea 1, faza 1, notat cu S1P1 i
se ncheie n starea 6, faza 2, notat cu S6P2;
Considernd un tact cu frecvena de 12 MHz, rezult c durata unui
ciclu main este de 1 s.
Majoritatea instruciunilor se execut n un ciclu main, cteva n 2
cicluri main i doar dou, MUL i DIV, se execut n 4 cicluri
main.
Semnalele microcontrolerului implicate n transferurile din cadrul
ciclurilor main sunt urmtoarele: ALE, /PSEN, /EA, /WR, /RD.
13
Sisteme ncorporate
Comanda memoriei externe:
Comand 64 Ko memorie de program i 64 Ko memorie de date
dei dispune doar de 16 linii de adres:
memoria de program va fi comandat cu semnalul /PSEN iar
memoria de date va fi comandat cu semnalele /RD i /WR.

n timpul transferurilor cu memoria extern, liniile portului P2 vor
constitui jumtatea superioar a magistralei de adrese iar liniile
portului P0 vor constitui o magistral multiplexat de adrese/ date.
Pentru demultiplexarea ei este necesar memorarea
informaiei de adres ntr-un registru extern, la comanda frontului
posterior al semnalului ALE.
Atunci cnd memoria extern implicat n transfer este cea de
program, adresa ce apare pe liniile porturilor P0 i P2 este generat
de numrtorul de program, PC.
14
Sisteme ncorporate
Conectarea memoriei externe de program i date, cte 64 Ko:

P0.0-7
/EA
ALE
P2.0-7
/PSEN
/RD
/WR
8
0
C
5
1
D0-7
A0-7
A8-15
/OE
/CE
Memoria
de
program
extern
(64 ko)
R
E
G
STB
D0-7
A0-7
A8-15
/CS
/WE
/OE
Memoria
de
date
extern
(64 ko)
15
Sisteme ncorporate
n cazul aplicaiilor ce necesit mai puin memorie de program i de
date dect 64 Ko, nu mai este necesar ca cele 2 blocuri de memorie
s se suprapun n spaiul de adresare al microcontrolerului iar
selecia lor se va face utiliznd i linii mai semnificative din
magistrala de adrese.

Accesul la memoria extern de date se face prin intermediul
registrului DPTR sau registrelor R0 i R1;
Varianta cu DPTR: se folosesc instruciunile:
MOVX @DPTR,A i
MOVX A,@DPTR;
Prima instruciune transfer coninutul acumulatorului n memorie la
adresa indicat de DPTR iar a doua instruciune transfer coninutul
locaiei cu adresa indicat de DPTR n A;
n timpul transferurilor cu memoria extern de date, adresa ce apare pe
liniile porturilor P0 i P2 este pe 16 bii i este generat de DPTR.
16
Sisteme ncorporate
Varianta cu R0 i R1: se folosesc instruciunile:
MOVX @Ri,A i
MOVX A,@Ri;
Ex.: MOVX @R0,A: coninutul registrului R0 este interpretat ca o adres
(pe 8 bii) i coninutul registrului A este ncrcat la adresa respectiv;
Coninutul registrelor R0 sau R1 va fi adresa ce apare pe liniile portului
P0. Aceast adres este doar pe 8 bii i va permite accesul ntr-o
pagin de 256 octei;
Coninutul registrului P2 va apare pe liniile portului P2 i poate fi folosit
pentru paginare, asigurnd plasarea paginii de 256 octei n spaiul de
adresare de 64 Ko al microcontrolerului;
Rangurile neutilizate ale registrului P2 pot funciona ca linii de intrare/
ieire independente.

Dac ntregul program ce se execut se obine din memoria
extern, atunci intrarea /EA trebuie s fie conectat la 0.
17
Sisteme ncorporate
Dac se dorete rularea de programe din memoria extern de date
atunci este necesar suprapunerea unui spatiu de memorie extern
de program cu un spaiu de memorie extern de date ceea ce se
poate realiza cu o combinaie a semnalelor /PSEN i /RD;

ntruct semnalul /PSEN se activeaz mai repede dect semnalul
/RD este necesar ca memoria extern de date din care se execut
programe, s fie suficient de rapid pentru a rspunde cerinelor
semnalului /PSEN;

Memoria extern de date din care se dorete execuia de programe
trebuie s fie plasat n spaiul de adresare al microcontrolerului,
ntr-o zon diferit de cea care corespunde att memoriei externe de
program ct i memoriei externe de date.

Avantaje:
accesul extern este mai rapid (instruciuni doar pe 8 bii) i
rmn libere linii ale portului 2 care pot fi folosite n alte scopuri.
18
Sisteme ncorporate
S se conecteze la un microcontroler 80C51 8 Ko de memorie
EPROM, 8 Ko memorie RAM i nc 8 Ko memorie RAM din care
se poate executa i program. Se vor folosi circuite de 8 Ko.

19
Sisteme ncorporate
S se conecteze la un microcontroler 80C51 16 Ko memorie
EPROM, 16 Ko memorie RAM i nc 16 Ko memorie RAM din care
se poate executa i program. Se vor folosi circuite de 16 Ko.

20
Sisteme ncorporate
S se conecteze la un microcontroler 80C51 32 Ko memorie
EPROM, 32 Ko memorie RAM i nc 32 Ko memorie RAM din care
se poate executa i program. Se vor folosi circuite de 32 Ko.

21
Sisteme ncorporate
S se conecteze la un microcontroler 80C51 32 Ko memorie
EPROM, 64 Ko memorie RAM i nc 32 Ko memorie RAM din care
se poate executa i program. Se vor folosi circuite de 32 Ko.

22
Sisteme ncorporate
2.4. Registrele cu funciuni speciale:
Microcontrolerul 80C51 conine un grup de registre interne, cu
funciuni speciale, SFR (Special Function Registers);
Exist cteva tipuri de registre i anume:
registre de uz general,
registre care corespund porturilor,
registre pentru comanda modulelor periferice i
registre pentru transferul datelor cu modulele periferice.

Registrele cu funciuni speciale sunt adresabile n mod direct,
adresele lor se afl n zona 80H FFH;
Registrele ale cror adrese se termin n 0 sau 8 pot fi adresate i la
nivel de bit.
Tabelul urmtor prezint registrele i adresele lor.

23
Sisteme ncorporate
24
Sisteme ncorporate
ACC: este registrul acumulator; n cadrul instruciunilor este denumit
A.
B: este un registru cu rol predeterminat n instruciunile de nmulire
i mprire; pentru celelalte instruciuni, poate fi utilizat ca registru
general.

SP ("Stack Pointer"): este indicatorul de stiv; este incrementat
naintea unei depuneri n stiv prin intermediul instruciunilor CALL
sau PUSH; dup iniializare este ncrcat cu valoarea 07H deci stiva
ncepe de la adresa 08H; poate fi ncrcat, prin program, cu orice
valoare.
PSW ("Program Status Word"): este registrul de stare al
programului. Conine indicatorii de condiii; rangurile PSW.4 i
PSW.3 denumite i RS1, respectiv RS0 permit selectarea blocului 0
3 din memoria intern RAM care se suprapune peste grupul R0
7.
25
Sisteme ncorporate

Structura registrului de stare PSW:
7 0



PSW.0: indicator de paritate.
PSW.1: indicator la dispoziia utilizatorului.
PSW.2: indicator de depire.
PSW.4- 3: ranguri pentru selectarea blocului 0 3 din RAM intern,
activ, dup relaia: 00 bloc 0, 01 bloc 1, 10 bloc 2, 11 bloc 3.
PSW.5: indicator la dispoziia utilizatorului.
PSW.6: indicator de Carry auxiliar (util la operaii n BCD).
PSW.7: indicator de Carry.
CY AC FO RS1 RS0 OV - P
26
Sisteme ncorporate
DPH, DPL ("Data Pointer High, Low"): sunt dou registre pe cte 8
bii care alctuiesc mpreun DPTR ("Data Pointer Register"), DPH
fiind jumtatea superioar din DPTR iar DPL fiind jumtatea
inferioar din DPTR;
DPTR este folosit la adresarea indirect a unei locaii din memoria
extern i poate fi accesat ca registru pe 16 bii sau ca 2 registre pe
8 bii.

TH0, TL0 ("Timer 0 Counter"): sunt dou numrtoare pe cte 8 bii
care alctuiesc mpreun un numrtor pe 16 bii pentru contorul/
temporizatorul 0.
TH1, TL1 ("Timer 1 Counter"): sunt dou numrtoare pe cte 8 bii
care alctuiesc mpreun un numrtor pe 16 bii pentru contorul/
temporizatorul 1.
27
Sisteme ncorporate
SBUF ("Serial Data Buffer"): este un tampon folosit la transferul
serie i este fizic alctuit din 2 registre: un tampon pentru transmisie
i unul pentru recepie;
Transmisia este iniiat prin scrierea unui octet n SBUF;
La citire, se primete un octet de la tamponul pentru recepie.

P0, P1, P2, P3: sunt registrele ce corespund porturilor P0, P1, P2
respectiv P3;
Dac un port este ieire i se scrie 1 sau 0 n un rang din registrele
P0 - P3, terminalul corespunztor al portului va avea nivelul logic 1
sau 0.

IP, IE, TMOD, TCON, SCON, PCON: sunt registre de control care
vor fi prezentate pe msur ce se descriu modulele periferice pe
care le controleaz.

S-ar putea să vă placă și