2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  存檔編號: </p><p><b>  畢業(yè)論文(設計)</b></p><p><b>  智能數(shù)字萬用表設計</b></p><p>  專 業(yè): 電子信息工程 </p><p>  院 系: 電子工程系 </

2、p><p>  年 級: 電信Q0542 </p><p>  學 號: </p><p>  姓 名: </p><p>  指導教師: </p><p>  目 錄</p>

3、<p><b>  摘要3</b></p><p>  Abstract3</p><p><b>  文獻綜述3</b></p><p>  第1章 前 言6</p><p>  1.1 數(shù)字萬用表簡介6</p><p>  1.2 單片機發(fā)展與應用

4、7</p><p>  第2章 智能型數(shù)字式多用表設計原理7</p><p>  2.1 系統(tǒng)設計方框圖8</p><p>  2.2 系統(tǒng)設計方案8</p><p>  第3章 智能型數(shù)字式多用表硬件設計8</p><p>  3.1 A/D轉換電路8</p><p>  3.2 直

5、流電壓測量電路10</p><p>  3.3 交流/直流轉換電路12</p><p>  3.4 電流/電壓轉換電路13</p><p>  3.5 電阻/電壓轉換電路14</p><p>  3.6 單片機控制與顯示電路14</p><p>  3.7自動量程轉換模塊15</p><

6、p>  第4章 智能型數(shù)字式多用表軟件設計16</p><p>  4.1 程序流程圖16</p><p>  4.2 程序源代碼17</p><p>  第5章智能型數(shù)字式多用表系統(tǒng)測試17</p><p>  5.1 直流電壓測試17</p><p>  5.2 交流電壓測試17</p>

7、;<p>  5.3 直流電流測試18</p><p>  5.4 電阻測試19</p><p><b>  結束語19</b></p><p><b>  致謝詞23</b></p><p><b>  參考文獻23</b></p>&l

8、t;p><b>  附 錄25</b></p><p>  附錄A:整機硬件電路圖25</p><p>  附錄B:程序源代碼26</p><p><b>  摘要</b></p><p>  本文介紹一種基于AT89S51單片機的智能型數(shù)字式多用表,該系統(tǒng)采用MC14433——3 1

9、/2位A/D轉換器和LED數(shù)碼顯示,可以測量直流電壓、交流電壓、直流電流和電阻,并且具有鍵盤選擇測量對象、量程和自動量程轉換功能。</p><p>  關鍵詞:A/D轉換器,單片機,轉換電路,模擬開關</p><p><b>  Abstract</b></p><p>  This paper presents a AT89S51 MCU-b

10、ased intelligent digital multimeter, the system uses the MC14433 - 3 1/2 bit A/D converter and LED digital display, can measure DC voltage, AC voltage, DC current and resistance, and has a keyboard to choose measurement

11、object, measurement range and automatic range conversion functions.</p><p>  Key Words: A/D converter,SCM,converting circuit,analog switch</p><p><b>  文獻綜述</b></p><p>  

12、我選擇的課題是智能數(shù)字萬用表,為了實現(xiàn)這個系統(tǒng)的功能,我查閱了大量的文獻資料。這些資料主要分為三類:一類是芯片說明書,一類是數(shù)字萬用表的設計分析,一類是數(shù)字萬用表的擴展功能。</p><p>  1.數(shù)字萬用表(DMM)背景簡介</p><p>  自從1977年世界上首臺手持式數(shù)字萬用表問世以來,研究者在萬用表的功能和設計上不斷創(chuàng)新,新品迭出。 數(shù)字萬用表是電測技術中的一種常用儀表,它把

13、電子技術、計算技術、自動化技術的成果和電測技術結合在一起,以其操作方便、讀數(shù)準確、體積小巧、攜帶方便等優(yōu)點成為現(xiàn)代測量中不可缺少的儀器,它可以測量直流電流、交流電流、直流電壓、交流電壓、電阻、電容、二極管的正向壓降等,正在許多領域取代模擬式(即指針式)萬用表。具有使用方便、靈敏度高、測量速度快、量程寬、過載能力強、輸人阻抗高、指示值具有客觀性(不存在視覺誤差)、擴展能力強等優(yōu)點。</p><p>  2.數(shù)字萬用

14、表設計分析</p><p>  本設計可以分為直流電壓測量電路;交流/直流轉換電路;電流/電壓轉換電路;電阻/電壓轉換電路;功能控制和數(shù)據顯示電路這五個的主要電路模塊。在設計各個模塊時,文獻中有很多不同的方法,我仔細研究了資料中述說的方法,并自己加以改進,設計出可行方案,通過在實踐中檢驗,在老師的指導下加以改進以達到設計任務書中的要求。</p><p>  在設計直流電壓測量電路時,我利用

15、華成英、童詩白 主編,《模擬電子技術基礎》(第四版)[M].高等教育出版社,2006年第325頁所介紹的反相比例運算電路,加上自己設計的四選一模擬開關,組成了一個直流電壓測量電路。但該電路在實踐中存在問題,不能實現(xiàn)預期的結果。在老師的指導下,我將該電路做了適當?shù)男薷?,改為由電阻、模擬開關和運放組成放大倍數(shù)可調的比例電路,從而達到了任務書的要求。</p><p>  在設計A/D 轉換器時,余孟嘗 主編,《數(shù)字電子

