項(xiàng)目設(shè)計(jì)論文微弱信號(hào)檢測(cè)_第1頁(yè)
項(xiàng)目設(shè)計(jì)論文微弱信號(hào)檢測(cè)_第2頁(yè)
項(xiàng)目設(shè)計(jì)論文微弱信號(hào)檢測(cè)_第3頁(yè)
項(xiàng)目設(shè)計(jì)論文微弱信號(hào)檢測(cè)_第4頁(yè)
項(xiàng)目設(shè)計(jì)論文微弱信號(hào)檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 006A013微弱信號(hào)檢測(cè)裝置參賽學(xué)生:聯(lián)系方式:聯(lián)系方式:聯(lián)系方式:指導(dǎo)教師:理工大學(xué)自動(dòng)化專業(yè)摘要本設(shè)計(jì)是檢測(cè)在強(qiáng)噪聲背景下已知頻率的微弱正弦波信號(hào)的幅度值,并數(shù)字顯示出該幅度值。以鎖相放大器作為微弱信號(hào)檢測(cè)裝置的核心,利用模塊化設(shè)計(jì),分別實(shí)現(xiàn)系統(tǒng)各部分功能。加法器模塊,將輸入信號(hào)淹沒(méi)在強(qiáng)噪聲里;衰減模塊是將混合信號(hào)變成小信號(hào);跟隨器與放大模塊,利用OP27實(shí)現(xiàn)了電壓跟隨并將小信號(hào)進(jìn)行放大至原來(lái)的幅值;鎖相放大器是一種基于AD633芯片與低通濾波的電路,利用AD633乘法器對(duì)同頻同相參考信號(hào)與探測(cè)信號(hào)進(jìn)行處理,再通過(guò)低通濾波電路,使輸出為直流量;放大與顯示模塊把輸出信號(hào)放大到適合STM3

2、2A/D采樣的電壓值并經(jīng)過(guò)單片機(jī)處理后用數(shù)碼管顯示。通過(guò)硬件和軟件的調(diào)試,結(jié)果與預(yù)期的一樣。關(guān)鍵詞:微弱信號(hào) 鎖相放大 強(qiáng)噪聲 STM32 AD633Abstract:This design is in the strong noise background of weak sinusoidal signal of known frequency amplitude value and digital display of amplitude value. The core of weak signal detection device is lock-in amplifier, using

3、of modular design, respectively realizing the function of each part in the system. Adder module submerges the input signal in the noise. Pressure module declines the mixed signal into a small signal. The follower and amplification module use OP27 to achieve a voltage follower andenlarge the small si

4、gnal to the original amplitude. The lock-in amplifier is based on the AD633 chip and the low pass filter circuit, using the AD633 multiplier to handle reference signal and the detection signal on the same frequency and phase, and then through the low pass filter circuit, the output becomes a straigh

5、t flow. Amplification and display module is to amplify the output to the STM32A/D for sampling the voltage value and processed by single chip microcomputer with digital delay. Through the hardware and software testing, the result is identical to the expected.Keywords: weaksignal; lock-in amplifier ;

6、 strong noise ; STM32 ; AD633目錄一、 設(shè)計(jì)要求 1二、 總體方案設(shè)計(jì) 22.1總體方案概述 2 2.2總體方案分析 3 三、 各模塊方案分析與論證 33.1噪音信號(hào)處理 33.2加法器設(shè)計(jì) 33.3純電阻網(wǎng)絡(luò)衰減設(shè)計(jì) 33.4微弱信號(hào)檢測(cè)設(shè)計(jì) 43.4.1前置放大電路設(shè)計(jì) 43.4.2微弱信號(hào)檢測(cè)電路設(shè)計(jì) 3.4.3低通濾波設(shè)計(jì) 73.5軟件設(shè)計(jì) 7四、 實(shí)驗(yàn)分析與測(cè)試結(jié)果五、 總結(jié)六、 參考文獻(xiàn)七、 附錄一、設(shè)計(jì)要求1任務(wù)正弦波信號(hào)源微弱信號(hào)檢測(cè)電路噪聲源VS VN VC Vo 純電阻壓網(wǎng)絡(luò)顯示電路加法器Vi A B C D E 設(shè)計(jì)并制作一套微弱信號(hào)檢測(cè)裝置,

