基于arm的電阻電容電感測試儀_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著電子工業(yè)的發(fā)展,電子元器件急劇增加,電子元器件的適用范圍也逐漸廣泛起來,在應用中我們常常要測定電阻,電容,電感的大小。因此,設計可靠,安全,便捷的電阻,電容,電感測試儀具有極大的現(xiàn)實必要性。</p><p>  在系統(tǒng)硬件設計中,以LPC2103的ARM為核心的電阻、電容、電感測試儀,將電阻,電容

2、,電感,使用對應的振蕩電路轉化為頻率實現(xiàn)各個參數(shù)的測量。其中電阻和電容是采用555多諧振蕩電路產生的,而電感則是根據(jù)西勒電路產生的,并用ARM中定時器1的捕獲功能捕獲其頻率,通過定時并且計數(shù)可以計算出被測頻率,再通過該頻率計算出被測參數(shù)。</p><p>  在系統(tǒng)的軟件設計是以CodeWarrior為仿真平臺,使用C語言編程編寫了系統(tǒng)應用軟件;包括主程序模塊、顯示模塊、電阻測試模塊、電容測試模塊和電感測試模塊。

3、</p><p>  最后,實際制作了一臺樣機,在實驗室里進行了測試,結果表明該樣機的功能和指標得到了設計要求。</p><p>  關鍵字:555振蕩電路、LPC2103、電阻電容電感</p><p><b>  目 錄</b></p><p><b>  摘 要ii</b></p&

4、gt;<p><b>  第一章 前言2</b></p><p>  設計的背景及意義2</p><p>  電阻、電容、電感測試儀的發(fā)展歷史及研究現(xiàn)狀2</p><p>  本設計所做的工作4</p><p>  第二章 電阻、電容、電感測試儀設計方案比較5</p><p&g

5、t;  第三章 系統(tǒng)的原理框圖6</p><p>  555定時器簡介7</p><p>  測量電阻電路的設計9</p><p><b>  電容測試電路10</b></p><p>  測量電感的電路設計11</p><p>  電阻、電容、電感測試儀的軟件設計13</p&g

6、t;<p><b>  主程序流程圖14</b></p><p>  第四章 測試儀測試值分析:19</p><p>  第五章 參考文獻22</p><p><b>  6.附錄一23</b></p><p><b>  附錄二26</b></p

7、><p><b>  前言</b></p><p><b>  設計的背景及意義</b></p><p>  目前,隨著電子工業(yè)的發(fā)展,電子元器件急劇增加,電子元器件的適用范圍也逐漸廣泛起來,在應用中我們常常要測定電阻,電容,電感的大小。因此,設計可靠,安全,便捷的電阻,電容,電感測試儀具有極大的現(xiàn)實必要性。</p>

8、;<p>  通常情況下,電路參數(shù)的數(shù)字化測量是把被測參數(shù)傳換成直流電壓或頻率后進行測量。</p><p>  電阻測量依據(jù)產生恒流源的方法分為電位降法、比例運算器法和積分運算器法。比例運算器法測量誤差稍大,積分運算器法適用于高電阻的測量。</p><p>  傳統(tǒng)的測量電容方法有諧振法和電橋法兩種。前者電路簡單,速度快,但精度低;后者測量精度高,但速度慢。隨著數(shù)字化測量技術

9、的發(fā)展,在測量速度和精度上有很大的改善,電容的數(shù)字化測量常采用恒流法和比較法。</p><p>  電感測量可依據(jù)交流電橋法,這種測量方法雖然能較準確的測量電感但交流電橋的平衡過程復雜,而且通過測量Q值確定電感的方法誤差較大,所以電感的數(shù)字化測量常采用時間常數(shù)發(fā)和同步分離法。</p><p>  由于測量電阻,電容,電感方法多并具有一定的復雜性,所以本次設計是在參考555振蕩器基礎上擬定的

10、一套自己的設計方案。是嘗試用555振蕩器將被測參數(shù)轉化為頻率,這里我們將RLC的測量電路產生的頻率通過ARM捕獲其頻率,通過定時并且計數(shù)可以計算出被測頻率再通過該頻率計算出各個參數(shù)。</p><p>  電阻、電容、電感測試儀的發(fā)展歷史及研究現(xiàn)狀</p><p>  當今電子測試領域,電阻,電容和電感的測量已經在測量技術和產品研發(fā)中應用的十分廣泛。</p><p>

11、  電阻、電容和電感測試發(fā)展已經很久,方法眾多,常用測量方法如下。電阻測量依據(jù)產生恒流源的方法分為電位降法、比例運算器法和積分運算器法。比例運算器法測量誤差稍大,積分運算器法適用于高電阻的測量。傳統(tǒng)的測量電容方法有諧振法和電橋法兩種。前者電路簡單,速度快,但精度低;后者測量精度高,但速度慢。隨著數(shù)字化測量技術的發(fā)展,在測量速度和精度上有很大的改善,電容的數(shù)字化測量常采用恒流法和比較法。電感測量可依據(jù)交流電橋法,這種測量方法雖然能較準確的

