第6章ATmega單片機(jī)的模擬接口及使用方法_第1頁
第6章ATmega單片機(jī)的模擬接口及使用方法_第2頁
第6章ATmega單片機(jī)的模擬接口及使用方法_第3頁
第6章ATmega單片機(jī)的模擬接口及使用方法_第4頁
第6章ATmega單片機(jī)的模擬接口及使用方法_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章ATmega單片機(jī)的模擬接口及使用方法

模擬比較器A/D轉(zhuǎn)換器PWM發(fā)生器數(shù)字濾波方法6.1模擬比較器

模擬比較器對正極AIN0的值與負(fù)極AIN1的值進(jìn)行比較。當(dāng)AIN0上的電壓比負(fù)極AIN1上的電壓要高時(shí),模擬比較器的輸出ACO即置位。比較器的輸出可用來觸發(fā)定時(shí)器/計(jì)數(shù)器1的輸入捕捉功能。此外,比較器還可觸發(fā)自己專有的、獨(dú)立的中斷。用戶可以選擇比較器是以上升沿、下降沿還是交替變化的邊沿來觸發(fā)中斷。 中斷向量:ANA_COMP_vect圖6.1為比較器及其外圍邏輯電路的框圖。1、特殊功能IO寄存器-SFIORBit3–ACME:模擬比較器多路復(fù)用器使能當(dāng)此位為邏輯“1”,且ADC處于關(guān)閉狀態(tài)(ADCSRA寄存器的ADEN為“0”)時(shí),ADC多路復(fù)用器為模擬比較器選擇負(fù)極輸入。當(dāng)此位為“0”時(shí),AIN1連接到比較器的負(fù)極輸入端。2、模擬比較器控制和狀態(tài)寄存器(ACSR)Bit7–ACD:模擬比較器禁用Bit6–ACBG:選擇模擬比較器的能隙基準(zhǔn)源Bit5–ACO:模擬比較器輸出Bit4–ACI:模擬比較器中斷標(biāo)志Bit3–ACIE:模擬比較器中斷使能Bit2–ACIC:模擬比較器輸入捕捉使能Bits1,0–ACIS1,ACIS0:模擬比較器中斷模式選擇

需要改變ACIS1/ACIS0時(shí),必須清零ACSR寄存器的中斷使能位來禁止模擬比較器中斷。否則有可能在改變這兩位時(shí)產(chǎn)生中斷。模擬比較器的應(yīng)用舉例如圖所示:外部信號由模擬比較器的AIN0輸入,AIN1接至VCC的分壓,取R1=R2,則AIN1的電壓為0.5VCC。當(dāng)AIN0的電壓大于0.5VCC時(shí),ACSR中的ACO置‘1’;低于時(shí)則清‘0’。當(dāng)AIN0的電壓大于0.5VCC時(shí),LED燈亮,反之熄滅。#include“avr/io.h”intmain(){unsignedcharmid;//定義變量DDRD=0xff;//設(shè)置PC口為輸出PORTD=0xff;//設(shè)置PC口為輸出為高電平(LED熄滅)ACSR=0x00;//啟動模擬比較器while(1){mid=ACSR&0x20;//讀出模擬比較器的輸出值if(mid==0)//輸出1熄滅LEDPORTD=1;elsePORTD=0;//輸出0點(diǎn)亮LED}}6.2模數(shù)轉(zhuǎn)換器6.2.1主要特點(diǎn)

ATmega16有一個(gè)10位的逐次逼近型ADC。 ADC與一個(gè)8通道的模擬多路復(fù)用器連接,能對來自端口A的8路單端輸入電壓進(jìn)行采樣。器件還支持16路差分電壓輸入組合。兩路差分輸入(ADC1、ADC0與ADC3、ADC2)有可編程增益級,在A/D轉(zhuǎn)換前給差分輸入電壓提供0dB(1x)、20dB(10x)或46dB(200x)的放大級。

