電子設(shè)計(jì)大賽低功耗數(shù)字多功能表的設(shè)計(jì)制作_第1頁
電子設(shè)計(jì)大賽低功耗數(shù)字多功能表的設(shè)計(jì)制作_第2頁
電子設(shè)計(jì)大賽低功耗數(shù)字多功能表的設(shè)計(jì)制作_第3頁
電子設(shè)計(jì)大賽低功耗數(shù)字多功能表的設(shè)計(jì)制作_第4頁
電子設(shè)計(jì)大賽低功耗數(shù)字多功能表的設(shè)計(jì)制作_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

1、2014年山西省電子設(shè)計(jì)大賽題目:低功耗數(shù)字多功能萬用表技術(shù)報(bào)告參賽學(xué)校:中北大學(xué) 參加人員:指導(dǎo)老師:時(shí)間:2014.10.21低功耗數(shù)字多功能表的設(shè)計(jì)制作摘要:本系統(tǒng)采用飛思卡爾公司提供的 KL26超低功微控制器為控制核心,以 電源模塊、直流電壓測量模塊、交流電壓測量模塊、電阻測量模塊、電容測量模 塊、晶體三極管B參數(shù)測量模塊、12864液晶顯示模塊,正弦信號(hào)產(chǎn)生模塊等為 主要模塊,實(shí)現(xiàn)了對(duì)直流電壓、交流電壓、電阻、電容、三極管B的精確測量, 并成功地完成了發(fā)揮部分自動(dòng)關(guān)機(jī)、 正弦信號(hào)的產(chǎn)生等內(nèi)容。最終經(jīng)過測試,系 統(tǒng)各項(xiàng)測試指標(biāo)都超出題目精度要求。 在整體設(shè)計(jì)中,充分考慮到了系統(tǒng)對(duì)功耗

2、的要求。關(guān)鍵字:低功耗 KL26 精確測量 DDSAbstract: This system take the KL26 very low power microcontroller as the control core ,at the same time ,it take the power module ,AC voltage measurement module, resistance measurementmodule, capacitance measurementmodule, transistor s B parameter measurement module, AD tra

3、nsition module, LCD module , , sinusoidal signal module as the main module . It can achieve function of the accurate measurement of AC, DC, resistance, capacitance, transistor , as while as the extend part . In power supply changeover module, the lose power is produced by 7PS60400DBVT provided by TI

4、 .Finally, all indicators of the system reached the accuracy requirement through test.In the process of designing, to the requirements of the system power consumption,we have full consideration. Low power consumption is also the one big characteristic of this systemKey Words: low-power -consumption

5、KL26 accurate-measurement DDS目錄1 .總體思路與研究方案41.1 系統(tǒng)總體方案 41.2 方案設(shè)計(jì)與論證 41.2.1 電源模塊41.2.2 單片機(jī)控制模塊51.2.3 直流電壓測量模塊 51.2.4 交流電壓測量模塊 51.2.5 電阻測量模塊51.2.6 電容測量模塊61.2.7 晶體三極管3參數(shù)測量模塊 61.2.8 顯示模塊61.2.9 正弦信號(hào)產(chǎn)生模塊71.3 系統(tǒng)設(shè)計(jì)72 .系統(tǒng)電路設(shè)計(jì)82.1 系統(tǒng)總電路圖82.2 電源模塊電路82.3 直流電壓測量電路 92.4 交流電壓測量電路 102.5 電阻測量電路102.6 電容測量電路102.7 晶體三極