12、測量電感但交流電橋的平衡過程復雜,而且通過測量Q值確定電感的方法誤差較大,所以電感的數(shù)字化測量常采用時間常數(shù)發(fā)和同步分離法。</p><p>  在我國1997年05月21日中國航空工業(yè)總公司研究出一種電阻、電容、電感在線測量方法及裝置等電位隔離方法,用于對在線的電阻、電容、電感元件實行等電位隔離,其特征在于,(1)將一個運算放大器的輸出端與其反相輸入端直接連接,形成一個電壓跟隨器;(2)將基準精密電阻(R)的一

13、端與被隔離的在線元件(Z↓[x])的一端通過導線連接,基準精密電阻(R)的另一端與信號源(V↓[i])或者地連接,被隔離的在線元件(Z↓[x])的另一端通過導線與地或者信號源(V↓[i])連接,基準精密電阻(R)與被隔離的在線元件(Z↓[x])連接的一端同時與運算放大器的同相輸入端連接;(3)通過導線將運算放大器的輸出端與線路板上所有的隔離點(C)連接,隔離點(C)的確定方法是:在線路板上凡是與被隔離的在線元件(Z↓[x])靠近信號源(

14、V↓[i])的一端(A)相連的電阻、電容、電感元件的另一端均為隔離端(C)。</p><p>  中國本土測量儀器設備發(fā)展的主要瓶頸。盡管本土測試測量產業(yè)得到了快速發(fā)展,但客觀地說中國開發(fā)測試測量儀器還普遍比較落后。每當提起中國測試儀器落后的原因,就會有許多不同的說法,諸如精度不高,外觀不好,可靠性差等。實際上,這些都還是表面現(xiàn)象,真正影響中國測量儀器發(fā)展的瓶頸為:</p><p>  1

15、.測試在整個產品流程中的地位偏低。由于人們的傳統(tǒng)觀念的影響,在產品的制造流程中,研發(fā)始終處于核心位置,而測試則處于從屬和輔助位置。關于這一點,在幾乎所有的研究機構部門配置上即可窺其一斑。這種錯誤觀念上的原因,造成整個社會對測試的重視度不夠,從而造成測試儀器方面人才的嚴重匱乏,造成相關的基礎科學研究比較薄弱,這是中國測量儀器發(fā)展的一個主要瓶頸。實際上,即便是研發(fā)隊伍本身,對測試的重視度以及對儀器本身的研究也明顯不夠。 </p>

16、<p>  2.面向應用和現(xiàn)代市場營銷模式還沒有真正建立起來。本土儀器設備廠商只是重研發(fā),重視生產,重視狹義的市場,還沒有建立起一套完整的現(xiàn)代營銷體系和面向應用的研發(fā)模式。傳統(tǒng)的營銷模式在計劃經濟年代里發(fā)揮過很大作用,但無法滿足目前整體解方案流行年代的需求。所以,為了快速縮小與國外先進公司之間的差距,國內儀器研發(fā)企業(yè)應加速實現(xiàn)從面向仿制的研發(fā)向面向應用的研發(fā)的過渡。特別是隨著國內應用需求的快速增長,為這一過渡提供了根本動力

17、,應該利用這些動力,跟蹤應用技術的快速發(fā)展。</p><p>  3.缺乏標準件的材料配套體系。由于歷史的原因,中國儀器配套行業(yè)的企業(yè)多為良莠不齊的小型企業(yè),標準化的研究也沒有跟上需求的快速發(fā)展,從而導致儀器的材料配套行業(yè)的技術水平較低。雖然目前已有較大的改觀,但距離整個產業(yè)的要求還有一定距離。所以,還應把標準化和模塊化的研究放到重要的位置。還有,在技術水平沒有達到的條件下,一味地追求精度或追求高指標,而沒有處理

18、好與穩(wěn)定性之間的關系。上述這些都是制約本土儀器發(fā)展的因素。</p><p>  近年來我國測量儀器的可靠性和穩(wěn)定性問題得到了很多方面的重視,狀況有了很大改觀。測試儀器行業(yè)目前已經越過低谷階段,重新回到了快速發(fā)展的軌道,尤其最近幾年,中國本土儀器取得了長足的進步,特別是通用電子測量設備研發(fā)方面,與國外先進產品的差距正在快速縮小,對國外電子儀器巨頭的壟斷造成了一定的沖擊。隨著模塊化和虛擬技術的發(fā)展,為中國的測試測量儀

19、器行業(yè)帶來了新的契機,加上各級政府日益重視,以及中國自主應用標準研究的快速進展,都在為該產業(yè)提供前所未有的動力和機遇。從中國電子信息產業(yè)統(tǒng)計年鑒中可以看出,中國的測試測量儀器每年都以超過30%以上的速度在快速增長。在此快速增長的過程中,無疑催生出了許多測試行業(yè)新創(chuàng)企業(yè),也催生出了一批批可靠性和穩(wěn)定性較高的產品。</p><p><b>  本設計所做的工作</b></p>&l