七路差分模擬輸入通道共享一個(gè)通用負(fù)端(ADC1),而其他任何ADC輸入可做為正輸入端。如果使用1x或10x增益,可得到8位分辨率。如果使用200x增益,可得到7位分辨率。ADC包括一個(gè)采樣保持電路,以確保在轉(zhuǎn)換過程中輸入到ADC的電壓保持恒定。ADC由AVCC引腳單獨(dú)提供電源。AVCC與VCC之間的偏差不能超過±0.3V。 標(biāo)稱值為2.56V的基準(zhǔn)電壓,以及AVCC,都位于器件之內(nèi)。基準(zhǔn)電壓可以通過在AREF引腳上加一個(gè)電容進(jìn)行解耦,以更好地抑制噪聲。圖6.2模數(shù)轉(zhuǎn)換器方框圖6.2.2ADC的工作原理

ADC通過逐次逼近的方法將輸入的模擬電壓轉(zhuǎn)換成一個(gè)10位的數(shù)字量。 最小值代表GND,最大值代表AREF引腳上的電壓再減去1LSB。 通過寫ADMUX寄存器的REFSn位可以把AVCC或內(nèi)部2.56V的參考電壓連接到AREF引腳。 在AREF上外加電容可以對片內(nèi)參考電壓進(jìn)行解耦以提高噪聲抑制性能。6.2.3啟動ADC轉(zhuǎn)換

向ADC啟動轉(zhuǎn)換位ADSC位寫“1”可以啟動單次轉(zhuǎn)換。 在轉(zhuǎn)換過程中此位保持為高,直到轉(zhuǎn)換結(jié)束,然后被硬件清零。如果在轉(zhuǎn)換過程中選擇了另一個(gè)通道,那么ADC會在改變通道前完成這一次轉(zhuǎn)換。圖6.3

ADC自動觸發(fā)邏輯使用ADC中斷標(biāo)志作為觸發(fā)源,可以在正在進(jìn)行的轉(zhuǎn)換結(jié)束后即開始下一次ADC轉(zhuǎn)換。之后ADC便工作在連續(xù)轉(zhuǎn)換模式,持續(xù)地進(jìn)行采樣并對ADC數(shù)據(jù)寄存器進(jìn)行更新。第一次轉(zhuǎn)換通過向ADCSRA寄存器的ADSC寫1來啟動。如果使能了自動觸發(fā),置位ADCSRA寄存器的ADSC將啟動單次轉(zhuǎn)換。ADSC標(biāo)志還可用來檢測轉(zhuǎn)換是否在進(jìn)行之中。不論轉(zhuǎn)換是如何啟動的,在轉(zhuǎn)換進(jìn)行過程中ADSC一直為1。6.2.4預(yù)分頻及ADC轉(zhuǎn)換時(shí)序圖6.4ADC預(yù)分頻器圖6.5

ADC時(shí)序圖,第一次轉(zhuǎn)換(單次轉(zhuǎn)換模式)圖6.6

ADC時(shí)序圖,單次轉(zhuǎn)換圖6.7

ADC時(shí)序圖,自動觸發(fā)的轉(zhuǎn)換圖6.8

ADC時(shí)序圖,連續(xù)轉(zhuǎn)換表6.3ADC轉(zhuǎn)換時(shí)間13.56.2.7ADC輸入通道選擇模擬通道時(shí)請注意以下幾個(gè)方面:單次轉(zhuǎn)換模式,總是在啟動轉(zhuǎn)換之前選定通道。在ADSC置位后的一個(gè)ADC時(shí)鐘周期就可以選擇新的模擬輸入通道了。但是最簡單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通道。在連續(xù)轉(zhuǎn)換模式下,切換通道的方法同單次模式,若轉(zhuǎn)換結(jié)束后再改變通道,此時(shí)新一次轉(zhuǎn)換已經(jīng)自動開始了,下一次的轉(zhuǎn)換結(jié)果反映的是以前選定的模擬輸入通道。以后的轉(zhuǎn)換才是針對新通道的。若切換到差分增益通道,由于自動偏移抵消電路需要沉積時(shí)間,第一次轉(zhuǎn)換結(jié)果準(zhǔn)確率很低,最好舍棄。6.2.8ADC基準(zhǔn)電壓源

ADC參考電壓源(VREF)反映了ADC的轉(zhuǎn)換范圍。若單端通道電平超過了VREF,其結(jié)果將接近0x3FF。VREF可以是AVCC、內(nèi)部2.56V基準(zhǔn)或外接于AREF引腳的電壓。AVCC通過一個(gè)無源開關(guān)與ADC相連。 片內(nèi)2.56V參考電壓由能隙基準(zhǔn)源(VBG)通過內(nèi)部放大器產(chǎn)生。 AREF直接與ADC相連,通過在AREF與地之間外加電容可以提高參考電壓的抗噪性。6.2.9ADC噪聲抑制器

