You are on page 1of 15

B ADC

1.3.18 B chuy n Cc i Analog sang Digital

c trng c b n: phn gi i 10-bit chnh xc tuy t i: 2 LSB i 13 - 260 s phn gi i cao nh t u vo: 0 - V CC i hon thnh ng

Th i gian chuy n Ln t i 15 kSPS khi Ph m vi i n p Ng t khi chuy n Lo i b nhi u trong ch

i n p tham chi u 2.56V c th l a ch n

1.ADC (analog to digital converter) Vi i u khi n AVR 8535 c m t b bi n i ADC tch h p trong chip. C cc c i m: phn gi i bit. Sai s tuy n tnh:0.5LSB. D chnh xc +/-2LSB. Th i gian chuy n i:65-260s. 8 Knh u vo c th c l a ch n. C hai ch chuy n i. C ngu n bo ng t khi hon thnh chuy n i. Lo i b nhi u trong ch ng . S kh i:

http://www.ebook.edu.vn

B ADC

T s kh i ta c th th y: Tm u vo c a ADC l tm chn c a PORTA v chng c ch n thng qua m t MUX. i u khi n ho t ng vo ra d li u c a ADC v CPU chng ta c 3 thanh ghi:ADMUX y l thanh ghi i u khi n l a ch n knh u vo cho ADC. ADCSR y l thanh ghi i u khi n v thanh ghi tr ng thi c a ADC. ADCD : y l thanh ghi d li u. 1.ADMUX: Multiplexer select register y l thanh ghi i u khi n 8 bit: V i 3 bit c nh ngha l MUX2,MUX1,v MUX0. ng v i cc t h p logic ta c th ch n knh u vo.C th : Ch : N u nh ta thay i knh trong th i i m m ADC ang chuy n i th khi qu trnh chuy n i hon thnh th khn vo m i c thay i. 2.ADCSR :ADC control and status register y l thanh ghi i u khi n v lu tr ng thi c a ADC: Bit 7-ADEN:ADC enable y l bit i u khi n ho t ng c a ADC.Khi bit ny c set 1 th ADC c th ho t ng v ng c l i.N u nh ta ng ng ho t ng c a ADC trong khi n ang chuy n i th n s k t thc qu trnh chuy n i.M c d cha chuy n i xong. Bit 6-ADSC: ADC start conversion
http://www.ebook.edu.vn

B ADC
Trong ch chuy n i n th bit ny ph i c set ln 1 b t u chuy n i.Trong ch chuy n i t do th bit ny c n c set ln 1 b t u l n chuy n i u tin.Bit ny c gi s t trong qu trnh chuy n i v c xa khi m chuy n i xong. Bit 5-ADRR :ADC Free Running select Khi bit ny c set th ADC ho t ng theo ch chuy n i t do. y l ch m ADC t ng l y m u v chuy n i (khi n c php chuy n i)t m t knh nh s n.Ki xa bit ny th ch ny l p t c ng ng ho t ng. Bit 4-ADIF:ADC interrupt Flag Bit ny c set ln 1 b i ph n c ng khi m qu trnh chuy n i hoang thnh v thanh ghi d li u c update.Bit ny c xa b ng ph n c ng nh u nh ng t ny c php v c ph c v .Ho c n c th c xa b ng cch ghi gi tr logic 0vo c ny.C th khi ng t b c m ta c th s d ng cc l nh sbi v cbi tc d ng ln bit ny. Bit 3-ADIE:ACD interrupt Enable N u bit ny set 1 v ng t ton c c c cho php th ng t ny c php ph c v (Khi chuy n i xong d li u).V n u b xa th ng c l i. Bit 2.1.0-ADPS2ADPS0:Bit l a ch n xung nh p(T c ) S qua v ngu n xung:Ngu n xung c l y t ngu n xung c a V K (XTAL)v c chia t n thng qua b chia t n: Cc bit ADSP c nhi m v ch n s chia cho b chia t n theo b ng sau: 3.Thanh ghi d li u ACDDR: y l thanh ghi 16 bit v ta c th truy nh p chng nh hai thanh ghi 8 bit v i a ch v cc bit tng ng: Khi kh i t o chng c gi tr 0.Sau khi chuy n i th d li u s c a vo thanh ghi ny. 4.Cc chn u vo: Cc chn u vo c a ADC l 8 chn c a PORTA nh ngha m t c ng l c ng vo cho ADC th c ng ph i c nh ngha l m t c ng vo v lo i b i n tr treo. 5.Nguyn t c ho t ng v l p trnh i u khi n: ADC c nhi m v chuy n i tn hi u i n p tng t thnh tn hi u s c phn gi i 10 bit.V i gi tr nh nh t c a i n p t chn AGND v gi tr c c i c a i n p tng t c m c vo chn AREF. Tm knh tng t u vo c ch n l a thng qua ADMUX v ADMUX ny c i u khi n b i thanh ghi ADMUX. ADC ny c th ho t ng c hai ch . l chuy n i n: ch chuy n i
http://www.ebook.edu.vn

