Sunteți pe pagina 1din 33

Familia de microcontrollere

80C51
Introducere
Adresarea memoriei
Sistemul de ntreruperi
Regitrii sistemului de timere
Comunicaia serial
Introducere
Microcontrollerele inglobeaz diferite
circuite necesare unui sistem de
calcul:
processor boolean
memorie
numrtoare/timere
sistem de ntreruperi
porturi de intrare/iesire
Caracteristicile familiei de microcontrollere
80C51:
Unitate centrala de procesare 8051
4k*8 ROM
128*8 RAM
3*16-biti numrtoare/timere
procesor boolean
Capabilitate de adresare a memoriei externe
64k*8 ROM (program)
64k*8 RAM (data)
6 ntreruperi cu 2 nivele de prioritate
4*8-biti porturi I/O
UART fullduplex
port asincron de reset
Circuitele integrate n microcontroller comunica prin
intermediul unor magistrale interne pe care se pot
vehicula adrese, date sau semnale de control
Simbolul logic i descrierea pinilor
VSS, intrare, mas
VCC, intrare, alimentare
P0.00.7, intrare/iesire, port 0, funcie de port bidirecional de 8 biti open-
drain cu intrari trigger Schmitt; pinii care au 1 inscris sunt flotani si pot fi
folosii ca i intrri cu inalt impedan; funcie de magistral de date i
magistral de adrese mai puin semnificativ multiplexate pe perioada
accesurilor la memoria extern de date i program folosind rezistene de
ridicare interne
P1.0P1.7, intrare/ieire, port 1,
funcie de port bidirecional de 8
bii cu rezistene de ridicare
interne i intrri trigger Schmitt;
pinii care au 1 inscris sunt
ridicai n 1 de ctre rezistenele
interne de ridicare i pot fi
folositi ca i intrri; doi pini pot
avea i funcii alternative
T2, intrare/ieire, (P1.0),
Timer/Numrtor 2
T2EX, intrare, (P1.1),
Timer/Numarator 2 cu
funcie de captur
P2.0P2.7, intrare/ieire, port 2, funcie de port bidirecional de 8 biti cu
rezistene de ridicare interne si intrri trigger Schmitt; pinii care au 1 nscris
sunt ridicai n 1 de ctre rezistenele interne de ridicare i pot fi folosii ca i
intrri; ca i funcie alternativ emite octetul mai semnificativ de adres pe
perioada accesului la memoria extern de program i date
P3.0P3.7, intrare/ieire, port 3; funcie de port bidirecional de 8 bii cu
rezistene de ridicare interne i intrri trigger Schmitt; pinii care au 1 nscris
sunt ridicai n 1 de ctre rezistenele interne de ridicare i pot fi folosii ca i
intrri; fiecare pin poate avea i funcie alternativ
RxD, intrare, (P3.0), portul de intrare serial
TxD, ieire, (P3.1), portul de ieire serial
INT0\, intrare, (P3.2), ntreruperea extern 0

INT1\, intrare, (P3.3), ntreruperea


extern 1
T0, intrare, (P3.4), intrarea extern
pentru Timer 0
T1, intrare, (P3.5), intrarea extern
pentru Timer 1
WR\, ieire, (P3.6), semnalul de activare
a scrierii memoriei de date externe
RD\, ieire, (P3.7), semnalul de activare
a citirii memoriei de date externe
RST, intrare, reset
ALE/PROG\, intrare/ieire, Address Latch Enable/Program Pulse, pulsul de
ieire ALE este folosit pentru memorarea octetului mai puin semnificativ de
adres pe perioada unui acces la memoria extern, pinul PROG este
intrarea pulsului de program pe perioada programrii EPROM-ului
PSEN\, ieire, Program Store Enable, semnalul de activare a citirii memoriei
de program externe

EA\ / VPP, intrare, External