ADC的噪聲抑制器使其可以在睡眠模式下進(jìn)行轉(zhuǎn)換,從而降低由于CPU及外圍I/O設(shè)備噪聲引入的影響。噪聲抑制器可在ADC降噪模式及空閑模式下使用。為了使用這一特性,應(yīng)采用如下步驟:1.確定ADC已經(jīng)使能,且沒有處于轉(zhuǎn)換狀態(tài)。工作模式應(yīng)該為單次轉(zhuǎn)換,并且ADC轉(zhuǎn)換結(jié)束中斷使能。2.進(jìn)入ADC降噪模式(或空閑模式)。一旦CPU被掛起,ADC便開始轉(zhuǎn)換。3.如果在ADC轉(zhuǎn)換結(jié)束之前沒有其他中斷產(chǎn)生,那么ADC中斷將喚醒CPU并執(zhí)行ADC轉(zhuǎn)換結(jié)束中斷服務(wù)程序。如果在ADC轉(zhuǎn)換結(jié)束之前有其他的中斷源喚醒了CPU,對應(yīng)的中斷服務(wù)程序得到執(zhí)行。ADC轉(zhuǎn)換結(jié)束后產(chǎn)生ADC轉(zhuǎn)換結(jié)束中斷請求。6.2.10模擬輸入電路

單端通道的模擬輸入電路見圖6.9。不論是否用作ADC的輸入通道,輸入到ADCn的模擬信號都受到引腳電容及輸入泄露的影響。用作ADC的輸入通道時(shí),模擬信號源必須通過一個(gè)串聯(lián)電阻(輸入通道的組合電阻)驅(qū)動采樣/保持(S/H)電容。圖6.9

模擬輸入電路6.2.11ADC轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)束后(ADIF為高),轉(zhuǎn)換結(jié)果被存入ADC結(jié)果寄存器(ADCL,ADCH)。單次轉(zhuǎn)換的結(jié)果如下:式中,VIN為被選中引腳的輸入電壓,VREF為參考電壓,0x000代表模擬地電平,0x3FF代表所選參考電壓的數(shù)值減去1LSB。如果使用差分通道,結(jié)果是:式中,VPOS為輸入引腳正電壓,VNEG為輸入引腳負(fù)電壓,GAIN為選定的增益因子,且VREF為參考電壓。結(jié)果用2的補(bǔ)碼形式表示,從0x200(-512d)到0x1FF(+511d)。如果用戶希望對結(jié)果執(zhí)行快速極性檢測,判斷MSB(ADCH中ADC9),如該位為1,結(jié)果為負(fù);該位為0,結(jié)果為正。1、ADC多工選擇寄存器(ADMUX)?Bit7:6–REFS1:0:參考電壓選擇ADC參考電壓選擇

Bit5–ADLAR:ADC轉(zhuǎn)換結(jié)果左對齊Bits4:0–MUX4:0:模擬通道與增益選擇位

2、ADC控制和狀態(tài)寄存器A(ADCSRA)?Bit7–ADEN:ADC使能?Bit6–ADSC:ADC開始轉(zhuǎn)換?Bit5–ADATE:ADC自動觸發(fā)使能?Bit4–ADIF:ADC中斷標(biāo)志?Bit3–ADIE:ADC中斷使能?Bits2:0–ADPS2:0:ADC預(yù)分頻器選擇位3、ADC數(shù)據(jù)寄存器(ADCL及ADCH)ADLAR=0ADLAR=1ADC轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換結(jié)果存于這兩個(gè)寄存器之中。如果采用差分通道,結(jié)果由2的補(bǔ)碼形式表示。讀取ADCL之后,ADC數(shù)據(jù)寄存器一直要等到ADCH也被讀出才可以進(jìn)行數(shù)據(jù)更新。因此,如果轉(zhuǎn)換結(jié)果為左對齊,且要求的精度不高于8比特,那么僅需讀取ADCH就足夠了。否則必須先讀出ADCL再讀ADCH。4、特殊功能IO寄存器(SFIOR)?

