Sunteți pe pagina 1din 16

1.

1 Arhitectura interna a microcontrolerului INTEL 8051

Microcontrolerul INTEL 8051 este


pe 8 biti si are urm arhitectura: (fig)

Resursele interne ale uc INTEL


8051:
-up optimizat pt aplicatii de
comanda si control alc din: RI
(registru de instructiuni), DEC
(decodificator de instructiuni)
,UCC ( unitatea de comanda si
control), Osc (oscilator de tact),
UAL (unitatea aritmetica si logica),
SFR (spatiul de memorie pt registre
cu fct speciale), PC (numarator de
program).
-MEM-memoria interna este alc din:
*MP-mem program cu capacitate de 4 kocteti, poate fi de tipul PROM (INTEL8051), EPROM
(INTEL8051).
*MD –mem de date este de tipul RAM cu o capacitate de 128 octeti. Microcontrolerul INTEL
081 adreseaza diferit aceste 2 memorii ( MP si MD).
-CB-controler de bus, asigura functionarea sincronizata a informatiilor pe busuri.
-CI-controler de intreruperi externe si interne. Are 5 surse de intrerupere programabile pe 2
niveluri de prioritati. Intreruperile externe sunt active pe nivelul logic si se alica la intrarile INT0
si INT1, iar intreruperile interne sunt generate de 2 contoare de 16 biti si de interfata de
comunicatie seriala.
-PP-porturi paralele de intrare, iesire: INTEL8051 si 8052 au 4 porturi paralele care pot fi
adresate la nivel de bit sau octet. Unele porturi indeplinesc si alte functii at cand se extinde
memoria uc in exterior:
*portul P0 multiplexeaza partea low a busului de adresa (BA0-7) cu busul de date BD(0-7).
*portul P2 furnizeaza partea high a busului de adresa (BA8-15).
*portul P3 furnizeaza semnale de comanda.
-IS- interfata seriala pt transmiterea si receptia asincrona a datelor.
-PN-port cu 2 numaratoare (contoare) de 16 biti care pot fi utilizate in modul temporizator sau
numarator .
1.3.1 Memoria program

Adresarea memoriei interne sau externe se face cu adrese de 16 biti. Aceasta memorie contine
programe care sunt executate de up sau tabele de date care au o structura fixa. Din aceasta mem
se fac doar citiri. Structura MP a uc: (fig)
Pt adresarea MP interne pinul EA al uc
este conectat la 1 logic. Astfel pt zona de
memorie 0000-0FFFH este selectata MP
interna, iar pt zona de memorie 1000-
0FFFFH este selectata memoria externa cu
semnalul PSEN.
Pt adresarea memoriei externe pinul EA
este conectat la 0 logic, iar selectia cipului
de MP externa se realizeaza cu semnalul
PSEN.
INTEL8031 8031,80C451 nu am MP
interna, pinul EA a uc este conectat la 0
logic, iar MP nu exista.

1.3.2 Memoria de date

Adresarea MD interne se face cu adrese de 8 biti, iar a celei externe cu adrese de 16 biti.
Memoria este selectata cu ajutorul semnalelor de comanda RD pt citire si WR pt scriere. Este o
memorie volatile care contine doar date
hexazecimale si poate fi citita sau scrisa.
Structura memoria de date interna este:
(fig)
Mem de date interna este alc din:
-o zona de memorie adresabila direct sau
indirect in spatiaul de adresa 00-7FH (128
octeti).
-o zona de memorie adresabila indirect in
spatiul de adresa 80-0FFH (128 oct);
-o zona de memorie adresabila direct in
saptiul de adresa 80-OFFH care este pt
registrele cu functii speciale SFR.
O locatie de memorie este adresabila
direct atunci cand adresa este prezenta in codul instructiunii si este adresabila indirect atunci
cand adresa este precizata de un registru.
1.3.2.1 Memoria interna de date

In zona de memorie de date interna adresabila direct si indirect a oricarui uc din spatial de adrese
00-7FH se afla urm table:
-4 bancuri de cate 8 registre generale
(R0,R1…R7) in spatiul de meorie de
date 00-1FH. Din cele 4 bancuri
intotdeauna este selectat doar un banc
de registre generale cu ajutorul
indicatorilor RS1 RS2 din registrul
PSW. Registrele generale sunt locatii
de mem de 8 biti, volatile si
manevrabrile de catre utilizatori.
-10H=16Z locatii de memorie adresate
la nivel de octet si bit in saptiul de
memorie de date 20H-2FH;
-restul zonei de memorie din spatiul 30-7FH este adresabila numai la nivel de octet si este la
dispozitia utilizatorului.
Zona de mem de date interna adresabila indirect din spatial de adresa 80-0FFH este la dispozitia
utilizatorului si este disponibila numai la unele uc (INTEL8052, INTEL8032, INTEL8752 ).

1.3.2.2 Spatiul registrelor cu functii special