16、技術基礎簡明教程》(第二版) 北京:高等教育出版社1999(2006重?。┑?00頁至第410頁講述了三種A/D 轉換器,但該書只是以基本邏輯電路講述了A/D 轉換器的基本工作原理,及其轉換過程,并未介紹如何利用具體的芯片設計A/D 轉換器。為此,我又查閱了黃海萍、陳用昌 編 《微機原理與接口技術實驗指導》[M].北京:國防工業(yè)出版社,2004年,楊立、鄧振杰、荊淑霞 《微型計算機原理與接口技術》[M].中國鐵道出版社,2006年及ht

17、tp://www.dzsc.com.cn/。我依據設計性能指標要求,并綜合A/D轉換器的性能指標和價格選擇了ICL7106和MC14433這兩個A/D轉換器作為候選芯片。比較這兩個芯片,ICL7106是CMOS大規(guī)模集成電路芯片,它將模擬電路與數(shù)字電路集成在一個有40個功能端的電路內,所以只需外接少量元件就可組成一個3 1/2位數(shù)字電壓表。但是ICL7106是以靜態(tài)方式驅動LCD轉換器,無BCD碼輸出端,因此不能直接獲得降量程信號。而M

18、C14433采用動態(tài)掃描顯示,有多路調制的BCD碼輸出端和超量程信號輸出</p><p>  由于無論是指針式萬用表還是普通的真有效值或平均值響應的數(shù)字萬用表,其交流電壓檔的頻率特性都較差,一般只能測量幾十赫茲到幾千赫茲的低頻電壓。但設計任務書在頻率特性方面要求并不高,為簡單起見,在我的系統(tǒng)中,并未采取特別的提高頻率特性的措施。但在查閱《萬用表頻率特性改善方法》王翠珍 唐金元,海軍航空工程學院青島分院 山東青島

19、一文中,我發(fā)現(xiàn)對于指針式萬用表造成頻率特性較差的原因主要是萬用表的分壓電阻采用精密電阻器,其本身的分布電容較大,在對高頻電壓信號進行測量時,由于分布電容的容抗大為減少使得測量值明顯低于實際電壓值,而對于數(shù)字萬用表除上述原因以外,另一主要原因是受平均值響應,轉換器本身頻率特性的限制。但此缺陷可通過采用寬頻帶運算放大器加以改善。因此,消除分壓電阻器分布電容的影響就可以提高萬用表工作頻率的上限,大大改善其頻率特性。雖然在我的設計中,沒有用到這

20、一方法,但這個發(fā)現(xiàn)無疑仍是具有很高實用價值的。</p><p>  3.萬用表的功能擴展:</p><p>  隨著科技的發(fā)展,更多的創(chuàng)新將應用在萬用表上,在查閱這些資料時,我大開眼界。</p><p>  《數(shù)字萬用表增加測溫功能》遼寧 薛福連 介紹了一種將一只溫度傳感器LM35D,與一塊976130型數(shù)宇萬用表連接的方法,使數(shù)字萬用表即成為一臺精密</p&

21、gt;<p>  的數(shù)顯式溫度測量儀,測量溫度范圍為0-100攝氏度,溫度誤差與標準溫度計相比不大于士0.5攝氏度。</p><p>  《寧夏電力》2008年第1期《數(shù)字萬用表的擴展應》, 政.馬 龍 (寧夏銀南供電局,吳忠市 751100) 介紹了利用數(shù)字萬用表進行二次交流電壓相序的測量和音頻通道電壓電平的測量。</p><p>  《語音數(shù)字萬用表的單片機實現(xiàn)》 吳 寧

22、 (安徽機械工業(yè)學校, 安徽 淮南 232052)介紹了利用數(shù)字萬用表里的單片機,設計自動語音播放單元,提高儀表的智能化的簡單方法。</p><p>  《為數(shù)字萬用表增加磁懸掛功能》湖南 易永豐介紹的增加磁懸掛功能也頗為新奇易用。</p><p><b>  4.小結</b></p><p>  由于條件有限,我的畢業(yè)設計里并未將數(shù)字智能萬用

23、表做的很復雜,在認真研究整理手頭的文獻,并在實驗室進行實踐操作后,我設計出了一個滿足設計任務書要求的數(shù)字智能萬用表。該系統(tǒng)采用MC14433——3 1/2位A/D轉換器和LED數(shù)碼顯示,以A/D轉換器(MC14433)為核心,設計一個多檔的直流電壓測量電路,再在此基礎上對電路進行擴展,使其能多量程的測量交流電壓、直流電流和電阻的測量電路。然后通過單片機(AT89S51)編程對各個主要模塊的進行智能控制和數(shù)據處理,實現(xiàn)對直流電壓、交流電壓

24、、直流電流和電阻測量對象切換;具有鍵盤選擇測量對象、量程和自動量程轉換功能手動和自動量程轉換等功能,并將測量數(shù)據轉換為人們日常習慣的十進制數(shù)字形式顯示在LED顯示器上。</p><p><b>  第1章 前 言</b></p><p>  1.1 數(shù)字萬用表簡介</p><p>  數(shù)字萬用表(DMM)亦稱數(shù)字多用表,是目前在電子檢測及維修

25、工作中最常用、最得力的一種工具類數(shù)字儀表。它采用的數(shù)字化測量技術,通過對連續(xù)的模擬量(直流輸入電壓)的采樣將其轉換成不連續(xù)、離散的數(shù)字量,并以十進制數(shù)字形式顯示出來。由于內部采用了運放電路,內阻可以做得很大,往往在1M歐或更大(即可以得到更高的靈敏度)。這使得對被測電路的影響可以更小,測量精度較高。</p><p>  傳統(tǒng)的指針式萬用表功能單一、精度低,已經不能滿足數(shù)字化時代的需求,而采用單片A/D轉換器構成的

26、數(shù)字萬用表,具有讀數(shù)方便、精度高,測試功能強、集成度高、微功耗、抗干擾能力強等特點,另外帶有單片機的智能型數(shù)字萬用表更是具有自動校準,自動測量,自動數(shù)據處理和實時通訊等多種功能。</p><p>  目前,數(shù)字萬用表已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領域,示出強大的生命力。與此同時,由DMM擴展而成的各種通用及專用數(shù)字儀器儀表,也把電量及非電量測量技術提高到嶄新水平。</p

27、><p>  1.2 單片機發(fā)展與應用</p><p>  早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列 單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的 應用。90年代后隨著消費電子產品大發(fā)展,單片

28、機技術得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。 </p><p>  單片機比專用處理器更適合應用于嵌入式系統(tǒng), 因此它得到了最多的應用。現(xiàn)代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、 家用電器、電子玩

29、具、掌上電腦以及鼠標等電腦配件中都配有單片機。事實上單片機是世界上數(shù)量最多的計算機。單片機是嵌入式系統(tǒng)的獨立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發(fā)展,基于SoC的單片機應用系統(tǒng)設計會有較大的發(fā)展。</p><p>  第2章 智能型數(shù)字式多用表設計原理</p><p>

30、;  2.1 系統(tǒng)設計方框圖</p><p>  系統(tǒng)測量時,單片機與控制電路控制輸入電路進行功能轉換,將輸入信號轉換為符合A/D轉換器的輸入信號,然后A/D轉換器將其輸出數(shù)據傳送到單片機,單片機對數(shù)據進行智能處理,最后顯示在LED顯示器上。</p><p>  圖2.1 系統(tǒng)設計方框圖</p><p>  2.2 系統(tǒng)設計方案</p><p&

31、gt;  首先以A/D轉換器(MC14433)為核心,設計一個多檔的直流電壓測量電路,再在此基礎上對電路進行擴展,使其能多量程的測量交流電壓、直流電流和電阻的測量電路。然后通過單片機(AT89S51)編程對各個主要模塊的進行智能控制和數(shù)據處理,實現(xiàn)對直流電壓、交流電壓、直流電流和電阻測量對象切換;手動和自動量程轉換等功能,并將測量數(shù)據轉換為人們日常習慣的十進制數(shù)字形式顯示在LED顯示器上。</p><p>  所

32、以本設計可以分為直流電壓測量電路;交流/直流轉換電路;電流/電壓轉換電路;電阻/電壓轉換電路;功能控制和數(shù)據顯示電路這五個的主要電路模塊。</p><p>  第3章 智能型數(shù)字式多用表硬件設計</p><p>  3.1 A/D轉換電路</p><p>  A/D 轉換器的轉換精度對測量電路極其重要,它的參數(shù)關系到測量電路性能。所以我依據設計性能指標要求,并綜合A

33、/D轉換器的性能指標和價格選擇了ICL7106和MC14433這兩個A/D轉換器作為候選芯片。ICL7106的輸入阻抗為1010Ω,轉換速率為0.1-15次/s,轉換準確度為±0.05%±1個字;MC14433的輸入阻抗為109Ω,轉換速率為3-10次/s,轉換準確度為±0.05%±1個字,因此這兩塊芯片的性能指標大大超過設計要求的性能指標。</p><p>  方案一:采

34、用ICL7106。ICL7106是CMOS大規(guī)模集成電路芯片,它將模擬電路與數(shù)字電路集成在一個有40個功能端的電路內,所以只需外接少量元件就可組成一個3 1/2位數(shù)字電壓表。但是ICL7106是以靜態(tài)方式驅動LCD轉換器,無BCD碼輸出端,因此不能直接獲得降量程信號。</p><p>  方案二:采用MC14433。MC14433是一個低功耗3 1/2位雙積分式A/D轉換器,與ICL7106相比,MC14433采

35、用動態(tài)掃描顯示,有多路調制的BCD碼輸出端和超量程信號輸出端,便于與單片機相連構成智能控制系統(tǒng)。</p><p>  鑒于此,采用方案二。</p><p>  MC14433是美國摩托羅拉(Motorola)公司生產的COMS單片3 1/2位A/D轉換器,也是目前國內外數(shù)字式多用表中普遍采用的一種芯片。</p><p>  MC14433的主要特點:</p&g

36、t;<p>  工作電壓為±4.5-±8V。一般選典型值±5V,工作電流小于2mA,功耗為8mW。</p><p>  輸入阻抗為109Ω,轉換速率為3-10次/s,轉換準確度為±0.05%±1個字。</p><p>  采用CMOS工藝制成的大規(guī)模集成電路(LSI)。</p><p>  芯片內部設有

37、時鐘振蕩器,使用時僅需外接一只振蕩電阻。亦可采用外部時鐘輸入方式,時鐘頻率范圍大約為48kHz-160kHz。</p><p>  有多路調制的BCD碼輸出,可直接配微型計算機或打印機。</p><p>  具有超量程、欠量程指示信號,便于實現(xiàn)自動量程轉換。</p><p>  能增加讀數(shù)保持功能。</p><p>  采用動態(tài)掃描顯示方式。

38、</p><p>  如圖3.1所示,MC1403提供輸出可調基準電壓Vref(大小為2V),被測信號(0-2V的直流電壓)從MC14433的Vin引腳輸入A/D轉換器MC14433,每次當A/D轉換結束時,MC14433的EOC引腳會輸出一個高電平脈沖送給單片機,然后單片機會對MC14433的DS1-DS4引腳進行動態(tài)掃描,讀取MC14433的Q0-Q3引腳的數(shù)據。</p><p>  

39、A/D轉換相關理論推導:</p><p>  雙積分過程可以由下面的式子表示:</p><p>  因為,故,式中=4000,是定時時間,是變時間,由確定斜率,若用時鐘脈沖數(shù)N來表示時間,則被測電壓就轉換成了相應的脈沖數(shù),實現(xiàn)了A/D轉換。 </p><p><b>  的參數(shù)計算:</b></p><p><b&

40、gt; ?。ㄊ?)</b></p><p>  式中為積分電容上充電電壓具有自動調零和自動轉換極性功能。</p><p>  幅度,=,且=0.5V, =4000。</p><p>  假定=0.1,=5V,=66kHz。當=2V時,代入式1,可得=480 </p><p><b>  ,取標稱值470。</b&g

