Sunteți pe pagina 1din 5

Uiversitatea Tehnica a Moldovei Facultatea: CIM Catedra: Microelectonic i Dispozitive cu Semiconductori

Lucrarea de laborator nr ! Disciplina : "#roiectarea Microsistemelor $ Tema: Marirea rezolutiei convertorului analog/digital.

% elaborat: % veri-icat:

st &r M'()*+ #ostolachi %le,andr #irtac .

Chisinau(/)+)

1.Scopul lucrrii: sa se mareasca rezolutia convertorului %0D prin intermediul so-tului de la +)(+1 biti 2. Date teoretice, descrierea problemei: Convertorul %0D inte&rat in controlerul %tme&a+1 are o rezolutie de +) biti2 insa in multe cazuri este necesara o rezolutie mai mare #entru a nu -olosi un convertor care are rezolutia marita hard3are2 care costa mai mult2 se poate de marit rezolutia convertorului prin intermediul so-tului2 si anume prin supraesantionarea si luarea valorii medii

Supraesantionarea consta in acumularea mai multor valori2 depinde de ce rezolutie avem nevoie2 le adunam si apoi -acem media %st-el vom avea o precizie imbunatatita In cazul nostru2 pentru a avea precizie de +1 biti2 trebuie sa adunam rezultatele de la 1! de conversii succesive %st-l2 daca -ara supraesantionar valoarea min care putea -i detectata de convertor era apro,imativ !24m.2 acum se poate de detectat )2)*1m. Metoda aceasta poate -i -olosita atunci cind -recventa de conversie a convertorului este de cel putin de / ori mai mare decit -recventa semnalului care trebuie convertit De asemenea aceasta metoda o-era rezultate bune in special atunci cind sint z&omot in semnal Daca semnalul nu are z&omote2 metoda nu(i utila Sistemul -olosit este compus dintr(un potentiometru cu a5utorul caruia modi-icam tensiunea de la intrarea %DC(ului si un microcontroler Datele obtinute de la %DC le a-isam prin intermediul US%6T(ului pe un terminal virtual #entru a mari rezolutia de la +) la +1 biti2 trebuie sa colectam rezultatele a 1! 7/ /8 de masurari continue .aloarea a-ista pe terminalul virtual va -i %DC9)2))))*17:01::;18 3. tapele lucrrii: (Crearea sistemului de a-isare si ster&ere a elementelor culese de la o tastatura standarta cu * se&mente in #roteus:

(#entru crearea pro&ramului de simulare a acestui circuit vom utiliza pro&rama Ima&eCra-t2 e-ectuind urmtorii subpai: (Lansm Ima&eCra-t (Crem un nou proiect 7#ro5ect0 <e3 pro5ect8 (Selectm controlerul pentru care va -i e-ectuat pro&ramul 7#ro5ect0opions0tar&et0device con-0Me&a+1 8 (Setm con-i&urrile porturilor pentru intrare0ieire la microcontroler 7Tools0%plication =uilder0 #ort8 #entru a ultiza rezisten>a interioar a microcontrolerului apsm pe csu>ele portului Ini>ializm timer) ?n csu>a Timer) Selectm -recven>a de lucru ('-ectum pro&ramul ?n C !. Te"tul programului:
00ICC(%.6 application builder : 10;0/)+) +/:)!::: #M 00 Tar&et : M+1 00 Cr@stal: + ))))Mhz Ainclude Biom+1v hC Ainclude Bmacros hC Ainclude Bstdio hC 00 Dlobal variables int value2 v+2 v/E -loat voltE int adcdataE char cntF)E void portGinit7void8 H #I6T% F ),))E DD6% F ),))E #I6T= F ),))E DD6= F ),))E #I6TC F ),))E 00m+); output onl@ DD6C F ),))E #I6TD F ),)/E DD6D F ),)/E J 00TIM'6) initialize ( prescale:+)/! 00 KDM: <ormal 00 desired value: +))Lz 00 actual value: +)) +1)Lz 7) /M8 void timer)Ginit7void8 H TCC6) F ),))E 00stop TC<T) F ),)CE 00set count IC6) F ),F!E 00set compare TCC6) F ),):E 00start timer J Apra&ma interruptGhandler timer)Gov-Gisr:+) void timer)Gov-Gisr7void8 H TC<T) F ),)CE 00reload counter value print-7NadcGresult Md2 Md OrN2 v+2 v/8E00prin uart se a-iseaza datele la terminal J 00U%6T) initialize 00 desired baud rate: P1)) 00 actual: baud rate:P1+: 7) /M8 00 char size: 4 bit 00 parit@: Disabled

void uart)Ginit7void8 H UCS6= F ),))E 00disable 3hile settin& baud rate UCS6% F ),))E UCS6C F =IT7U6S'L8 Q ),)1E U=66L F ),+PE 00set baud rate lo U=66L F ),))E 00set baud rate hi UCS6= F ),!4E J Apra&ma interruptGhandler uart)Gt,Gisr:+! void uart)Gt,Gisr7void8 H 00character has been transmitted J 00%DC initialize 00 Conversion time: +)!uS void adcGinit7void8 H %DCS6 F ),))E 00disable adc %DMUR F ),))E 00select adc input ) %CS6 F ),4)E %DCS6 F ),'PE J Apra&ma interruptGhandler adcGisr:+: void adcGisr7void8 H 00daca sa luat 1! probe2se reseteaza contorul2 datele se transmit ulterior de uart i-7SScntC1;8H cntF)E adcdataFvalueE valueF)E voltF) ))))*19adcdataE v+Fvolt0+E v/F7volt(v+89+)))E J00datele se aduna in value pina valoarea cnt a5un&e la 1! valueSF%DCLE valueSF7int8%DCLBB4E J 00call this routine to initialize all peripherals void initGdevices7void8 H 00stop errant interrupts until set up CLI78E 00disable all interrupts portGinit78E timer)Ginit78E uart)Ginit78E adcGinit78E MCUC6 F ),))E DIC6 F ),))E TIMST F ),)+E 00timer interrupt sources S'I78E 00re(enable interrupts 00all peripherals are no3 initialized J 00 void main7void8 H

initGdevices78E 3hile7+8E J

#. Sc$ema bloc a programului:


InitGport Timer)Ginit UartGinit InitGadcG

#I6T% F ),))E DD6% F ),))E #I6T=F ),))E DD6= F ),))E #I6TCF ),))E DD6C F ),))E #I6TD F ),)/E DD6D F ),)/E STI#

TCCR0=0x00; TCNT0=0x0C; OCR0=0xF4; TCCR0=0x05;

STI#

UCSRB=0x00; UCSRA=0x00; UCSRC=BIT(U RSEL)|0x06; UBRRL=0x19; UBRRH=0x00; !"# $%&' (%#" )* UCSRB = STI# 0x90;

ADCSR=0x00; ADMUX=0x00; ACSR=0x80; ADCSR=0xED;

STI#

Timer)Gov-Gisr

S ScntC1 ; valueSF%DCLE valueSF7int8%DCLBB4E

cntF)E adcdataFvalueE valueF)E voltF) ))))*19adcdataE v+Fvolt0+E v/F7volt(v+89+)))E

STI#

%oncluzie: in aceasta laborator am obtinut cunostinte de initializare in realizare unei metode de marire
a rezolutiei unui %DC2 aceasta -iind un plus in ceea ce priveste economicitatea si e-icienta in realizarea unui trans-er de data din -orma analo&ica in di&itala la un terminal oarecare #entru realizarea acesteea am -olosit e-ectul da supraesantionare care este -ormula de baza in marirea rezolutiei unui %DC

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