Registrele cu functii special SFR ale uc INTEL 8051 din zona de memorie adresabila direct (80-
0FFH) sunt de 8 bitii si au semnificatia:
-ACC(registrul acumulator)-este cel mai important registru in realizarea transferului de date si in
toate operatiile aritmetice si logice.
-B –registru utilizat la operatiile de inmultire si impartire.
-PSW(registrul indicator de conditii/flaguri)-contine informatii referitoare la rezultatul operatiilor
aritmetice si logice.
-SP(registrul indicator de stiva)-contine adresa vf de stiva. Stiva este o memorie de tip LIFO care
retine o succesiune de date ;
-DPTR(registrul pt adresarea memoriei externe)-registru de 16 biti este alc din 2 registre de 8 biti
fiecare: DPH partea high a registrului DPTR si DPL partea low a registrului DPTR.
-registre pt cele 4 porturi paralele de 8 biti:P0,P1,P2,P3, uc INTEL80C451 are 7 porturi paralele.
-registre pt cele 2 numaratoare de 16 biti (T0 si T1) TMOD,TCON,TH0,TL0,TH1,TL1 mai sunt
registre pt numaratorul T2 de 16 biti care este numai in uc INTEL8052, INTEL8032,
INTEL8752 ( T2CON, TH2, TL2, programe si date).
-registre pentru interfata seriala asincrona SCON, SBUF (programe si date).
-registre pt intreruperi IP, IE.
-registrul pt modul de lucru consum redus PCON
Din registrele enumerate registrele de baza sunt:A,B,PSW,SP,DPTR.
Locatiile de memorie cu adresele divizibile prin 8 (80H, 88H, 90H, 98H,…,F8H) din spatial
registrelor cu functii special sunt adresabile la nivel de octet si de bit.
1.3.2.3 Semnificatia principalelor registre ale microcontrolerului INTEL8051

Registrul accumulator ACC(notat cu A) este unul din cele mai importante registre fiind utilizat in
cele mai multe instructiuni de transfer de date si in toate operatiile aritmetice si logice cu 2
operanzi cand unul din operanzi este in A, iar rezultatul operatiei se depune tot in A. Accesarea
mem de date externa pt citirea sau scrierea unei date se realizeaza prin intermediul A.
Registrul general B este utilizat la operatiile de inmultire si impartire unul din operanzi si
rezultatul se afla in registru.
Registrul PSW indicator de conditii este alc din asocierea mai multor circuite basculante
bistabile numite indicatoare de conditii sau flaguri. Acest registru ofera informatii despre
rezultatele operatiilor aritmetice si logice.
Structura registrului PSW: (tab)

Semnificatia indicatoarelor din table:


-C-indicator carry(transport), in urma unei operatii de adunare sau scadere efectuata de unitatea
aritmetica si logica UAL a up din uc este posibil sa apara la adunare un transport din bitul 7 catre
bitul 8 sau la scadere un imprumt din bitul 8 catre bitul 7. In starea setat=1 logic indica
transportul.
-AC-indicator auxiliary de transport, indica in starea setat un transport la adunare din b3 la b4 si
la scadere un imprumut din b4 la b3.
-F0-indicator aflat la dispozitia utilizatorului;
-RS1,RS0-indicatori utilizati pt selectarea unui banc de 8 registre generale din ceele 4 bancuri ale
uc: (tab)
-OV(indicator de depasire) in cazul operatiilor
aritmetice cu semn cei mai putini semnificativi
(LSB) 7 biti sunt destinati valorii numerice, iar
bitul cel mai semnificativ este destinat
semnului (0-pozitiv,1-negativ). Indicatorul de
depasire indica un transport in starea setat din
b6 in b7 la adunare si din b7 in b6 indica un
imprumut la sadere.
-PSW.1-indicator rezervat.
-P-indicator paritate, indica in starea setat ca numarul de biti 0 sau 1 din rezultat este impar.
-SP(registrul indicator de stiva este de 8 biti )-contine adresa vf de stiva. Stiva este o memorie de
tip LIFO care retine o succesiune de date. Registrul indicator de stiva contina in permanenta
adresa vf de stiva, adica adresa la care se pot face operatii de scriere si citire cu stiva. In uc
INTEL8051 stiva poate fi realizata doar in MDI si este crescatoare (la fiecare salvare se
incrementeaza SP, iar la fiecare restaurare se decrementeaza). In urma resetarii uc registrul SP
este initializat cu 07H, dar prin soft SP poate fi initializat cu orice valoare numerica.
-DPTR(registrul pt adresarea memoriei externe) registru de 16 biti cu ajutorul caruia se pot citi si
scrie continutul locatiilor de MDE.
-PC(numerator de program) este de 16 biti, nu face parte din SFR, dar este important deoarece
contine in permanenta adresa instructiunii ce urmeaza a fi executata de up.
1.4. Conexiuni externe ale microcontrlerului INTEL 8051

Structura: (fig) /Conexiunile microcontolerului INTEL 8051 sunt grupate astfel: -2 pt


