Sunteți pe pagina 1din 23

76.

Care sunt sursele de întrerupere la 8051 (cele 5 surse


standard)?
Procesorul 8051 are 5 semnale de
intrerupere(INT0,TFO,INT1,TF1,RI/TI).Fiecare dintre acestea poate
fi activate/dezactivata prin modificarea bitilor din registrul IE,iar
toate intreruperile pot fi dezactivate trecand pe 0 bitul EA din
acelasi registru.
1. Timer 0 overflow interrupt- TF0
2. Timer 1 overflow interrupt- TF1
3. External hardware interrupt- INT0
4. External hardware interrupt- INT1
5. Serial communication interrupt- RI/TI
https://www.tutorialspoint.com/microprocessor/microcontrollers_
8051_interrupts.htm

77. Care sunt evenimentele care determină setarea flagurilor de


întrerupere?

Flagurile de întrerupere pot fi setate/resetate prin program, cu


acelaşi efect ca şi cum ar fi fost comandate de logica internă
de întreruperi. Aceasta însemnă că:
O întrerupere poate fi generată şi prin program, prin setarea
flagului asociat. Excepţie fac întreruperile externe 0 şi 1 atunci
când sunt active pe nivel, când flagurile IE0 şi IE1 sunt
afectate numai de starea pinilor INT0/P3.2 respectiv INT1/P3.3.
O cerere de întrerupere în aşteptare poate fi anulată înainte
de a fi acceptată dacă întreruperea respectivă era invalidată
la momentul apariţiei.
O cerere de întrerupere poate fi achitată în rutina de tratare
prin resetarea flagului care a generat-o, dacă acest lucru nu
s-a produs deja, în mod automat, odată cu acceptarea ei de
către unitatea centrală.

78. Care sunt bistabilele care se setează atunci când apar


cereri de întrerupere (flag-urile de întreruperi)?
Atunci când conţinutul registrului TH se schimbă din FFh
în 00h (la depăşire), este setat bistabilul de întrerupere
asociat TF0/TF1, generându-se o cerere de întrerupere.
Depăşirea la numărare determină, pe lângă setarea
bistabilului TF şi lansarea unei cereri de întrerupere,
copierea automată în registrul numărător (TL) a valorii
conţinute în registrul constantei de timp TH, aşa cum se
arată în fig.1 (Autoload).

79.Care sunt flagurile de validare individuală a cererilor de


întrerupere și ce rol au ele?
80.Care este rolul flagului de validare globală a întreruperilor?
Dacă flagul de validare al unei surse de întreruperi este 0 (de
ex. T0IE=0), cererea de întrerupere
înregistrată în flagul corespunzător (de ex. T0IF=1) nu va fi
înaintată către CPU.
81. Când și cum sunt detectate cererile de întrerupere?

La sfârşitul fiecărui ciclu de execuţie a instrucţiunilor, UCP


verifică dacă întreruperile sunt validate (bistabilul IEN este
setat) şi testează dacă există o cerere de întrerupere.
82.Care sunt condițiile în care este acceptată o cerere de
întrerupere?

Valorile memorate sunt testate în ciclul maşină următor.Dacă


există cel puţin o solicitare de întrerupere în aşteptare (având
flagurile de generare şi de validare setate), după rezolvarea
priorităţilor sistemul de întreruperi va genera un apel
(echivalent cu o instrucţiune LCALL (Long Call) –dar care nu
apare în program) la adresa de tratare corespunzătoare (vezi
tab.1), numai dacă:nu există o altă cerere, pe un nivel cu
prioritate mai mare sau egală, în curs de tratare;ciclul curent
este ultimul ciclu maşină al unei instrucţiuni;instrucţiunea
curentă nu este RETI (revenire din întrerupere) şi nici una care
să acceseze regiştrii cu funcţii speciale IE sau IP, implicaţi în
gestiunea întreruperilor.

Solicitările generate de flagurile de întrerupere trebuie să


rămână în aşteptare până când ajung să fie deservite. Dacă
un flag de întrerupere este resetat prin program înainte ca
întreruperea în aşteptare asociată să ajungă să fie acceptată
de unitatea centrală, atunci cerereade întrerupere se pierde,
fără a mai fi tratată.
În unele cazuri, flagul de întrerupere este resetat automat, prin
hardware, în momentul în care întreruperea asociată este
acceptată: TF0, TF1, precum şi IE0, IE1 -dacă sunt active pe
front descrescator.
În alte cazuri, rămâne în sarcina rutinei de tratare a întreruperii
să reseteze flagul:RI+TI, precum şi IE0, IE1 -dacă sunt active pe
nivel.
83.Ce se întâmplă la acceptarea unei cereri de întrerupere?