41、t;</p><p>  3.2 直流電壓測量電路</p><p>  如圖3.2.1所示,被測電壓(0-200V)從DC V端輸入,通過單片機控制模擬開關CD4052選擇相應的量程,將被測電壓值衰減到0-200mV,然后在經過由精密運算放大器OP07組成的放大電路,將電壓值放大10倍后輸入到A/D轉換器MC14433的Vin端。分壓電阻采用誤差為±0.5%的精密金屬膜電阻。&l

42、t;/p><p>  圖3.2.1 直流電壓測量電路</p><p>  在實踐中采用該方案時,若輸入信號小于正5伏,結果正確,但是當輸入信號大于正5伏時,模擬開關CD4052和集成運放OP07CP均工作不正常。向老師請教后,得知該方案中,輸入信號不經過任何衰竭直接加在模擬開關的1腳,使模擬開關處于不受保護的狀態(tài),當輸入信號為大信號時,可能會使模擬開關工作不正常,甚至燒毀模擬開關,且模擬開關

43、與運放直接相連,導致運放處于不受保護的工作狀態(tài)。</p><p>  為了解決這些問題,我修改了設計電路。如下圖3.2.2所示,該電路輸入信號經過100千歐的電阻,從集成運放的反相輸入端輸入,由電阻、模擬開關和運放組成放大倍數(shù)可調的比例電路,并且這個100千歐的電阻還可以起到限流的作用,成功的解決了原電路的弊端。實踐證明,該電路可以達到任務書的要求。</p><p>  圖3.2.2 改