6、管3參數(shù)測量電路 112.8 正弦波信號(hào)產(chǎn)生電路 113 .系統(tǒng)軟件設(shè)計(jì)4、系統(tǒng)測試與結(jié)果分析 錯(cuò)誤!未定義書簽。5、設(shè)計(jì)總結(jié)15參考文獻(xiàn).15附錄:161 .總體思路與研究方案電源變換直流電壓測量模塊信號(hào)產(chǎn)生與輸出交流電壓調(diào)量模塊電阻測量模塊單片機(jī)控制系統(tǒng)&AD轉(zhuǎn)換模塊12X64液晶顯示電容例量模塊按鍵輸入定時(shí)關(guān)機(jī)三極管。值測量1.1 系統(tǒng)總體方案設(shè)計(jì)與原理框圖根據(jù)題目要求,系統(tǒng)總體由電源轉(zhuǎn)換模塊,單片機(jī)控制模塊,直流電壓測量, 交流電壓測量,電阻測量模塊,電容測量模塊,三極管B參數(shù)測量模塊,波形產(chǎn) 生模塊和液晶顯示模塊等基本模塊組成。系統(tǒng)原理結(jié)構(gòu)框圖如圖1所示:圖1系統(tǒng)原理框圖1.

7、2 方案設(shè)計(jì)與論證1.2.1 電源模塊系統(tǒng)所有需要供電的模塊均采用 5V供電,同時(shí)運(yùn)放TL062需+5V、-5V雙 電源供電。而題目中要求輸入電壓來自于 9V方電池,所以要進(jìn)行電壓轉(zhuǎn)換。方案一:利用7805芯片產(chǎn)生+5V電壓源,用7905芯片產(chǎn)生-5V電壓源, 是最常用也是最簡單的一種產(chǎn)生 ±5V電源的方案。但是考慮到其功耗較大,應(yīng)用其他方案代替。方案二:利用 78L05芯片產(chǎn)生+5V電壓源,再利用 TI公司提供的 TPS60400DBVT芯片將+5V 電壓轉(zhuǎn)化為-5V 電源。無論是78L05還是 TPS60400DBVT功耗都相對(duì)較低。從功耗和精度等方面綜合考慮,本系統(tǒng)的電源模塊采

8、用方案二。1.2.2 單片機(jī)控制模塊KL26是增強(qiáng)版Cortex-M0+ (CM0+)內(nèi)核的高集成、超低功耗32位微控制器。 子系列特性如下:內(nèi)核時(shí)鐘高達(dá)48MHz總線時(shí)鐘高達(dá)24MHz內(nèi)存空間具有高達(dá) 128KB的閃存和16KB的RAM寬泛的工作電壓:1.71V 3.6V,可對(duì)Flash進(jìn)行編 程/擦除/讀取操作32到80引腳的多種封裝模式運(yùn)行溫度范圍:-40 C 105 C 該系列控制器更低功耗、更經(jīng)濟(jì)有效的特性為開發(fā)者提供了一個(gè)入門級(jí)32位芯片解決方案。該系列對(duì)于低成本、低功耗、高性能芯片應(yīng)用提出了下一代MCU解決方案,該方案對(duì)那些成本敏感、待機(jī)時(shí)間長的便攜式芯片是十分有價(jià)值的。考慮到芯

9、片的功能和功耗,我們選擇 KL26芯片作為主控芯片。1.2.3 直流電壓測量模塊方案一:采用雙積分式直流電壓測量電路。此方案的優(yōu)點(diǎn)是精度相當(dāng)高, 但是電路復(fù)雜,需用許多運(yùn)算放大器,不僅不易焊接調(diào)試,而且成本較高。方案二:采用簡單的電阻和電容串并聯(lián)網(wǎng)絡(luò)來實(shí)現(xiàn)直流電壓的測量。通過 用入測壓網(wǎng)絡(luò)的電阻的變化來改變量程。 經(jīng)過精密的計(jì)算和軟件修正,完全可以 達(dá)到題目的精度要求。故采用此方案.01.2.4 交流電壓測量模塊方案一:采用峰值濾波,此方案電路簡單,功耗較低。但精度不高,芯片 失調(diào)電壓和二極管壓降對(duì)測量值有很大影響。方案二:采用降壓電阻、量程選擇開關(guān)、運(yùn)算放大器輸人保護(hù)電路、AD637轉(zhuǎn)換電路