7、用以檢測(cè)在強(qiáng)噪聲背景下已知頻率的微弱正弦波信號(hào)的幅度值,并數(shù)字顯示出該幅度值。為便于測(cè)評(píng)比較,統(tǒng)一規(guī)定顯示峰值。整個(gè)系統(tǒng)的示意圖如圖1所示。正弦波信號(hào)源可以由函數(shù)信號(hào)發(fā)生器來(lái)代替。噪聲源采用給定的標(biāo)準(zhǔn)噪聲(wav文件)來(lái)產(chǎn)生,通過(guò)PC機(jī)的音頻播放器或MP3播放噪聲文件,從音頻輸出端口獲得噪聲源,噪聲幅度通過(guò)調(diào)節(jié)播放器的音量來(lái)進(jìn)行控制。圖中A、B、C、D和E分別為五個(gè)測(cè)試端點(diǎn)。圖1 微弱信號(hào)檢測(cè)裝置示意圖 2基本要求(1) 噪聲源輸出VN的均方根電壓值固定為1V±0.1V;加法器的輸出VC=VS+VN,帶寬大于1MHz;純電阻分壓網(wǎng)絡(luò)的衰減系數(shù)不低于100。 (2)微弱信號(hào)檢測(cè)電路的輸

8、入阻抗Ri1 MW。 (3)當(dāng)輸入正弦波信號(hào)VS 的頻率為1 kHz、幅度峰峰值在200mV 2V圍時(shí),檢測(cè)并顯示正弦波信號(hào)的幅度值,要求誤差不超過(guò)5%。 3發(fā)揮部分 (1)提高正弦波信號(hào)的識(shí)別能力,當(dāng)輸入正弦波信號(hào)VS 的頻率在100Hz10kHz圍、幅度峰峰值在20mV 200mV圍時(shí),檢測(cè)并顯示正弦波信號(hào)的幅度值,誤差不超過(guò)5%。 (2)在發(fā)揮部分(1)的條件下,要求檢測(cè)誤差不超過(guò)2%。 (3)當(dāng)輸入正弦波信號(hào)VS 的頻率在100Hz10kHz圍時(shí),進(jìn)一步降低VS的幅度,檢測(cè)并顯示正弦波信號(hào)的幅度值,誤差不超過(guò)2%。二、總體方案設(shè)計(jì)2.1總體方案概述 本設(shè)計(jì)以鎖相放大器為微弱信號(hào)檢測(cè)裝置

9、的核心。輸入信號(hào)與強(qiáng)噪聲經(jīng)過(guò)加法器疊加,經(jīng)由衰減電路、電壓跟隨器電路、前置放大電路,然后和參考信號(hào)輸入到乘法器電路中,之后通過(guò)低通濾波濾除交流分量,再經(jīng)過(guò)放大電路,最后經(jīng)STM32A/D采樣、處理,輸出檢測(cè)信號(hào)幅值并由數(shù)碼管顯示。2.2總體結(jié)構(gòu)設(shè)計(jì)三、各模塊方案分析與論證3.1硬件設(shè)計(jì) 3.1噪音信號(hào)處理題目要求噪聲源輸出VN的均方根電壓值固定為1V±0.1V,噪聲源采用給定的標(biāo)準(zhǔn)噪聲(wav文件)來(lái)產(chǎn)生,通過(guò)PC機(jī)的音頻播放器或MP3播放噪聲文件,從音頻輸出端口獲得噪聲源,噪聲幅度通過(guò)調(diào)節(jié)播放器的音量來(lái)進(jìn)行控制。而現(xiàn)有設(shè)備播放噪聲信號(hào)均方根幅值不能達(dá)到要求,因此設(shè)置一前置放大電路對(duì)

10、噪聲信號(hào)進(jìn)行處理,電路設(shè)置放大倍數(shù)為十倍,通過(guò)調(diào)節(jié)音量大小來(lái)控制噪聲均方根幅值大小。放大電路原理圖見(jiàn)附圖3.1.1。3.2加法器設(shè)計(jì) 按照題目要求需要設(shè)計(jì)加法器電路將噪聲信號(hào)與標(biāo)準(zhǔn)正弦信號(hào)疊加實(shí)現(xiàn)此要求電路有以下兩種方案:方案一:設(shè)計(jì)一個(gè)同向加法器電路,R1,R2,R3的阻值相等,R4的阻值應(yīng)為R1/R2/R3的值,試驗(yàn)中選用R的阻值為10K,電路原理圖見(jiàn)附圖3.2(a)。但實(shí)際電路中對(duì)于微弱信號(hào)同向加法電路幅值波動(dòng)較大,故而舍棄此方案方案二:設(shè)計(jì)一個(gè)反相加法器電路,由于改變了輸入信號(hào)的相位故此再加以反相器電路,由此兩部分組成加法器電路,電路原理圖見(jiàn)3.2(b)。在實(shí)際調(diào)試時(shí),反向加法器電路幅