20、t;p>  本設計是以555為核心的振蕩電路,將被測參數(shù)模擬轉化為頻率,并利用ARM實現(xiàn)計算頻率,所以,本次設計需要做好以下工作:</p><p>  (1)學習ARM原理等資料。</p><p>  (2)學習CodeWarrior H-JTAG等工具軟件的使用方法。</p><p>  (3)設計測量電阻,電容,電感的振蕩電路。</p>&

21、lt;p>  (4)設計測量LED動態(tài)顯示電路。</p><p>  (5)設計測量頻率程序,設置程序。</p><p>  (6)用Multisim軟件仿真電路。</p><p>  (7)用DXP軟件繪制電原理圖和印刷電路版圖。</p><p>  (8)制作好測試儀電路板。</p><p>  (9)安裝和

22、調試,并進行實際測試,記錄測試數(shù)據(jù)和結果。</p><p>  (10)撰寫項目論文。</p><p>  電阻、電容、電感測試儀設計方案比較</p><p>  電阻、電容、電感測試儀的設計可用多種方案完成,例如利用模擬電路,電阻可用比例運算器法和積分運算器法,電容可用恒流法和比較法,電感可用時間常數(shù)發(fā)和同步分離法等、使用可編程邏輯控制器(PLC)、振蕩電路與單片

23、機結合或CPLD與EDA相結合等等來實現(xiàn)。在設計前對各種方案進行了比較:</p><p><b>  1)利用純模擬電路</b></p><p>  雖然避免了編程的麻煩,但電路復雜,所用器件較多,靈活性差,測量精度低,現(xiàn)在已較少使用。 2)可編程邏輯控制器(PLC) </p><p>  應用廣泛,它能夠非常方便地集成到工業(yè)控制系統(tǒng)

24、中。其速度快,體積小,可靠性和精度都較好,在設計中可采用PLC對硬件進行控制,但是用PLC實現(xiàn)價格相對昂貴,因而成本過高。 </p><p>  3)采用CPLD或FPGA實現(xiàn)</p><p>  應用目前廣泛應用的VHDL硬件電路描述語言,實現(xiàn)電阻,電容,電感測試儀的設計,利用MAXPLUSII集成開發(fā)環(huán)境進行綜合、仿真,并下載到CPLD或FPGA可編程邏輯器件中,完成系統(tǒng)的控制作

25、用。但相對而言規(guī)模大,結構復雜。</p><p>  4)利用振蕩電路與ARM結合</p><p>  利用555多諧振蕩電路將電阻,電容參數(shù)轉化為頻率,而電感則是根據(jù)西勒電路也轉化為頻率,這樣就能夠把模擬量近似的轉換為數(shù)字量,而頻率f是ARM很容易處理的數(shù)字量,一方面測量精度高,另一方面便于使儀表實現(xiàn)自動化,而且ARM構成的應用系統(tǒng)有較大的可靠性。系統(tǒng)擴展、系統(tǒng)配置靈活。容易構成各種規(guī)模

26、的應用系統(tǒng),且應用系統(tǒng)有較高的軟、硬件利用系數(shù)。ARM具有可編程性,硬件的功能描述可完全在軟件上實現(xiàn),而且設計時間短,成本低,可靠性高。</p><p>  綜上所述,利用振蕩電路與ARM結合實現(xiàn)電阻、電容、電感測試儀更為簡便可行,節(jié)約成本。所以,本次設計選定以ARM為核心來進行。</p><p><b>  系統(tǒng)的原理框圖</b></p><p&

27、gt;  本設計中,考慮到ARM具有物美價廉、功能強、使用方便靈活、可靠性高等特點,擬采用PLC2103系列的ARM為核心來實現(xiàn)電阻、電容、電感測試儀的控制。系統(tǒng)分四大部分:測量電路、控制電路、捕獲頻率和顯示電路。通過P0.11口捕獲,取得相應的振蕩頻率,然后根據(jù)所測頻率判斷是否轉換量程,或者是把數(shù)據(jù)進行處理后,得出相應的參數(shù)值。系統(tǒng)設計框圖如圖 三1如下所示。</p><p>  框圖各部分說明如下:<

28、/p><p>  1)控制部分:本設計以ARM為核心,采用PLC-2103,利用其定時器的捕獲功能以及所具備的中斷系統(tǒng),鍵盤顯示板和LED顯示功能等。LED燈:本設計中,設置了3盞綠色指示燈,LED1為電容測試電路,LED2為電阻測試電路,LED3為電感測試電路。數(shù)碼管顯示:本設計中有2個74HC595、8個按鍵和6個數(shù)碼管,采用共陽極方式連接構成動態(tài)顯示部分,降低功耗。鍵盤:本設計中有KEY1,KEY2,KEY3三