44、進后的直流電壓測量電路</p><p>  3.3 交流/直流轉換電路</p><p>  方案一:半波整流電路。利用二極管的單向導電性,可以很容易的得到直流電壓,且能滿足設計要求。</p><p>  方案二:采用真有效值轉換芯片,性能參數(shù)方面也都能滿足設計要求,并且還能測量非正弦波,但一般真有效值轉換芯片價格比較貴。</p><p>  

45、鑒于此,故采用方案一。</p><p>  如圖3.3所示,這個電路是利用低漂移單運算放大器TL062與二極管D1 1N4148組成平均值響應的線性半波整流電路。該電路可避免二極管在小信號整理時所引起的非線性誤差,使交流/直流轉換電路的輸入電壓與輸出電壓成線性關系,適合測量40-400Hz的正弦電壓,測量準確度優(yōu)于±1%。</p><p>  圖3.3 交流/直流轉換電路圖&l

46、t;/p><p>  3.4 電流/電壓轉換電路</p><p>  如圖3.4所示,普通模擬開關可以通過的電流很微小,所以通過單片機控制繼電器來控制線路導通斷開,將被測電流信號(0-500mA)轉換為相應的電壓信號(0-200mV),然后經過OP07將信號放大10倍,最后輸入A/D轉換器MC14433的Vin端。1A/250V的熔絲管FU為限流保護電路,兩個二極管1N4007構成保護為過壓保

47、護電路。阻值為90Ω、9Ω的電阻采用誤差為±0.5%的精密金屬膜電阻,而阻值為0.4Ω、0.6Ω的電阻通過的電流很大必須采用誤差為±0.5%的精密繞線電阻。</p><p>  圖3.4 電流/電壓轉換電路圖</p><p>  3.5 電阻/電壓轉換電路</p><p>  方案一:利用運算放大器采用反相比例運算的方法進行測量。該方法實現(xiàn)比較

48、簡單,且能滿足設計要求。</p><p>  方案二:采用分壓原理,利用流過標準電阻R0和被測電阻Rx的電流基本相等來得到電壓與電阻的關系,但當電阻很小時電流過大。</p><p>  鑒于此,故采用方案一。</p><p>  如圖3.5所示。穩(wěn)壓二極管1N4730A的穩(wěn)壓值為3.9V(即B點處電壓值),采用運算放大器反相比例運算的方法,將B點處的電壓值衰減到2V

49、(即A點處電壓值),單片機通過控制模擬開關MAX4618(超低導通電阻)選擇適當?shù)臉藴蕝⒄针娮鑂1 ,再利用運算放大器反相比例運算的方法,將被測電阻RX的阻值轉換成與之相對應的電壓量,輸入A/D轉換電路。</p><p>  電阻/電壓轉換電路的計算公式:UA/R1=Uin/Rx,推得:Rx=R1* Uin/ UA。</p><p>  圖3.5 電阻/電壓轉換電路圖</p>

50、;<p>  3.6 單片機控制與顯示電路</p><p>  AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash

51、存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。</p><p>  AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數(shù)據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。<

52、;/p><p>  如圖3.6所示,單片機采用12MHz時鐘晶振,LED顯示電路采用共陽極動態(tài)法連接,占有I/O接口少,連線較簡單。開關K1為功能選擇開關,K2為量程選擇開關,K3為選擇確認開關(在讀數(shù)顯示時,K3為數(shù)據顯示與單位顯示切換開關)。P3.1-P3.5為模擬開關控制信號。開機自動復位。</p><p>  圖3.6 單片機控制與顯示電路圖</p><p>