La acceptarea întreruperii, efectul instrucţiunii de apel


(LCALL) salvează în stivă adresa următoarei instrucţiuni din
programul întrerupt, apoi încarcă registrul PC cu adresa de
tratare corespunzătoare întreruperii.Secvenţa de instrucţiuni
care începe la această adresă (denumită şi rutină de tratare a
întreruperii) se execută până la apariţia unei întreruperi pe un
nivel mai prioritar sau până la execuţia unei instrucţiuni
RETI.Instrucţiunea RETI are două funcţii:-informează sistemul
de întreruperi despre terminarea rutinei de tratare şi permite
astfel şi tratarea cererilor de pe acelaşi nivel sau de pe
nivelurile inferioare (EOI);-reface de pe stivă (la fel ca şi o
instrucţiune RET) conţinutul registrului PC salvat la intrarea în
rutina de întrerupere, permiţând astfel continuarea
programului întrerupt.

84. Care sunt adresele la care trebuie să se afle amplasate


rutinele de tratare a întreruperilor?
85.Ce se întâmplă dacă apar cereri de întrerupere, acestea sunt
validate, dar nu a fost prevăzută o secvență de tratare pentru
acea întrerupere la adresa corespunzătoare?

86.Odată acceptată cererea, ce se întâmplă cu flagul de