10、、大電容濾波電路等組成。其中運(yùn)用了TL062超低功耗運(yùn)算放大器,因?yàn)樗粌H功耗低,而且具有高輸入阻抗,低輸入偏離率,高轉(zhuǎn)換速率,輸出短 路保護(hù)等優(yōu)點(diǎn)。經(jīng)選擇我們采用AD637芯片。1.2.5 電阻測量模塊方案一:電橋法。電橋法具有較高的測量精度,被廣泛采用,現(xiàn)已派生出 許多類型。但電橋法測量需要反復(fù)進(jìn)行平衡調(diào)節(jié),測量時(shí)間長,很難實(shí)現(xiàn)快速的 自動(dòng)測量。方案二:伏安法。伏安法測量電阻的原理來源于阻抗的定義。即若已知流 經(jīng)被測阻抗的電流相量并測得被測阻抗兩端的電壓,則通過比率便可得到被測阻抗的相量。綜上所述,伏安法實(shí)現(xiàn)較為容易,我們采用伏安法進(jìn)行對(duì)R、L、C的測量。1.2.6 電容測量模塊方案一:利

11、用串聯(lián)分壓原理的方案。通過電容換算的容抗跟已知電阻分壓, 通過測量電壓值,再經(jīng)過公式換算得到電容的值。由于此方案的測量精度極差, 故不予采用。方案二:利用交流電橋平衡原理的方案,Z1?Z2?ej(1 2) Z2?Zx?ej( 2 x)通過調(diào)節(jié)Z1、Z2使電橋平衡。這時(shí)電表的讀數(shù)為零。通過讀取 Z1、Z2、 Zn的值,即可得到被測電容的值。但需要測量的電容值多,而且測量調(diào)節(jié)麻煩、 電容不易測得準(zhǔn)確值,不易操作與數(shù)字化,故也不采用。方案三:利用555構(gòu)成單穩(wěn)態(tài)原理的方案根據(jù)555定時(shí)器構(gòu)成單穩(wěn)態(tài),產(chǎn)生脈沖波形,通過單片機(jī)讀取高低電平得出 頻率,通過公式換算得到電容值。方案三是比較符合要求的,由于是

12、通過單片機(jī)讀取轉(zhuǎn)化,精確度會(huì)明顯的提 高。故本設(shè)計(jì)選擇了方案三。1.2.7 晶體三極管B參數(shù)測量模塊方案一:基本共射級(jí)放大電路。具優(yōu)點(diǎn)是電路簡單;缺點(diǎn)是由于Ib很小,精 度難以保證。而且由于被測三極管發(fā)射極電壓各有差異, 無法保持基極電流的包方案二:晶體三極管的測量是利用微電流源產(chǎn)生電路產(chǎn)生約 10 nA的微電 流源輸入到待測三極管的基極,此方案產(chǎn)生的基極電流精度高,且不隨被測三級(jí) 管參數(shù)的改變而改變。故采用方案二。其中測量 PNP型三極管時(shí),由于集電極輸出的電壓信號(hào)為 負(fù)值,因此要加一級(jí)由TL062構(gòu)成的反相器電路。1.2.8 AD采樣轉(zhuǎn)換模塊采用KL26內(nèi)部自帶的16位AD進(jìn)行數(shù)據(jù)的采集轉(zhuǎn)

13、換,完全可以達(dá)到測量 精度要求。這樣不僅充分利用了單片機(jī)的內(nèi)部資源,而且降低了功耗,避免了不必要的花費(fèi)。1.2.9 顯示模塊方案一:采用LED數(shù)碼管顯示。數(shù)碼管顯示具有亮度高、夜視效果好等優(yōu)點(diǎn), 但顯示信息量小,無法顯示必要的文字跟符號(hào),且自身功耗較大。方案二:12864cB點(diǎn)P$ LCD液晶顯示。QC12864cBs晶可輕松實(shí)現(xiàn)字母、漢 字、圖像等的顯示,控制簡單。而且其通信方式為并行通信,只需占用兩個(gè)I/O口,節(jié)省單片機(jī)資源。另外,與數(shù)碼管相比其功耗很低。所以采用 12864液晶顯示的方案。1.2.10 低功耗模塊利用單片機(jī)內(nèi)的看門狗定時(shí)器,一旦有按鍵按下,看門狗開始計(jì)時(shí),假如一 分鐘時(shí)間