oscilatorul de tact intern/ -4 pt semnalele de comanda/ -2 pt
alimentare/ -32 pt liniile de intrare/iesire ale celor 4 porturi paralele
(P0,P1,P2,P3) de cate 8 biti fiecare (inclusive liniille pt interfata
seriala, numaratoare, controlerul de tratare a cererilor de
intrerupere).
Semnificatiile conexiunilor externe ale microcontrolerului sunt:
-XTAL1, XTAL2 conexiuni ale osc de tact intern la care se
conecteaza elementele externe (cristarul de cuart si 2 cond
ceramici);
-RST intrarea de initializare a uc;
-EA intrarea pt configuratia uc cu magistrale externe;
-ALE iesirea de comanda pt demultiplexarea partii low a bustului
de adresa de busul de date;
-PSEN iesirea de comanda pt selectia memoriei program externe;
-Vcc, GND conexiuni pt alimentarea uc de la sursa continua de tens de +5V;
-P0(A0-7/D0-7) conexiuni externe utilizate ca linii de intrare/iesire pt portul P0 (EA=1) sau cu
magistrala bidirectionala care multiplexeaza partea low a busului de adresa cu busul de date
(EA=0);
-P1 0-7 conexiuni externe utilizate numai ca linii de intrare/iesire pt portul P1;
-P2 0-7 (A8-15) conexiuni externe utilizate ca linii de intrare/iesire pt portul P2 (EA=1) sau ca
partea high a busului de adresa (EA=0);
-P3 0-7 conexiuni externe utilizate ca linii de intrare/iesire pt portul P3 (EA=1).
In cazul in care uc este figurat ca magistrale externe (EA=0) se modifica semnificatia
urmatoarelor 2 linii ale portului:
-P3.7 devine RD semnal de comanda de iesire pt citirea din mem de date externa a usistemului;
-P3.6 devine WR semnal de comanda de iesire pt scrierea in mem de date externa a usistemului;
Indiferent de val logica a intrarii EA celelalte conexiuni externe ale portului P3 sunt utilizate de
circuitele periferice interne ale uc astfel:
-P3.5 devine T1 intrare in numratorul de 16 biti T1;
-P3.4 devine T0 intrare in numratorul de 16 biti T0;
-P3.3 devine INT1 intrare pt o cerere de intrerupere externa (INT1) de la un proces extern;
-P3.2 devine INT0 intrare pt o cerere de intrerupere externa (INT0) de la un proces extern;
-P3.1 devine TxD iesire pt transmiterea serie asincorna a datelor;
-P3.0 devine RxD intrare pt receptia serie asincrona a datelor.
Pt a furniza in exteriorul uc busurile de adresa, date si unele semnale de comanda, se utilizeaza
liniile porturilor paralele care au o semnificatie dubla. Porturile paralele au fiecare cate un
registru intern in SFR care au aceleasi nume ca si portul caruia ii corespund. La initializarea uc
toate porturile paralele sunt de intrare, iar registrele porturilor de iesire sunt incarcate cu 0FFH.
Cand o linie din port sau intreg portul trebuie sa fie utilizat ca linie sau port de intrare, dupa ce a
fost utilizat ca port sau linie de iesire este necesar ca bistabilul sau registrul de iesire
corespunator sa fie setat. In caz contrar se poate distruge bufferul de iesire al portului respective.
Microcontrolerul INTEL8051 are un circuit integrat cu 40 conexiuni externe si este realiat in
capsule DIP40 cu 40 pini sau in capsule PLCC44 cu 44 pini.
1.4.1. Oscilatorul de tact

(fig) /Microcontolerul INTEL8051 are oscilatorul de tact


intern, iar la conexiunile externe XTAL1 si XTAL2 se
conecteaza un cristal de cuart cu frecv maxima de 12MHz
si 2 condensatori de 30pF.
Conexiunea externa XTAL1 este intrarea in amplificatorul
inversor al oscilatorului de tact intern si XTAL2 este iesirea
din acest oscilator (amplificator inversir).
Cele 2 conexiuni externe XTAL1 si XTAL2 la care sunt
conectate elementele externe (cristalul de cuart si condensatoarele) formeaza inpreuna cu
structura interna (amlificatorul inversor) un oscillator de tip Pierce. Acest oscillator este utilizat
pt comanda circuitelor de tact intern ale uc, iar frecv semnalului de tact intern (ST1) este
jumatate din frec oscilatorului. /Semnal de tact fosc permite definirea urmatoarelor notiuni: faza
interna P, stare interna S si ciclu masina CM.
Struc de pirncipiu a osci de tact intern din uc realizate in tehnologie NMOS este : (fig)

GC este generatorul de clock intern care realizeaza divizare cu 2 a semnalului de tact fosc. In
acest caz semnalul de tact fosc este furnizat la iesirea de la pinul XTAL2. /Microcontrolerele din
familia INTEL8051 pot fi comandate si ca oscilatoare de tact externe. /Pt uc realizate in
tehnologia semnalul de tact extern se conecteaza la XTAL prin intermediul unei porti logice
TTL, iar XTAL1 se conecteaza la potential 0 (GND).
Pt uc realizat in tenologia CMOS struc de principiu a oscde tact intern este: (fig)

Semanulu de tact fosc este furnizat la iesire de la terminaul XTAL1. /Microcontroalerele