29、個按鍵,可靈活控制不同測量參數(shù)的切換,實現(xiàn)一鍵測量。</p><p>  2)通道選擇:本設計通過ARM控制的定時器1來捕獲被測頻率的自動選擇。</p><p>  3)測量電路:RC震蕩電路是利用555振蕩電路實現(xiàn)被測電阻和被測電容頻率化。西勒振蕩電路是利用西勒振蕩電路實現(xiàn)被測電感參數(shù)頻率化。通過ARM強大的運算功能,實現(xiàn)自動測量。</p><p><b&g

30、t;  555定時器簡介</b></p><p>  555定時器是一種模擬電路和數(shù)字電路相結合的中規(guī)模集成器件,它性能優(yōu)良,適用范圍很廣,外部加接少量的阻容元件可以很方便地組成單穩(wěn)態(tài)觸發(fā)器和多諧振蕩器,以及不需外接元件就可組成施密特觸發(fā)器。因此集成555定時被廣泛應用于脈沖波形的產生與變換、測量與控制等方面。</p><p>  1)555定時器內部結構</p>

31、<p>  555定時器是一種模擬電路和數(shù)字電路相結合的中規(guī)模集成電路,其內部結構如圖 三2(A)部分及管腳排列如圖(B)部分所示。</p><p>  圖 三2 555定時器內部結構</p><p>  它由分壓器、比較器、基本R--S觸發(fā)器和放電三極管等部分組成。分壓器由三個5KΩ的等值電阻串聯(lián)而成。分壓器為比較器A1、A2提供參考電壓,比較器A1的參考電壓為 ,加在同

32、相輸入端,比較器A2的參考電壓為 ,加在反相輸入端。比較器由兩個結構相同的集成運放A1、A2組成。高電平觸發(fā)信號加在A1的反相輸入端,與同相輸入端的參考電壓比較后,其結果作為基本R--S觸發(fā)器 端的輸入信號;低電平觸發(fā)信號加在A2的同相輸入端,與反相輸入端的參考電壓比較后,其結果作為基本R--S觸發(fā)器 端的輸入信號?;綬--S觸發(fā)器的輸出狀態(tài)受比較器A1、A2的輸出端控制。</p><p>  2)多諧振蕩器工

33、作原理</p><p>  由555定時器組成的多諧振蕩器如 圖 三3(C)部分所示,其中R1、R2和電容C為外接元件。其工作波如圖(D)部分所示。</p><p>  圖 三3 振蕩器工作原理</p><p>  設電容的初始電壓Uc=0,t=0時接通電源,由于電容電壓不能突變,所以高、低觸發(fā)端VTH=VTL=0 ,比較器A1輸出為高電平,A2輸出為低電

34、平,即 =1, =0(1表示高電位,0表示低電位),R--S觸發(fā)器置1,定時器輸出u0=1此時 ,定時器內部放電三極管截止,電源Vcc經R1,R2向電容C充電,uc逐漸升高。當uc上升到 時,A2輸出由0翻轉為1,這時 = =1,R--S觸發(fā)順保持狀態(tài)不變。所以0<t<t1期間,定時器輸出u0為高電平1。</p><p>  時刻,uc上升到 ,比較器A1的輸出由1變?yōu)?,這時 =0, =1,R--S

35、觸發(fā)器復0,定時器輸出u0=0。</p><p>  期間, ,放電三極管T導通,電容C通過R2放電。uc按指數(shù)規(guī)律下降,當時比較器A1輸出由0變?yōu)?,R--S觸發(fā)器的 = =1,Q的狀態(tài)不變,u0的狀態(tài)仍為低電平。</p><p>  時刻,uc下降到 ,比較器A2輸出由1變?yōu)?,R--S觸發(fā)器的 =1, =0,觸發(fā)器處于1,定時器輸出u0=1。此時電源再次向電容C放電,重復上述過程。&

36、lt;/p><p>  通過上述分析可知,電容充電時,定時器輸出u0=1,電容放電時,u0=0,電容不斷地進行充、放電,輸出端便獲得矩形波。多諧振蕩器無外部信號輸入,卻能輸出矩形波,其實質是將直流形式的電能變?yōu)榫匦尾ㄐ问降碾娔堋?lt;/p><p><b>  3)振蕩周期</b></p><p>  由圖(D)可知,振蕩周期T=T1+T2。T1為電容

37、充電時間,T2為電容放電時間。</p><p><b>  充電時間:</b></p><p><b>  (3-2)</b></p><p><b>  放電時間:</b></p><p><b>  (3-3)</b></p><p