Bit7:5–ADTS2:0:ADC自動觸發(fā)源若ADCSRA寄存器的ADATE置位,ADTS的值將確定觸發(fā)ADC轉(zhuǎn)換的觸發(fā)源;否則,ADTS的設(shè)置沒有意義。被選中的中斷標(biāo)志在其上升沿觸發(fā)ADC轉(zhuǎn)換。?Bit4–Res:保留位。這一位保留。為了與以后的器件相兼容,在寫SFIOR時(shí)這一位應(yīng)寫0。實(shí)例:測量和顯示PA0引腳的電壓。輸入電壓采用電位器5V的分壓,電壓變化范圍為0-5V之間,大小可以調(diào)節(jié)。#include"avr/io.h"#include"util/delay.h"#include"math.h"#include"max7219.c"floatlvboxishu,bilixishu;longintdianya;longintzhuanhuan(chartongdao)//AD轉(zhuǎn)換函數(shù){ADCSRA=0x86;//設(shè)置AD轉(zhuǎn)換ADMUX=0x40+tongdao;//設(shè)置轉(zhuǎn)換通道ADCSRA=ADCSRA|(1<<ADSC);//啟動轉(zhuǎn)換while(!(ADCSRA&(1<<ADIF)));//判斷轉(zhuǎn)換是否結(jié)束returnADCW;//取AD轉(zhuǎn)換的值}intmain(){longintx;chark,i;spi_7219c();//初始化顯示dianya=0;//電壓初值i=8;//采集次數(shù)while(1){x=0;for(k=0;k<i;k++)x=x+zhuanhuan(0);//采集8次和求和x/=i;//求平均值 dianya=x*5000/1024;xunce_7219(0,dianya,4);//顯示電壓值_delay_ms(1000);//延時(shí)1S}}6.4數(shù)字濾波方法

單片機(jī)系統(tǒng)面對的現(xiàn)場往往比較惡劣,因此所采集信號中總會混雜有各類干擾。除了采用硬件進(jìn)行濾波(如阻容濾波)外,對輸入計(jì)算機(jī)的信號進(jìn)行數(shù)字濾波也是十分必要的。所謂數(shù)字濾波,就是通過一定的計(jì)算程序,對采集的數(shù)據(jù)進(jìn)行處理,以提高有用信號在采集值中的比例,減少各種干擾和噪聲。

與阻容濾波相比,數(shù)字濾波具有如下一些優(yōu)點(diǎn):1、可以根據(jù)干擾的類型,設(shè)計(jì)出相應(yīng)類型的數(shù)字濾波器。2、濾波范圍寬,特別是對于低頻信號(如0.001Hz及以下)更為有效,而模擬濾波器由于電容容量的限制,頻率不能太低。3、可靠性高。4、數(shù)字濾波程序可以多路共享。下面介紹幾種常用的數(shù)字濾波方法。1.算術(shù)平均值濾波

設(shè)測量值為,則每采集了N個(gè)數(shù)據(jù)后,進(jìn)行一次算術(shù)平均。

從上面可以看出,每計(jì)算一次控制器輸出值,就必須采樣N次。因此,N的取值不能太大。算術(shù)平均值法主要對壓力,流量等含有周期性脈動的信號有效。而對突發(fā)性的脈沖干擾,這種濾波方法的效果則不理想。2.中值濾波

所謂中值濾波法是連續(xù)采樣n次,首先要做的工作是先采集n個(gè)參數(shù)并按大小排序,即有<<…<<,或者從大到小排序。如果當(dāng)N為偶數(shù)時(shí),如果當(dāng)N為奇數(shù)時(shí),中值濾波既可以去掉由于偶然因數(shù)引起的干擾,同時(shí)對與脈動干擾也比較有效。但是這種方法由于計(jì)算量比較大,對于一些需要快速采樣的參數(shù)就不十分合適。中值濾波的關(guān)鍵所在是形成按大小順序排列的一組數(shù)。假設(shè)采樣N次,如果使用高級語言,首先將N個(gè)采樣值按從大到?。ɑ驈男〉酱螅┡帕?,然后將其放在一個(gè)數(shù)組X(N)里,此時(shí)X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論