realizate in tehnologia CMOS conecteaza semnalul de tact extern la terminalul XTAL1 prin
internediul unei porti logice CMOS, iar teminalul XTAL2 ramane neconectat.
1.4.2. Structura ciclilor masina
Executarea unei instructiuni de catre microprocesorul din microcontroler consta intr-o secventa
de operatii. In primul rand se incarca codul instructiunii din mem program in registrul de
instructiuni, apoi se executa instructiunea respective, care consta in executarea unui transfer de
date, a unei operatii aritmetice, logice sau a unui salt la o alta instructune. /Instructiunile uc
INTEL5081 au lungime de 1,2,3 octeti. Mereu primul octet este codul instructiunii, iar urmatorul
octect sau urmatorii 2 octeti rep o data, o adresa, un deplasament relative etc. /Instructiunile de
transfer de date realizeaza transferul respective intre diferite resurse interne ale uc sau intre cele
interne si mem externa. /Instructiuni aritmetice sau logice transfera data din sursele pt operanzi
care trebuie prelucrate in unitatea aritmetica si logica (registrele temporare AT si RT), apoi
efectueaza operatia respective, iar in final transfera rezultatul la destinatie. /Instructiunile de salt
calculeaza adresa de salt pe baza resurselor interne ale uc, apoi incarca numaratorul de program
cu valoarile calculate, trecandu-se astfel la executarea instructiunilor de la adresa respective. /Pt
executarea oricarei instructiuni este necesar sa se citeasca codul instructiunii, apoi sa se efectueze
diverse transferuri de date si prelucrarile corespunzatoare. Toate activitatile pt executarea unei
instructiuni se realizeaza intr-un ciclu instructiune (CI) care este alcatuit din 1,2,4 cicli masina
(CM). Orice instructiune incepe cu un ciclu masina care realizeaza mereu in prima jumatate
citirea codului respective dupa care urmeaza executarea instructiunii. /Fiecare ciclu masina este
alc din 6 stari numerotate de la S1 la S6, iar fiecare stare este alc din 2 faze notate P1 si P2. O
faza corespunde cu o perioada a generatorului de tact, prin urmare o stare are durata a 2 perioade
de tact, iar un ciclu masina are durata a 12
perioade de tact. (fig)
Un ciclu masina se rep cu cele 6 stari alc fiecare
din cate 2 perioade ale osc de tact Tosc. Orice
ciclu masina are durata de 1us daca frecv osc de
tact este de 12 MHz. Fiecare ciclu masina
incepe S1P1 si se termina cu S6P2.
/Instructiunile de uc au lungimi de 1,2,3 octeti si
se executa in 1,2,3 cicli masina. Pt instructiunile
uc INTEL8051 cazurile posibile rezultate din
combinarea nr de octeti si durata executarii sunt:
(tab). /Instructiunile care au un octet si se executa intr-
un ciclu masina (CM1) sunt rep: (fig)
Codul instructiunii este citi (RD-cod) in prima parte a
ciclului masina din mem program incepand din starea
S1. In timp ce acest cod este mem in registrul de
instructiuni, se incepe citirea urm cod de instructiune. In
partea a 2 a ciclului masina, up din uc executa
instructiunea curenta, iar urmatorul
cod de instructiune care citeste este ignorant (RD-UCI).
CM1 si CM2 sunt istructiuni care au 1 octet si se executa in 2 ciclui masina, iar instructiunile de
tip MOVX au 1 octet, acceseaza mem externa si se executa in 2 cicluri masina.
1.4.3.Initializarea microcontrolerului
Intrarea in inistializarea RST a uc INTEL8051 este o intrare intr-un trigger Schmit, active pe
nivel 1 logic. Pt a se realize o initializare efectiva a uc este necesar ca osc de tact sa fie
operational minim 24 perioade de tact cu semnalul RST active. Dupa o temporizare de max 12
perioade de tact ale osc de tact se genereaza intern un semnal de reset care initializeaza uc,
totodata semnalele de comanda ALE si PSET sunt configurate ca intrari prin fortarea acestoar in
1 logic. Semalul intern de reset realizeaza initializarea uc in timpul celui de al 2 ciclu masina in
care RST este actic, operatia de initializare a uc este repetata in fiecrae ciclu masina daca RST se
mentine active si se termina de executat atunci cand RT devine inactive. /Dupa initializarea uc
resursele interne se incarca cu urmatoarele val: /-PC<-000H, dupa initializare se executa
instructiunea care se afla in mem program de la adresa 000H; /-A,B,PSW<-00H, registrul
accumulator A, registul B si registrul cu indicatorii de conditii PSW se initializeaza cu 0 (este
selectat bancul 0 de register generale); /-SP<-07H, indicatorul de stiva este initializat cu andresa
07H din mem de date interna a uc, stiva este definina in mem de date interna incepand de la
adresa 08H; /-DPTR<-0000H, registrul care adreseaza mem externa se initializeaza cu 0;
-P0,P1,P2,P3<-0FFH, porturile paralele sunt incarcate cu FFH pt aputea fi utilizate dupa
initializarea ca porturi paralele de intrare; /-TMOD,TCON,TH0,TL0,TH1,TL1<-00H,
numaratoarele T0 si T1 sunt initializate; /-T2CON,TH2,TL2,RCAP2H,RCAP2L<-00H,
numaratorul T2 este initializat; /-SCON<-00H, interfata serial este initializata;
/-SBUF<XXXXXXXXH (X=valoare binara nedeterminata); /-IE<-0XX00000B, dezactivarea
surselor de intreruper; /-IE<-0X000000B, pt uc care au contorul T2; /-IP<-0XXX0000B,
stabilirea nivelului inferior de prioritate pt toate sursele de intrerupere interne si externe; /-IP<-
XX000000B, pt uc care au contorul T2; /-PCON<-0XXXXXXXB, pt uc realizate in tehnologie
NMOS: /-PCON<-0XXX0000B, pt uc realizate in teh CMOS; /-ALE,PSET<-1, semanlele de
comanda sunt setate pt a putea fi utilizate ca intrari. /Mem de date interna (partea low si partea
high) si mem de date externa nu sunt afectate de initializarea uc. /Structura hard miniala necesara
pt initializarea uc INTEL5081 este: (fig)
Aceasta structura trebuie sa realizeze initializerea
automata a uc la fiecare conectare a sursei de
alimentare si initializarea manuala de catre
utilizator prin actionarea unui comutator. /La
conectarea sursei de alim de tens continua, cond de
10uF este scurtcircuitat, iar intrarea de initializare
a uc RST este conectatala +5V. In acest mod se
realizeaza initializarea automata a uc cand se conecteaza sursa de alim de tens cont prin plasarea
intrarii RST la nivelul 1 logic. Cond incepe sa se incarce prin intermediul rezi R de 10 komi, iar
tens pe rez incepe sa scada. At cand tens de la intrarea de initializare RST a scazut sub nivelul
pragului de jos al triggerului Schmitt intern aflat la intrarea RST, se continua iesirea triggerlui de
1 logc in 0 ligic. Dioda1N4148 are rolul de a scurtcircuita cond, atcand se intrerupe alim de la
sursa de tens cont./ Se incheie astfel operatoa de initializare a uci dupa care se executa programul
de comanda utilizator aflat in mem de program de la adresa 0000H. /In timpul executarii
programelor utilizator sau in timpul testarii unor programe de aplicatie, este posibil ca up din uc
sa intre in executarea unor bucle infinite in instructiuni. De asemenea, este posiil sa se blocheze
functionarea up din ucr datorita unor factori externi, a structurii hard nefiabile a sis. In aceste
sitiatii este necesar sa se realizeze o initializare manuala a uci prin actionarea unui comutator. /La
actionarea comutatorului K de catre utilizator, condde 10pF se descarca pe rez de 100ohmi, iar
tens la intrarea de initializare RST devine 4,95V, in timpul descarcarii cond, tensi pe rez de
10kohmi incepe sa creasca. At cand tensi de la intrarea RST a crescut peste nivelul pragului de
sus al triggerului Schmitt intern de la intrarea RST, se comuta iesirea triggerului din 0 logic in 1
logic. Se realizeaza astfel initializarea manuala a uc. Operatia de initializare se incheie at cand
utilizatorul deschide comutatorul K. Cond C incepe sa se incarce prin intermediul rez R, iar cand
tens de la intrarea RST a scazut sub nivelul pragului de jos al triggerului Schmitt intern se
comuta iesirea acestuia din 1 logc in 0 logic. Astfel initializarea este incheiata, iar up incepe
executarea programului de comanda de la adresa 0H. /In aplicatiile practice cond si rez R din
circuitul de initializare se conecteaza cu cate un terminal spre masa si respective spre VCC. /In
acest caz este necesar un circuit logic inversr care de obicei este un trigger Schmitt. Circuitul
realizeaza initializarea automata a uc la conectarea sursei de alimentare de tensi cont si
initializarea manuala la actionarea comutatorului K de catre utilizator, functionarea este
asemanatoare cu cea descrisa anterior.