11、值波動(dòng)小,波形更為穩(wěn)定,因此我們選擇方案二。3.3純電阻網(wǎng)絡(luò)衰減設(shè)計(jì)題目要求采用純電阻分壓網(wǎng)絡(luò)實(shí)現(xiàn)分壓網(wǎng)絡(luò)的衰減系數(shù)不低于100,通過(guò)查閱資料,現(xiàn)有以下幾種方案,可以供我們選擇。方案一: 由一個(gè)電位器和一個(gè)固定的電阻組成的分壓網(wǎng)絡(luò)。通過(guò)改變電位器的阻值就可以改變其衰減系數(shù)。這樣就可以避免衰減系數(shù)達(dá)不到或者更換元器件的情況。但是由于控制衰減系數(shù)要用手調(diào)節(jié),這樣就造成可能調(diào)節(jié)不準(zhǔn)確,造成產(chǎn)生誤差,使測(cè)量不準(zhǔn)確。因此舍棄此方案。方案三: T型網(wǎng)絡(luò)能實(shí)現(xiàn)衰減并保持輸入阻抗不變, 從輸入端看進(jìn)去的輸入電阻應(yīng)該等于R0,所以可得此電路具有良好的衰減效果,而且還不影響后面電路的輸入,仿真效果非常好。綜上所述

12、:選擇方案三。3.4.1微弱信號(hào)檢測(cè)前置放大電路設(shè)計(jì)方案一:采用兩級(jí)放大電路,電路圖原理圖見(jiàn)3.4.1(a),第一級(jí)電路為同相比例運(yùn)算電路,第二級(jí)為反相運(yùn)算放大電路,利用疊加原理放大100倍,然后接一個(gè)反相電路以保證相位不變。此方案滿足題目對(duì)輸入阻抗必須大于1 MW的要求,但是在電阻選擇上有困難,造成的誤差比較大,而且用反相電路來(lái)保證相位不變結(jié)構(gòu)繁瑣。故舍棄。方案二:綜合以上優(yōu)缺點(diǎn),設(shè)計(jì)出電路圖見(jiàn)3.4.1(b)先用電壓跟隨器保證輸入阻抗大于1 MW,然后用兩級(jí)放大電路以方便電阻的選擇并減小誤差,同時(shí)保證相位不變。此方案滿足題目要求,而且結(jié)構(gòu)簡(jiǎn)單,誤差較小,切實(shí)可行,故采用此方案。3.4.2微

13、弱信號(hào)檢測(cè)電路設(shè)計(jì)方案一:帶通濾波:但在檢測(cè)噪聲波形與頻率圍分析時(shí)發(fā)現(xiàn),噪聲頻率大概在0到20kHz,而要求檢測(cè)的信號(hào)頻率在100Hz10kHz之間,完全被噪聲信號(hào)淹沒(méi),因此不能采用帶通濾波提取微弱信號(hào)。方案二:鎖相放大:使用模擬乘法器AD633JN,該方案是應(yīng)用互相干原理,可以提取同頻同相的正弦信號(hào),并且輸出值為含有直流分量的正弦波,與輸入的正弦波的幅值有一定的對(duì)應(yīng)關(guān)系。因此采用此方案鎖相放大原理:鎖相放大器是由乘法器和積分器組成,其中乘法器采用模擬乘法器,積分器通常由低通濾波器組成,下圖給出鎖相放大器的構(gòu)成原理圖。設(shè)待測(cè)信號(hào),其中為待測(cè)信號(hào)中的有效信號(hào),n為噪聲。參考信號(hào),則經(jīng)乘法器的輸出