38、><b>  矩形波的振蕩周期:</b></p><p><b>  (3-4)</b></p><p>  對于矩形波,除了用幅度,周期來衡量外,還有一個參數(shù):占空比q,q=(脈寬tw)/(周期T),tw指輸出一個周期內高電平所占的時間。圖(C)所示電路輸出矩形波的占空比:</p><p><b>  (

39、3-5)</b></p><p><b>  測量電阻電路的設計</b></p><p>  定時器555是一種用途很廣的集成電路,只需外接少量R、C元件,就可以構成多諧、單穩(wěn)及施密特觸發(fā)器。電阻的測量采用“脈沖計數(shù)法”,由555電路構成的多諧振蕩電路,通過計算振蕩輸出的頻率來計算被測電阻的大小。</p><p>  圖 三4電阻

40、測試電路仿真圖</p><p>  555接成多諧振蕩器的形式,其振蕩周期為:</p><p><b>  (3-6)</b></p><p><b>  得出:</b></p><p><b>  (3-7)</b></p><p>  即:

41、 </p><p><b>  (3-8) </b></p><p><b>  電容測試電路</b></p><p>  電容的測量同樣采用“脈沖計數(shù)法”,由555電路構成的多諧振蕩電路,通過計算振蕩輸出的頻率來計算被測電容的大小。</p><p>  圖 三5電容測試

42、電路</p><p>  555接成多諧振蕩器的形式,其振蕩周期為:</p><p><b>  (3-11)</b></p><p>  我們設置 R1=R2,</p><p><b>  得出:</b></p><p><b>  (3-12)</b>

43、;</p><p>  即: (3-13)</p><p><b>  測量電感的電路設計</b></p><p>  電感的測量是采用電容三點式振蕩電路來實現(xiàn)的。電容三點式振蕩電路又稱考畢茲振蕩電路,三點式振蕩電路是指:LC回路中與發(fā)射極相連的兩個電抗元件

44、必須是同性質的,另外一個電抗元件必須為異性質的,而與發(fā)射級相連的兩個電抗元件同為電容式的三點式振蕩電路,也就是"射同基反"的構成原則成為電容三點式振蕩電路。其振蕩頻率為:</p><p>  圖 三6電容三點式振蕩電路</p><p>  由于電容三點式振蕩電路(考畢茲電路)不易起振,頻率不易調整,所以采用并聯(lián)改進型電容三點式振蕩電路(西勒電路),西勒電路易起振,易調

45、整,頻率穩(wěn)定,實際應用較多。</p><p>  圖 三7電感測試電路</p><p>  電阻、電容、電感測試儀的軟件設計</p><p>  KEY1 C測量程序的選擇</p><p>  KEY2 R測量程序的選擇</p><p>  KEY3 L測量程序的選擇</p><p>&

46、lt;b>  主程序流程圖</b></p><p>  在電阻、電容、電感測試儀的設計中,便于直觀性,在數(shù)碼管上顯示被測參數(shù)的選擇,被測參數(shù)各個燈的選擇以及具體設置。通過三個按鍵KEY1,KEY2,來進行靈活控制,具體操作如下:</p><p>  首先插入被測元件,用ARM運行測試儀程,序然后進行按鍵選擇,選擇被測參數(shù)類別,之后單片機根據(jù)按鍵類別啟動相應的參數(shù)測試程序,

47、測試完畢后將結果送入數(shù)碼管顯示。</p><p>  數(shù)碼管顯示模塊:Timer0為數(shù)碼管掃描使用定時器。為數(shù)碼管提供掃描頻率。</p><p>  捕獲模塊:Timer1為捕獲頻率模塊,起到捕獲電路產生的頻率。</p><p>  按鍵選擇模塊:當按下KEY1時,LED1亮,測試被測電容的值;</p><p>  當按下KEY2時,LED2

48、亮,測試被測電阻的值;</p><p>  當按下KEY3時,LED3亮,測試被測電感的值;</p><p>  RLC測試儀的軟件流程圖</p><p>  .頻率參數(shù)計算的原理</p><p>  本設計頻率的計算采用定時器1的捕獲中斷,對外觸發(fā)電路產生的脈沖頻率的測量,再通過對測量數(shù)據(jù)的校正來完成。</p><p&g

49、t;  單片機對頻率測量的原理如下圖所示。</p><p><b>  測頻率原理圖示</b></p><p>  說明:圖示中t1時刻檢測到上升沿進入捕獲中斷,變量T1Flag開始累加,當一秒鐘到了時,則停止計數(shù),T1Flag值為頻率。</p><p><b>  .系統(tǒng)硬件調試</b></p><p

50、>  本設計的硬件部分通過調試,在調試中遇到很多問題,由于電路全為萬用板焊成,所以電路不如印刷板的穩(wěn)定性好,經過調試后,誤差均小于5%,達到本測試的要求。</p><p><b>  其調試內容為:</b></p><p>  ARM板連接數(shù)碼管后,運行程序后,數(shù)碼管全亮的顯示效果。</p><p>  2)被測電阻的調試,按下KEY2鍵

