Documente Academic
Documente Profesional
Documente Cultură
Pentru a genera semnalul parcurgem toate locatiile de memorie, deci avem o durata a semnalului egala
cu numarul locatiilor de memorie parcurse inmultit cu timpul de trecere de la o adresa la alta.
Calculam de cate trepte avem nevoie pentru a genera semnalul: NR_trepte = T/ T_treapta = 10
Pentru a genera semnalul triunghiular, acesta pleaca de la un minim, ajunge la un maxim apoi se
intoarce la minim. Noi, prin secventele de cod din problema setam limitele inferioare, superioare si
pasul. Pentru a parcurge semnalul de la minim la maxim avem nevoie de jumatate din numarul total de
trepte:
Deci noi, in cazul asta, folosim 10/2 = 5 trepte intre min si max.
Ne ramane sa cautam care din variante are 5 trepte intre min si max.
In A avem 0x73 si noi, prin SUBB A, #0x80 facem diferenta intre numarul 0x73 si 0x80 CU CARRY!!
0x73-0x80-0x01 = 0xF2
Putem folosi calculatorul si sa ne gandim la faptul ca acumulatorul este pe 8 biti, deci o sa luam numai
ultimele 2 numere din rezultat.
Pentru a RESETA bitii, folosim ANL, deoarece AND intre un bit si 0 ne da 0, AND intre un bit si 1 ne da
acel bit.
Pentru a SETA bitii, folosim ORL, deoarece OR intre un bit si 1, ne da mereu 1 si OR intre un bit si 0 ne da
acel bit.
b7 b6 b5 b4 b3 b2 b1 b0
Vrem sa setam bitii 4 si 3, deci va trebui sa facem ORL intre numarul in binar de mai sus si un numar ce
are pe pozitiile 4 si 3 1, in rest 0
deci
b7 b6 b5 b4 b3 b2 b1 b0
0 0 0 1 1 0 0 0
------------------------------------
b7 b6 b5 1 1 b2 b1 b0
Convertim numarul 00011000 in hexa, avem 0x18. Deci raspunsul corect este ORL 0x50, #0x18
0x1E = 30
0xF4 = 244
Regula de 3 simpla
255 ........ 3V
244 ........ xV
x= 3*244/255 = 2.87V
In laboratorul 2, foloseam 9 stari posibile(0 leduri pornite, 1 led pornit, 2 leduri pornite... 8 leduri
pornite), adica, pentru anumite valori ale tensiunii de intrare aprindeam un anumit numar de leduri.
Numarul maxim pe care il poate da ADC-ul la iesire este 255(ADC-ul are iesirea pe 8 biti), corespunzator
pentru 8 led-uri pornite.
Valoarea din registrul B este numarul cu care impartim rezultatul de la iesirea ADC-ului pentru a vedea
starea in care ne aflam. Pentru exemplul din laborator, avem 0x1C=28, deoarece 255/28 =
9(aproximativ) adica avem 9 stari.
sau
„Daca in aplicatia din laboratorul 2 avem valoarea X in registrul B/avem X stari posibile, calculati in ce
stare suntem daca la iesirea ADC-ului avem valoarea Y”
!!!Pentru ultima problema, atentie, daca rezultatul este 4.001 suntem in starea 4, daca rezultatul e
4.999 suntem tot in starea 4.
O conversie analog digitala este efectuata cand se face trecerea pinului P3.6 de la 0 la 1.
a. clr P3.6
setb P3.6
clr P3.6
b. setb P3.6
clr P3.6
c. clr P3.6
setb P3.6
clr P3.6
setb P3.6
-corecta, se face trecerea din 0 in 1 si la prima si la a 3a comanda, deci avem chiar doua
e. setb P3.6
f. clr P3.6
Pentru a afla offset-ul, concatenam numarul din P1(MARE ATENTIE LA NUMARUL DE BITI PE CARE
POATE FI SCRIS P1 si P2) cu numarul din P2.
0x0A pe 6 biti este 001010(adaugam zerouri in stanga pana ajungem la numarul de biti necesar)
Pentru a intelege mai bine ce inseamna offset-ul, vezi tabela de cautare, unde P1 este numarul de linii si
P2 numarul de coloane, avem 8 linii adica 8 valori posibile, corespunzator cu 3 biti, 4 coloane, 4 valori
posibile, corespunzator cu 2 biti pt coloane.
Calculam un offset, in cazul lab3, P1 = 0x4, P2 = 0x1, adica linia 4, coloana 1. (!!!ATENTIE, LINIILE SI
COLOANELE SE NUMEROTEAZA DE LA 0!!!)
a. Gate = 1
INT0 = 1
TR0 = 0
daca ne uitam pe figura observam ca rezultatul daca Timer0 nu este activ, este dat de formula:
AND(TR0, OR(INT0,NOT(Gate)))
b. Gate = 0
INT0 = 0
TR0 = 1
c. Gate = 1
INT0 = 0
TR0 = 1
d. Gate = 1
INT0 = 1
TR0 = 1
e. Gate = 0
INT0 = 1
TR0 = 1