14、信號(hào)為,積分器的輸出信號(hào)為:=上式中、分別是待測(cè)有效信號(hào)與參考信號(hào)與參考信號(hào)與噪聲之間的相關(guān)函數(shù),對(duì)于項(xiàng),由于噪聲的頻率和相位都是隨機(jī)量,可以認(rèn)為參考信號(hào)與噪聲互相獨(dú)立,它的相關(guān)函數(shù)為零:即經(jīng)過(guò)長(zhǎng)時(shí)間的積分,項(xiàng)為零,實(shí)際上積分時(shí)間不可能無(wú)限長(zhǎng),也就是說(shuō)實(shí)際計(jì)算中不可能為零,它表現(xiàn)為剩余噪聲,但噪聲對(duì)測(cè)量結(jié)果的影響已經(jīng)大大降低,對(duì)于項(xiàng)為:=由上式可知,積分的兩項(xiàng)是待測(cè)有效信號(hào)與參考信號(hào)的和頻與差頻相關(guān),當(dāng)時(shí),且噪聲相關(guān)函數(shù)為零時(shí),積分器輸出的信號(hào)可表示為:式中K為低通濾波器的傳遞系數(shù),為待測(cè)信號(hào)與參考信號(hào)的相位差,當(dāng)待測(cè)信號(hào)與參考信號(hào)同頻率時(shí),鎖相放大器輸出的信號(hào)與待測(cè)有效信號(hào)的幅度有關(guān),也與待

15、測(cè)信號(hào)與參考信號(hào)的相位差有關(guān),調(diào)整參考信號(hào)的相位,當(dāng)=時(shí),鎖相放大器的輸出信號(hào)與待測(cè)信號(hào)的幅度成正比。總之,由于輸入信號(hào)中的噪聲與參考信號(hào)不相關(guān),經(jīng)積分器積分后,噪聲得到了很好的抑制,而有效信號(hào)得到了放大,從而提高了測(cè)量的精度和信噪比。鎖相放大電路:AD633乘法器輸出與輸入的關(guān)系:Vo=,故輸出為含有直流分量的交流量,經(jīng)過(guò)低通濾波電路除去交流量后為直流量。2號(hào)和4號(hào)管腳接地,8號(hào)管腳和5號(hào)管腳分別串聯(lián)一個(gè)0.1uf的電容接+15v與-15v電源,電容的作用是去噪。3.4.3低通濾波器的選擇方案1:無(wú)源低通濾波器此電路無(wú)放大作用帶負(fù)載后,通帶放大倍數(shù)的數(shù)值減小,通帶截止頻率升高,不符合信號(hào)處理

16、的要求。方案2:有源低通濾波器要求:Aup=-1,fo盡量小。我們選擇: C2=C1=1F R1=R2=R3=51k為了增強(qiáng)濾波效果,我們將兩個(gè)二階低通濾波器串聯(lián)起來(lái),得到四階低通濾波器。3.5軟件設(shè)計(jì) 3.5.1主控芯片方案方案一: 宏晶公司的STC89C52。STC89C52為8位單片機(jī),價(jià)格低,程序易寫,但I(xiàn)/O口少,存小,且需接外部AD,運(yùn)算速度低,功耗高。故舍棄。方案二: ST公司的STM32f103。STM32為32位單片機(jī),頻率高,速度快,功耗低,性價(jià)比高,I/O口數(shù)量多達(dá)51個(gè),存為128k,同時(shí)部自帶12位AD,AD轉(zhuǎn)換精度高,可簡(jiǎn)化電路,易于電路板設(shè)計(jì)和程序編寫。故選此方案

17、。3.2.2顯示電路方案設(shè)計(jì)方案一: 液晶顯示。液晶可以顯示數(shù)字、字符和漢字,但本項(xiàng)目只需顯示數(shù)字便可完成要,同時(shí)液晶的程序控制相對(duì)復(fù)雜。方案二: 數(shù)碼管顯示。數(shù)碼管只能顯示數(shù)字,但程序控制相對(duì)簡(jiǎn)單易于實(shí)現(xiàn)。綜上所述: 由于本項(xiàng)目只需顯示峰峰值,只顯示數(shù)字即可,所以采用方案二。因此采用此方案系統(tǒng)通過(guò)多次AD采樣,將采集后的數(shù)據(jù)進(jìn)行處理除去最大值、最小值,然后將剩下的數(shù)據(jù)取平均值,以減小由于信號(hào)波動(dòng)帶來(lái)的影響。再將平均值數(shù)據(jù)進(jìn)行相應(yīng)處理轉(zhuǎn)換成對(duì)應(yīng)的峰峰值,將峰峰值通過(guò)數(shù)碼管顯示出來(lái)。程序流程圖如下:四、實(shí)驗(yàn)分析與測(cè)試結(jié)果先分別改變輸入正弦波的峰峰值和頻率,觀察數(shù)碼管顯示的峰峰值,再同時(shí)改峰峰值和