51、后,數(shù)碼管顯示被測電阻100K的阻值,測試儀電阻的單位為1歐姆,電阻顯示的結果如下圖所示:</p><p>  3)被測電容的調試,按下KEY1鍵后,數(shù)碼管顯示被測電容100uF的示值,</p><p>  測試儀電容的單位為1nF,電容調試后的結果如下圖所示:</p><p>  4)被測電感的調試,按下KEY3鍵后,數(shù)碼管顯示被測電感200uH的示值,</

52、p><p>  測試儀電感的單位為1uH,電容調試后的結果如下圖所示:</p><p><b>  測試儀測試值分析:</b></p><p>  測試原理:在系統(tǒng)設計中,以PLC-2103的ARM板為核心的電阻、電容、電感測試儀,將電阻、電容、電感,使用對應的振蕩電路轉化為頻率實現(xiàn)各個參數(shù)的測量。其中電阻和電容采用555多諧振蕩電路產生的,而電感

53、則根據(jù)西勒電路產生的,將振蕩頻率送入P0.11口的捕獲端,通過捕獲終端服務程序T1Flag的累加,計算出電路產生的頻率,在通過頻率計算出被測參數(shù)。以CodeWarrior for ARM Developer Suite為仿真平臺,使用C語言編寫了測試程序,包括主程序模塊、顯示模塊、電阻測試模塊、電容測試模塊和電感測試模塊。</p><p>  測試方法:在測試時將被測參數(shù)通過本系統(tǒng)測量出來的示值與參數(shù)的標稱值進行

54、對比,進而可以知道本系統(tǒng)的測試精度。</p><p>  測試儀器:示波器,萬用表,穩(wěn)壓電源,計算機。</p><p> ?。?)測試結果:通過按鍵,實現(xiàn)其按鍵所對應的功能,并觀察測試結果,對設計進一步的進行校正和對實現(xiàn)功能的可靠性的確認,并記錄觀察結果。</p><p><b>  測試結果如下:</b></p><p&g

55、t;  a)電阻測試數(shù)據(jù)如下圖所示:</p><p>  b)電容測試數(shù)據(jù)如下:</p><p>  c)電感測試數(shù)據(jù)如下:</p><p>  誤差分析:在實際測量中,由于測試環(huán)境,測試儀器,測試方法等都對測試值有一定的影響,都會導致測量結果或多或少地偏離被測量的真值。為了減小本設計中誤差的大小,主要利用修正的方法來減小本測試儀的測量誤差。所謂修正的方法就是在測量

56、前或測量過程中,求取某類系統(tǒng)誤差的修正值。在測量的數(shù)據(jù)處理過程中選取合適的修正值很關鍵,修正值的獲得有三種途徑。第一種途徑是從相關資料中查??;第二種途徑是通過理論推導求??;第三種途徑是通過實驗求取。</p><p>  本測試修正值選取主要通過實驗求取,對影響測量讀數(shù)的各種影響因素,如溫度、濕度、電源電壓等變化引起的系統(tǒng)誤差。通過對相同被測參數(shù)的多次測量結果和不同被測參數(shù)的多次測量選取平均值,最后確定被測參數(shù)公式

57、的常數(shù)K值,從而達到減小本設計系統(tǒng)誤差的目的。由于振蕩電路外圍器件由電容電阻分立元件搭接而成,所以由振蕩電路產生的被測參數(shù)對應的頻率有一定的誤差,所以只能通過多次實驗測量,選取合適的修正值來盡可能的減少本測試系統(tǒng)的誤差。</p><p>  由于捕獲頻率近似等于諧振頻率,使得測量本身存在誤差,制作電路板的過程中,存在一些干擾電阻,電阻和電容靠得太近,會影響電感產生的振蕩電路產生的頻率。</p>&l

58、t;p><b>  參考文獻</b></p><p>  山東師范大學物理與電子科學學院 《555定時器的自動化設計及其應用》 黃萍、裴素華;</p><p>  河南大學學報《電流負反饋電容三點式振蕩電路》 鄭景華、劉忠民;</p><p>  曲阜師范大學物理工程學院《三點式振蕩電路能否振蕩的判別方法》尹慧、歐陽金華;</p&g

59、t;<p>  山東大學信息科學與工程學院,山東省電信培訓中心《一種實用的電容、電感和電阻自動測量儀》楊霓清、梁村梅。</p><p><b>  6.附錄一</b></p><p>  圖 01示波器顯示555多諧振蕩波形</p><p>  圖 02電阻測試電路原理圖</p><p>  圖 03

60、電阻測試PCB圖</p><p>  圖 04電感測試電路產生的波形</p><p>  圖 05電感測試電路的原理圖</p><p>  圖 06電感測試電路的PCB圖</p><p><b>  附錄二</b></p><p><b>  源程序如下:</b><