14、到,如果無按鍵按下,進(jìn)入低功耗模式。如果在此期間,系統(tǒng)檢測到按 鍵按下,則推出低功耗模式,完成喚醒。1.2.11 正弦信號(hào)產(chǎn)生模塊采用產(chǎn)生正弦信號(hào)的專用芯片 AD9850為核心,通過單片機(jī)軟件進(jìn)行控制, 可產(chǎn)生符合要求的正弦波信號(hào),頻率在 01M任意可調(diào),并且幅度可調(diào),有效 值在06V可。1.3 硬件系統(tǒng)設(shè)計(jì)1.3.1 通過對(duì)系統(tǒng)的整體考慮,選擇各模塊方案如下:(1)電源模塊:+5V電源由78L05轉(zhuǎn)換得到,-5V電源由TPS60400DBVT 換得到。(2)控制模塊:飛思卡爾KL26超低功耗單片機(jī)。(3)直流電壓測量模塊:采用簡單的電阻串入電路分壓來改變量程。(4)交流電壓測量模塊:電阻分壓

15、,TL062進(jìn)行放大,AD637進(jìn)行轉(zhuǎn)換。(5)電阻測量模塊:伏安法測阻抗。(6)電容測量模塊:利用分段電阻,555構(gòu)成單穩(wěn)態(tài)原理的方案。(7)三極管B測量:利用精確微電流源經(jīng)過三極管的放大,測試輸出量。(8) AD轉(zhuǎn)換模塊:采用KL26內(nèi)部自帶的16位AD進(jìn)行數(shù)據(jù)的采集轉(zhuǎn)換。(9)顯示模塊:12864點(diǎn)陣LCD液晶顯示。(10)低功耗模塊:利用單片機(jī)內(nèi)的看門狗定時(shí)器實(shí)現(xiàn)。(11)正弦信號(hào)產(chǎn)生模塊:利用 AD9850芯片。1.3.2 理論分析與計(jì)算(1)電阻高精度測量較好的方法之一是采用與標(biāo)準(zhǔn)電阻相比較的方法。其主要原理:是在待測電阻Rx與標(biāo)準(zhǔn)電阻R1的串聯(lián)電路中加一直流電壓 V。AD采樣 R

16、x上電壓Vx ,則測量電阻為:cVxRRx (2)根據(jù)555定時(shí)器構(gòu)成單穩(wěn)態(tài), 出頻率,通過公式換算得到電容值。V Vx產(chǎn)生脈沖波形,通過單片機(jī)讀取高低電平得ln2*(R1 2R2)*Cx若 R1=R2,得 Cx31n2* f *R2 .系統(tǒng)電路設(shè)計(jì)2.1 系統(tǒng)總電路圖2.2 電源模塊電路+5V電源產(chǎn)生電路如圖3所示,9V方電池輸出的電壓經(jīng)過78L05芯片的轉(zhuǎn) 換,再加上濾波電路濾除干擾,輸出穩(wěn)定的+5V電壓。-5V產(chǎn)生電路如圖4所示, 圖3輸出的+5V電壓作為圖4電路的輸入經(jīng)過TPS60400DBVT芯片的轉(zhuǎn)換,變?yōu)?5V輸出47QuFC33.1uF23011FGNDt 2 3 4Heade