întrerupere (se șterge automat/trebuie șters prin
program/poate să nu fie șters?

O cerere de întrerupere poate fi achitată în rutina de tratare


prin resetarea flagului care a generat-o, dacă acest lucru nu
s-a produs deja, în mod automat, odată cu acceptarea ei de
către unitatea centrală.

87. Cum se ajunge la secvență de tratare a întreruperii (rutina


de întrerupere)?
Flagurile de generare a întreruperilor sunt eşantionate în
starea S5P2 a fiecărui ciclu maşină (vezi fig.5.2).

Valorile memorate sunt testate în ciclul maşină următor.Dacă


există cel puţin o solicitare de întrerupere în aşteptare (având
flagurile de generare şi de validare setate), după rezolvarea
priorităţilor sistemul de întreruperi va genera un apel
(echivalent cu o instrucţiune LCALL (Long Call) –dar care nu
apare în program) la adresa de tratare corespunzătoare (vezi
tab.1), numai dacă:
nu există o altă cerere, pe un nivel cu prioritate mai mare
sau egală, în curs de tratare;
ciclul curent este ultimul ciclu maşină al unei instrucţiuni;
instrucţiunea curentă nu este RETI (revenire din întrerupere)
şi nici una care să acceseze regiştrii cu funcţii speciale IE sau
IP, implicaţi în gestiunea întreruperilor.
Solicitările generate de flagurile de întrerupere trebuie să
rămână în aşteptare până când ajung să fie deservite. Dacă
un flag de întrerupere este resetat prin program înainte ca
întreruperea în aşteptare asociată să ajungă să fie acceptată
de unitatea centrală, atunci cerereade întrerupere se pierde,
fără a mai fi tratată.În unele cazuri, flagul de întrerupere este
resetat automat, prin hardware, în momentul în care
întreruperea asociată este acceptată:
TF0, TF1, precum şi IE0, IE1 -dacă sunt active pe front ().
23În alte cazuri, rămâne în sarcina rutinei de tratare a
întreruperii să reseteze flagul:
RI+TI, precum şi IE0, IE1 -dacă sunt active pe nivel.
La acceptarea întreruperii, efectul instrucţiunii de apel
(LCALL) salvează în stivă adresa următoarei instrucţiuni din
programul întrerupt, apoi încarcă registrul PC cu adresa de
tratare corespunzătoare întreruperii.Secvenţa de instrucţiuni
care începe la această adresă (denumită şi rutină de tratare a
întreruperii) se execută până la apariţia unei întreruperi pe un
nivel mai prioritar sau până la execuţia unei instrucţiuni RETI.
Instrucţiunea RETI are două funcţii:
-informează sistemul de întreruperi despre terminarea rutinei
de tratare şi permite astfel şi tratarea cererilor de pe acelaşi
nivel sau de pe nivelurile inferioare (EOI);
-reface de pe stivă (la fel ca şi o instrucţiune RET) conţinutul
registrului PC salvat la intrarea în rutina de întrerupere,
permiţând astfel continuarea programului întrerupt.
88.Cum se revine la instrucțiunea următoare din programul
principal, la terminarea tratării întreruperii?

89.Într-o rutină de tratare a întreruperii putem modifica valorile


registrelor? Ce se întâmplă dacă le modificăm?

90.Ce se întâmplă dacă există mai multe cereri de întrerupere


active la un moment dat? Care dintre cereri e servită mai întâi?

În cazul în care, la un moment dat, există mai multe cereri de


întrerupere, cererea de prioritate maximă se alege folsind
două reguli care se aplică succesiv (vezi fig.5.1):
prioritatea nivelului de întrerupere;
prioritatea individuală, în interiorul aceluiaşi nivel
Odată acceptată o cerere de întrerupere, rutina de tratare a
acesteia poate fi întreruptă de o cerere apărută ulterior pe un
nivel superior, dar nu şi de o cerere de pe acelaşi nivel sau de
pe un nivel inferior.Drepturmare, tratarea unei întreruperi de
pe nivelul cel mai prioritar din sistem nu poate fi întreruptă de
nici o altă cerere.

91.Pe câte nivele de prioritate se poate afla o sursa de


întrerupere și care este regula de prioritate aplicată pentru
cererile de la surse amplasate pe același nivel, dacă sunt mai
multe active la un moment dat?
The interrupts in the 8051 microcontrollers have certain priorities assigned to them. This helps
the microcontroller decide which interrupt to service first if two of them occur at the same time.
The priorities of the interrupts are as follows:

The Reset interrupt has the highest priority. It is not included in this list because unlike the five
interrupts mentioned in the list, the priority of the Reset interrupt cannot be altered. 

1. External interrupt 0
2. Timer interrupt 0
3. External interrupt 1
4. Timer interrupt 1
5. Serial interrupt

To change the priorities of these five interrupts, the Interrupt Priority register is used. This is
another register that we studied in our post on SFRs in 8051. Just like the IE register, this register
is bit addressable and placed at B8H in the SFR memory space.

If any bit in the IP register is set to 1, then the priority of that interrupt increases to the top (Still
below Reset). However, if two bits in the IP register are raised simultaneously, then the priorities
mentioned above are used to make the final decision on which interrupt will be serviced first.

If any of the bits in the IP register has a value one its priority of that interrupt is increased

 PT2: Increases the priority of timer 2 (for 8052 only)


 PS: Increases the priority of the serial interrupt
 PT1: Increases the priority of timer 1
 PX1: Increases the priority of external interrupt 1
 PT0: Increases the priority of timer 0
 PX1: Increases the priority of external interrupt 0

https://technobyte.org/interrupts-8051-microcontroller-types-
examples/
92.Ce se întâmpla odată ce a fost acceptată o cerere de
întrerupere, mai sunt acceptate alte cereri înainte de a se
termina tratarea celei în curs?
Dacă există cel puţin o solicitare de întrerupere în aşteptare
(având flagurile de generare şi de validare setate), după
rezolvarea priorităţilor sistemul de întreruperi va genera un
apel (echivalent cu o instrucţiune LCALL (Long Call) –dar care nu
apare în program) la adresa de tratare corespunzătoare (vezi
tab.1), numai dacă:
nu există o altă cerere, pe un nivel cu prioritate mai mare sau
egală, în curs de tratare;
ciclul curent este ultimul ciclu maşină al unei instrucţiuni;
instrucţiunea curentă nu este RETI (revenire din întrerupere) şi
nici una care să acceseze regiştrii cu funcţii speciale IE sau IP,
implicaţi în gestiunea întreruperilor.
Solicitările generate de flagurile de întrerupere trebuie să
rămână în aşteptare până când ajung să fie deservite. Dacă un
flag de întrerupere este resetat prin program înainte ca
întreruperea în aşteptare asociată să ajungă să fie acceptată de
unitatea centrală, atunci cerereade întrerupere se pierde, fără a
mai fi tratată.

La acceptarea întreruperii, efectul instrucţiunii de apel


(LCALL) salvează în stivă adresa următoarei instrucţiuni din
programul întrerupt, apoi încarcă registrul PC cu adresa de
tratare corespunzătoare întreruperii.
Secvenţa de instrucţiuni care începe la această adresă
(denumită şi rutină de tratare a întreruperii) se execută până
la apariţia unei întreruperi pe un nivel mai prioritar sau până la
execuţia unei instrucţiuni RETI.Instrucţiunea RETI are două
funcţii:
-informează sistemul de întreruperi despre terminarea rutinei
de tratare şi permite astfel şi tratarea cererilor de pe acelaşi
nivel sau de pe nivelurile inferioare (EOI);
-reface de pe stivă (la fel ca şi o instrucţiune RET) conţinutul
registrului PC salvat la intrarea în rutina de întrerupere,
permiţând astfel continuarea programului întrerupt.

93. Cum află microcontrolerul că s-a terminat tratarea unei


cereri de întrerupere și de ce are nevoie să știe acest lucru?

La acceptarea întreruperii, efectul instrucţiunii de apel (LCALL)


salvează în stivă adresa următoarei instrucţiuni din programul
întrerupt, apoi încarcă registrul PC cu adresa de tratare
corespunzătoare întreruperii.Secvenţa de instrucţiuni care
începe la această adresă (denumită şi rutină de tratare a
întreruperii) se execută până la apariţia unei întreruperi pe un
nivel mai prioritar sau până la execuţia unei instrucţiuni
RETI.Instrucţiunea RETI are două funcţii:
-informează sistemul de întreruperi despre terminarea rutinei
de tratare şi permite astfel şi tratarea cererilor de pe acelaşi
nivel sau de pe nivelurile inferioare (EOI);
-reface de pe stivă (la fel ca şi o instrucţiune RET) conţinutul
registrului PC salvat la intrarea în rutina de întrerupere,
permiţând astfel continuarea programului întrerupt.

94. Ce este un port serial, cum se face transferul informației,


prin comparație cu transferul paralel?

Toate microcontrolerele MCS-51 şi compatibile conţin o


interfaţă serială standard (Serial Port), având structura şi
funcţionarea descrise în cele ce urmează.Portul serial integrat
pe chip poate să transmită şi să recepţioneze date simultan
(full-duplex) în modul asincron, sau half-duplexîn modul
sincron.

Computers can communicate with one another using serial or parallel transmission of data. In the
case of serial communication, one wire is enough to send multiple bits of data in the form of a
stream of bits. But for parallel communication individual wires are required for each bit.
So for serial communication, only one wire is used to transfer 8-bit data (bit by bit) whereas
parallel communication requires eight wires. When it comes to the speed of data transmission,
parallel communication is faster but can cause issues like cross talk and is costlier due to the
higher amount of wires it needs. Serial communication, on the other hand, is cheaper as it uses
only one wire to transfer data. Their unique pros and cons notwithstanding, the choice of their
implementation varies depending on the application. They are both useful in certain specific
settings.

https://technobyte.org/8051-uart-serial-communication-
working/

95.Transfer serial sincron vs. asincron – comparație.

Modul 0: (sincron) datele în format serie (8 biţi, mai întâi LSB)


ies sau intră prin aceeaşi linie, RxD. Linia TxD furnizează,
respectiv primeşte semnalul de tact necesar pentru refacerea
datelor, la recepţie, în format paralel.Viteza de comunicaţie
este fixă şi egală cu 1/12din frecvenţa de lucru a oscilatorului
intern.SM1SM00030
Modul 1: (asincron) caracterele (10 biţi) formate dintr-un bit de
START (0), 8 biţi de date (mai întâi LSB) şi un bit de STOP (1)
sunt transmise pe linia TxD şi recepţionate pe linia RxD.La
recepţie, bitul de STOP este încărcat în bitul RB8 din SCON.
Viteza de comunicaţie este variabilă.
Modul 2: (asincron) caracterele (11 biţi) formate dintr-un bit de
START (0), 8 biţi de date (mai întâi LSB), un al 9-lea bit de date,
programabil (TB8 din SCON) şi un bit de STOP (1) sunt transmise
pe linia TxD şi recepţionate pe linia RxD.La recepţie, cel de-al 9-
lea bit de date este încărcat în bitul RB8 din SCON, iar bitul de
STOP este ignorat.Viteza de comunicaţie este programabilă:
1/32sau 1/64din frecvenţa oscilatorului intern.
Modul 3: asincron, identic cu modul 2, dar viteza de
comunicaţie este variabilă.

 Asynchronous communication: As the name suggests, asynchronous communication


does not use a synchronizing clock signal when transferring data. It uses special
characters known as start and stop bits which help the computers synchronize their
communication. These bits also help the communicating devices know when a frame of
data is over. This makes it cheap to implement but can be less efficient when compared to
synchronous communication.
 Synchronous communication: In this case, the two devices communicating with another
use the same clock signal to synchronize the data transmission. What that means is that
we use a clock. The clock is common to both the communicating parties. The reason we
use the clock is to tell the devices when the data is being sent and at what speed it needs
to sample the data to make sense of it. This makes it faster and more efficient as it does
not have any overhead in terms of start and stop bits.

Communication, in general, between any two devices, can follow three different modes of
transmission.

 Simplex– In this mode of communication, there is a one-way movement of data, and only
the transmitter can send data.
 Half-duplex– In this mode, other both the transmitter and receiver can transmit data, but
they can’t do it at the same time.
 Full-duplex– In this mode, both the receiver and the transmitter can communicate at the
same time.

https://technobyte.org/8051-uart-serial-communication-
working/

96. Structura transmițătorului portului serial.


Receptorul este prevăzut cu două registre tampon: un
registru serie/paralel şi un registru de interfaţă cu unitatea
centrală, iar transmiţătorul are doar un singur registru, care
îndeplineşte ambele funcţii.Registrele de interfaţă cu unitatea
centrală sunt fizic distincte, dar pot fi accesate printr-o singură
adresă de SFR: SBUF.Pentru controlul funcţionării portului
serial şi selectarea modului de lucru se utilizeaza registrul
SFR SCON.

97.Structura receptorului portului seria

98.Modul 0 de funcționare al portului serial (modul sincron) –


sursa semnalului de tact, linia de transmisie/recepție date, linia
de transmisie/recepție a semnalului de tact, viteza de
comunicație.
Modul 0: (sincron) datele în format serie (8 biţi, mai întâi LSB)
ies sau intră prin aceeaşi linie, RxD. Linia TxDfurnizează,
respectiv primeşte semnalul de tact necesar pentru refacerea
datelor, la recepţie, în format paralel.Viteza de comunicaţie
este fixă şi egală cu 1/12din frecvenţa de lucru a oscilatorului
intern.SM1SM00030

99. Transferul serial asincron – formatul unui caracter în modul


1 (10 biti/caracter) – rolul bitului de START și al bitului de STOP
Modul 1: (asincron) caracterele (10 biţi) formate dintr-un bit de
START (0), 8 biţi de date (mai întâi LSB) şi un bit de STOP (1)
sunt transmise pe linia TxD şi recepţionate pe linia RxD.La
recepţie, bitul de STOP este încărcat în bitul RB8 din SCON.
Viteza de comunicaţie este variabilă.

Asynchronous communication: As the name suggests, asynchronous communication does not


use a synchronizing clock signal when transferring data. It uses special characters known as
start and stop bits which help the computers synchronize their communication. These bits
also help the communicating devices know when a frame of data is over. This makes it cheap to
implement but can be less efficient when compared to synchronous communication

100.Transferul serial asincron – formatul unui caracter în


modurile 2 și 3 (11 biti/caracter) – rolul celui de-al 9-lea bit de
date (de unde este transmis, unde este recepționat,  la ce ar
putea să fie folosit.

Modul 2: (asincron) caracterele (11 biţi) formate dintr-un bit


de START (0), 8 biţi de date (mai întâi LSB), un al 9-lea bit de
date, programabil (TB8 din SCON) şi un bit de STOP (1) sunt
transmise pe linia TxD şi recepţionate pe linia RxD.La recepţie,
cel de-al 9-lea bit de date este încărcat în bitul RB8 din SCON,
iar bitul de STOP este ignorat.Viteza de comunicaţie este
programabilă: 1/32sau 1/64din frecvenţa oscilatorului intern.
Modul 3: asincron, identic cu modul 2, dar viteza de
comunicaţie este variabilă.
Dar cea mai frecventă utilizare a celui de-al 9-lea bit se
regăseşte la comunicaţia serială multipunct, într-o reţea RS-
485.În acest caz, SM2 se utilizează pentru a face distincţie
între diferite tipuri de date care circulă în reţea: la recepţie se
va genera o întrerupere numai dacă cel de-al 9-lea bit primit
are valoarea “1”. Aceasta indică recepţia unui caracter
terminat corect, cu un bit de STOP=1.
101.Sursa semnalului de tact pentru portul serial în modul 2

102.Sursa semnalului de tact pentru portul serial în modurile 1


și 3.

103. Cum se declanșează transmisia unui caracter?


Iniţierea transmisieise realizează la fiecare operaţie de
scriere în SBUF.
Iniţierea recepţiei are loc:
în modul 0 (sincron) -de către condiţiile: RI=0 şi REN=1
în modurile 1, 2 şi 3 (asincrone) -de către bitul de START
recepţionat, dacă REN=1.

În acelaşi scop, pentru recepţie este prevăzut indicatorul RI


(buffer de recepţie plin), care este setat hardware de îndată ce
un nou caracter a fost recepţionat şi este disponibil în
SBUF.Acest flag generează o întrerupere de recepţie, care
poate fi utilizată de unitatea centrală pentru a prelua din SBUF
caracterul recepţionat.În cazul în care nu se lucreazăcu
întreruperi (linia de întrerupere a serialei este invalidată),
flagurile TI şi RI pot fi utilizate într-o procedură de interogare
(polling).Deoarece există o singură linie de întrerupere pentru
serială, o procedură de interogare este necesară chiar şiatunci
când se lucrează cu întreruperile validate.Astfel, în rutina de
tratare trebuie să se identifice exact cauza care a produs
întreruperea: recepţia unui nou caracter (RI=1), terminarea
transmisiei unui caracter (TI=1) sau ambele evenimente.Aceste
două flaguri trebuie şterse apoi prin program, înainte de
revenirea din întrerupere.Modurile 2 şi 3 utilizează un al 9-lea
bit de date, programabil, preluat la transmisie din TB8 şi care la
recepţie este încărcat în RB8.
Acest bit poate fi folosit, de exemplu, pentru implementarea
generării/controlului bitului de paritate al datelor transferate,
dacă la transmisie în TB8 este încărcat indicatorul de paritate P
(PSW.0) iar la recepţie se compară RB8 cu bitul de paritate
recalculat. În acest caz SM2=0.

Dar cea mai frecventă utilizare a celui de-al 9-lea bit se


regăseşte la comunicaţia serială multipunct, într-o reţea RS-
485.În acest caz, SM2 se utilizează pentru a face distincţie între
diferite tipuri de date care circulă în reţea: la recepţie se va
genera o întrerupere numai dacă cel de-al 9-lea bit primit are
valoarea “1”.SM2 nu are nici un efect în modul 0, iar în modul
1, SM2=1 poate fi folosit pentru a determina corectitudinea
bitului de STOP (dacă este “1”).Astfel, se va genera o
întrerupere de recepţie numai dacă bitul de STOP recepţionat şi
încărcat în RB8 are valoarea “1”.Aceasta indică recepţia unui
caracter terminat corect, cu un bit de STOP=1.

104.Cum se declanșează recepția unui caracter?

Iniţierea recepţiei are loc:


în modul 0 (sincron) -de către condiţiile: RI=0 şi REN=1
în modurile 1, 2 şi 3 (asincrone) -de către bitul de START
recepţionat, dacă REN=1.

De vazut intrebarea anterioara!

105.Ce indică flag-ul TI și ce trebuie să facă programul când


acesta este setat?
Deoarece există o singură linie de întrerupere pentru serială, o
procedură de interogare este necesară chiar şiatunci când se
lucrează cu întreruperile validate.Astfel, în rutina de tratare
trebuie să se identifice exact cauza care a produs întreruperea:
recepţia unui nou caracter (RI=1), terminarea transmisiei unui
caracter (TI=1) sau ambele evenimente.Aceste două flaguri
trebuie şterse apoi prin program, înainte de revenirea din
întrerupere.

106. Ce indică flag-ul RI și ce trebuie să facă programul când


acesta este setat?

Deoarece există o singură linie de întrerupere pentru serială, o


procedură de interogare este necesară chiar şiatunci când se
lucrează cu întreruperile validate.Astfel, în rutina de tratare
trebuie să se identifice exact cauza care a produs întreruperea:
recepţia unui nou caracter (RI=1), terminarea transmisiei unui
caracter (TI=1) sau ambele evenimente.Aceste două flaguri
trebuie şterse apoi prin program, înainte de revenirea din
întrerupere.

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