53、  3.7自動量程轉換模塊</p><p>  方案一:采用軟件來實現(xiàn)。通過單片機讀取MC14433的數(shù)字信號來控制模擬開關,從而改變反饋電阻的大小實現(xiàn)檔位的不同選擇,能夠很容易滿足測量范圍的要求。此方案是電路比較簡單,實現(xiàn)也較容易。</p><p>  方案二:采用硬件實現(xiàn)。電路的核心是一塊雙向移位寄存器CC40194,移位方向由MC14433過量程信號控制,并且還要外接一些數(shù)字電路才能

54、實現(xiàn)換檔,電路比較復雜,不方便。</p><p>  鑒于此,故采用此方案一。</p><p>  第4章 智能型數(shù)字式多用表軟件設計</p><p><b>  4.1 程序流程圖</b></p><p><b>  程序的主要功能:</b></p><p>  直流電壓、

55、交流電壓、直流電流和電阻測量對象切換功能;</p><p>  手動量程和自動量程功能(超量程和欠量程判斷);</p><p><b>  超量程指示功能;</b></p><p>  數(shù)據顯示功能(十進制數(shù)字形式,無效位消隱,小數(shù)點控制);</p><p>  單位顯示功能(正負極,數(shù)據單位)。</p>

56、<p>  圖4.1 程序流程圖</p><p><b>  4.2 程序源代碼</b></p><p><b>  見附錄B。</b></p><p>  第5章智能型數(shù)字式多用表系統(tǒng)測試</p><p>  5.1 直流電壓測試</p><p>  測試方案:通

57、過按鈕開關選擇直流電壓檔,由直流穩(wěn)壓源提供電壓進行測量,然后由單片機顯示輸出。</p><p>  結果分析:測量誤差大部分在-0.2%~+0.2%范圍內,在200mV檔測量時,由于沒有精密電阻,實踐所用1M歐電阻誤差較大,所以誤差較大。測量結果基本滿足設計任務書的要求。</p><p>  5.2 交流電壓測試</p><p>  測試方案:通過按鈕開關選擇交流電

58、壓檔,由函數(shù)信號發(fā)生器提供一個50赫茲左右的正弦交流電壓,輸入到交流端進行測量。</p><p>  輸入電壓頻率為:50Hz</p><p>  結果分析:交流電壓:0.2~20V ,誤差<±2 %±2個字,滿足任務書的精度要求。</p><p>  5.3 直流電流測試</p><p>  測試方案:通過按鈕開關

59、選擇直流電流檔,由于實驗室沒有直流電流源,我采用正5伏的穩(wěn)壓源,串聯(lián)不同的電阻來提供不同的待測電流。該電流的理論值,由電壓與電阻的比值計算得到。</p><p>  結果分析:直流電流:0~20mA ,誤差<±2 %±2個字,滿足任務書的精度要求。因實驗室找不到電流轉電壓電路所需的600毫歐和400毫歐特殊精密電阻,實踐中沒有連接200毫安和500毫安檔位的測量電路。</p>

60、<p><b>  5.4 電阻測試</b></p><p>  測試方案:通過按鈕開關選擇電阻檔,將待測電阻接入測量端,然后選擇合適的檔位進行測量。</p><p>  結果分析:電阻0~ 2MΩ比任務書的0~ 200kΩ多一個測量檔位,誤差<±3 %±2個字,滿足設計要求。</p><p><b

61、>  結束語</b></p><p>  本系統(tǒng)完成了任務書的所有內容,如下:</p><p>  1、測量對象、范圍及誤差范圍:電壓 DC:0~200V 誤差<±1 %±2個字</p><p>  AC:0.2~20V 誤差<±2 %±2個字</p>

62、<p>  電流 DC:0~500mA 誤差<±2 %±2個字</p><p>  電阻0~200KΩ 誤差<±3 %±2個字</p><p>  2、采用LED數(shù)碼顯示,分辨率優(yōu)于0.05%,具有符號判別和過量程顯示</p><p>  3、直流電壓檔最小輸入阻抗≥1MΩ。&l

63、t;/p><p>  4、具有鍵盤選擇測量對象、量程和自動量程轉換功能。</p><p>  在選擇這個題目以后,我查閱了大量的資料,設計出了可以實現(xiàn)的方案,然后在EWB中畫出電路圖并進行電路仿真。由于實驗室沒有單片機小系統(tǒng),我采用AT89S51進行單片機的控制和顯示,并編寫了C51的程序,用keil編譯,在Proteus 7里連接程序進行仿真。仿真成功以后,我開始連面包板。由于這個電路比較復

64、雜,我使用了兩塊面包板。在連電路的時候,一個模塊一個模塊的連接,每連好一個模塊就測試一個模塊,最后將所有的模塊連接在一起。</p><p>  在連面包板時,我遇到了許多問題。連電壓測量電路時,在實驗室找不到需要阻值的精密電阻,我只好實際測量最接近的電阻,這導致最后的誤差比設計要大很多。連好電路測試時,我將輸入信號加為+5伏,按照放大10倍來計算,輸出應該是50伏,但是實際測量的時候輸出是+5伏。查閱資料后發(fā)現(xiàn)這