Access Enable/Programming
Supply Voltage, dac EA\ este
tinut din exterior n 0,
microcontrollerul execut ntregul
cod din memoria de program
extern; dac EA\ este inut din
exterior n 1, microcontrollerul
execut codul aflat la locatiile de
memorie 0000H pn la 0FFFH
din memoria ROM interna; pinul
VPP primete tensiunea de
alimentare pentru programare pe
perioada progrmarii EPROM-
ului
XTAL1, intrare, Crystal 1, intrarea pentru amplificatorul inversor al
oscilatorului i circuitul generator de tact
XTAL2, ieire, Crystal 2, ieirea de la amplificatorul inversor al oscilatorului
Schema intern a portului 0
Semnalul CONTROL comand multiplexorul astfel nct portul 0 s poat
genera adrese sau date sau sa poata fi folosit ca i port de uz general.
Dac semnalul CONTROL are valoarea logic 1, portul 0 este folosit pentru
magistrala de adrese i date folosind rezistene de ridicare interne. Ieirea
porii I-NU nu este influenat de semnalul CONTROL, deci, starea
tranzistorului Mp este determinat doar de starea logic a adreselor sau
datelor transmise.
Dac semnalul CONTROL
are valoarea logic 0, portul 0
este un port bidirectional
open-drain. Ieirea porii I-
NU este 1, deci, tranzistorul
Mp este n starea blocat,
determinnd configuraia
open-drain a portului. Aadar,
dac portul este folosit ca i
ieire, se folosesc rezistene
de ridicare externe. Dac
portul este folosit ca i port
de intrare, valoarea logic 1
este setat prin program la
pin, deci, tranzistorul Mn este
n starea blocat i intrarea
este flotant.
Adresarea memoriei