18、頻率觀察數(shù)碼管顯示的峰峰值。結(jié)果分析通過(guò)反復(fù)采集數(shù)據(jù)和調(diào)試,對(duì)于基本部分要求200mv2v、誤差0.5%基本完成,而對(duì)于發(fā)揮部分20mv200mv、誤差0.2%只有部分幾個(gè)段落的數(shù)據(jù)能夠滿足要求,其他部分的數(shù)據(jù)則不能達(dá)到誤差要求。同時(shí)頻率在該項(xiàng)目中的影響不大。 發(fā)揮部分不能達(dá)到要求的原因可能如下: 1、該項(xiàng)目為微信號(hào)檢測(cè),所以當(dāng)測(cè)試小信號(hào)是稍微有一點(diǎn)信號(hào)的波動(dòng)和噪音的影響都會(huì)對(duì)顯示數(shù)據(jù)產(chǎn)生一定影響。而在實(shí)際的硬件電路中,波形發(fā)生器的稍微波動(dòng)和線路中的噪音以與環(huán)境中的噪音都會(huì)對(duì)最后的結(jié)果產(chǎn)生一定的影響。 2、由于知識(shí)的欠缺,在軟件方面,還有許多值得提高。在該函數(shù)程序中只采用了計(jì)算平均值、除去最大

19、值、最小值等最為簡(jiǎn)單方法來(lái)消除干擾。而對(duì)于其他高級(jí)算法像FFT、PID等,由于知識(shí)上的不足沒(méi)有被應(yīng)用到程序中。五、總結(jié)本次設(shè)計(jì)以鎖相放大為檢測(cè)微弱信號(hào)裝置的核心,在參考信號(hào)與輸入信號(hào)同頻同相的前提下,使輸出信號(hào)為直流量,然后經(jīng)過(guò)單片機(jī)采樣與數(shù)據(jù)處理通過(guò)數(shù)碼管實(shí)現(xiàn)微弱信號(hào)的幅值顯示。經(jīng)過(guò)軟件與硬件的調(diào)試,基本實(shí)現(xiàn)了題目設(shè)計(jì)的要求。但是本次設(shè)計(jì)還存在很多缺憾,比如發(fā)揮部分沒(méi)有很好的完成,希望在以后的學(xué)習(xí)中能逐步完善。此次設(shè)計(jì)是我們團(tuán)隊(duì)共同努力的成果,滲透著每個(gè)隊(duì)員的心血,從一開(kāi)始的迷茫到討論慢慢熟悉,我們?cè)谄渲幸稽c(diǎn)點(diǎn)共同進(jìn)步,一步步完成了既定的目標(biāo)。我相信只要我們不畏艱難定會(huì)取得更大的進(jìn)步。六、參

20、考文獻(xiàn)1 蒙博宇 STM32自學(xué)筆記 :航空航天大學(xué),2012.22 童詩(shī)白 華成英 模擬電子技術(shù)基礎(chǔ) :高等教育,2006.53 AD633使用手冊(cè)附件附件一:各模塊電路原理圖圖3.1 圖3. 2(a)圖3.2(b) 圖3.4.1(a) 圖3.4.1(b)開(kāi)始102次AD采樣?100次取平均值處理數(shù)據(jù)數(shù)碼管顯示新的AD采樣數(shù)據(jù)?否是是部分測(cè)試數(shù)據(jù)f=500Hz輸入正弦波峰峰值數(shù)碼管顯示峰峰值相對(duì)誤差0.100v0.145v45%0.150v0.165v10%0.200v0.216v8%0.300v0.302v0.70%0.400v0.405v1.25%0.500v0.502v0.40%0.6

21、00v0.625v4.17%0.700v0.721v3.00%0.800v0.815v1.88%0.900v0.912v1.33%1.000v1.011v1.10%1.500v1.513v0.86%2.000v1.999v0.05%f=5kHz 輸入正弦波峰峰值數(shù)碼管顯示峰峰值相對(duì)誤差0.100v0.140v40%0.150v0.175v16.7%0.200v0.213v6.5%0.300v0.309v3%0.400v0.407v1.75%0.500v0.512v2.4%0.600v0.617v2.83%0.700v0.715v2.14%0.800v0.812v1.50%0.900v0.912