65、里是一個錯誤,OP07的工作電壓是正負5伏,它不可能輸出比電源電壓更大的電壓。而電壓測量電路實際上是將所有的信號都處理成200mV后,再進行放大。所以測試時輸入信號應該不超過200mV.</p><p>  在連交流轉直流電路時,測得的實際輸出與理論值相反,后來檢查面包板發(fā)現(xiàn)所有的二極管都接反了。</p><p>  在連電流轉電壓電路時,由于找不到需要的精密電阻,我只好將設計圖簡化,只采

66、用了一個繼電器,簡化為兩個檔的電流轉電壓。但連好電路進行測試時,卻發(fā)現(xiàn)始終只有一條支路是通的,也就是說繼電器沒有工作。檢查電路,并沒有連線錯誤,換了一個繼電器后,結果還是不對。在網上搜索相關現(xiàn)象時,有一個網頁提醒了我,可能是電源電壓小于繼電器的動作電壓,導致繼電器不工作。改正之后,結果果然正確了。</p><p>  在連單片機部分的電路時,開始時沒有借到單片機芯片的通用編程器,無法燒制芯片。連好電路后,我采用人

67、工給定信號,檢測數(shù)碼管是否點亮。結果與預期一致。向老師借到EasyPRO 800通用編程器后,我用keil將C程序編譯成hex文件,但是編程器總是提示程序超出芯片末端。即使編寫極為簡短的程序,也仍然出現(xiàn)該提示。在網上查閱資料后,我改用Tks仿真器,將Tks仿真器裝入keil,然后再次將C程序編譯成hex文件,這一次編程器不再顯示錯誤信息,提示燒制成功。但我將燒好的芯片放入面包板后,電路工作不正常。每次加電啟動后,數(shù)碼管的顯示都不一樣。換

68、了芯片重新燒制,結果仍然一樣。不知道是不是編程器不支持C語言,為了確定,我又編寫了一個短小的匯編程序,但燒制后,結果還是不正確,每次加電啟動后,數(shù)碼管都是隨即顯示,好像單片機并未工作。為了進一步檢測,我將單片機從電路中取出,單獨連了一個單片機最小系統(tǒng),編寫了一個向P1口輸送數(shù)據的匯編程序。用電壓表測引腳電壓發(fā)現(xiàn)是正常的。這說明單片機工作正常。難道是C語言燒制的不正確嗎?為了證實,我又寫了一個向P1口輸送數(shù)據的C語言程序,燒制后,結果也是

69、正確的。這說明程序確實是</p><p>  在連A/D轉換電路的時候,由于買芯片的時候,沒有買到MC1403,我用TL431代替,但是在調制參考電壓的時候,發(fā)現(xiàn)電流突然增大。立即斷電后,測滑動變阻器,發(fā)現(xiàn)滑動變阻器幾乎調到底。但是這個過程中,電壓一直沒有降到我要的2伏。查閱TL***的資料發(fā)現(xiàn),它的參考電壓是2.5伏,無法達到2伏。實驗室只有LM366芯片和IN4730A,而LM366也是參考電壓2.5伏。我決

70、定用電阻進行分壓,分別連好LM366和IN4730A的電路后發(fā)現(xiàn),LM366的穩(wěn)壓效果并不好,浮動太大,而IN4730A產生的參考電壓小于2伏。于是我決定先用IN4730A產生小于2伏的參考電壓,然后再用放大器(NE5532)和滑動變阻器組成的正比例放大電路將信號放大成2伏。這個電路的穩(wěn)壓效果基本滿足要求。</p><p>  連好并測試完每個模塊后,就要開始進行模塊之間的連接了。由于在連電路時,不小心燒壞了AT

71、89S51芯片,我找來了AT89C91芯片代替。根據CD4052的真值表,我確定了每個功能模塊的信號控制線。用單片機的P3.0和P3.1做功能選擇線,選擇電壓檔,電流檔和歐姆檔。用P3.2做交直流選擇線,用P3.3,P3.4做電壓檔和電流檔量程的選擇。</p><p>  首先做直流電壓檔的測試,發(fā)現(xiàn)輸入信號為+5伏以下時,手動量程輸出基本滿足要求,但是當輸入信號大于+5伏時,提供工作電壓的穩(wěn)壓源的值就會隨著輸入

72、信號值的增大而增大。</p><p>  做電流檔測試時,剛剛一接通電源,就發(fā)現(xiàn)電流過大。及時斷電檢查線路后,并沒有發(fā)現(xiàn)有短路情況。分析原理圖,猜想,可能是繼電器工作時,需要大電流導致整個電路電流過大。將串聯(lián)的1千歐電阻換為一個更大的電阻后,電流基本正常。并且,由于測電流時,萬用表需串聯(lián)到電路中,要求萬用表內阻較小。但我在設計之初,未考慮該情況,采用了阻值較大的電阻。特將原900歐和100歐電阻換為9歐和1歐電阻

73、。</p><p>  由于整個電路中只有電阻轉電壓電路中有一個+15伏工作電壓,為了方便,將電路作了調整,將該電壓改為+5伏,首先用穩(wěn)壓二極管,將電壓穩(wěn)壓在+2伏以下,然后用集成運放與滑動變阻器組成正比例放大電路,將電壓放大到+2伏。</p><p>  猜想直流電壓檔信號異常的原因,可能是由于電路中模擬地與數(shù)字地混接,造成模擬信號被數(shù)字信號中的高頻分量吞噬,我將電路中的模擬地與數(shù)字地分

