Sunteți pe pagina 1din 4

Exercit, ii MC 2020

Ana Neacs, u
Decembrie 2020

Exercit, iul 1
Consideram un DAC pe 4 bit, i, cu Vref = 3V . Ce valaore va avea tensiunea de
ies, ire dacă la intrare se aplică codul 4h?

Exercit, iul 2
Se consideră un tabel de căutare cu 32 de valori ce stochează perioada unui
semnal sinusiodal.
(a) Care va fi frecvent, a semnalului generat cu ajutorul DAC dacă la fiecare
eveniment al Timer 0, configurat prin secvent, a de cod de mai jos, se
aplică câte un es, antion, reluându-se procedeul la terminarea es, antionelor?
Se consiferă ftimer = 4, 096M Hz.

(b) Dar dacă am avea un tabel care ocupă integral memoria internă de date?
f
Se consiferă ftimer = system
12 .
init:
mov TMOD, #0x02
mov TH0, #0xC0
mov TL0, #0xC0

Exercit, iul 3
(a) Pornind de la codul din laboratorul 1, ı̂n care subrutina delay controla
frecvent, a de pâlpâire a unui LED, scriet, i un program care să genereze un
semnal de comandă al LED-ului cu forma din figura 1.
(b) Generat, i această formă de undă folosind Timer 0 configurat ı̂n modul 2 s, i
afis, at, i-l folosind DAC, alegând o gamă de frecvent, e convenabilă. Ment, ionat, i
frecvent, a minimă/maximă aleasă.

1
delay x 16 delay x 15 delay x 2

delay x 16 delay x 15 delay x 2

Figure 1: Semnal comandă LED

Exercit, iul 4
Considerăm codul aplicat, iei de control al motorului prezentat ı̂n platforma 4 de
laborator (partea de init, ializare rămâne neschimbată). Ce efect are următoarea
secvent, a de cod?
main: acall init
mov A, #0x10
mainLoop: jnz $
clr motorB
clr motorA
jmp mainLoop
ISR_tmr1: cpl motorA
cpl motorB
dec A
reti

Exercit, iul 5
Senzorul asociat motorului DC prezent in EdSim51 este conectat la Timer 1
utilizat pe post de numărător ı̂n modul 2. Considerăm codul aplicat, iei de control
al motorului prezentat ı̂n platforma 4 de laborator s, i următoarea secvent, ă de
init, ializare:
init: setb EA
setb ET1
mov TMOD, #0x60
mov TH1, #0xF0
mov TL1, #0xF0
setb TR1
setb motorB
clr motorA
ret

S, tiind că o rotat, ie completă a motorului durează 6, 25µs, care este frecvent, a
depăs, irilor Timer 1?

2
Exercit, iul 6
Scriet, i un program care să genereze cu ajutorul DAC:
(a) un semnal dreptunghiular cu fator de umplere 50% s, i frecvent, a f =
10KHz. Pentru generarea frecvent, ei cerute, folosit, i ı̂ntreruperile asoci-
ate Timer 0.

(b) un semnal dinte de fierăstrău cu frecvent, a f = 156Hz.

Exercit, iul 7
Considerăm un ADC pe 12b cu gama tensiunilor de intrare 0-12V. Dacă valoarea
convertită indică 0x2F4, care este valoarea tensiunii analogice aplicate la intrare?

Exercit, iul 8
Presupunem că avem legat la ADC-ul prezent ı̂n simulator un senzor (celulă
solară) ce ı̂s, i modifică tensiunea de ies, ire proport, ional cu intensitatea luminii
incidente Implementat, i un program care să citească periodic tensiunea conver-
tită de ADC s, i:
• dacă intensiatea luminii incidente celulei solare este mare, transmite prin
UART mesajul Death by Fire is the Purest Death.
• dacă intensiatea luminii incidente celulei solare este mică, transmite prin
UART mesajul For The Night Is Dark And Full Of Terrors.

(a) Cât durează să se transmită fiecare mesaj dacă configurăm un BaudRate
= 4800 bps. Dar dacă BaudRate = 19200 bps?
(b) Care este perioada minimă de citire a senzorului? Motivat, i.

Exercit, iul 9
Scriet, i un program care să as, tepte să recept, ioneze prin intermediul portului
serial UART o literă mare s, i:
• dacă litera recept, ionată este A, să aprindă 3 leduri din bara de leduri;
• dacă litera recept, ionată este D, să aprindă 7 leduri din bara de leduri;

• dacă litera recept, ionată este M, să aprindă s, i să stingă ledul LED-ul 7 de
3 ori.

3
Exercit, iul 10
Scriet, i un program care să receptioneze prin UART o cifră s, i să ı̂nvârtă mo-
torul un număr de rotat, ii complete egal cu cifra recept, ionată. Dacă caracterul
recept, ionat nu este o cifră să se trimită pe serială un mesaj de eroare.

Exercit, iul 11
În contextul arhitecturii 8051 avem configurat un BaudRate = 28800 bps.

(a) Cât va dura să transmitem următorul mesaj: The greatest trick the Devil
ever pulled was convincing the world he didn’t exist.
(b) Care este valoarea de reı̂ncărcare ce trebuie stocată ı̂n TH1, TL1 pentru a
configura Baudrate-ul dorit? Presupunem XTAL=11.0592MHz.

Exercit, iul 12
În contextul 8051, care este BaudRate-ul dacă valoarea din TH1 este -32, XTAL=11.0592MHz.

Exercit, iul 13
Scriet, i un program care să as, tepte să recept, ioneze prin intermediul portului
serial UART o cifră s, i afis, ează dublul numărului de divizori proprii ai acesteia.
În cazul ı̂n care caracterul recept, ionat nu este cifră, se va transmite pe serială
un mesaj de eroare.

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