22、v1.30%1.000v1.013v1.30%1.500v1.505v0.33%2.000v2.002v0.10%附件二:軟件程序#include "stm32f10x_lib.h"#include "math.h"#define ADC1_DR_Address (u32)0x4001244C)/*數(shù)碼管選通端為PB0,PB1,PB2,PA1*/#define PB0_H GPIO_SetBits(GPIOB,GPIO_Pin_0)#define PB0_L GPIO_ResetBits(GPIOB,GPIO_Pin_0)#define PB1_H GP

23、IO_SetBits(GPIOB,GPIO_Pin_1)#define PB1_L GPIO_ResetBits(GPIOB,GPIO_Pin_1)#define PB2_H GPIO_SetBits(GPIOB,GPIO_Pin_2)#define PB2_L GPIO_ResetBits(GPIOB,GPIO_Pin_2)#define PA1_H GPIO_SetBits(GPIOA,GPIO_Pin_1)#define PA1_L GPIO_ResetBits(GPIOA,GPIO_Pin_1)ErrorStatus HSEStartUpStatus;/* 函數(shù)申明 -*/void R

24、CC_Configuration(void);void GPIO_Configuration(void);void TIM1_Configuration(void);void NVIC_Configuration(void);void ADC1_Configuration(void);/void WWDG_Configuration(void);/void Delay(vu32 nCount); void Delayms (vu32 m); /* 變量定義 -*/vu16 ADC_ConvertedValue;double AD_temp,max,min;double AD_value;dou

25、ble temp102;int i,a=0,b=0,c=0,d=0;double data=0;double t=0;unsigned char table=0;u16 table010=0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF;u16 table110=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/* 函數(shù)名稱 : main(void)* 函數(shù)功能 : 主函數(shù)* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/int main(void) RCC_Configuration();

26、 GPIO_Configuration();/ WWDG_Configuration(); ADC1_Configuration(); TIM1_Configuration(); NVIC_Configuration(); while(1) a=(int)AD_temp;PB0_L; PB1_H; PB2_H; PA1_H; GPIO_Write(GPIOC,table0a); Delayms(1);b=(int)(AD_temp*10);b=b%10;PB0_H; PB1_L; PB2_H; PA1_H; GPIO_Write(GPIOC,table1b); Delayms(1);c=(in

27、t)(AD_temp*100);c=c%10; PB0_H; PB1_H; PB2_L; PA1_H; GPIO_Write(GPIOC,table1c); Delayms(1);d=(int)(AD_temp*1000);d=d%10;PB0_H; PB1_H; PB2_H; PA1_L; GPIO_Write(GPIOC,table1d); Delayms(1); /* 函數(shù)名稱 : RCC_Configuration(void)* 函數(shù)功能 : 時(shí)鐘初始化* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/void RCC_Configuration(void) /* RCC syste

28、m reset(for debug purpose) */ RCC_DeInit(); /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus = SUCCESS) /* HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* P

29、CLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* PLLCLK = 8MHz * 9 = 72 MHz */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* Enable PLL */ RCC_P

30、LLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET) /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x08) /* 函數(shù)名稱 : GPIO_Configuration(void)*

31、 函數(shù)功能 : 端口初始化* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE ); /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPI

32、O_InitStructure.GPIO_Pin = GPIO_Pin_0| /PC0到PC7管腳數(shù)碼管輸出 GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; / 推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; / 最高輸出速率50MHz GPIO_Init(GPIOC, &GPIO_InitStructure); / 選擇

33、C端口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1|GPIO_Pin_2; /數(shù)碼管片選端 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /浮空輸入 GPIO_Init(GPIOB, &GPIO_InitStructure); /選擇B端口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; /數(shù)碼管片選端 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; / 最高輸出速率50MHz GPIO

34、_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /推挽輸出 GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure PC.04 (ADC Channel14) as analog input*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;/ 選中管腳0 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;/ 模擬輸入 GPIO_Init(GPIOA, &GPIO_InitStructure);/選擇A端口/* 函

35、數(shù)名稱 : ADC1_Configuration(void)* 函數(shù)功能 : ADC1初始化* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/void ADC1_Configuration(void) ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE ); /* Time Base configuration */ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;/獨(dú)立工作模式 ADC_InitStructure.ADC