74、開接,只在一點會合,流入電源地。但是當信號加大時,提供芯片工作電壓的穩(wěn)壓源的輸出電壓依然隨著增大。因為提供輸入信號與提供芯片工作電壓的穩(wěn)壓源是同型號的兩個獨立的穩(wěn)壓源,我將它們不連入電路,發(fā)現(xiàn)一個輸出增大時,另一個的輸出仍然穩(wěn)定。為了檢查原因,我單獨將信號加在電壓測量電路。即:將由CD4052和OP07CP構成的電壓測量電路與其它電路斷開,信號從CD4052的1腳輸入,從OP07CP的6腳輸出。結果干擾現(xiàn)象仍然存在。不知道是否是由于其中

75、某個芯片沒有正常工作引起的,我將CD4052與OP07CP斷開,信號從CD4052的1腳輸入,3腳輸出。用萬用表測量,發(fā)現(xiàn)數(shù)據正確。接著,將信號從OP07CP的3腳輸入,6腳輸出,用萬用表檢測,發(fā)現(xiàn)OP07CP也是正常工作的。分析原理圖,由于不論輸入信號有多大,經過電阻組成的分壓器分壓后,CD4052的輸出電壓理論上都會變?yōu)?至200mV之間,而OP07CP組成的比例放大電路的放大倍數(shù)為10倍,則理論上,它的輸出會在0至2</p&

76、gt;<p><b>  致謝詞</b></p><p>  在整個畢業(yè)設計中,我得到了電子工程系實驗室的大力支持,為我提供了各種所需的儀器設備,以及設計的所需經費。也十分感激xx等老師,對我實驗設計中所遇到的各種問題給予耐心的解答,完稿之后在百忙之中仔細閱讀,給出修改意見。</p><p><b>  參考文獻</b></p

77、><p>  徐愛鈞 《智能化測量控制儀表原理與設計》(第二版)[M].北京:北京航空航天大學出版社,2004年;</p><p>  吳金戌、沈慶陽、郭庭吉 《8051單片機實踐與應用》[M].北京:清華大學出版社,2002年;</p><p>  謝自美 《電子線路設計·實驗·測試》(第三版)[M].武漢:華中科技大學出版社,2006年;<

78、/p><p>  謝維成、楊加國 主編 《單片機原理與應用及C51程序設計》[M].北京:清華大學出版社,2006年;</p><p>  楊立、鄧振杰、荊淑霞 《微型計算機原理與接口技術》[M].中國鐵道出版社,2006年;</p><p>  黃智偉 《全國大學生電子設計競賽技能訓練》 [M].北京:北京航空航天大學出版社,2007年</p><

79、p>  高峰,《單片微型計算機與接口技術》[M].北京:科學出版社,2003;</p><p>  華成英、童詩白 主編,《模擬電子技術基礎》(第四版)[M].高等教育出版社,2006年.</p><p>  閻 石,《數(shù)字電子技術基礎》[M].高等教育出版社,1983年</p><p>  張永瑞 《電子測量技術》[M].西安電子科技大學出版社,2000年

80、3月</p><p>  王翠珍 唐金元,《萬用表頻率特性改善方法》海軍航空工程學院青島分院 山東青島</p><p>  黃海萍、陳用昌 編 《微機原理與接口技術實驗指導》[M].北京:國防工業(yè)出版社,2004年</p><p>  李 華,《MCS-51系列單片機實用接口技術》[M].北京航空航天大學出版社,1993年</p><p>

81、  余孟嘗 主編,《數(shù)字電子技術基礎簡明教程》(第二版) 北京:高等教育出版社1999(2006重印)</p><p>  薛福連《數(shù)字萬用表增加測溫功能》遼寧 </p><p>  政.馬 龍《寧夏電力》2008年第1期《數(shù)字萬用表的擴展應》,(寧夏銀南供電局,吳忠市 751100)</p><p>  《為數(shù)字萬用表增加磁懸掛功能》湖南 易永豐</p>

82、;<p>  吳 寧《語音數(shù)字萬用表的單片機實現(xiàn)》(安徽機械工業(yè)學校, 安徽 淮南 232052)</p><p><b>  附 錄</b></p><p>  附錄A:整機硬件電路圖</p><p>  圖6.1 整機硬件電路圖</p><p><b>  附錄B:程序源代碼</b&

83、gt;</p><p>  #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  sbit ds1=P1^4; //測量數(shù)據選擇位</p><p>  s

84、bit ds2=P1^5;</p><p>  sbit ds3=P1^6;</p><p>  sbit ds4=P1^7;</p><p>  sbit ado=P2^0; //A/D轉換結束指示</p><p>  uint dso1;dso2;dso3;dso4;</p><p>  uint data1;d

85、ata2;data3;data4; </p><p>  //分別為千位,百位,十位,個位的測量數(shù)據緩沖區(qū)</p><p>  sbit ls1=P2^4; //顯示器選擇位</p><p>  sbit ls2=P2^5;</p><p>  sbit ls3=P2^6;</p><p>  sbit ls4=P2

86、^7;</p><p>  uint led1;led2;led3;led4; //分別為千位,百位,十位,個位的顯示緩沖區(qū)</p><p>  uchar led[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,</p><p>  0xff,0xbf,0xc1,0Xc8,0x7f }; </p&

87、gt;<p>  //編碼0~9,全黑,-,U,Ω,小數(shù)點</p><p>  sbit key1=P2^3; //控制開關</p><p>  sbit key2=P2^2;</p><p>  sbit key3=P2^1;</p><p>  uint k1=0;k2=0;k3=0;s=0;sw_d=0; </p&

88、gt;<p>  //s為單位判斷信號;sw_d為模擬開關控制信號緩沖區(qū)</p><p>  uint sw[]={ 0x83, //模擬開關常態(tài)</p><p>  0x80,0x84,0x82,0x86, // 直流電壓200mV,2V,20V,200V</p><p>  0xb0,0xb4,0xb2, // 交流電壓200mV,2V,20