1.4.4.Configurarea microcontrolerului

Microcontrolerele din familia INTEL8051 sunt configurate cu magistrale externe in functie de


nivelul locgic aplicat la terminalul EA. (fig)
Daca EA este conectat la 0 logic (GND) at
microsistemul de comanda cu uc are magistrale
externe care se obtin din porturile paralele,
programul de comanda se afla in mem program
externa, iar utilizatorul nu mai poate beneficia de
porturile paralele utilizate ca magistrale.

(fig)
Daca EA este conectat la 1 logic (Vcc) at uc nu are
magistrale externe, programul de comanda se afla in
mem program interna, iar cele 4 porturi paralele ale
uc INTEL8051 se utilizeaza pt diverse aplicatii.

In cazul utilizarii uc cu magistrale externe, porturile paralele P0,P2 si P3 indeplinesc functia de


busuri de date, adrese si comenzi astfel: /-portul P0 furnizeaza partea low a busului de adresa
BA0-7 multiplexata cu busul de date BD0-7 in cadrul ciclilor masina la fiecare accesare a
memoriei program sau de date externe , pe liniile portului P0 este furnizata partea low a busului
de adresa care va fi mem intr-un latch extern, apoi portul P0 devine bus de date; /-portul P2
furnizeaza partea high a busului de adresa BA8-15; /-portul P3 furnizeaza pe linia P3.6 semnalul
de comanda pt scrierea (WR) unei date in mem externa de date, iar pe linia P3.7 semnalul de
comanda pt citirea (RD) unei date din mem externa de date.

