




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 內(nèi)容提要 本章描述ATmega單片機(jī)A/D轉(zhuǎn)換器和PWM發(fā)生器的基本原理和應(yīng)用。在A/D轉(zhuǎn)換器中,首先說明原理、結(jié)構(gòu)、控制和相應(yīng)特殊寄存器的用法,然后介紹軟件設(shè)計及應(yīng)用實(shí)例。在PWM發(fā)生器中,分別介紹結(jié)構(gòu)原理和實(shí)際應(yīng)用。此外本章還介紹幾種濾波方法。6.1模擬比較器 模擬比較器對正極AIN0 的值與負(fù)極AIN1 的值進(jìn)行比較。當(dāng)AIN0 上的電壓比負(fù)極AIN1上的電壓要高時,模擬比較器的輸出ACO 即置位。比較器的輸出可用來觸發(fā)定時器/ 計數(shù)器1 的輸入捕捉功能。 此外,比較器還可觸發(fā)自己專有的、獨(dú)立的中斷。用戶可以選擇比較器是以上升沿、下降沿還是交替變化的邊沿來觸發(fā)中斷。圖6.1為比較器及其
2、外圍邏輯電路的框圖。1、特殊功能IO寄存器SFIORBit3ACME:模擬比較器多路復(fù)用器使能當(dāng)此位為邏輯“1”,且ADC處于關(guān)閉狀態(tài)(ADCSRA 寄存器的ADEN為“0”)時,ADC多路復(fù)用器為模擬比較器選擇負(fù)極輸入。當(dāng)此位為“0”時,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 時,必須清零ACSR 寄存器的中斷使能位來禁止模擬比較器中斷。否則有可能在改變這兩位時產(chǎn)生中斷。6.2 模數(shù)轉(zhuǎn)換器6.2.1 主要特點(diǎn) ATmega16有一個10位的逐次逼近型ADC。ADC與一個8通道的模擬多路復(fù)用器連接,能對來自端口A的8路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0V (GND)為基準(zhǔn)。 器件還支持16 路差分電壓輸入組合。兩路差分輸入(ADC1、ADC0 與ADC3、ADC2)有可編程增益級,在A/D 轉(zhuǎn)換前給差分輸入電壓提供0dB(1x)、20dB(10 x)
4、或46dB(200 x)的放大級。 七路差分模擬輸入通道共享一個通用負(fù)端(ADC1), 而其他任何ADC 輸入可做為正輸入端。如果使用1x 或10 x 增益,可得到8 位分辨率。如果使用200 x 增益,可得到7 位分辨率。 ADC 包括一個采樣保持電路,以確保在轉(zhuǎn)換過程中輸入到ADC 的電壓保持恒定。ADC 由AVCC 引腳單獨(dú)提供電源。AVCC 與VCC 之間的偏差不能超過 0.3V。 標(biāo)稱值為2.56V 的基準(zhǔn)電壓,以及AVCC,都位于器件之內(nèi)?;鶞?zhǔn)電壓可以通過在AREF引腳上加一個電容進(jìn)行解耦,以更好地抑制噪聲。圖6.2 模數(shù)轉(zhuǎn)換器方框圖6.2.2 ADC的工作原理 ADC 通過逐次逼
5、近的方法將輸入的模擬電壓轉(zhuǎn)換成一個10 位的數(shù)字量。最小值代表GND,最大值代表AREF引腳上的電壓再減去1 LSB。通過寫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)換過程中選擇了另一個通道,那么ADC 會在改變通道前完成這一次轉(zhuǎn)換。圖6.3 ADC 自動觸發(fā)邏輯使用ADC 中斷標(biāo)志作為觸發(fā)源,可以在正在進(jìn)行的轉(zhuǎn)換結(jié)束后即開始
6、下一次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)換時序圖6.4 ADC 預(yù)分頻器圖6.5 ADC 時序圖, 第一次轉(zhuǎn)換( 單次轉(zhuǎn)換模式)圖6.6 ADC 時序圖,單次轉(zhuǎn)換圖6.7 ADC 時序圖,自動觸發(fā)的轉(zhuǎn)換圖6.8 ADC 時序圖,連續(xù)轉(zhuǎn)換表6.3 ADC轉(zhuǎn)換時間6.2.5
7、 差分增益信道 當(dāng)使用差分增益通道,需要考慮轉(zhuǎn)換的確定特征。 差分轉(zhuǎn)換與內(nèi)部時鐘CKADC2 同步等于ADC 時鐘的一半。同步是當(dāng)ADC 接口在CKADC2邊沿出現(xiàn)采樣與保持時自動實(shí)現(xiàn)的。如果使用差分增益通道且通過自動觸發(fā)啟動轉(zhuǎn)換,在轉(zhuǎn)換時ADC 必須關(guān)閉。當(dāng)使用自動觸發(fā)時, ADC 預(yù)分頻器在轉(zhuǎn)換啟動前復(fù)位。由于在轉(zhuǎn)換前的增益級依靠穩(wěn)定的ADC 時鐘,該轉(zhuǎn)換無效。 6.2.6 通道或基準(zhǔn)源的選擇 ADMUX寄存器中的MUXn及REFS1:0通過臨時寄存器實(shí)現(xiàn)了單緩沖。CPU可對此臨時寄存器進(jìn)行隨機(jī)訪問。這保證了在轉(zhuǎn)換過程中通道和基準(zhǔn)源的切換發(fā)生于安全的時刻。 在轉(zhuǎn)換啟動之前通道及基準(zhǔn)源的選擇
8、可隨時進(jìn)行。一旦轉(zhuǎn)換開始就不允許再選擇通道和基準(zhǔn)源了,從而保證ADC 有充足的采樣時間。6.2.7 ADC 輸入通道選擇模擬通道時請注意以下幾個方面:工作于單次轉(zhuǎn)換模式時,總是在啟動轉(zhuǎn)換之前選定通道。在ADSC 置位后的一個ADC 時鐘周期就可以選擇新的模擬輸入通道了。但是最簡單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通道。在連續(xù)轉(zhuǎn)換模式下,總是在第一次轉(zhuǎn)換開始之前選定通道。在ADSC 置位后的一個ADC時鐘周期就可以選擇新的模擬輸入通道了。但是最簡單的辦法是等待轉(zhuǎn)換結(jié)束后再改變通道。然而,此時新一次轉(zhuǎn)換已經(jīng)自動開始了,下一次的轉(zhuǎn)換結(jié)果反映的是以前選定的模擬輸入通道。以后的轉(zhuǎn)換才是針對新通道的。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通過一個無源開關(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,對應(yīng)的中斷服務(wù)程序得到執(zhí)行。ADC 轉(zhuǎn)換結(jié)束后產(chǎn)生ADC 轉(zhuǎn)換結(jié)束中斷請求。CPU 將工作到新的休眠指令得到執(zhí)行。6.2.10 模擬輸入電路 單端通道的模擬輸入電路見圖6.9 。不論是否用作ADC 的輸入通道,輸入到
11、ADCn的模擬信號都受到引腳電容及輸入泄露的影響。用作ADC 的輸入通道時,模擬信號源必須通過一個串聯(lián)電阻( 輸入通道的組合電阻) 驅(qū)動采樣/保持(S/H) 電容。圖6.9 模擬輸入電路圖6.10所示為一通用的模擬信號輸入電路。它對模擬輸入信號進(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參考電壓,左對齊)ADC3上電壓為300mV,ADC2電壓為500mV。ADCR=512*1
12、0*(300-500)/2560=-400=0 x270ADCL將讀為0 x00,且ADCH 讀為0 x9C。給ADLAR寫0右對齊: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)。如果用戶希望對結(jié)果執(zhí)行快速極性檢測,判斷MSB( ADCH 中ADC9 ),如該位為1,結(jié)果為負(fù);該位為0,結(jié)果為正。 表6.4 給出當(dāng)選定的增益為GAIN且參考電壓為VREF 的差分輸入對(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é)果左對齊Bit
14、s 4:0 MUX4:0: 模擬通道與增益選擇位細(xì)節(jié)見表6.6。 2、 ADC控制和狀態(tài)寄存器A(ADCSRA)例如:ADCSRA0 xXX;/根據(jù)使用情況,對所需要的功能標(biāo)志位置位即可ADPS20是用來選擇幾分頻 Bit7ADEN:ADC使能 Bit 6 ADSC: ADC 開始轉(zhuǎn)換 Bit 5 ADATE: ADC 自動觸發(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é)果存于這兩個寄存器之中。如果采用差分通道,結(jié)果由2 的補(bǔ)碼形式表示。 讀取ADCL 之后,ADC 數(shù)據(jù)寄存器一直要等到ADCH 也被讀出才可以進(jìn)行數(shù)據(jù)更新。因此,如果轉(zhuǎn)換結(jié)果為左對齊,且要求的精度不高于8 比特,那么僅需讀取ADCH 就足夠了。否則必須先讀出ADCL 再讀ADCH。4、 特殊功能IO 寄存器(SFIOR) Bit 7:5 ADTS2:0: ADC 自動觸發(fā)源 若ADCSRA寄存器的ADATE置位,ADTS的值將確定觸發(fā)ADC 轉(zhuǎn)換的觸發(fā)源;否則,ADTS的設(shè)置沒有意義。被選中的中斷標(biāo)志在其上升沿觸發(fā)ADC轉(zhuǎn)換。表6.8 ADC自動觸發(fā)選擇 Bit 4Res:保留位 這一位
16、保留。為了與以后的器件相兼容,在寫SFIOR 時這一位應(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ù)碼管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)和工作原理 將某個要轉(zhuǎn)換的數(shù)字量(例512)寫入到OCR0
17、(輸出比較寄存器)中,其值不斷與8位循環(huán)記數(shù)器的內(nèi)容比較。二者相等時,比較輸出正脈沖,RS觸發(fā)器復(fù)位,使PWM/PB3端變?yōu)榈碗娢弧?OCR0中數(shù)據(jù)為80H時,PWM/PB3端輸出波形如圖6.13所示。圖6.13 當(dāng)數(shù)據(jù)512時的輸出波形從上述可知,輸出波形的周期固定為1024T(狀態(tài)周期),當(dāng)晶振為8MHz時 1024T=10243/8=384s。占空比=OCR0中數(shù)據(jù)/256,如上例占空比=512/1024=50%。復(fù)位時OCR0清0, 占空比=00H1024=0%,即PWMPB3端始終為低電平。圖6.14給出了幾種 典型的PWM輸出波形圖,若將這些波形積分,則可得到10位分辨率的模擬信號
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;/定時器1的輸出比較器A,比較匹配預(yù)定值OCR1B = 0 x00;/定時器1的輸出比較器BTCNT1 = 0 x00;/T1的計數(shù)器,計數(shù)當(dāng)前值 TCCR1A = 0 xc3;/T1的控制字,比較匹配時置位OC1A/OC1B,在TOP時清零TCCR1B = 0 x09;/T1的控制字,無預(yù)分頻,clkI/O/
19、1 TOP(計數(shù)上限值)int main(void)timers_init(25);/參數(shù)a為25,產(chǎn)生占空比為25的PWM波形 PWM引腳輸出的脈沖信號經(jīng)濾波后可變?yōu)槟M信號。為了獲得較高精度的8位DA輸出,在濾波前先通過緩沖器將PWM脈沖信號擺幅轉(zhuǎn)化為05V,再經(jīng)濾波、放大輸出。DA緩沖器電路如圖6-13所示。圖6.15 D/A緩沖器電路 6.4 數(shù)字濾波方法 單片機(jī)系統(tǒng)面對的現(xiàn)場往往比較惡劣,因此所采集信號中總會混雜有各類干擾。除了采用硬件進(jìn)行濾波(如阻容濾波)外,對輸入計算機(jī)的信號進(jìn)行數(shù)字濾波也是十分必要的。所謂數(shù)字濾波,就是通過一定的計算程序,對采集的數(shù)據(jù)進(jìn)行處理,以提高有用信號在采
20、集值中的比例,減少各種干擾和噪聲。 與阻容濾波相比,數(shù)字濾波具有如下一些優(yōu)點(diǎn):1、可以根據(jù)干擾的類型,設(shè)計出相應(yīng)類型的數(shù)字濾波器。2、濾波范圍寬,特別是對于低頻信號(如0.001Hz及以下)更為有效,而模擬濾波器由于電容容量的限制,頻率不能太低。3、可靠性高。4、數(shù)字濾波程序可以多路共享。下面介紹幾種常用的數(shù)字濾波方法。1算術(shù)平均值濾波 設(shè)測量值為,則每采集了N個數(shù)據(jù)后,進(jìn)行一次算術(shù)平均。其計算方法如式(6.1)所示:(6 1)根據(jù)數(shù)理統(tǒng)計的理論,上式的算術(shù)平均值實(shí)際上是這樣一個值,它與各采樣值間的誤差的平方和最小。得到后即可計算出偏差值:從上面可以看出,每計算一次控制器輸出值,就必須采樣N次
21、。因此,N的取值不能太大。算術(shù)平均值法主要對壓力,流量等含有周期性脈動的信號有效。而對突發(fā)性的脈沖干擾,這種濾波方法的效果則不理想。(6 2 )2中值濾波 所謂中值濾波法是連續(xù)采樣n次,首先要做的工作是先采集n個參數(shù)并按大小排序,即有,或者從大到小排序。 如果當(dāng)N為偶數(shù)時, 如果當(dāng)N為奇數(shù)時, 中值濾波既可以去掉由于偶然因數(shù)引起的干擾,同時對與脈動干擾也比較有效。但是這種方法由于計算量比較大,對于一些需要快速采樣的參數(shù)就不十分合適。中值濾波的關(guān)鍵所在是形成按大小順序排列的一組數(shù)。假設(shè)采樣N次,如果使用高級語言,首先將N個采樣值按從大到小(或從小到大)排列,然后將其放在一個數(shù)組X(N)里,此時X
22、(N+1)/2)則為采樣值。3表決濾波 首先要做的工作是先采集N個參數(shù)并按大小排序,即有x1x2xn-10; 則xn=xn 1若 xn - xn-1=0; 則xn=xn 若 xn - xn-10; 則xn=xn + 1這種濾波方式非常簡單,運(yùn)算也很節(jié)省時間,可以很有效地使采樣到的參數(shù)處理得很平滑,但只能用于慣性較大的系統(tǒng)。這種濾波方式非常簡單,運(yùn)算也很節(jié)省時間,可以很有效地使采樣到的參數(shù)處理得很平滑,但只能用于慣性較大的系統(tǒng)。5去最老值濾波先將采樣到的參數(shù)按時間次序排序,x1、x2、xn ,其中x1 最老,xn最新,當(dāng)再采集一個參數(shù)xn+1后作如下變化:x1=x2、x2=x3, ,xn-1=x
23、n,xn=xn+1然后進(jìn)行一次算術(shù)平均。6程序判斷濾波 如果我們事先就知道,所采樣的信號,其在兩個采樣點(diǎn)之間不可能有很大的變化,則可以根據(jù)現(xiàn)場的經(jīng)驗(yàn)確定一個最大偏差m。每次采樣后都將其與前一個采樣值進(jìn)行比較,一旦兩個值的差超出了m,則表明采集的信號中包含有較大的干擾,應(yīng)該去掉;如果未超出m,可將該數(shù)據(jù)作為本次采樣值。這種方法對于一些突發(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; /三個AD轉(zhuǎn)換后的值中取中間值 in=(0*m1+0*m2+3.0*m3)/3.0; /三個中間值加權(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) /顯示一個字符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等.壓縮文件請下載最新的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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國紅外強(qiáng)力按摩錘數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國紫檀木雕螭紋魚桌數(shù)據(jù)監(jiān)測研究報告
- 2025年度汽車美容店汽車美容店員工福利待遇合同
- 2025年度物業(yè)賠償業(yè)主綠化損壞的補(bǔ)償協(xié)議書
- 二零二五年度股東分紅協(xié)議書模板(獨(dú)資企業(yè))
- 二零二五年度政府機(jī)關(guān)文員臨時聘用合同書
- 2025至2030年中國空調(diào)專用低收縮套管料數(shù)據(jù)監(jiān)測研究報告
- 2025年度電商平臺數(shù)據(jù)分析與應(yīng)用合作協(xié)議
- 白條采購合同范本
- 科技助力下的老年人營養(yǎng)管理與健康教育
- 淺析小學(xué)英語主題意義探究下的單元整體教學(xué) 論文
- 路緣石安裝一級安全交底
- 教師教學(xué)常規(guī)管理培訓(xùn)夯實(shí)教學(xué)常規(guī)強(qiáng)化教學(xué)管理PPT教學(xué)課件
- 2023年山東省春季高校招生考試英語試卷試題(含答案)
- 世界著名童話故事英文繪本故事丑小鴨
- 綠色簡約墻體商務(wù)風(fēng)PPT模板
- LS/T 1226-2022糧庫智能通風(fēng)控制系統(tǒng)
- GB/T 4927-2008啤酒
- GB/T 462-2003紙和紙板水分的測定
- QC演示:提高檢查井周邊密實(shí)度
- 肺隔離癥醫(yī)學(xué)課件
評論
0/150
提交評論