17、r 4P3Headet4GND圖3 +5V電壓產(chǎn)生電路+5vVCC卜<>Vo-5 vg-Std圖4 -5V電壓產(chǎn)生電路2.3 直流電壓測量電路該電路是由電阻分壓器所組成的外圍電路構(gòu)成。把基本量程為0.2V的量程擴(kuò)展為三量程的直流電壓擋。圖5直流電壓測量電路2.4交流電壓測量電路史1RJot 時(shí):ADfr"IEUFN NC COM OFFSET C5 DENIK1LTCUT ny NCT吟 75 VCUTCAF NOLrUU11CZH'4ST"CipPd: LXFOUT4*3d*f 2得心MgSitLHj58 L圖6交流電壓測量電路2.5 電阻測量電路圖7

18、電阻測量電路2.6 電容測量電路根據(jù)555定時(shí)器構(gòu)成單穩(wěn)態(tài),產(chǎn)生脈沖波形,通過單片機(jī)讀取高低電平得出 頻率,通過公式換算得到電容值。后接施密特觸發(fā)器起到穩(wěn)定波形的目的。vccT06CH式DISTRIG run Q NDcvdIiGNDR VCC1/4CD4010S圖8電容測量電路2.7 晶體三極管B參數(shù)測量電路圖9 NPN三極管的參數(shù)測量電路圖10 NPN三極管的參數(shù)測量電路2.8 正弦波信號(hào)產(chǎn)生電路圖11正弦波信號(hào)產(chǎn)生電路aI7»Fsa2isF 博上UFiNE3 .系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)采用C語言對(duì)KL26單片機(jī)進(jìn)行編程,從而實(shí)現(xiàn)各模塊的 功能,主程序主要是控制電路的選擇、各

19、參數(shù)的檢測與控制。程序流程圖如圖 12所小。圖12程序設(shè)計(jì)流程圖4 .系統(tǒng)測試與結(jié)果分析表1電阻測試結(jié)果數(shù)字電橋電阻值測試值測試相對(duì)誤差1010.10.014747.30.006310099.8-0.0025105120.00391K997-0.0033.3K3.29K-0.00310K10.42K0.004251K50.65K-0.0069100K100.5K0.005表2電容測試結(jié)果數(shù)字電橋電容值測試值測試相對(duì)誤差10nF10.3nF0.03100nF99.5nF-0.005220nF216nF-0.0181uF0.997nF-0.00310uF10.25uF0.02522uF22.3uF

20、0.01447uF46.2uF-0.017100uF103.3uF0.033表3 PNP三極管測試結(jié)果萬用表標(biāo)稱值測試值測試相對(duì)誤差16016002102110.00482802840.014350346-0.011410408-0.0049460456-0.00875505530.0055表4直流電壓測試結(jié)果直流源標(biāo)稱值測試值測試相對(duì)誤差20mv19.68mv-0.0016100mv100.3mv0.003200mv199.5mv-0.0025500mv503mv0.0061v0.998v-0.0025v4.98v-0.00410v9.96v-0.00415v15.06v0.00420v20

21、.15v0.0075表6交流電壓測試結(jié)果交流源標(biāo)稱值測試值測試相對(duì)誤差20mv19.68mv-0.016200mv201mv0.005400mv398mv-0.005800mv806mv0.00751v1.005v0.0054v4.01v0.00258v7.96v-0.00516v15.89v-0.006920v19.86v-0.007經(jīng)計(jì)算,平均測量誤差為0.67%,滿足題目1.5%的誤差要求 正弦波測試結(jié)果:5 .設(shè)計(jì)總結(jié)經(jīng)過一個(gè)月的努力,我們?nèi)齻€(gè)人終于如期圓滿的完成了本次比賽的設(shè)計(jì)任務(wù)?;仡櫛荣惖娜^程,我們不僅僅是完成了一件作品, 而且提高了我們的創(chuàng)新 精神,動(dòng)手能力和團(tuán)隊(duì)協(xié)作能力,這