1.4.5. Demultiplexarea busurilor


In cazul unui microsistem de comanda cu microcontrolere externe este necesara demultiplexarea
busurilor. In structura interna a uc a fost necesara operatia de multiplexare a partii low a busului
de adresa cu busul de date pt a micsora nr de conexiuni externe. /Cu semnalul de comanda ALE
se realiz demultiplexarea partii low a busului de adresa de busul de date. Pt demultiplexarea
busurilor se utilizeaza un circ latch (registru) extern cu 8 bistabile de tip D (exemplu circ 74373).
(fig) /Cu aceasta structura hard se
demultiplexeaza busurile, pe frontal
descendent al semnalului ALE se
memoreaza in latchul extern 74373 partea
low a busului de adresa, apoi liniile portului
P0 devin bus de date. Iesirea din latchul
extern contine din acest moment partea low
a busului de adresa, partea high a busului
de adresa este furnizata de liniile portului
P2. /Circ 74373 contine 8 circ bistabile de
tip D, fiecare bistabil are cate o intrare de date D si si o iesire Q. Cele 8 bistabile sunt validate
daca intrarea E este conectata la 0 logic. Pe frontal descendent al semnalului tact T comun celor
8 bistabile se realiz mem datelor binare de la intrarile D in bistailele corespunzatoare, la iesirile
Q ale bistabilelor sunt furnizate date binare mem pana cand se realiz urm operatie de mem.

1.4.6.Selectia memoriei program externe

Selectia mpe se realiz cu semnalul de comanda PSET care este un semnal de iesire din uc.
/Selectia acestei mem se realiz cu un 0 logic la aceasta iesire pe durata unui ciclu de citire a
codului de instructiune din MP. /Selectarea unei mpe de tipul EPROM27165 care are o
capacitate de 32 kocteti in spatial de adresa 0000-7FFFH se face (fig): /Pe liniile de adrese si de
date ale MP se conecteaza liniile omogene din busul de
date si adresa ale microsistemului cu uc (dupa
demultiplexarea busurilor). /La pinul 0E al MP se
conecteaza semnalul PSET pt a selecta circuitul numai
cand se citeste codul instructiunii, iar la pinul CE al MP
se conecteaza linia de adresa BA15 pt a selecta mem in
spatiul de adresa 0000-7FFFH :(tab)
/In spatula MP pot fi selectate mai multe mem care au o
capacitate max de 64 kocteti. Este indicat sa se utilizeze
un singur cip de MP cu capacitatea
necesara. /MP este adresata
intotdeauna in spatial de mem care
incepe de la adresa 0000H, dupa
initializarea uci (PC<-0000H) se
incepe executarea instructiunilor
aflate in MP de la adresa 0000H.

1.4.7.Selectia memoriei de date


externe

Selectia MDE se realiz cu ajutorul semnalelor de comanda RD si WR care sunt semnale de iesire
din portul P3 al uc. Activarea semnalului de comanda RD deta citirea MDE de la adresa
precizata de registrul DPTR sau de portul P2 (pt partea high) si de registrul Rj (j=0 sau j=1 pt
partea low), continutul locatiei de mem este incarcat intotdeauna in registrul acumulator.
Activarea semnalului de comanda WR det scrierea MDE cu val continuta in registrul acumulator
la adresa percizata de registrul DPTR sau de portul P2 (pt partea high) si de registrul Rj (j=0 sau
j=1 pt partea low). /Selectarea unei MDE de tipul SRAM55257 cu o capacitate de 32 kocteti in
spatial de adrese de date 8000-0FFFFH se face: (fig)
La pinul W al MD se conecteaza semnalul de
comanda WR pt scrierea dateor in mem, la pinul 0E al
MD se conecteaza o parta logica SI (7408) care are la
cele 2 intrari semnalele de comanda RD si WR, in
acest fel circuitul este selectat umai cand se citeste o
data din mem sau cand se scrie o data in mem. La
pinul CE al MD se conecteaza linia de adresa BA15
negata prin intermediul unui circuit logic inversor
(7404) care selecteaza MD din spatial de adresa 8000-
0FFFFH. (tab)

In spatial MDE pot fi selectate memorii


cu o capacitale max de 64 kocteti. Este
indicat sa se utilizeze un singur cip de
mem de date cu capacitatea necesare
care poate fi adresat in orice spatiu de
adrese. Adresarea unor memorii de date
externe cu o capacitate mai mare de 64
kocteti se face in mod asemanator, numai ca liniile de adresa BA16, BA17, BA18,… vor fi
generate prin soft pe liniile portului P1.

1.4.11. Alimentarea microcontrolerului

Conexiunile externe pt alimentarea uc de la o sursa de tens cont de +5V sunt Vcc,GND. Este
indicat ca langa aceste 2 conexiuni externe sa conectam un cond ceramic de 100nF pt
scurtcircuitarea spiturilor de tensi de frecv inalta si un cond elctrolitic de 10 uF pt filtrarea
semnalelor parazite de frecv joasa. (fig)
Sursa de tens cont de la care se
alimenteaza uc trb sa fie stabila, se
admite o tolerant de max 10% a
tens de alime. Pt o tens de alim in
gama de la 4,75V pana la 5,25V
este garantata functionarea uc de
catre producator. In afara acestei
plaje nu mai este garantata
functionarea uc.
4.2 Structura generala a unui port paralel