36、_ScanConvMode = ENABLE;/掃描方式 ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;/連續(xù)轉(zhuǎn)換 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/外部觸發(fā)禁止 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/數(shù)據(jù)右對(duì)齊 ADC_InitStructure.ADC_NbrOfChannel = 1;/用于轉(zhuǎn)換的通道數(shù) ADC_Init(ADC1, &ADC_InitSt

37、ructure); ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);/采樣時(shí)間為55.5周期 ADC_DMACmd(ADC1, ENABLE); / 使能 ADC1 DMA ADC_Cmd(ADC1, ENABLE); / 使能 ADC1 ADC_ResetCalibration(ADC1); / 重置指定的ADC的校準(zhǔn)寄存器 while(ADC_GetResetCalibrationStatus(ADC1); /被選中的ADC重置校準(zhǔn)寄存器狀態(tài) Check the end of ADC1 r

38、eset calibration register ADC_StartCalibration(ADC1); / Start ADC1 calibration 開(kāi)始ADC1校準(zhǔn) while(ADC_GetCalibrationStatus(ADC1); /檢查ADC1校準(zhǔn)的結(jié)束Check the end of ADC1 calibration ADC_SoftwareStartConvCmd(ADC1, ENABLE);/開(kāi)始ADC1軟件轉(zhuǎn)換Start ADC1 Software Conversion /* 函數(shù)名稱 : TIM1_Configuration(void)* 函數(shù)功能 : 定時(shí)器1

39、初始化* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/void TIM1_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE ); /* Time Base configuration */ TIM_DeInit(TIM1); TIM_TimeBaseStructure.TIM_Prescaler = 7200-1; /設(shè)置預(yù)分頻器分頻系數(shù)71,即APB2=72M, TIM1_CLK=72/72=1MHz ,

40、 /它的取值必須在0x0000和0xFFFF之間 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; / 向上計(jì)數(shù)模式 TIM_TimeBaseStructure.TIM_Period = 5000-1; / 500ms定時(shí) 它的取值必須在0x0000和0xFFFF之間設(shè)置了在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; /設(shè)置了定時(shí)器時(shí)鐘分割, 時(shí)鐘分頻 TIM_TimeBaseStructure.TIM_RepetitionC

41、ounter = 0x0; / 多少次更新一次 周期計(jì)數(shù) 重復(fù)計(jì)數(shù) 設(shè)置了周期計(jì)數(shù)器值,它的取值必須在0x00和0xFF之間。 TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure); / 根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位 TIM_ClearFlag(TIM1, TIM_FLAG_Update); /清中斷,以免一啟用中斷后立即產(chǎn)生中斷 TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); /使能TIM1中斷源 TIM_Cmd(TIM1, ENABLE); /TI

42、M1總開(kāi)關(guān):開(kāi)啟 /* 函數(shù)名稱 : TIM1_UP_IRQHandler(void)* 函數(shù)功能 : 定時(shí)器1中斷* 輸 入: 無(wú)* 輸 出: 無(wú)* 返 回: 無(wú)*/ void TIM1_UP_IRQHandler(void) double AD_value=0;for(i=0;i<102;i+) tempi=ADC_GetConversionValue(ADC1);/ AD_value=AD_value+ADC_GetConversionValue(ADC1);/ AD_value=AD_value/100.0; max=temp0; min=temp0; for(i=0;i<

43、102;i+) if(max<tempi) max=tempi;else if(min>tempi) min=tempi; AD_value=AD_value+tempi; AD_value=(AD_value-max-min)/100.0;AD_temp=AD_value*3.3/4096;if(AD_temp<0.256890) /600mv if(AD_temp<0.095681) /300mv AD_temp=-19789*pow(AD_temp,4)+7315.6*pow(AD_temp,3)-969.03*pow(AD_temp,2)+58.221*AD_temp-1.1463; else AD_temp=-79839*pow(AD_temp,6)+76318*pow(AD_temp,5)-29490*pow(AD_temp,4)+5909.5*pow(AD_temp,3)-655.45*pow(AD_temp,2)+41.088*AD_temp-0.8917;else AD_temp=-0.004*pow(AD_temp,6)+0.0503*pow(AD_temp,5)-0.2647*pow(AD_temp,4)+0.7533*pow(AD_temp,3)-1.2979*pow(AD_temp,2)+1.8342*AD_temp+0.2063

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論