版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 內(nèi)容提要 本章描述ATmega單片機(jī)A/D轉(zhuǎn)換器和PWM發(fā)生器的基本原理和應(yīng)用。在A/D轉(zhuǎn)換器中,首先說明原理、結(jié)構(gòu)、控制和相應(yīng)特殊寄存器的用法,然后介紹軟件設(shè)計(jì)及應(yīng)用實(shí)例。在PWM發(fā)生器中,分別介紹結(jié)構(gòu)原理和實(shí)際應(yīng)用。此外本章還介紹幾種濾波方法。6.1模擬比較器 模擬比較器對(duì)正極AIN0 的值與負(fù)極AIN1 的值進(jìn)行比較。當(dāng)AIN0 上的電壓比負(fù)極AIN1上的電壓要高時(shí),模擬比較器的輸出ACO 即置位。比較器的輸出可用來觸發(fā)定時(shí)器/ 計(jì)數(shù)器1 的輸入捕捉功能。 此外,比較器還可觸發(fā)自己專有的、獨(dú)立的中斷。用戶可以選擇比較器是以上升沿、下降沿還是交替變化的邊沿來觸發(fā)中斷。圖6.1為比較器及其
2、外圍邏輯電路的框圖。1、特殊功能IO寄存器SFIORBit3ACME:模擬比較器多路復(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)例如ACSR0 xXX; /可根據(jù)下面的引腳功能,來設(shè)置相應(yīng)的值。Bit7ACD:模擬比較器禁用Bit6ACBG:選擇模擬比較器的能隙基準(zhǔn)源Bit5 ACO:模擬比較器輸出Bit4ACI:模擬比較器中斷標(biāo)志Bit 3 ACIE: 模擬比較器中斷使能Bit 2 ACIC: 模擬比較器輸
3、入捕捉使能Bits 1, 0 ACIS1, ACIS0: 模擬比較器中斷模式選擇 需要改變ACIS1/ACIS0 時(shí),必須清零ACSR 寄存器的中斷使能位來禁止模擬比較器中斷。否則有可能在改變這兩位時(shí)產(chǎn)生中斷。6.2 模數(shù)轉(zhuǎn)換器6.2.1 主要特點(diǎn) ATmega16有一個(gè)10位的逐次逼近型ADC。ADC與一個(gè)8通道的模擬多路復(fù)用器連接,能對(duì)來自端口A的8路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0V (GND)為基準(zhǔn)。 器件還支持16 路差分電壓輸入組合。兩路差分輸入(ADC1、ADC0 與ADC3、ADC2)有可編程增益級(jí),在A/D 轉(zhuǎn)換前給差分輸入電壓提供0dB(1x)、20dB(10 x)
4、或46dB(200 x)的放大級(jí)。 七路差分模擬輸入通道共享一個(gè)通用負(fù)端(ADC1), 而其他任何ADC 輸入可做為正輸入端。如果使用1x 或10 x 增益,可得到8 位分辨率。如果使用200 x 增益,可得到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.2 ADC的工作原理 ADC 通過逐次逼
5、近的方法將輸入的模擬電壓轉(zhuǎn)換成一個(gè)10 位的數(shù)字量。最小值代表GND,最大值代表AREF引腳上的電壓再減去1 LSB。通過寫ADMUX寄存器的REFSn位可以把AVCC 或內(nèi)部2.56V 的參考電壓連接到AREF 引腳。在AREF 上外加電容可以對(duì)片內(nèi)參考電壓進(jìn)行解耦以提高噪聲抑制性能。6.2.3 啟動(dòng)ADC轉(zhuǎn)換 向ADC 啟動(dòng)轉(zhuǎn)換位ADSC 位寫“1”可以啟動(dòng)單次轉(zhuǎn)換。在轉(zhuǎn)換過程中此位保持為高,直到轉(zhuǎn)換結(jié)束,然后被硬件清零。如果在轉(zhuǎn)換過程中選擇了另一個(gè)通道,那么ADC 會(huì)在改變通道前完成這一次轉(zhuǎn)換。圖6.3 ADC 自動(dòng)觸發(fā)邏輯使用ADC 中斷標(biāo)志作為觸發(fā)源,可以在正在進(jìn)行的轉(zhuǎn)換結(jié)束后即開始
6、下一次ADC 轉(zhuǎn)換。之后ADC 便工作在連續(xù)轉(zhuǎn)換模式,持續(xù)地進(jìn)行采樣并對(duì)ADC 數(shù)據(jù)寄存器進(jìn)行更新。第一次轉(zhuǎn)換通過向ADCSRA 寄存器的ADSC 寫1 來啟動(dòng)。 如果使能了自動(dòng)觸發(fā),置位ADCSRA 寄存器的ADSC 將啟動(dòng)單次轉(zhuǎn)換。ADSC 標(biāo)志還可用來檢測(cè)轉(zhuǎn)換是否在進(jìn)行之中。不論轉(zhuǎn)換是如何啟動(dòng)的,在轉(zhuǎn)換進(jìn)行過程中ADSC 一直為1。6.2.4 預(yù)分頻及ADC 轉(zhuǎn)換時(shí)序圖6.4 ADC 預(yù)分頻器圖6.5 ADC 時(shí)序圖, 第一次轉(zhuǎn)換( 單次轉(zhuǎn)換模式)圖6.6 ADC 時(shí)序圖,單次轉(zhuǎn)換圖6.7 ADC 時(shí)序圖,自動(dòng)觸發(fā)的轉(zhuǎn)換圖6.8 ADC 時(shí)序圖,連續(xù)轉(zhuǎn)換表6.3 ADC轉(zhuǎn)換時(shí)間6.2.5
7、 差分增益信道 當(dāng)使用差分增益通道,需要考慮轉(zhuǎn)換的確定特征。 差分轉(zhuǎn)換與內(nèi)部時(shí)鐘CKADC2 同步等于ADC 時(shí)鐘的一半。同步是當(dāng)ADC 接口在CKADC2邊沿出現(xiàn)采樣與保持時(shí)自動(dòng)實(shí)現(xiàn)的。如果使用差分增益通道且通過自動(dòng)觸發(fā)啟動(dòng)轉(zhuǎn)換,在轉(zhuǎn)換時(shí)ADC 必須關(guān)閉。當(dāng)使用自動(dòng)觸發(fā)時(shí), ADC 預(yù)分頻器在轉(zhuǎn)換啟動(dòng)前復(fù)位。由于在轉(zhuǎn)換前的增益級(jí)依靠穩(wěn)定的ADC 時(shí)鐘,該轉(zhuǎn)換無效。 6.2.6 通道或基準(zhǔn)源的選擇 ADMUX寄存器中的MUXn及REFS1:0通過臨時(shí)寄存器實(shí)現(xiàn)了單緩沖。CPU可對(duì)此臨時(shí)寄存器進(jìn)行隨機(jī)訪問。這保證了在轉(zhuǎn)換過程中通道和基準(zhǔn)源的切換發(fā)生于安全的時(shí)刻。 在轉(zhuǎn)換啟動(dòng)之前通道及基準(zhǔn)源的選擇
8、可隨時(shí)進(jìn)行。一旦轉(zhuǎn)換開始就不允許再選擇通道和基準(zhǔn)源了,從而保證ADC 有充足的采樣時(shí)間。6.2.7 ADC 輸入通道選擇模擬通道時(shí)請(qǐng)注意以下幾個(gè)方面:工作于單次轉(zhuǎn)換模式時(shí),總是在啟動(dòng)轉(zhuǎn)換之前選定通道。在ADSC 置位后的一個(gè)ADC 時(shí)鐘周期就可以選擇新的模擬輸入通道了。但是最簡(jiǎn)單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通道。在連續(xù)轉(zhuǎn)換模式下,總是在第一次轉(zhuǎn)換開始之前選定通道。在ADSC 置位后的一個(gè)ADC時(shí)鐘周期就可以選擇新的模擬輸入通道了。但是最簡(jiǎn)單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通道。然而,此時(shí)新一次轉(zhuǎn)換已經(jīng)自動(dòng)開始了,下一次的轉(zhuǎn)換結(jié)果反映的是以前選定的模擬輸入通道。以后的轉(zhuǎn)換才是針對(duì)新通道的。6.2.8
9、 ADC 基準(zhǔn)電壓源 ADC的參考電壓源(VREF)反映了ADC的轉(zhuǎn)換范圍。若單端通道電平超過了VREF,其結(jié)果將接近0 x3FF。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.9 ADC 噪聲抑制器 ADC的噪聲抑制器使其可以在睡眠模式下進(jìn)行轉(zhuǎn)換,從而降低由于CPU及外圍I/O設(shè)備噪聲引入的影響。噪聲抑制器可在ADC 降噪模式及空閑模式下使用。為
10、了使用這一特性,應(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,對(duì)應(yīng)的中斷服務(wù)程序得到執(zhí)行。ADC 轉(zhuǎn)換結(jié)束后產(chǎn)生ADC 轉(zhuǎn)換結(jié)束中斷請(qǐng)求。CPU 將工作到新的休眠指令得到執(zhí)行。6.2.10 模擬輸入電路 單端通道的模擬輸入電路見圖6.9 。不論是否用作ADC 的輸入通道,輸入到
11、ADCn的模擬信號(hào)都受到引腳電容及輸入泄露的影響。用作ADC 的輸入通道時(shí),模擬信號(hào)源必須通過一個(gè)串聯(lián)電阻( 輸入通道的組合電阻) 驅(qū)動(dòng)采樣/保持(S/H) 電容。圖6.9 模擬輸入電路圖6.10所示為一通用的模擬信號(hào)輸入電路。它對(duì)模擬輸入信號(hào)進(jìn)行偏移和增益處理,使輸入到模擬引腳(ADC0ADC7)的電壓為05V,偏移細(xì)調(diào)通過R2實(shí)現(xiàn)。增益范圍由調(diào)整R5完成。 圖6.10 偏移和增益整定電路 例6.1 電壓采集,通道ADC2,ADC3。ADMUX=0 xED(ADC3-ADC2,10 x增益,2.56V參考電壓,左對(duì)齊)ADC3上電壓為300mV,ADC2電壓為500mV。ADCR=512*1
12、0*(300-500)/2560=-400=0 x270ADCL將讀為0 x00,且ADCH 讀為0 x9C。給ADLAR寫0右對(duì)齊:ADCL=0 x70,ADCH=0 x02。6.2.11 ADC 轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)束后(ADIF 為高),轉(zhuǎn)換結(jié)果被存入ADC 結(jié)果寄存器(ADCL, ADCH)。單次轉(zhuǎn)換的結(jié)果如下:式中,VIN 為被選中引腳的輸入電壓,VREF 為參考電壓,0 x000 代表模擬地電平, 0 x3FF 代表所選參考電壓的數(shù)值減去1LSB。如果使用差分通道,結(jié)果是:式中,VPOS 為輸入引腳正電壓,VNEG 為輸入引腳負(fù)電壓,GAIN 為選定的增益因子,且VREF 為參考電壓。結(jié)
13、果用2 的補(bǔ)碼形式表示,從0 x200(-512d)到0 x1FF(+511d)。如果用戶希望對(duì)結(jié)果執(zhí)行快速極性檢測(cè),判斷MSB( ADCH 中ADC9 ),如該位為1,結(jié)果為負(fù);該位為0,結(jié)果為正。 表6.4 給出當(dāng)選定的增益為GAIN且參考電壓為VREF 的差分輸入對(duì)(ADCn - ADCm)的輸入碼結(jié)果。下表6.4 輸入電壓與輸出碼的相互關(guān)系1、 ADC多工選擇寄存器(ADMUX)例如:ADMUX0 xXX;/根據(jù)下面的表6.5和表6.6來選擇ADC的參考電壓和通道 Bit 7:6 REFS1:0: 參考電壓選擇表6.5 ADC參考電壓選擇 Bit5ADLAR:ADC轉(zhuǎn)換結(jié)果左對(duì)齊Bit
14、s 4:0 MUX4:0: 模擬通道與增益選擇位細(xì)節(jié)見表6.6。 2、 ADC控制和狀態(tài)寄存器A(ADCSRA)例如:ADCSRA0 xXX;/根據(jù)使用情況,對(duì)所需要的功能標(biāo)志位置位即可ADPS20是用來選擇幾分頻 Bit7ADEN:ADC使能 Bit 6 ADSC: ADC 開始轉(zhuǎn)換 Bit 5 ADATE: ADC 自動(dòng)觸發(fā)使能 Bit 4 ADIF: ADC 中斷標(biāo)志 Bit 3 ADIE: ADC 中斷使能 Bits 2:0 ADPS2:0: ADC 預(yù)分頻器選擇位表6.7 ADC預(yù)分選擇3、ADC數(shù)據(jù)寄存器(ADCL及ADCH)ADLAR = 0ADLAR = 1ADC 轉(zhuǎn)換結(jié)束后,
15、轉(zhuǎn)換結(jié)果存于這兩個(gè)寄存器之中。如果采用差分通道,結(jié)果由2 的補(bǔ)碼形式表示。 讀取ADCL 之后,ADC 數(shù)據(jù)寄存器一直要等到ADCH 也被讀出才可以進(jìn)行數(shù)據(jù)更新。因此,如果轉(zhuǎn)換結(jié)果為左對(duì)齊,且要求的精度不高于8 比特,那么僅需讀取ADCH 就足夠了。否則必須先讀出ADCL 再讀ADCH。4、 特殊功能IO 寄存器(SFIOR) Bit 7:5 ADTS2:0: ADC 自動(dòng)觸發(fā)源 若ADCSRA寄存器的ADATE置位,ADTS的值將確定觸發(fā)ADC 轉(zhuǎn)換的觸發(fā)源;否則,ADTS的設(shè)置沒有意義。被選中的中斷標(biāo)志在其上升沿觸發(fā)ADC轉(zhuǎn)換。表6.8 ADC自動(dòng)觸發(fā)選擇 Bit 4Res:保留位 這一位
16、保留。為了與以后的器件相兼容,在寫SFIOR 時(shí)這一位應(yīng)寫0。例6.4 圖6.11是以ATmage16為核心構(gòu)成多路電力參數(shù)數(shù)據(jù)采集系統(tǒng),UN1UN6是精密運(yùn)放,ADC選擇片內(nèi)2.56為基準(zhǔn)電壓,64分頻時(shí)鐘源,將采集數(shù)值在數(shù)碼管上顯示出來,控制數(shù)碼管74LS595從上到下排列順序?yàn)椋篶、b、a。1、電力參數(shù)數(shù)據(jù)采集系統(tǒng)原理圖 圖6.11 ATmage16構(gòu)成多路數(shù)據(jù)采集系統(tǒng)原理圖 2、電力參數(shù)數(shù)據(jù)采集流 程框圖 圖6.12 電力參數(shù)數(shù)據(jù)采集流程框圖6.3脈沖寬度調(diào)制輸出 PWM(DA)功能特點(diǎn)及功能1、 脈沖寬度調(diào)制輸出 PWM的結(jié)構(gòu)和工作原理 將某個(gè)要轉(zhuǎn)換的數(shù)字量(例512)寫入到OCR0
17、(輸出比較寄存器)中,其值不斷與8位循環(huán)記數(shù)器的內(nèi)容比較。二者相等時(shí),比較輸出正脈沖,RS觸發(fā)器復(fù)位,使PWM/PB3端變?yōu)榈碗娢弧?OCR0中數(shù)據(jù)為80H時(shí),PWM/PB3端輸出波形如圖6.13所示。圖6.13 當(dāng)數(shù)據(jù)512時(shí)的輸出波形從上述可知,輸出波形的周期固定為1024T(狀態(tài)周期),當(dāng)晶振為8MHz時(shí) 1024T=10243/8=384s。占空比=OCR0中數(shù)據(jù)/256,如上例占空比=512/1024=50%。復(fù)位時(shí)OCR0清0, 占空比=00H1024=0%,即PWMPB3端始終為低電平。圖6.14給出了幾種 典型的PWM輸出波形圖,若將這些波形積分,則可得到10位分辨率的模擬信號(hào)
18、。圖6.14 PWM輸出波形2、 PWM應(yīng)用舉例 例6.3 產(chǎn)生 PWM波形,占空比參數(shù)值由a控制,頻率為CPU主頻確定。void timers_init(char a)/輸入?yún)?shù):占空比由a控制sbi(DDRD, 5);/輸出比較器A定義為輸出OCR1A = 1024-10.24*a;/定時(shí)器1的輸出比較器A,比較匹配預(yù)定值OCR1B = 0 x00;/定時(shí)器1的輸出比較器BTCNT1 = 0 x00;/T1的計(jì)數(shù)器,計(jì)數(shù)當(dāng)前值 TCCR1A = 0 xc3;/T1的控制字,比較匹配時(shí)置位OC1A/OC1B,在TOP時(shí)清零TCCR1B = 0 x09;/T1的控制字,無預(yù)分頻,clkI/O/
19、1 TOP(計(jì)數(shù)上限值)int main(void)timers_init(25);/參數(shù)a為25,產(chǎn)生占空比為25的PWM波形 PWM引腳輸出的脈沖信號(hào)經(jīng)濾波后可變?yōu)槟M信號(hào)。為了獲得較高精度的8位DA輸出,在濾波前先通過緩沖器將PWM脈沖信號(hào)擺幅轉(zhuǎn)化為05V,再經(jīng)濾波、放大輸出。DA緩沖器電路如圖6-13所示。圖6.15 D/A緩沖器電路 6.4 數(shù)字濾波方法 單片機(jī)系統(tǒng)面對(duì)的現(xiàn)場(chǎng)往往比較惡劣,因此所采集信號(hào)中總會(huì)混雜有各類干擾。除了采用硬件進(jìn)行濾波(如阻容濾波)外,對(duì)輸入計(jì)算機(jī)的信號(hào)進(jìn)行數(shù)字濾波也是十分必要的。所謂數(shù)字濾波,就是通過一定的計(jì)算程序,對(duì)采集的數(shù)據(jù)進(jìn)行處理,以提高有用信號(hào)在采
20、集值中的比例,減少各種干擾和噪聲。 與阻容濾波相比,數(shù)字濾波具有如下一些優(yōu)點(diǎn):1、可以根據(jù)干擾的類型,設(shè)計(jì)出相應(yīng)類型的數(shù)字濾波器。2、濾波范圍寬,特別是對(duì)于低頻信號(hào)(如0.001Hz及以下)更為有效,而模擬濾波器由于電容容量的限制,頻率不能太低。3、可靠性高。4、數(shù)字濾波程序可以多路共享。下面介紹幾種常用的數(shù)字濾波方法。1算術(shù)平均值濾波 設(shè)測(cè)量值為,則每采集了N個(gè)數(shù)據(jù)后,進(jìn)行一次算術(shù)平均。其計(jì)算方法如式(6.1)所示:(6 1)根據(jù)數(shù)理統(tǒng)計(jì)的理論,上式的算術(shù)平均值實(shí)際上是這樣一個(gè)值,它與各采樣值間的誤差的平方和最小。得到后即可計(jì)算出偏差值:從上面可以看出,每計(jì)算一次控制器輸出值,就必須采樣N次
21、。因此,N的取值不能太大。算術(shù)平均值法主要對(duì)壓力,流量等含有周期性脈動(dòng)的信號(hào)有效。而對(duì)突發(fā)性的脈沖干擾,這種濾波方法的效果則不理想。(6 2 )2中值濾波 所謂中值濾波法是連續(xù)采樣n次,首先要做的工作是先采集n個(gè)參數(shù)并按大小排序,即有,或者從大到小排序。 如果當(dāng)N為偶數(shù)時(shí), 如果當(dāng)N為奇數(shù)時(shí), 中值濾波既可以去掉由于偶然因數(shù)引起的干擾,同時(shí)對(duì)與脈動(dòng)干擾也比較有效。但是這種方法由于計(jì)算量比較大,對(duì)于一些需要快速采樣的參數(shù)就不十分合適。中值濾波的關(guān)鍵所在是形成按大小順序排列的一組數(shù)。假設(shè)采樣N次,如果使用高級(jí)語言,首先將N個(gè)采樣值按從大到?。ɑ驈男〉酱螅┡帕校缓髮⑵浞旁谝粋€(gè)數(shù)組X(N)里,此時(shí)X
22、(N+1)/2)則為采樣值。3表決濾波 首先要做的工作是先采集N個(gè)參數(shù)并按大小排序,即有x1x2xn-10; 則xn=xn 1若 xn - xn-1=0; 則xn=xn 若 xn - xn-10; 則xn=xn + 1這種濾波方式非常簡(jiǎn)單,運(yùn)算也很節(jié)省時(shí)間,可以很有效地使采樣到的參數(shù)處理得很平滑,但只能用于慣性較大的系統(tǒng)。這種濾波方式非常簡(jiǎn)單,運(yùn)算也很節(jié)省時(shí)間,可以很有效地使采樣到的參數(shù)處理得很平滑,但只能用于慣性較大的系統(tǒng)。5去最老值濾波先將采樣到的參數(shù)按時(shí)間次序排序,x1、x2、xn ,其中x1 最老,xn最新,當(dāng)再采集一個(gè)參數(shù)xn+1后作如下變化:x1=x2、x2=x3, ,xn-1=x
23、n,xn=xn+1然后進(jìn)行一次算術(shù)平均。6程序判斷濾波 如果我們事先就知道,所采樣的信號(hào),其在兩個(gè)采樣點(diǎn)之間不可能有很大的變化,則可以根據(jù)現(xiàn)場(chǎng)的經(jīng)驗(yàn)確定一個(gè)最大偏差m。每次采樣后都將其與前一個(gè)采樣值進(jìn)行比較,一旦兩個(gè)值的差超出了m,則表明采集的信號(hào)中包含有較大的干擾,應(yīng)該去掉;如果未超出m,可將該數(shù)據(jù)作為本次采樣值。這種方法對(duì)于一些突發(fā)性的干擾,如大功率用電設(shè)備的啟?;蚱渌麤_擊性負(fù)載帶來的電流尖峰干擾比較有效。 例6.7 圖6.17是ATmega16進(jìn)行電壓采集進(jìn)行后,經(jīng)中值濾波后并用數(shù)碼管顯示程序。 圖6.17 電壓采集和數(shù)碼管顯示原理圖uchar led241=0 x60,0 x7e,0
24、x31,0 x32,0 x2e,0 xa2,0 xa0,0 x7a,0 x20,0 x22,0 x28,0 xa4,0 xe1,0 x34,0 xa1,0 xa9, 0 x40,0 x5e,0 x11,0 x12,0 x0e,0 x82,0 x80,0 x5a,0 x00,0 x02,0 x08,0 x84,0 xc1,0 x14,0 x81,0 x89, 0 xff,0 xbf,0 x64,0 xdf,0 xa1,0 x68,0 x34,0 xf4,0 xa5; /數(shù)碼管編碼AD轉(zhuǎn)換程序:#include JL_f1.h#include JL_f1ADC.h extern uchar ub;
25、void adc_init(void)/WIZARD_MAP(ADC)/ ADC Clock: 125.000kHz/ ADC Voltage Reference: AVCC/ ADC Noise Canceler DisabledSFIOR |= 0 x0;/特殊功能I/O寄存器ADMUX = 0 x40;/ADC多工選擇寄存器,AVCC, AREF 引腳外加濾波電容ADCSRA = 0 x86; /ADC控制和狀態(tài)寄存器A,0 x86為ADC使能,預(yù)分頻為64分頻/WIZARD_MAP(ADC)unsigned int read_adc(unsigned char adc_input)/
26、Set ADC inputADMUX &= 0 xE0;ADMUX |= adc_input;/ 設(shè)置AD通道/ Start ADC conversionsbi(ADCSRA, ADSC);/ 開始AD轉(zhuǎn)換/ Waiting for ADC conversion completedloop_until_bit_is_set(ADCSRA, ADIF); /等待AD轉(zhuǎn)換結(jié)束sbi(ADCSRA, ADIF); /關(guān)閉AD ub=1;/標(biāo)志位設(shè)為1return ADCW;/ 電壓獲取程序uint get_u(void)double in=0;static double d1,d2,d3,d_new
27、,m1,m2,m3; d_new=read_adc(0); d1=d2; d2=d3; d3=d_new; m1=m2;m2=m3; if(d1d3)|(d1d2) m3=d1;else if(d2d3)|(d2d1) m3=d2; else m3=d3; /三個(gè)AD轉(zhuǎn)換后的值中取中間值 in=(0*m1+0*m2+3.0*m3)/3.0; /三個(gè)中間值加權(quán)平均 in*=5; return (uint)in;/ 電壓顯示程序void lcd_u(void) ad1=get_u(); if(ub=1) ub=0; else ad1=0; led19=(ad1/1000)%10; led18=(ad1/100)%10; led17=(ad1/10)%10; led16=39;/ 數(shù)碼管顯示程序/RCK=PA5 SCK=PA6 SER=PA7void led_outbyt(char a) /顯示一個(gè)字符char i,d;for(i=0;i8;i+)cbi(PORTA,6); /595移位寄存器使能d=a&0 x80;if(d)sbi(PORTA,7); /595串行輸入使能elsecbi(PORTA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)合同范本-工程合同模板
- 品牌策劃合作協(xié)議-合同范本
- 合伙協(xié)議書范文
- 2024房屋租賃居間合同
- 2024運(yùn)輸合同物流運(yùn)輸合同糾紛案例
- 2024設(shè)立有限責(zé)公司出資協(xié)議模板
- 2024年冷庫轉(zhuǎn)讓協(xié)議合同書
- 深圳發(fā)展銀行委托貸款操作流程
- 2024年學(xué)校食堂用工合同協(xié)議書樣本
- 北京借款合同的范本2024年
- 服裝主題直播方案
- 大班數(shù)學(xué)優(yōu)質(zhì)課課件PPT《小鳥分窩》
- B13化學(xué)除油器選型計(jì)算
- 大學(xué)生就業(yè)指導(dǎo)全套教學(xué)課件
- 學(xué)生寫實(shí)記錄范文(6篇)
- 法律職業(yè)倫理案例分析
- 五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案
- 渣土消納專項(xiàng)方案樣本
- 少數(shù)民族朝鮮族民俗文化科普介紹
- 機(jī)構(gòu)改革工作方案
- 《季風(fēng)環(huán)流》課件
評(píng)論
0/150
提交評(píng)論