Circuitul contine pt fiecare linie de


iesire sau intrare cate un circ basculant
bistabil de tip D(CBB), 2 buffere cu 3
stari(BL, BP), un etaj de amplificare de
iesire(EA) si un buffer al portului(B)./
In circ basculant de tip D se inscrie data
furnizata de magistrala interna (MI) la
comanda semnalului de scriere WRL.
Data inscrisa este mem in bistabi pana
la urm operatie de scriere si este
furnizata pinului circuitului prin
intermediul etajului de amplificare EA
si al bufferului(B). Iesirea Q a
bistabilului este conectata printr-un buffer cu 3 stari BL la magistala interna. Prin activare
asemnalului de comanda de citire RDL se citeste continutul bistabilului./ Bufferul BP realizeaza
conectarea pinului de la port la magistrala interna. Prin activarea semnalului de citire RDp se
citeste data de la intrarea pinului.

4.2.1 Structura portului P1

(fig) Pt microcontrolerul INTEL8051 portul


P1 este utilizat numai ca port de iesire sau
de intrare la nivel de octet sau bit. /Etajul de
iesire al portului este alcatuit din tranz N1,
din alte 3 tranz echivalente cu rez R
conecata la +,5V. /Pt o linie de intrare
bistabilul trb incarcat cu val logica 1, iesirea
Q=0 logic iar tranz N1 este blocat. Astfel,
pinul de intrare este la potentialul apropiat
de +5V datorita rez R. Daca linia de
intrare=0 logic, at va circula un crt prin
rezistenta, iar portul va fi cvasibidirectional.

4.2.2 Structuraportului P0

(fig) Portul P0 are functia de a


multiplexa partea low a busului de adresa
cu busul de date, at cand EA=0, de aceea
este necesara o logica de comutatie si
realizare bidirectionala a bufferului de
iesire. Aceasta consta intr-un switch(S)
care deconecteaza iesirea Q a circ
basculat bistabil si conecteaza la linia
portului adresa Ai(i=0,7) care este multiplexata cu linia de date Di.
Semnalul de comanda C este conditionat de starea pinului EA si de tipul de instructiune care se
executa. /Cand P0 este utilizat ca magistrala de adresa multiplexata cu date, P0 este deconect de
la etajul de iesire si incarcat cu val logica 1. /Bufferul de iesire este format din tranz N1 si N2
care asigura impedanta ridicata spre masa si spre sursa de alimentare. /Cand P0 uilizat ca port de
iesire, tranz N1=blocat si pinul de iesire este de tip drena in gol=> ca trb conectate la iesirea
fiecarui pin rez de 10kOhmi alimentata la +5V.

4.2.3 Struncturaportului P2

(fig) Functia acestui port este de a furniza


partea high a busului de adrese atunci cand
EAt=0. /Este necesar un circ de comutatie
realizat dntr-un switch(S) care conecteaza
tranz N1 printr-un circ inversor, iesirea Q a
circ bistabil sau linia de adresa Aj.
/Semnalul de comanda C este conditionat de
starea pinului EA si de tipul de instructiune
care se executa. /Cand P2 este utilizat ca
parte high a magistralei de adresa, regidstrul
portului P2 este deconectat de la etajul de
iesire si ramane nemodificat. /Bufferul de
iesire este format din tranz N1 si rez R controlata de iesirea portii logice SI.

4.2.4 Structuraportului P3

(fig) Functia acestui port este


multipla: receptia sau transmiterea
datelor pt comunicatia seriala,
receptionarea si tratarea cererilor de
intrerupere externa, numararea
evenimentelor externe cu contoare
de 16 biti si generarea semnalelor
de comanda de citire si scriere pt
mem de date externa. /Pt realizarea
unei functii auxiliare iesirei Q a
bistailului ii corespunde val 1 logic.
Functiile auxiliare ale portului P3:

-P3.0=RxD=>intrare pt receptionarea serie a datelor in mod asincron si iesire pt transmiterea


serie a datelor in mod sincron.
-P3.1=TxD=>iesire pt transmiterea serie a datelor in modul asincron si iesire pt semnalul de tact
in modul sincron.
-P3.2=INT0=>intrare pt o cerere de intrerupere externa sau intrare de control numaratorului T0.
-P3.3=INT1=>intrare pt o cerere de intrerupere externa sau intrare de control numaratorului T1.
-P3.4=T0-intrare in controlul T0.
-P3.5=T1-intrare in controlul T1.
-P3.6=WR=iesire pt semnalul de comanda care realizeaza scrierea in mem externa.
-P3.7=RD=iesirea pt semn de comanda care realizeaza citirea in mem externa.

5.2.Registul de control al modului de lucru