Ciclul de citire i
configuraia memoriei de
program externe
Adresa este transmis mai
nti prin porturile P0 i P2
pe magistrala de adrese. A0-
A7 sunt memorate n latch la
activarea semnalului ALE.
Semnalul PSEN\ devine
activ i informaia din
memoria de program este
transmis pe magistrala de
date fiind receptionat prin
portul P0
Ciclii de citire/scriere i
configuratia memoriei de date
externe
Pentru ciclul de citire, adresa este
transmis mai inti prin porturile P0
i P2 pe magistrala de adrese. A0-
A7 sunt memorate n latch la
activarea semnalului ALE.
Semnalul RD\ devine activ i
informaia din memoria de date
este transmis pe magistrala de
date fiind recepionat prin portul
P0.
Pentru ciclul de scriere, adresa este
transmis mai inti prin porturile P0
i P2 pe magistrala de adrese. A0-
A7 sunt memorate n latch la
activarea semnalului ALE. Datele
sunt transmise prin portul P0 pe
magistrala de date i la activarea
semnalului WR\ sunt nscrise n
memoria de date.
Organizarea memoriei
Spaii de adres separate pentru memoria de program i date.
Memoria de program este o memorie nevolatil avnd o
lungime de pn la 64K*8. Dac pinul EA\ este inut din exterior
n starea logic 1, primele 4K locaii de memorie sunt accesate
din memoria intern a microcontrollerului restul fiind accesate
din memoria extern. Dac pinul EA\ este inut din exterior n
starea logic 0, toate cele 64K locaii de memorie sunt
accesate din memoria extern.
Acceseaza att de memorie de date intern ct i extern.
Memoria de date intern este de 128*8 RAM plus un numr de
Regitri cu Funciuni Speciale (Special Function Registers
SFRs). Cele mai mici 128*8 adrese RAM pot fi accesate prin
adresare direct sau indirect. Regitrii cu funciuni speciale pot
fi accesai doar prin adresare direct. Memoria de date extern
poate avea o lungime de pn la 64K*8, fiind o memorie de tip
RAM.
Cele mai mici 128*8 adrese pot fi imprite n 3 segmente:
Register Banks 0-3: adresele de la 00H pn la 1FH (32 octei).
Microcontrollerul dup reset pointeaz la register bank 0. Selecia bancului
de regitri se face prin software. Fiecare register bank conine 8 regitri de
un octet, 0 pn la 7.
Bit Addressable Area: adresele de la 20H pn la 2FH (16 octei). Fiecare
dintre cei 128 bii pot fi adresai direct (00H pn la 7FH). Fiecare dintre cei
16 octei pot fi adresai ca i octet.
Scratch Pad Area: adresele de la 30H pn la 7FH (80 octei). Folosii
pentru RAM de date.
Regitrii cu funciuni speciale marcai cu * sunt adresabili att
pe bit ct i pe octet. Ceilali regitri sunt adresabili doar pe
octet. Dup reset, fiecare registru este ncrcat cu o valoare
care nu interfer cu posibile valori utilizator. Regitrii adresabili
att pe octet ct i pe bit se afl pe prima coloan.
Sistemul de ntreruperi
La apariia unei intreruperi, microcontrollerul suspend
temporar execuia programului i execut rutina de tratare a
ntreruperii care deservete ntreruperea. Dup aceea, continu
execuia programului.
Pentru a executa rutina de tratare a ntreruperii
microcontrollerul parcurge urmatorii pai:
Salveaz pe stiv locaia urmatoarei instructiuni (2 octei) i PSW (2
octei).
Determin sursa de ntrerupere (numrul ntreruperii). Fiecare surs de
ntrerupere are un vector de ntrerupere care este ncrcat cu o
instruciune de salt la adresa rutinei de tratare a ntreruperii. Adresa
vectorului este calculat automat de catre microcontroller. Vectorii de
ntrerupere (8 octei) se afl in tabela vectorilor de ntrerupere.
Acceseaz tabela vectorilor de ntrerupere folosind vectorul de
ntrerupere ca i index pentru a determina adresa rutinei de tratare a
ntreruperii.
Execut rutina de tratare a ntreruperii.
ntreruperea se termin cu instructiunea IRET care ncarc de pe stiv
locaia urmtoarei instruciuni (2 octei) i PSW (2 octei)
Pentru implementarea ntreruperilor, trebuiesc parcuri urmtorii
pai:
Se setaz bitul EA din registrul IE la valoarea logic 1. Aceast setare
permite activarea intreruperilor.
Se seteaza la valoarea logic 1 n registrul IE biii de activare a
ntreruperii pentru ntreruperile care vor fi folosite.
Adresa de nceput a rutinei de tratare a ntreruperii va corespunde
adresei vectorului ntreruperii respective. Fiecare vector va fi ncrcat cu
o instruciune long jump la adresa rutinei de tratare a ntreruperii.
In plus, pentru ntreruperile externe, pinii INT0\ (P3.2) i INT1\ (P3.3)
trebuiesc setai la valoarea logic 1, i biii corespunzatori (IT0 i IT1) din
registrul TCON trebuiesc resetai sau setai pentru activarea ntreruperii
pe nivel sau pe front.
ntreruperile microcontrollerelor din familia 80C51
Structura registrului IE
Adresabil att pe octet ct i pe bit. Dac EA este 0,
toate ntreruperile sunt dezactivate. Dac EA este 1, o
ntrerupere este activat prin setarea bitului
corespunzator la 1. Dac bitul corespunzator este 0
ntreruperea este dezactivat. Funciile biilor:
EA, IE.7: dac EA=0, nici o ntrerupere nu va fi achitat.
Dac EA=1, fiecare surs de ntrerupere poate fi activat
sau dezactivat individual.
ET2, IE.5: timer 2 overflow sau ntrerupere de captur (doar
8052)
ES, IE.4: ntrerupere port serial
ET1, IE.3: ntrerupere Timer 1 overflow
EX1, IE.2: ntrerupere extern 1
ET0, IE.1: ntrerupere Timer 0 overflow
EX0, IE.0: ntrerupere extern 0
Sistemul de prioriti al ntreruperilor
Dou nivele de prioritate. O prioritate mai mare poate ntrerupe o prioritate
mai mic. O prioritate mai mic nu poate ntrerupe o prioritate mai mare.
Pentru asignarea unei prioriti mai mari sau mai mici unei ntreruperi bitul
corespunztor din registrul IP trebuie setat la 1 sau 0. n acelai nivel de
prioritate sunt mai multe prioriti. Prioritile din acelai nivel nu pot fi
ntrerupte de alte prioriti din acelasi nivel chiar dac n interiorul nivelului
de prioritate acele prioriti au un nivel mai mare. Prioritile n interiorul unui
nivel se folosesc doar pentru rezolvarea cererilor simultane ale aceluiai
nivel de prioritate.
Prioritile de la mare la mic: IE0, TF0, IE1, TF1, RI sau TI i TF2 sau EXF2.
Structura registrului IP
Adresabil att pe octet ct i pe bit. Dac bitul este 0, ntreruperea
corespunztoare are o prioritate mai mic. Dac bitul este 1, ntreruperea
corespunzatoare are o prioritate mai mare. Funciile biilor:
PT2, IP.5: nivelul de prioritate al ntreruperii Timer 2 (doar 8052)
PS, IP.4: nivelul de prioritate al ntreruperii portului serial
PT1, IP.3: nivelul de prioritate al ntreruperii Timer 1
PX1,IP.2: nivelul de prioritate al ntreruperii externe 1
PT0, IP.1: nivelul de prioritate al ntreruperii Timer 0
PX0, IP.0: nivelul de prioritate al ntreruperii externe 0
Regitrii sistemului de timere
Structura registrului TCON
Adresabil att pe octet ct i pe bit. Funciile biilor:
TF1, TCON.7: Flag Timer 1 overflow. Setat hardware la overflow Timer 1. ters
hardware cnd procesorul execut rutina de tratare a ntreruperii.
TR1, TCON.6: Bit de control funcionare Timer 1. Dac TR1=1, Timer 1 ON. Dac
TR1=0, Timer 1 OFF.
TF0, TCON.5: Flag Timer 0 overflow. Setat hardware la overflow Timer 0. ters
hardware cnd procesorul execut rutina de tratare a ntreruperii.
TR0, TCON.4: Bit de control funcionare Timer 0. Dac TR0=1, Timer 0 ON. Dac
TR0=0, Timer 0 OFF.
IE1, TCON.3: Flag de front ntrerupere extern 1. Setat hardware cnd este
detectat frontul la ntreruperea extern 1, ters hardware cnd ntreruperea este
procesat.
IT1, TCON.2: Bit de control tip ntrerupere 1. Dac IT1=1, ntreruperea 1 este
declanat de un front cztor. Dac IT1=0, ntreruperea 1 este declanat de
nivelul logic 0.
IE0, TCON.1: Flag de front ntrerupere extern 0. Setat hardware cnd este
detectat frontul la ntreruperea externa 0, ters hardware cnd ntreruperea este
procesat.
IT0, TCON.0: Bit de control tip ntrerupere 0. Dac IT0=1, ntreruperea 0 este
declanat de un front cztor. Dac IT0=0, ntreruperea 0 este declanat de
nivelul logic 0.
Structura registrului TMOD
Adresabil pe octet. Funciile biilor:
GATE: Dac GATE=1, TIMERx va rula doar att timp ct TRx=1 i INTx=1
(control hardware). Dac GATE=0, TIMERx va rula doar att timp ct TRx=1
(control software).
C/T\, Selector Timer sau Counter. Dac C/T\=0, operare Timer (intrare de la
ceasul sistem intern). Dac C/T\=1, operare Counter (intrare de la pinul de
intrare Tx).
M1: Bit de selectie mod.
M0: Bit de selectie mod.
Comunicaia serial
Structura registrului SCON
Adresabil att pe octet ct i pe bit. Funciile biilor:
SM0: Bit 0 mod Port Serial (MSB).
SM1: Bit 1 mod Port Serial (LSB).
SM2: Aciveaz caracteristica de comunicare multiprocesor n modurile 2 i 3. n
modurile 2 sau 3, dac SM2=1, RI va fi activat (setat la 1) doar dac al 9-lea bit de
date recepionat (RB8) este 1. n modul 1, dac SM2=1, RI va fi activat doar dac
un bit de stop valid a fost recepionat. n modul 0, SM2=0.
REN: Setat/ters prin software pentru a Activa/Dezactiva recepia.
TB8: Al 9-lea bit care va fi transmis n modurile 2 i 3.
RB8: n modurile 2 i 3, este al 9-lea bit de date recepionat. n modul 1, dac
SM2=0, RB8 este bitul de stop recepionat. n modul 0, RB8 nu este folosit.
TI: Flag de ntrerupere la transmisie. Setat prin hardware. Trebuie ters prin
software.
RI: Flag de ntrerupere la recepie. Setat prin hardware. Trebuie ters prin
software.
n modul 0 portul serial comunic la rata baud fix.
Rata Baud = Osc Freq/12
Pentru configurarea acestui mod trebuie definit doar registrul SCON.
Nu este necesar setarea unui Timer/Counter.
n acest mod portul de comport ca i un registru de shiftare de opt
bii transmind si recepionnd date la rata baud. Datele sunt
transmise cu LSB primul bit si intr i ies din UART prin pinul RXD. n
consecin acest mod nu suport comunicaia full duplex. Transmisia
ncepe cnd registrul SBUF este ncrcat cu date. Octetul este
transmis i bitul TI este setat cnd transmisia este complet. Recepia
incepe cnd bitul REN din registrul SCON este setat. Bitul RI este
setat cnd octetul este recepionat.
n modul 1 rata baud este variabil fiind generat de Timer 1 care
este folosit n modul 2 (Auto-Reload).
Rata Baud = (K * Osc Freq)/{32 * 12 * [256 - (TH1)]}
Bitul SMOD din registrul PCON determin valoarea parametrului K.
Dac SMOD = 0, K = 1, dac SMOD = 1, K = 2.
TH1 = 256 (K * Osc Freq) / (384 * Rata Baud)
Formatul cadrului: 1 bit de start, 8 bii de date, 1 bit de stop.
Semnalele de ntrerupere TI i RI sunt activate atunci cnd un cadru a
fost transmis sau recepionat.
In modul 2 portul serial comunic la rata baud fix.
SMOD = 1, Rata Baud = 1/32*Osc Freq.
SMOD = 0, Rata Baud = 1/64*Osc Freq.
Pentru configurarea acestui mod trebuie definit doar registrul SCON.
Nu este necesar setarea unui Timer/Counter.
Formatul cadrului: 1 bit de start, 8 bii de date, al 9-lea (stick) bit, i 1
bit de stop. Valoarea celui de-al 9-lea bit este determinat de bitul
TB8 la transmitor i este recepionat n bitul RB8. Acest bit este
folosit pentru comunicaii interprocesor. UART-ul poate fi iniializat
prin setarea bitului SM2 s genereze o ntrerupere la recepie doar
atunci cnd bitul al 9-lea este setat. Un octet de adres sau comand
poate fi transmis cu al 9-lea bit setat. Toate procesoarele sunt
ntrerupte i bitul recepionat este procesat pentru a se vedea dac
este necesar recepionarea mesajului. Daca microcontrollerul
trebuie s recepioneze mesajul, bitul SM2 este ters si restul
mesajului este recepionat. Dac microcontrollerul nu trebuie sa
recepioneze mesajul, bitul SM2 este lsat setat i mesajul nu va
genera o ntrerupere.
Modul 3 este similar modului 2 n termenii formatului cadrului i
folosirii celui de-al 9-lea bit. Ratele baud sunt similare modului 1.
Probleme rezolvate
Sa se proiecteze un sistem cu microcontroller
80C51 avand urmatoarele blocuri:
oscilator cu quartz avand frecventa de 12MHz
circuit de reset
8k*8 memorie de program externa avand adresa de
baza 0000H
8k*8 memorie de date si program externa avand
adresa de baza 2000H
8k*8 memorie de date externa avand adresa de
baza 4000H
1
11 OC
0 3 C 2 10 11
4 1D 1Q 5 9 A0 O0 12
7 2D 2Q 6 8 A1 O1 13
8 3D 3Q 9 7 A2 O2 15
13 4D 4Q 12 6 A3 O3 16
14 5D 5Q 15 5 A4 O4 17
17 6D 6Q 16 4 A5 O5 18
18 7D 7Q 19 3 A6 O6 19
8D 8Q 25 A7 O7
39 21 74HCT373 24 A8
38 P0.0/A D0 P2.0/A8 22 21 A9
37 P0.1/A D1 P2.1/A9 23 23 A10
36 P0.2/A D2 P2.2/A10 24 2 A11
35 P0.3/A D3 P2.3/A11 25 A12
34 P0.4/A D4 P2.4/A12 26 20
33 P0.5/A D5 P2.5/A13 27 5 15 22 CE
32 P0.6/A D6 P2.6/A14 28 G2B Y0 14 1 OE
P0.7/A D7 P2.7/A15 0 1 Y1 13 VPP VPP
1 10 2 A Y2 12
2 P1.0/T 2 P3.0/RXD 11 3 B Y3 11 10 11
3 P1.1/T 2EX P3.1/TXD 12 C Y4 10 9 A0 O0 12
4 P1.2/E CI P3.2/INT0 13 1 6 Y5 9 8 A1 O1 13
5 P1.3/CEX0 P3.3/INT1 14 2 12 4 G1 Y6 7 7 A2 O2 15
C1 6 P1.4/CEX1 P3.4/T0 15 13 G2A Y7 6 A3 O3 16
7 P1.5/CEX2 P3.5/T1 16 0 74HCT138 5 A4 O4 17
8 P1.6/CEX3 P3.6/WR 17 74HCT10 4 A5 O5 18
33p P1.7/CEX4 P3.7/RD 3 A6 O6 19
C2 12MHz 19 30 25 A7 O7
18 X1 ALE 29 24 A8
X2 PSEN 21 A9
0 33p 31 23 A10
R1 VCC 9 EA 2 A11
0 RST A12
40 1 20
S1 220 VCC 3 22 CE
10u VCC 80C51 2 1 OE
WR
74HCT08
10 11
R2 9 A0 O0 12
8k2 8 A1 O1 13
7 A2 O2 15
0 6 A3 O3 16
5 A4 O4 17
4 A5 O5 18
3 A6 O6 19
25 A7 O7
24 A8
21 A9
23 A10
2 A11
A12
20
22 CE
1 OE
WR
Sa se proiecteze un sistem cu microcontroller
80C51 avand urmatoarele blocuri:
oscilator cu quartz avand frecventa de 12MHz
circuit de reset
8k*8 memorie de program externa avand adresa de
baza 0000H
port de iesire la adresa 011XXXXXXXXXXXXXb
port de intrare la adresa 111XXXXXXXXXXXXXb la
care sunt conectate 2 taste
1
11 OC
0 3 C 2 10 11
4 1D 1Q 5 9 A0 O0 12
7 2D 2Q 6 8 A1 O1 13
8 3D 3Q 9 7 A2 O2 15
13 4D 4Q 12 6 A3 O3 16
14 5D 5Q 15 5 A4 O4 17
17 6D 6Q 16 4 A5 O5 18
18 7D 7Q 19 3 A6 O6 19
8D 8Q 25 A7 O7
39 21 74HCT373 24 A8
38 P0.0/AD0 P2.0/A8 22 21 A9
37 P0.1/AD1 P2.1/A9 23 23 A10
36 P0.2/AD2 P2.2/A 10 24 2 A11
35 P0.3/AD3 P2.3/A 11 25 A12
34 P0.4/AD4 P2.4/A 12 26 20
33 P0.5/AD5 P2.5/A 13 27 5 15 22 CE
32 P0.6/AD6 P2.6/A 14 28 G2B Y0 14 1 OE
P0.7/AD7 P2.7/A 15 0 1 Y1 13 VPP VPP
1 10 2 A Y2 12 2
2 P1.0/T2 P3.0/RXD 11 3 B Y3 11 1
3 P1.1/T2EX P3.1/TXD 12 C Y4 10 3
4 P1.2/ECI P3.2/INT0 13 1 6 Y5 9 1
5 P1.3/CEX0 P3.3/INT1 14 2 12 4 G1 Y6 7 74HCT02 OC 11 0
C1 6 P1.4/CEX1 P3.4/T0 15 13 G2A Y7 2 CLK 3
7 P1.5/CEX2 P3.5/T1 16 0 74HCT138 5 1Q 1D 4
8 P1.6/CEX3 P3.6/WR 17 74HCT10 6 2Q 2D 7
33p P1.7/CEX4 P3.7/RD 9 3Q 3D 8
C2 12MHz 19 30 12 4Q 4D 13
18 X1 ALE 29 15 5Q 5D 14
X2 PSEN 16 6Q 6D 17
0 33p 31 19 7Q 7D 18
R1 VCC 9 EA 8Q 8D
0 RST 74HCT374
40 1
S1 220 VCC 3 1
10u VCC 80C51 2 2 1G 18
R3 VCC 4 1A1 1Y1 16
74HCT32 6 1A2 1Y2 14
S2 8 1A3 1Y3 12
R2 10k 1A4 1Y4
8k2 19
0 R4 11 2G 9
0 13 2A1 2Y1 7
S3 15 2A2 2Y2 5
10k 17 2A3 2Y3 3
2A4 2Y4
0 74HCT244
Sa se proiecteze un sistem cu microcontroller
80C51 avand urmatoarele blocuri:
oscilator cu quartz avand frecventa de 12MHz
circuit de reset
port de iesire la adresa XXXXX001XXXXXXXXb la
care sunt conectate doua display-uri cu LED-uri 7-
segmente catod comun pentru care VLED=1,7V si
ILED=10mA
2 taste conectate la intrarile de intrerupere
microcontrollerul foloseste doar memoria interna de
program
Calculul rezistentelor conectate la display-uri se
face dupa formula:
R=(VOHTYP-VLED)/ILED=(4,25V-1,7V)/10mA=255
13 7
12 A A 1
11 B B 2
10 C C 6
9 D D
15 E 3 VCC
14 F LT 4
G BI 5
LE
7*255 4511
11
13