61、;/p><p>  /****************************************Copyright (c)**************************************************</p><p>  ** jiangxiligongdaxue Development Co.,LTD.&l

62、t;/p><p>  ** graduate school</p><p>  ** http://www.zlgmcu.com</p><p><b>  **</b></p><p>

63、  **--------------File Info-------------------------------------------------------------------------------</p><p>  ** File name:main.c</p><p>  ** Last modified Date: 2010-01-15</p>

64、<p>  ** Last Version:1.0</p><p>  ** Descriptions:The main() function example template</p><p><b>  **</b></p><p>  **------------------------------------------

65、------------------------------------------------------------</p><p>  ** Created by:gongmingming</p><p>  ** Created date:2010-01-15</p><p>  ** Version:1.0</p><

66、p>  ** Descriptions:The original version</p><p><b>  **</b></p><p>  **------------------------------------------------------------------------------------------------------<

67、/p><p>  ** Modified by:</p><p>  ** Modified date:</p><p>  ** Version:</p><p>  ** Descriptions:</p><p><b>  **</b></p><p>  ******

68、**************************************************************************************************/</p><p>  #include "config.h"</p><p>  #define LED1 1<<17</p><

69、;p>  #define LED2 1<<18</p><p>  #define LED3 1<<19</p><p>  #define KEY1 1<<16</p><p>  #define KEY2 1<<14</p><p&g

70、t;  #define KEY3 1<<15</p><p>  #define PIN_STR 1<<8</p><p>  uint8 const digitable[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; // 顯示的段碼</p><