89、V</p><p>  0x42,0x40, // 直流電流2mA,20mA,</p><p>  0x00,0x02,0x06,0x04 }; // 電阻 2kΩ,20kΩ,200kΩ,2MkΩ</p><p>  uint j;k;g;h=0;ing=0;L=0;N=0;Z=0;</p><p>  //ing指示數(shù)據是否正在處理,1

90、為真;L為A/D轉換指示;Z為自動量程轉換指示</p><p>  /****************************************************************************************************************************</p><p><b>  *名稱:delay</b&g

91、t;</p><p><b>  *功能:延時</b></p><p><b>  *輸入: 延時時間</b></p><p><b>  *返回值:無</b></p><p>  ************************************************

92、****************************************************************************/ </p><p>  void delay(int i) //延時</p><p>  { for(j=i;j>0;j--)</p><p>  for(k=120;k>0;k--);</p

93、><p><b>  }</b></p><p>  /****************************************************************************************************************************</p><p>  *名稱:display&

94、lt;/p><p>  *功能:動態(tài)顯示數(shù)碼管, led1,led2,led3,led4依次為千位,百位,十位,個位的顯示內容</p><p>  *調用: delay()</p><p><b>  *返回值:無</b></p><p>  *****************************************

95、***********************************************************************************/ </p><p>  void display(void) </p><p>  { ls1=ls2=ls3=ls4=1;</p><p><b>  P0=led1;</b&

96、gt;</p><p><b>  ls1=0;</b></p><p><b>  delay(1);</b></p><p><b>  ls1=1;</b></p><p><b>  P0=led2;</b></p><p>

97、;<b>  ls2=; </b></p><p><b>  delay(1);</b></p><p><b>  ls2=1;</b></p><p><b>  P0=led3;</b></p><p><b>  ls3=0;</

98、b></p><p><b>  delay(1);</b></p><p><b>  ls3=1;</b></p><p><b>  P0=led4;</b></p><p><b>  ls4=0;</b></p><p&

99、gt;<b>  delay(1);</b></p><p><b>  ls4=1;</b></p><p><b>  }</b></p><p>  /************************************************************************

100、****************************************************</p><p>  *名稱:measure</p><p>  *功能:單位顯示控制,根據s的值顯示不同的單位,根據千位數(shù)據data1的值顯示正負</p><p><b>  *返回值:無</b></p><p> 

101、 ****************************************************************************************************************************/ </p><p>  void measure(void) </p><p>  { if(s==1||s==5) //mV顯示為&

102、quot;0V"</p><p>  { led1=led[0];led2=led[12];led3=led4=led[10]; } </p><p>  if(s==2||s==3||s==4||s==6||s==7) //V顯示為"1V"</p><p>  { led1=led[1];led2=led[12];led3=le

103、d4=led[10]; } </p><p>  if(s==8||s==9) //mA顯示為"0A"</p><p>  { led1=led[0];led2=led[11]&led[13];led3=led4=led[10]; } </p><p>  if(s>9&&s<13) //kΩ顯示為&q

104、uot;0Ω"</p><p>  { led1=led[0];led2=led[13];led3=led4=led[10]; }</p><p>  if(s==13) //MΩ顯示為"1Ω"</p><p>  {led1=led[1];led2=led[13];led3=led4=led[10]; }</p>&

105、lt;p>  if((data1&4)==0) led4=led[0]; //負極個位顯示“0”</p><p>  if((data1&4)==4) led4=led[1]; //正極個位顯示“1”</p><p><b>  }</b></p><p>  /******************************

106、**********************************************************************************************</p><p>  *名稱:datadisplay</p><p>  *功能:測量數(shù)據顯示控制,根據data1的值判斷是否超量程</p><p><b>  *返回值

107、:無</b></p><p>  ****************************************************************************************************************************/ </p><p>  void datadisplay(void) </p>&

108、lt;p>  { if(data1==7||data1==3) //超量顯示“0---”</p><p>  { led1=led[0];led2=led3=led4=led[11];}</p><p>  else if(data1==4||data1==0)</p><p>  { led1=led[1];led2=led[data2];led3=le

109、d[data3];led4=led[data4];</p><p>  if(s==1||s==4||s==5||s==12) led3=led3&led[14];</p><p>  if(s==2||s==6||s==8||s==10||s==13) led1=led1&led[14];</p><p>  if(s==3||s==7||s==9

110、||s==11) led2=led2&led[14];</p><p><b>  }</b></p><p><b>  else </b></p><p>  { led1=led[0];led2=led[data2];led3=led[data3];led4=led[data4];</p>&l

111、t;p>  if(s==2||s==6||s==8||s==10||s==13) led1=led1&led[14];</p><p>  if(s==3||s==7||s==9||s==11) { led1=led[10];led2=led2&led[14];}</p><p>  if(s==1||s==4||s==5||s==12) </p>&l

112、t;p>  { led1=led[10];led3=led3&led[14];</p><p>  if (data2==0) led2=led[10]; </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }<

113、/b></p><p>  /****************************************************************************************************************************</p><p>  *名稱:process</p><p>  *說明:ing指示

114、數(shù)據是否正在處理,ado為A/D轉換結束指示,</p><p>  L為A/D轉換指示;Z為自動量程轉換指示</p><p>  *功能:讀取測量數(shù)據</p><p>  *調用:display(),datadisplay(),delay()</p><p><b>  *返回值:無</b></p><

115、;p>  ****************************************************************************************************************************/ </p><p>  void process(void) </p><p>  { P3=sw_d;</p>

溫馨提示

  • 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

提交評論