1 5
G2B Y0
15
14
39 21 0 1 Y1 13
38 P0.0/AD0 P2.0/A8 22 2 A Y2 12
37 P0.1/AD1 P2.1/A9 23 3 B Y3 11
12
14

10

P0.2/AD2 P2.2/A10 C Y4
8

0 36 24 VCC 10
13 7 35 P0.3/AD3 P2.3/A11 25 6 Y5 9
12 A A 1 34 P0.4/AD4 P2.4/A12 26 4 G1 Y6 7
11 B B 2 33 P0.5/AD5 P2.5/A13 27 G2A Y7
10 C C 6 32 P0.6/AD6 P2.6/A14 28 74HCT138
9 D D P0.7/AD7 P2.7/A15
15 E 3 VCC 1 10 VCC
14 F LT 4 2 P1.0/T2 P3.0/RXD 11
G BI 5 3 P1.1/T2EX P3.1/TXD 12 R3
LE 4 P1.2/ECI P3.2/INT0 13 10k S2
7*255 4511 5 P1.3/CEX0 P3.3/INT1 14
C1 6 P1.4/CEX1 P3.4/T0 15
P1.5/CEX2 P3.5/T1 0
11
13

7 16
9

8 P1.6/CEX3 P3.6/WR 17 VCC


33p P1.7/CEX4 P3.7/RD
C2 12MHz 19 30 R4
18 X1 ALE 29 10k S3
X2 PSEN
0 33p VCC 31
12
14

10

EA
8

0 R1 9 0
RST
40
S1 220 VCC
10u VCC 80C51

R2
8k2

0
Probleme propuse
Sa se proiecteze un sistem cu microcontroller
80C51 avand urmatoarele blocuri:
oscilator cu quartz avand frecventa de 12MHz
circuit de reset
32k*8 memorie de date si program externa avand
adresa de baza 8000H
2 taste conectate la intrarile de intrerupere
Sa se proiecteze un sistem cu
microcontroller 80C51 avand urmatoarele
blocuri:
oscilator cu quartz avand frecventa de 12MHz
circuit de reset
port de iesire la adresa XXX101XXXXXXXXXXb
la care sunt conectate doua display-uri cu LED-
uri 7-segmente anod comun pentru care
VLED=1,6V si ILED=30mA
pentru tranzistoare se considera =100
microcontrollerul foloseste doar memoria interna
de program

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