71、p>  uint8 const selectable[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 顯示的位碼</p><p>  uint8 C = 0;</p><p>  uint8 R = 0;</p><p>  uint8 L = 0;</p>

72、<p>  double Cx = 0;</p><p>  double Rx = 0;</p><p>  double Lx = 0;</p><p>  double C1 = 104;</p><p>  double C2 = 104;</p><p>  double C3 = 10

73、4;</p><p>  double WC = 0;</p><p>  uint32 HZ=100;</p><p>  uint8 DATA[8];</p><p>  uint32 T0Flag = 0;</p><p>  uint32 T1Flag = 0;</p><p&g

74、t;  uint32 N = 0; //捕獲中斷次數(shù) </p><p>  uint8 i = 0; //數(shù)碼管顯示位</p><p>  unsigned char x;

75、//將DATA【】值賦給x</p><p>  uint32 CF = 0;</p><p>  /*********************************************************************************************************</p><p>  ** Function name:

76、 Timer0_Init</p><p>  ** Descriptions: Timer0的初始化</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無&

77、lt;/p><p>  *********************************************************************************************************/</p><p>  void Timer0_Init(void) //定時器0用作捕獲加數(shù)碼管掃描頻率發(fā)出

78、</p><p><b>  {</b></p><p>  T0TC = 0;</p><p>  T0PR = 0; //設置不分頻</p><p>  T0MCR = 0x03; //匹配控制器設置 MR0 匹配中斷復位</p>&

79、lt;p>  T0MR0 = Fpclk/400; //匹配寄存器設置</p><p>  T0CCR = 0x05; //上升沿產生中斷 CAP0.0</p><p>  T0TCR = 0x01; //開啟定時器</p><p><b>  }</b>&

80、lt;/p><p>  /*********************************************************************************************************</p><p>  ** Function name: Timer1_Init</p><p>  ** Descript

81、ions: Timer1的初始化</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無</p><p>  ******************************

82、***************************************************************************/</p><p>  void Timer1_Init(void) //定時器1用作PWM發(fā)出</p><p><b>  {</b></p><p&g

83、t;  T1TCR = 0X02; //定時器1復位</p><p>  T1TC = 0X00;</p><p>  T1PR = 0X00;</p><p>  PWM1CON = 0X02; //使能PWM

84、輸出 MAT 1.1</p><p>  T1MCR = 0X02; // 匹配后復位T1TC</p><p>  T1MR0 = Fpclk/HZ; //匹配值</p><p>  T1MR1 = T1MR0/2;

85、 //設置占空比50%</p><p>  T1CCR = 0X30; //下升沿捕獲中斷使能 CAP 1.1</p><p>  T1TCR = 0X01;</p><p><b>  }</b></p><p>  /****

86、*****************************************************************************************************</p><p>  ** Function name: EXIT_Init</p><p>  ** Descriptions: 外部中斷的初始化</p&g

87、t;<p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無</p><p>  *************************************************************

88、********************************************/</p><p>  void EXIT_Init(void)</p><p><b>  {</b></p><p>  PINSEL0 = (PINSEL0&0X0FFFFFFF)|(0x05<<28);</p>&

89、lt;p>  PINSEL1 |= 0x01;</p><p>  EXTMODE = 0x07;</p><p>  EXTPOLAR = 0x07;</p><p>  EXTINT = 0x07;</p><p><b>  }</b></p><p>  /**********

90、***********************************************************************************************</p><p>  ** Function name: IRQ_Timer0</p><p>  ** Descriptions: Timer0中斷服務程序</p>

91、;<p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無</p><p>  **************************************************************

92、*******************************************/</p><p>  void __irq IRQ_Timer0(void)</p><p><b>  {</b></p><p>  if((T0IR & 0x01)!= 0)</p><p><b>  {

93、 </b></p><p>  T0IR = 0x01;</p><p>  T0Flag = 1;</p><p><b>  N++;</b></p><p><b>  }</b></p><p>  VICVectAddr

94、 = 0x00; </p><p><b>  }</b></p><p>  /*********************************************************************************************************</p><p>  ** Function nam

95、e: IRQ_Timer1</p><p>  ** Descriptions: Timer1中斷服務程序</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value:

96、 無</p><p>  *********************************************************************************************************/</p><p>  void __irq IRQ_Timer1(void)</p><p><b>  {</

97、b></p><p>  if((T1IR&0x20)!=0)</p><p><b>  { </b></p><p>  T1IR = 0x20;</p><p><b>  T1Flag++;</b></p><p><b>  }

98、</b></p><p>  VICVectAddr = 0x00; </p><p><b>  }</b></p><p>  /*******************************************************************************************

99、**************</p><p>  ** Function name: IRQ_EXIT0</p><p>  ** Descriptions: EXIT0 中斷服務程序</p><p>  ** input parameters: 無</p><p>  ** output parameters

100、: 無</p><p>  ** Returned value: 無</p><p>  *********************************************************************************************************/</p><p>  void __irq IRQ_

101、EXIT0(void)</p><p><b>  {</b></p><p><b>  C = 1;</b></p><p><b>  R = 0;</b></p><p><b>  L = 0;</b></p><p&g

102、t;  IO0CLR = LED1;</p><p>  IO0SET = LED2|LED3;</p><p>  while((IO0PIN & KEY1)==0);</p><p>  EXTINT = 0x07;</p><p>  VICVectAddr = 0x00;</p><p><b&g

103、t;  }</b></p><p>  /*********************************************************************************************************</p><p>  ** Function name: IRQ_EXIT1</p><p>

104、;  ** Descriptions: EXIT1 中斷服務程序</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無</p><p>  **************

105、*******************************************************************************************/</p><p>  void __irq IRQ_EXIT1(void)</p><p><b>  {</b></p><p><b>  R

106、 = 1;</b></p><p><b>  C = 0;</b></p><p><b>  L = 0;</b></p><p>  IO0CLR = LED2;</p><p>  IO0SET = LED1|LED3;</p><p>  while

107、((IO0PIN & KEY2)==0);</p><p>  EXTINT = 0x07;</p><p>  VICVectAddr = 0x00;</p><p><b>  }</b></p><p>  /*************************************************

108、********************************************************</p><p>  ** Function name: IRQ_EXIT2</p><p>  ** Descriptions: EXIT2 中斷服務程序</p><p>  ** input parameters: 無&

109、lt;/p><p>  ** output parameters: 無</p><p>  ** Returned value: 無</p><p>  ******************************************************************************************************

110、***/</p><p>  void __irq IRQ_EXIT2(void)</p><p><b>  {</b></p><p><b>  L = 1;</b></p><p><b>  C = 0;</b></p><p><b

111、>  R = 0;</b></p><p>  IO0CLR = LED3;</p><p>  IO0SET = LED1|LED2;</p><p>  while((IO0PIN & KEY3)==0);</p><p>  EXTINT = 0x07;</p><p>  VICVec

112、tAddr = 0x00;</p><p><b>  }</b></p><p>  /*********************************************************************************************************</p><p>  ** Function

113、name: IRQ_init</p><p>  ** Descriptions: 向量中斷初始化</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Returned value: 無&l

114、t;/p><p>  *********************************************************************************************************/</p><p>  void IRQ_Init(void)</p><p><b>  {</b></p&g

115、t;<p>  VICIntSelect = (0x00);</p><p>  VICVectCntl0 = 0x20 | 4 ;</p><p>  VICVectCntl1 = 0x20 | 5;</p><p>  VICVectCntl2 = 0x20 | 14;</p><p>  VICVectCntl3

116、 = 0x20 | 15;</p><p>  VICVectCntl4 = 0x20 | 16;</p><p>  VICVectAddr0 = (uint32)IRQ_Timer0;</p><p>  VICVectAddr1 = (uint32)IRQ_Timer1; </p><p>  VICVectAddr2 = (u

117、int32)IRQ_EXIT0;</p><p>  VICVectAddr3 = (uint32)IRQ_EXIT1;</p><p>  VICVectAddr4 = (uint32)IRQ_EXIT2;</p><p>  VICIntEnable = (1<<4) | (1<<5) | (1<<14) | (1&l

118、t;<15) | (1<<16); </p><p><b>  }</b></p><p>  /*********************************************************************************************************</p><p&

119、gt;  ** Function name: MSPI_Init</p><p>  ** Descriptions: SPI 初始化</p><p>  ** input parameters: 無</p><p>  ** output parameters: 無</p><p>  ** Return

溫馨提示

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

評論

0/150

提交評論