22、將是我們?nèi)松?dāng)中的一筆寶貴的財(cái)富。 經(jīng)過 此次電子設(shè)計(jì)大賽讓我們對(duì)電路的設(shè)計(jì)、 調(diào)試有了深刻的印象,對(duì)電子電路和微處理器的知識(shí)加深了理解。同時(shí)也深刻地體會(huì)到了共同協(xié)作和團(tuán)隊(duì)精神的重要性,提高了我們解決問題的能力。本系統(tǒng)經(jīng)過測試,順利滿足了題目基本要求部分的各項(xiàng)指標(biāo)的要求, 并完成 了發(fā)揮部分的要求,充分利用了 KL26片上的資源。從系統(tǒng)的低功耗出發(fā),采用 了很多低功耗的方案。設(shè)計(jì)中還有欠缺的方面,今后的學(xué)習(xí)工作中會(huì)加以注意。最后感謝大賽組委會(huì)給我們這次展現(xiàn)自我機(jī)會(huì)!參考文獻(xiàn)1韓徭,數(shù)字電子技術(shù)基礎(chǔ),電子工業(yè)出版社,2009.62韓徭,模擬電子技術(shù)基礎(chǔ),電子工業(yè)出版社,2009.6附錄:1.正弦

23、波測試結(jié)果:低功耗數(shù)字多功能表/* 文件:app.c*/#include "common.h"#include "include.h"#include "dgnb.h"#include "dh12864.h"extern vuint8 key;extern vuint8 flagl; void main()dgnb_init();EnableInterrupts;enable_irq (PIT_IRQn); / 使能 PIT0 中斷10msLED0*/pit_init_ms(PIT0,60000);初始化 PIT0

24、,定時(shí)時(shí)間為led_init(LED0);初始化 LED0 , PIT0 中斷用到flag1=1; while(1) key=get_status1();if(flag1=1) switch(key) case 0x80:get_cap(); break;case 0x40:get_res(); break;case 0x20: get_DC(); break;case 0x10:get_AC(); break;case 0x04:get_npn();break;case 0x02:get_pnp();break;case 0x01:dds();break;default:break;/* 文

25、件:dgnb.c*/#include "include.h"#include "dh12864.h"#include "common.h"#include "dgnb.h"#include "ad9850.h"int8 n=0;vuint32 tmp=0;uint8 dis6=0,0,0,0,0,0;void dgnb_init() adc_init (ADC0_SE2);adc_init (ADC0_SE1 );adc_init (ADC0_SE6a);adc_init (ADC0_SE5a)

26、;adc_init (ADC0_SE3);tpm_pwm_init(TPM0, TPM_CH0,1000,50);初始化 PWMtpm_pulse_init(TPM2,TPM_CLKIN0,TPM_PS_1);初始化 TPM2 為脈沖累力口,輸入管腳為TPM_CLKIN0_PIN ,分頻系數(shù)為 1gpio_init(PTC8 ,GPI,1);port_init_NoALT (PTC8,PULLUP );gpio_init(PTC9 ,GPI,1);port_init_NoALT (PTC9,PULLUP );gpio_init(PTC10 ,GPI,1);port_init_NoALT (PT

27、C10,PULLUP );gpio_init(PTC11 ,GPI,1);port_init_NoALT (PTC11,PULLUP);gpio_init(PTD1 ,GPI,1);port_init_NoALT (PTD1,PULLUP);gpio_init(PTD2 ,GPI,1);port_init_NoALT (PTD2,PULLUP);gpio_init(PTD3 ,GPI,1);port_init_NoALT (PTD3,PULLUP);gpio_init(PTD4 ,GPI,1);port_init_NoALT (PTD4,PULLUP);gpio_init(PTB7 ,GPI,

28、1);port_init_NoALT (PTB7,PULLUP);gpio_init(PTB8 ,GPI,1);port_init_NoALT (PTB8,PULLUP);gpio_init(PTB9 ,GPI,1);port_init_NoALT (PTB9,PULLUP);dhport_12864();dhlcd_init_12864();ad9850_init();ad9850_serial_reset();key_init(KEY_U);key_init(KEY_D);key_init(KEY_L);key_init(KEY_R);Disablelnterrupts;void writ