B ADC
m t l n khi c l nh chuy n i v ch t chuy n i (Free mode) y l ch m ADC t ng chuy n i khi c ho t ng v cng vi c chuy n i c tnh tu n hon (ch c n kh i ng m t l n). ADC c php ho t ng nh thi t l p bit ADEN. Qu trnh chuy n i c b t u b ng vi c ghi vo bit ADSC m c logic 1 v trong su t qu trnh chuy n i bit ny lun c gi m c cao. Khi qu trnh chuy n i hon thnh th bit ny c xa b ng ph n c ng v c AIDF c b t ln. D li u sau khi chuy n i c a ra thanh ghi d li u ADCL v ADCH, nhng ch khi c d li u t hai thanh ghi ny th c ADCL tr c r i m i c ADCH. N u c ADCH tr c th d li u update c th ghi ln ADCL (V K ngh r ng c xong d li u). i u khi n vo ra d li u v i ADC: Cc b c th c hi n: B c 1: nh ngha cc c ng vo cho tn hi u tng t Xa bit tng ng v i chn trong thanh ghi DDAR. Sau lo i b i n tr treo b ng chch xa bit tng ng thanh ghi PORTA. B c 2: Ch n knh tng t vo (ch n chn vo cho ADC) thng qua thanh ghi ADMUX (c th thay i trong qu trnh ho t ng). B c2:Thi t l p cc thng s cho ADC T c chuy n i thng qua xung nhip chuy n i. Ch chuy n i : n ho c t ng. S d ng ng t ho c khng. B c3:B t u chuy n i v c d li u. Sau y l hai V d s d ng hai ch c a ADC v dng theo hai cch vo ra d li u: b ng ng t v b ng chng trnh. VD: c 20 byte d li u (10 thng s t ADC vo b nh RAM t a ch 0x065) Cch 1:s d ng vo ra b ng chng trnh v ch y v i ch chuy n i n, ch n chn vo l chn PA0 ; o n chng trnh nh sau:
.MACRO READ ;d c 10 m u t Cbi Cbi DDAR,0 ; PORTA,0 ADC cho c ng i n tr treo. t pin PA0 thnh l i vo. ;Lo i ;thi t l p cc thng s

;Ch n knh vo cho ADC


http://www.ebook.edu.vn

B ADC
ldi R16,0x00 ng khng dng ng t ch ng chuy n i n Out ADMUX,R16 ;ch n knh vo la ADC0 ;Thi t l p ADC ho t sbi ADCSR,7 cbi ADCSR,5 cbi ADCSR,3 cbi ADCSR,2 cbi ADCSR,1 cbi ADCSR,0 ;Chu n b Ldi Ldi Ldi chuy n i: m chng trnh. a ch SRAM ;Kh i t o bi n R17,0x0a XL,0x65 Xh,0x00 ;Kh i t o con tr ;thi t l p t c d ;cho php ho t