TMOD are adresa 89H si este adresat numai la nivel de octet. (tab) T2=T0
In acest registru fiecare
numerator are 4 indicatori
(GATEi, C/Ti, M1i, M0i,
i=0 pt numaratorul T0 si i=1 pt numaratorul T1) cu urm semnificatii: /-GATEi=indicator de
validare numarator: *GATEi=0 nr este validat daca indicatorul TRi corespunzator din registrul
TCON este setat. *GATEi=1 nr este val daca ind TRi cores din reg TCON este setat si linia de
intrare pt cererea de intrerupere externa aferenta INTi este 1 logic. /-C/Ti=indicator stabilire mod
de operare: *C/Ti=0 numaratorul lucreaza in modul temporizare si este incrementat la fiecare 12
perioade de tact intern (la fiecare ciclu masina). La depasirea capacitatii de numarare este afectat
indicatorul TFi corespunzator din registrul TCON, iar cotinutul numaratorului devine 0.
/*C/Ti=1 numaratorul lucreaza in modul contorizare a evenimentelor de ;a pinul de intrare Ti din
numaratorul corespunzator. /Numaratorul este incrementat pe frontul descendent al semnalului
digital aplicat la intrarea acestuia. Intrarea numaratorului este esantionata in faza P2 a starii S5
din fiecare ciclu masina. /Sunt necesare 2 cicluri masina pt a detecta si contoriza un eveniment. /-
M1i, M0i= indicatoare care stabilesc modurile de lucru ale numaratoarelor. /*M1i=0,M0i=0
numaratorul este de 13 biti. /*M1i=0,M0i=1 numaratorul este de 16 biti. /*M1i=1,M0i=0
numaratorul este de 8 biti cu reincarcare automata. Continutul registrului THi este incarcat in
numaratorul de 8 biti TLi la fiecare trecere prin 0. /*M1i=1,M0i=1 numaratorul T0 se poate
utilize ca 2 numaratoare de 8 biti, iar T1 este dezactivat. /Programare unui numerator consta in a
staili in registrul TMOD modul
de validare, de operare si de
lucru.

5.4.1 Modul 0 de lucru


Functionarea in modul 0 este
similara cu a numaratoarelor de
la microcontr INTEL8051.
Structura lui este(fig).
/Numaratorul Ti este alcatuit
dintr-un numarator de 8 biti THi
precedat de un predivizor cu 32
TLi-5biti. Numaratorul THi este incrementat cu o unitate dupa contorizarea impulsurilor de la
intrare de catre predivizor.
Numaratorul (13 biti=> cei mai putin semn 5 biti pt predivizor, cei mai semn 8 biti pt numarator)
este validat daca switchul de control (Sc) este inchis. Validarea se face prin setarea indicatorului
TRi si resetarea indicatorului GATEi sau setarea indicatorului GATE si mentinerea intrarii pt o
cerere de intrerupere externa INTi 1 logic.
Intrarea numaratorului este conectata de switchul pt modulul de operare (So) la oscilatorul de
tact intern, daca C/Ti este resetat, sau la semnalul extern aplicat la pin de intrare in numaratorul
Ti, daca C/Ti este setat. /Depasirea capacitatii de numarare a contorului este semnalizata de
indicatorulTFi care poate solicita o cerere de intrerupere.

5.4.2 Modul 1 de lucru

Modul 1 este similar cu modul


0, numai ca numaratorul
foloseste capacitatea max de
16 biti (nu mai exista
predivizor). /Structura lui este:
(fig)
Registrul numaratorului are 16
biti din care cei mai putin
semnificativi 8biti pt TLi, iar
cei mai semnificativi 8biti pt THi.

5.4.3 Modul 2 de lucru

Numaratorul de 16 biti este configurat sa functioneze ca numerator de 8 biti cu reincarcare


automata la fiecare trecere prin zero./Structura lui este: (fig)
Cei mai putin seminificativi 8
biti ai controlului Ti sunt
utilizati pt un numarator de 8
biti, iar cei mai semnificativi 8
biti sunt utilizati ca registru de
reincarcare automata
sanumaratoruluiTLi de 8 biti.
La fiecare trecere prin zero
este setat indicatorul TFi,
bufferul B este setat, iar
continutul regTHi este incarcat
in numaratorul TLi. Continutul
regTHi este incarcat prin
program in segmental de initializari si ramane nemodificat.
5.4.4 Modul 3 de lucru
In acest mod de lucru numaratorul T1 este oprit, iar numaratorul T0 de 16 biti este alc din 2
numaratoare (TH0 si TL0) de cate 8biti fiecare./Struc nrl care lucreaza in acest mod este: (fig)
Numaratorul TL0 este valida tdaca
switchul de control este inchis;
validarea se face prin setarea
indicatorului TR0 si resetarea
indicat. GATE0. /Intrarea nrl TL0
este conectata de switchul pt modul
de operare al osc de tact intern
divizat cu 12, daca C/T0 este resetat
sau la semnalul extern aplicat la
pinul de intrare T0, daca C/T0
estesetat. Depasirea capacitatii de
numarare a contorului TL0 este
semnalizata de indicatorul TF0 care poate solicita intreruperea, daca sis de intreruperi este active.
/Numaratorul TH0 este validat prin setarea bitului TR1, iar intrarea acestuia este conectata la osc
de tac tintern. Depasirea capacitatii de numarare a contorului TH0 este semnalizata de indicat
TF1 care poate solicita o cerere de intrerupere, daca sis de intreruperi este activat.

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