29、enum_c(double num,uint8 x,uint8 y)uint8 dis5;uint8 i=0;double num_buf;num_buf=num*10+0.5;dis0=(uint16)num_buf/1000;dis1=(uint16)num_buf%1000/100;dis2=(uint16)num_buf%100/10;dis4=(uint16)num_buf%10;dhlcd_pos_12864(x,y);if(dis0>=2) writestr("1 ",x,y);else for(i = 0;i<= 4;i+) if(i=3) dh

30、write_dat_12864('.');elsedhwrite_dat_12864('0'+disi); void writenum_s(double num,uint8 x,uint8 y)uint8 dis3=0,0,0;uint8 i=0;dis0=(uint16)num/100;dis1=(uint16)num%100/10;dis2=(uint16)num%10;dhlcd_pos_12864(x,y);for(i = 0;i<= 2;i+) dhwrite_dat_12864('0'+disi); void writenum_

31、res(float res_buf,uint8 x,uint8 y)uint8 dis5;uint8 i=0,key5;float num;uint32 num_buf;key5=get_status2();switch (key5)case 0x01:num=res_buf*100.0/(3.3-res_buf);num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000;dis1=num_buf%1000/100; dis2=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y); if(dis>=2)

32、 writestr("1 ",x,y); else for(i = 0;i<= 4;i+) if(i=3) dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi); writestr(" ",x,y+3);break;case 0x02:num=res_buf*100.7/(3.3-res_buf); num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000; dis2=num_buf%1000/100; dis3=num_bu

33、f%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y); if(dis>=2)writestr("1 ",x,y); else for(i = 0;i<= 4;i+) if(i=1) dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("K",x,y+3);break;case 0x04:num=res_buf*101.0/(3.3-res_buf);num_buf=(uint32)(num*10+0

34、.5);dis0=num_buf/1000;dis1=num_buf%1000/100;dis3=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(dis>=2)writestr("1 ",x,y);elsefor(i = 0;i<= 4;i+)if(i=2)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("K",x,y+3);break;default:break;voi