READ_ADC: Cbi Sbi ADSR,6 ;bat Sbic ADSR,4 Rjmp ; In In Sts Sts Dec Breq Rjmp Exit: Nop .ENDMACRO READ_ADC li u R18,ADCL R19,ACDH X+,R18 X+,R19 R17 exit READ_ADC c d ADSR,4 u chuy n i

http://www.ebook.edu.vn

B ADC

1.Yu c u: o c nhi t 2.L thuy t: i v i ATMEGA 16L: 8 chn c a PORTA s d ng lm 8 knh u vo ADC. s d ng tnh nng ADC c a Atmega 16L chng ta c n ph i thi t k ph n c ng c a Vi i u khi n nh sau : * Chn AVCC chn ny bnh th ng khi thi t k m ch chng ta a ln Vcc(5V) nhng khi trong m ch c s d ng cc knh ADC c a ph n c ng th chng ta ph i n i chn ny ln Vcc qua 1 cu n c m nh m m c ch c p ngu n n nh cho cc knh ( u vo) c a b bi n i. t LM35 hi n th ln LCD.

http://www.ebook.edu.vn

B ADC
* Chn AREF chn ny c n c p 1 gi tr i n p n v y i n p c p vo chn ny c n n (thay i ) khng n nh v i 1 gi tr nh c s d ng lm i n p tham chi u, chnh v i lm gi tr ADC cc knh thu c b tri nh v khi n thay u vo chng ta c cng th c tnh nh sau:

ADCx=(V_INT*1024)/ AREF ch d a vo cng th c chng ta c ng c th th y gi tr ADCx t l thu n v i i n p vo V_INT. Gi tr ADC thu c t cc knh c lu vo 2 thanh ghi ADCH v ADCL khi s d ng chng ta ph i gi tr t cc thanh ghi ny, khi s d ng 3.M t : u ra c a LM35 v chn 2 bi n tr 1K trn Kit c n i vi 2 jump ch . V i AMEGA16L c 8 knh ADC l ch c nng th 2 c a PORTA. Do PORTA l bit 0 v bit 1.. ADC ta dung dy n i 2 chn v i 2 bit c a ch 8 bt th ch lu vo thanh ghi ADCL. c

Theo datasheet LM35 th c 10mV tng ng v i 10C, tr ADC l 0. V i Vref=5V, gi tr c a ADC t 0


0

00C i n p ra l 0V, tng ng v i gi phn gi i ADC ta gi m Vref.

n 256, l y trn 250 m c. M i gi tr ADC ng v i

5V/250= 20 mV. V y 1 gi tr ADC ng v i 2 C. Mu n tng 4.Th c hnh: Cc b c kh i t o code nh sau: Trong tab ADC check vo ADC enable:

http://www.ebook.edu.vn

B ADC

Kh i t o LCD.

C u hnh ADC.

http://www.ebook.edu.vn

B ADC
Ta check vo Use 8 bt, ADC tr v gi tr 8 bt, v ta ADC dng ng t check vo Interrupt, v i n p tham kh o AREF th l y i n p c a chn AREF c a AVR c n i v i 5V. T n s ADC ty cc b n thch nhanh ho c ch m ch n gi tr ph h p. Trong box Automatically Scan Inputs cc b n check vo Enabled. V chng ta c n ADC 2 knh, 1 knh dng bi n tr test ADC, m t knh t LM35 u v i 2 bit 0 v 1 c a PORTA do ch n First 0, Last 1. Kh i t o cho LCD vo PORTB nh hnh bn c nh. Ch n Generate, Save and Exit. hi n th c m t s b t k ln LCD, trong th vi n hm khng c v ta ph i t vi t hm . u vo l m t bi n unsigned char, ta ph i tch l y hng trm, hng ch c, hng n v v a l n l t ln LCD. Code nh sau:

void lcd_putnum(unsigned char so,unsigned char x,unsigned char y) { unsigned char a,b,c; a=so/100; // lay fan tram b=(so-100*a)/10; // lay fan chuc c=(so-100*a-10*b); // lay hang don vi lcd_gotoxy(x,y); // ve vi tri x,y lcd_putchar(a+48); // day ra hang tram, ma ascii lcd_putchar(b+48); // day ra hang chuc, ma ascii lcd_putchar(c+48); // day ra hang don vi, ma ascii }
Trong vng while(1) trong hm main ta vi t nh sau:

while (1) { // Place your code here lcd_putnum(2*adc_data[1],0,0); // dua gia tri ADC tu LM35*2= nhiet do lcd_putnum(adc_data[0],0,1); // dua gia tri ADC tu bien tro delay_ms(3000); // tre 3 s, cap nhat du lieu mot lan };

http://www.ebook.edu.vn

B ADC

o nhi t b ng LM35 qua ADC th ng c sai s v cch so snh v i nhi t k .

tri, do ta c n hi u ch nh nhi t

b ng

http://www.ebook.edu.vn

B ADC

1.Yu c u: i u khi n led n trn KIT AVR 03 b ng my tnh. o k t qu ADC t bi n tr v c m bi n nhi t LM35 hi n th ln my tnh. i u khi n led: T o m t Form b ng VB nh sau:

Trong FORM c: 1 i t ng picturebox ch a logo c a DKS. C 10 i t ng button trong 8 i t ng button Led1...Led8 l m t m ng button c tn t Command1(0) ... Command1(7). Mu n t o m t m ng button ta ch vi c l y ra 8 i t ng button v s a tn t t c chng thnh Command 1. Hai button cn l i l Ph n h i v Exit. C m t textbox hi n th d li u ph n h i. Ho t ng c a ph n m m nh sau: Khi nh n vo button Led 1 th truy n d li u l 0x01 xu ng c ng n i ti p c a PC, AVR nh n c v a d li u ra c ng c a AVR 1 led trn Kit sng. Tng t cho b m cc nt Led cn l i. ng th i AVR g i lun gi tr v a nh n c ln PC. V khi b m nt ph n h i th d li u hi n ra trn Textbox. Khi nh n nt Exit th thot kh i ph n m m. Th c hnh: Ph n m m trn VB Code nh sau:

Private Sub Command1_Click(Index As Integer) If Index = 0 Then MSComm1.Output = Chr$(1) End If If Index = 1 Then MSComm1.Output = Chr$(2) End If If Index = 2 Then

http://www.ebook.edu.vn

B ADC
MSComm1.Output = Chr$(4) End If If Index = 3 Then MSComm1.Output = Chr$(8) End If If Index = 4 Then MSComm1.Output = Chr$(16) End If If Index = 5 Then MSComm1.Output = Chr$(32) End If If Index = 6 Then MSComm1.Output = Chr$(64) End If If Index = 7 Then MSComm1.Output = Chr$(128) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Command3_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) End If End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub
Firm ware: Kh i t o trong CodeVision AVR cho php c ng n i ti p ho t tr c h c. Sau l p trnh cho hm main nh sau:

ng, PORT D l out put nh cc bi

http://www.ebook.edu.vn

B ADC

Trong hm main c s d ng thm m t bi n temp nn d nhin cc b n ph i khai bo thm bi n pha ngoi hm main. N p chng trnh vo chip AVR K t n i dy c ng Com t KIT v c ng Com my tnh v test k t qu .

o ADC t bi n tr v LM35. Trn VB t o ra m t giao di n ph n m m nh sau:

http://www.ebook.edu.vn

B ADC

Form g m c: 4 label hi n th nh hnh. 2 text box hi n th d li u. 2 button: Thu du lieu v Thoat kh i ph n m m. Code trn VB nh sau:

Private Sub Command1_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) Text2.Text = Asc(MSComm1.Input) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True

http://www.ebook.edu.vn

B ADC
End Sub
Firm Ware: Kh i t o b ng CodeWinzard AVR cho c ng n i ti p USART ho t ng, cho php ADC ho t ng(interrupt) nh cc bi tr c sau vi t code cho hm main nh sau:

D ch n p chng trnh v test

http://www.ebook.edu.vn

You might also like