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
74HCT08
1
2
3
C2
33p
VCC
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
1
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CE
OE
WR
O0
O1
O2
O3
O4
O5
O6
O7
0
0
74HCT373
1
11
3
4
7
8
13
14
17
18
2
5
6
9
12
15
16
19
OC
C
1D
2D
3D
4D
5D
6D
7D
8D
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
0
10u
74HCT10
1
12 2
13
12MHz
R2
8k2
S1
80C51
29
30
40
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
PSEN
ALE
VCC
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0/T2
P1.1/T2EX
P1.2/ECI
P1.3/CEX0
P1.4/CEX1
P1.5/CEX2
P1.6/CEX3
P1.7/CEX4
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
0
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
1
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CE
OE
VPP
O0
O1
O2
O3
O4
O5
O6
O7
VPP
R1
220
C1
33p
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
1
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CE
OE
WR
O0
O1
O2
O3
O4
O5
O6
O7
0
0
VCC
74HCT138
15
14
13
12
11
10
9
7
1
5
2
3
6
4
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A
G2B
B
C
G1
G2A
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

0
10u
74HCT02
2
3
1
12MHz
74HCT138
15
14
13
12
11
10
9
7
1
5
2
3
6
4
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A
G2B
B
C
G1
G2A
0
S3
74HCT374
1
3
4
7
8
13
14
17
18
2
5
6
9
12
15
16
19
11
OC
1D
2D
3D
4D
5D
6D
7D
8D
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
CLK
10
9
8
7
6
5
4
3
25
24
21
23
2
20
22
1
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CE
OE
VPP
O0
O1
O2
O3
O4
O5
O6
O7
0
74HCT244
1
2
4
6
8
19
11
13
15
17
18
16
14
12
9
7
5
3
1G
1A1
1A2
1A3
1A4
2G
2A1
2A2
2A3
2A4
1Y1
1Y2
1Y3
1Y4
2Y1
2Y2
2Y3
2Y4
0
S1
VPP
R2
8k2
C1
33p
R4
10k
0
0
0
C2
33p
80C51
29
30
40
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
PSEN
ALE
VCC
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0/T2
P1.1/T2EX
P1.2/ECI
P1.3/CEX0
P1.4/CEX1
P1.5/CEX2
P1.6/CEX3
P1.7/CEX4
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
R3
10k
74HCT373
1
11
3
4
7
8
13
14
17
18
2
5
6
9
12
15
16
19
OC
C
1D
2D
3D
4D
5D
6D
7D
8D
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
R1
220
0
74HCT32
1
2
3
74HCT10
1
12 2
13
VCC
0
VCC
VCC
S2
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 V
LED
=1,7V si
I
LED
=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=(V
OHTYP
-V
LED
)/I
LED
=(4,25V-1,7V)/10mA=255
VCC
74HCT138
15
14
13
12
11
10
9
7
1
5
2
3
6
4
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A
G2B
B
C
G1
G2A
S3
R4
10k
7*255
VCC
0
0
VCC
S1
R1
220
1
2
3
4 6
5
8 1
0
1
2
7 9 1
1
1
3
1
4
VCC
12MHz
1
2
3
4 6
5
8 1
0
1
2
7 9 1
1
1
3
1
4
0
S2
R3
10k
10u
C1
33p
C2
33p
0
7*255
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
VCC
R2
8k2
0
VCC
80C51
29
30
40
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
PSEN
ALE
VCC
EA
X1
X2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0/T2
P1.1/T2EX
P1.2/ECI
P1.3/CEX0
P1.4/CEX1
P1.5/CEX2
P1.6/CEX3
P1.7/CEX4
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
0
4511
7
1
2
6
3
4
5
13
12
11
10
9
15
14
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
0
VCC
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
V
LED
=1,6V si I
LED
=30mA
pentru tranzistoare se considera =100
microcontrollerul foloseste doar memoria interna
de program