35、d writenum_av(float ac_buf1,uint8 x,uint8 y)uint8 dis5;uint8 i=0,key2;uint32 num_buf;float num;key2=get_status2();switch (key2)case 0x01:num=ac_buf1*115.0; 根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000;dis1=num_buf%1000/100;dis2=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(d

36、is>=2)writestr("1 ",x,y);elsefor(i = 0;i<= 4;i+)if(i=3)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("mV”,x,y+3);break;case 0x02:num=ac_buf1*115; /根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000;dis2=num_buf%1000/100;dis3=num_buf%10

37、0/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(dis>=2)writestr("1 ",x,y);elsefor(i = 0;i<= 4;i+)if(i=1)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("V ",x,y+3);break;case 0x04:num=ac_buf1*120; 根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=

38、num_buf/1000;dis1=num_buf%1000/100;dis3=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(dis>=2) writestr("1 ",x,y); elsefor(i = 0;i<= 4;i+)if(i=2)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("V ",x,y+3);break;default: break;void wri

39、tenum_dv(float dc_buf,uint8 x,uint8 y)uint8 dis5;uint8 i=0,key2;uint32 num_buf;float num;key2=get_status2();switch (key2) case 0x01:num=dc_buf*98; /根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000;dis1=num_buf%1000/100;dis2=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(dis>=2

40、)writestr("1 ",x,y);elsefor(i = 0;i<= 4;i+)if(i=3)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("mV”,x,y+3);break;case 0x02:num=dc_buf*94.0; 根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=num_buf/1000;dis2=num_buf%1000/100;dis3=num_buf%100/10;dis4

41、=num_buf%10;dhlcd_pos_12864(x,y);if(dis0>=2)writestr("1 ",x,y); elsefor(i = 0;i<= 4;i+) if(i=1)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("V ",x,y+3);break;case 0x04:num=dc_buf*97; /根據(jù)電路計(jì)算交流直流電壓值 num_buf=(uint32)(num*10+0.5);dis0=num_buf

42、/1000;dis1=num_buf%1000/100;dis3=num_buf%100/10;dis4=num_buf%10;dhlcd_pos_12864(x,y);if(dis>=2) writestr("1 ",x,y);elsefor(i = 0;i<= 4;i+)if(i=2)dhwrite_dat_12864('.');elsedhwrite_dat_12864('0'+disi);writestr("V ",x,y+3);break;default:break;void get_cap()dou

43、ble count_buf;double cap_buf;uint8 key;writestr("電容值",0,0);key=get_status2();count_buf=tpm_ave(TPM2, 3);保存脈沖計(jì)數(shù)器計(jì)算值switch (key)case 0x01:cap_buf=(1/2.0794415418/count_buf/1000)*1000000000; 電容計(jì)算公式 writenum_c(cap_buf,1,3);writestr("nF",1,6);DELAY_MS(500);break;case 0x02:cap_buf=(1/2

44、.0794415418/count_buf/213.0)*1000000; 電容計(jì)算公式 writenum_c(cap_buf,1,3);writestr("uF",1,6);DELAY_MS(500);break;default:break;void get_res()uint16 ave;float res_buf;ave= ad_ave(ADC0_SE2, ADC_10bit , 50);res_buf=(float)ave/1024.0)*3.300;writestr("電阻值",0,0);writenum_res(res_buf,1,4);DE

45、LAY_MS(500);void get_DC()uint16 ave;float dc_buf;ave= ad_ave(ADC0_SE6a, ADC_10bit , 30);dc_buf=(float)ave/1024.0)*3.42;writestr("直流電壓測量值:",0,0);writenum_dv(dc_buf,1,3);DELAY_MS(500);void get_AC()uint16 ave;float ac,ac_buf;ave= ad_ave(ADC0_SE5a, ADC_10bit , 30);ac_buf=(float)ave/1024.0)*3.3

46、;writestr("交流電壓測量值:",0,0);writenum_av(ac_buf,1,3);DELAY_MS(500);void get_npn()uint16 ave;float npn_buf,npn;ave= ad_ave(ADC0_SE1, ADC_10bit , 30);npn_buf=(float)ave/1024.0)*3.306;npn=(5.22-npn_buf)*1000/10.0;writestr("npn 放大彳音數(shù):",0,0);writenum_s(npn,1,2);DELAY_MS(500);void get_pnp

47、()uint16 ave;float pnp_buf,pnp;ave= ad_ave(ADC0_SE3, ADC_10bit , 50);pnp_buf=(float)ave/1024.0)*3.306;pnp=(pnp_buf+0.2)*1000/10;/AD轉(zhuǎn)化值/獲取實(shí)際電壓/放大倍數(shù)計(jì)算公式/AD轉(zhuǎn)化值/獲取實(shí)際電壓放大倍數(shù)計(jì)算公式writestr("pnp 放大限音數(shù):",0,0);writenum_s(pnp,1,2);DELAY_MS(500);void dds()if(key_check(KEY_U) = KEY_DOWN) 檢測key狀態(tài)(帶延時(shí)消抖)disn+;if(disn>9)disn=0;while(!key_check(KEY_U);if(key_check(KEY_D) = KEY_DOWN) 檢測 key 狀態(tài)(帶延時(shí)消抖) disn卜-;if(disn<0)disn=9;while(!key_check(KEY_D);if(key_check(KEY_L) = KEY_DOWN) 檢測 key 狀態(tài)(帶延時(shí)消抖) n-;if(n<0)n=5;while(!key_ch

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論