電容電感測量儀課程設計_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《單片機技術(shù)》課程設計說明書</p><p><b>  電容電感測量儀</b></p><p>  學 院: </p><p>  學生姓名: </p><p>  指導教師:

2、 職稱 </p><p>  專 業(yè): </p><p>  班 級: </p><p>  學 號: </p><p>  完成時間:

3、 </p><p><b>  摘 要</b></p><p>  隨著電子工業(yè)的高速發(fā)展,電子元器件的需求增加,電子元器件的適用范圍亦越來越廣泛。在生活應用中我們常常要測定電容、電感的大小。因此,設計一種安全、便捷的電容電感測量儀具有很大的現(xiàn)實必要性。</p><p>  該電容電感測量儀以AT89S52單

4、片機控制核心,通過測量頻率來間接測量電容、電感,并對測試數(shù)據(jù)和測試結(jié)果進行保存記錄。該電容電感測量儀是通過LCD1602液晶顯示屏來顯示當前測量值,當把待測的元件插上測試端子后,按下按鍵即開始進行相應測量。本設計測量精度相對較高,且性能穩(wěn)定,是一款操作簡單、具有記憶功能的智能化電容電感測量儀。</p><p>  電容電感測量儀具有測量工作量小、快捷簡便、性能穩(wěn)定、測量準確、故障檢出率高等特點。它解決了現(xiàn)場測量單

5、個電容器需要拆除連接線、測量電抗器的電感、電容表輸出電壓低導致故障檢出率低等問題,為推動電子工業(yè)的發(fā)展做了一定的貢獻。</p><p>  關(guān)鍵詞:電容電感測量儀;AT89S52;LCD1602</p><p><b>  目 錄</b></p><p>  1 緒論………………………………………………………………………………1</p

6、><p>  1.1 課題的背景及意義…………………………………………………………1</p><p>  1.2 電容電感測量儀的發(fā)展現(xiàn)狀………………………………………………1</p><p>  1.3 設計的主要內(nèi)容……………………………………………………………1 </p><p>  2 系統(tǒng)整體設計…………………………………………

7、…………………………3</p><p>  2.1 設計思想……………………………………………………………………3</p><p>  2.2 系統(tǒng)總體框圖……………………………………………………………3</p><p>  3 硬件系統(tǒng)的設計…………………………………………………………………5</p><p>  3.1 主要元器件

8、介紹……………………………………………………………5</p><p>  3.1.1 AT89S52單片機…………………………………………………5</p><p>  3.1.2 LCD1602液晶顯示屏……………………………………………9</p><p>  3.1.3 LM339電壓比較器………………………………………………9 </p>&l

9、t;p>  3.1.4 LM7805穩(wěn)壓塊…………………………………………………10</p><p>  3.2 硬件單元電路的設計……………………………………………………11</p><p>  3.2.1 AT89S52單片機最小系統(tǒng)……………………………………11 </p><p>  3.2.2 測量電路…………………………

10、……………………………13</p><p>  3.2.3 下載電路………………………………………………………13</p><p>  3.2.4 顯示電路………………………………………………………14</p><p>  4 軟件系統(tǒng)的設計………………………………………………………………15</p><p>  4.1 軟件設計的描

11、述…………………………………………………………15</p><p>  4.2 系統(tǒng)軟件的程序設計……………………………………………………15</p><p>  4.2.1 定時器/計數(shù)器模塊……………………………………………15</p><p>  4.2.2 液晶顯示模塊…………………………………………………16</p><p>

12、  4.2.3 按鍵處理程序模塊……………………………………………16</p><p>  4.2.4 電容電感計算程序模塊………………………………………17</p><p>  4.2.5 主程序流程圖…………………………………………………17</p><p>  5 系統(tǒng)測試與結(jié)果分析……………………………………………………………19</p>

13、<p>  5.1 對電容電感的測試結(jié)果…………………………………………………19</p><p>  5.2 誤差分析…………………………………………………………………19 </p><p>  5.3 設計體會…………………………………………………………………20</p><p>  參考文獻…………………………………………………………………

14、…………21</p><p>  致謝…………………………………………………………………………………22</p><p>  附錄…………………………………………………………………………………23</p><p>  附錄A 元件清單………………………………………………………………23</p><p>  附錄B 實物圖………………………

15、…………………………………………24</p><p>  附錄C 程序清單……………………………………………………………25</p><p><b>  1 緒論</b></p><p>  1.1 課題的背景及意義</p><p>  隨著電子工業(yè)的發(fā)展,單片機技術(shù)已經(jīng)在智能化測量儀表中得到越來越廣泛的應用。利用

16、單片機的軟件來代替硬件功能,可以實現(xiàn)儀表測量的自動化,并能進行數(shù)據(jù)分析處理,以達到儀表的高可靠性、高精度和多功能。目前的電容、電感儀器設計中存在精度不夠高、智能化程度不足等問題。在生活應用中我們常常要測定電容、電感的大小。因此,設計一種安全、便捷的電容電感測量儀具有很大的現(xiàn)實必要性。</p><p>  1.2 電容電感測量儀的發(fā)展現(xiàn)狀</p><p>  當今電子測試領(lǐng)域,電容和電感的

17、測量已經(jīng)在測量技術(shù)和產(chǎn)品研發(fā)中應用的十分廣泛。電容和電感的測量發(fā)展已經(jīng)很久,而且方法眾多,常用測量方法如下。</p><p> ?。?)傳統(tǒng)的測量電容方法有諧振法和電橋法兩種。前者電路簡單、速度快,但精度低;后者測量精度高,但速度慢。隨著數(shù)字化測量技術(shù)的發(fā)展,在測量速度和精度上有很大的改善,電容的數(shù)字化測量常采用恒流法和比較法。</p><p> ?。?)電感測量可依據(jù)交流電橋法,這種測量

18、方法雖然能夠較準確的測量電感,但交流電橋的平衡過程復雜,而且通過測量Q值確定電感的方法誤差較大,所以電感的數(shù)字化測量常采用時間常數(shù)法和同步分離法。</p><p>  縱覽目前的電容電感測量儀,硬件電路往往比較復雜,體積比較龐大,不便于攜帶,而且價格比較昂貴。例如傳統(tǒng)的用阻抗法、Q表、電橋平衡法等測試電容、電感的過程中不夠智能而且體積笨重,價格昂貴,需要外圍環(huán)境優(yōu)越,測試操作過程中需要調(diào)很多參數(shù),對初學者來說很不

19、方便。當今社會,對電容、電感的測試雖然已經(jīng)很成熟了,但是價格和操作簡單特別是智能方面有待發(fā)展。價格便宜、操作簡單和智能化的儀表開發(fā)和應用存在巨大的發(fā)展空間。本設計正是應社會發(fā)展的要求,研制出一種價格便宜、操作簡單、體積更小、功能強大和便于攜帶的電容電感測量儀,充分利用現(xiàn)代單片機技術(shù),研究了基于單片機AT89S52的智能電容電感測量儀,人機界面友好、操作方便的智能電容電感測試儀,具有十分重要的意義。</p><p>

20、;  1.3 設計的主要內(nèi)容</p><p>  本設計以AT89S52單片機控制核心,通過測量頻率來間接測量電容、電感,并對測試數(shù)據(jù)和測試結(jié)果進行保存記錄。該電容電感測量儀是通過LCD1602液晶顯示屏來顯示當前測量值,當把待測的元件插上測試端子后,按下按鍵即開始進行相應測量。本設計測量精度相對較高,且性能穩(wěn)定,是一款操作簡單、具有記憶功能的智能化電容電感測量儀。</p><p>&l

21、t;b>  2 系統(tǒng)整體設計</b></p><p><b>  2.1 設計思想</b></p><p>  為了讓電容、電感的測量更加方便、可靠,讓性價比更高的電容電感測量儀面向大眾,根據(jù)所學的知識和自身能力對電容電感測量儀進行設計。具有以下三點要求:</p><p>  電容電感測量儀操作簡單、能耗低。</p&

22、gt;<p>  能夠?qū)λ鶞y得的電容、電感進行直觀的顯示。</p><p>  其精度控制在±5%。</p><p>  2.2 系統(tǒng)總體框圖</p><p>  圖1 系統(tǒng)總體框圖</p><p>  如圖1所示,圖中給出了整個系統(tǒng)的總體框圖。系統(tǒng)主要由六個部分組成,單片機和晶振電路、測量電路、下載電路、顯示電路

23、、復位電路以及直流穩(wěn)壓電源。</p><p>  3 硬件系統(tǒng)的設計</p><p>  3.1 主要元器件介紹</p><p>  3.1.1 AT89S52單片機</p><p>  電容電感測量儀的設計采用AT89S52單片機作為系統(tǒng)的核心。AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 系統(tǒng)可編程Flash存

24、儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應用系統(tǒng)中得到廣泛應用。</p><p>  AT89S52單片機的引腳圖如圖2所示。</p><p>  圖2 AT89S52單片機引

25、腳圖</p><p>  AT89S52具有以下標準功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器

26、被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。</p><p>  P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0不具有內(nèi)部上拉電阻。在Flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電

27、阻。</p><p>  P0口電路邏輯如圖3所示。</p><p>  圖3 P0口電路邏輯</p><p>  P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O 口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。</p><p>  此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2 的觸發(fā)輸

28、入(P1.1/T2EX)。在Flash編程和校驗時,P1口接收低8位地址字節(jié)。</p><p><b>  引腳號第二功能:</b></p><p>  P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出</p><p>  P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)</p><p&

29、gt;  P1.5 MOSI(在系統(tǒng)編程用)</p><p>  P1.6 MISO(在系統(tǒng)編程用)</p><p>  P1.7 SCK(在系統(tǒng)編程用)</p><p>  P1口電路邏輯如圖4所示。</p><p>  圖4 P1口電路邏輯</p><p>  P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向

30、I/O 口,P2 輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在Fla

31、sh編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p>  P2口電路邏輯如圖5所示。</p><p>  圖5 P2口電路邏輯</p><p>  P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O 口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在Flash編程和校驗時,P3口

32、也接收一些控制信號。</p><p><b>  端口引腳第二功能:</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 INTO(外中斷0)</p><p>  P3.3 INT1(外中斷1)<

33、;/p><p>  P3.4 TO(定時器/計數(shù)器0)</p><p>  P3.5 T1(定時器/計數(shù)器1)</p><p>  P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><p>  P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p>  此外,P3口還接收一些用于Flash閃存編程和程序校驗的控制信號

34、。</p><p>  P3口電路邏輯如圖6所示。</p><p>  圖6 P3口電路邏輯</p><p>  地址鎖存控制信號ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)

35、存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。</p><p>  外部程序存儲器讀選通信號:程序儲存允許()輸出是外部程序存儲器的讀選通信號,

36、當AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次信號。</p><p>  訪問程序存儲器控制信號/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存端狀態(tài)。如端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令

37、。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。</p><p>  復位信號RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。</p><p>  外接晶體引線端XTAL1和XTAL2:當使用芯片內(nèi)部時鐘時,XTAL1和XTAL2用于外接石英晶體諧振器和微調(diào)電容;當使用外部時鐘時,用于接入

38、外部時鐘脈沖信號。</p><p>  3.1.2 LCD1602液晶顯示屏</p><p>  LCD1602為工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形。</p><p

39、>  LCD1602液晶顯示屏的引腳圖如圖7所示。</p><p>  圖7 LCD液晶顯示屏引腳圖</p><p>  LCD1602采用標準的16腳接口,其中:</p><p>  第1腳:GND為電源地。</p><p>  第2腳:VCC接5V電源正極。</p><p>  第3腳:V0為液晶顯示器對比

40、度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。</p><p>  第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。</p><p>  第5腳:RW為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。</p><p>  第6腳:EN端為使能端,

41、高電平1時讀取信息,負跳變時執(zhí)行指令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。</p><p>  第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。</p><p>  3.1.3 LM339電壓比較器芯片</p><p>  LM339是很常見的集成電路。LM339集成塊內(nèi)部裝有四個獨立的電壓比較器,

42、該電壓比較器的特點是:</p><p>  失調(diào)電壓小,典型值為2mV。</p><p>  電源電壓范圍寬,單電源為2~36V,雙電源電壓為±1V~±18V。</p><p>  對比較信號源的內(nèi)阻限制較寬。</p><p><b>  共模范圍很大。</b></p><p>

43、;  差動輸入電壓范圍較大,大到可以等于電源電壓。</p><p>  輸出端電位可靈活方便地選用。</p><p>  LM339集成塊采用C-14型封裝,外型及管腳排列如圖8所示。由于LM339使用靈活,應用廣泛,所以世界上各大IC生產(chǎn)廠、公司竟相推出自己的四比較器,如IR2339、ANI339、SF339等,它們的參數(shù)基本一致,可互換使用。</p><p> 

44、 圖8 LM339電壓比較器引腳圖</p><p>  第1腳:OUTPUT2為輸出端2。</p><p>  第2腳:OUTPUT1為輸出端1。</p><p>  第3腳:Vcc為電源正極。</p><p>  第4腳:-INOUT1為反相輸入端1。</p><p>  第5腳:+INOUT1為同相輸入端1。&l

45、t;/p><p>  第6腳:-INOUT2為反相輸入端2。</p><p>  第7腳:+INOUT2為同相輸入端2。</p><p>  第8腳:-INOUT3為反相輸入端3。</p><p>  第9腳:+INOUT3為同相輸入端3。</p><p>  第10腳:-INOUT4為反相輸入端4。</p>

46、<p>  第11腳:+INOUT4為同相輸入端4。</p><p>  第12腳:GND為電源地。</p><p>  第13腳:OUTPUT4為輸出端4。</p><p>  第14腳:OUTPUT3為輸出端3。</p><p>  3.1.4 LM7805穩(wěn)壓塊</p><p>  LM7805為三端

47、穩(wěn)壓集成電路,是我們最常用到的穩(wěn)壓芯片了,它的使用方便,用很簡單的電路即可以輸入一個直流穩(wěn)壓電源,它的輸出電壓恰好為5V,剛好是AT89S52單片機運行所需的電壓。</p><p>  LM7805穩(wěn)壓塊的引腳圖如圖9所示。</p><p>  圖9 LM7805 穩(wěn)壓塊引腳圖</p><p>  其中引腳1接輸入,引腳2接地,引腳3接輸出。 </p>

48、<p>  3.2 硬件單元電路的設計</p><p>  3.2.1 AT89S52單片機最小系統(tǒng)</p><p>  AT89S52單片機最小系統(tǒng)與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活,超有效的解決方

49、案。</p><p>  AT89S52單片機最小系統(tǒng)電路如圖10所示。</p><p>  圖10 AT89S52單片機最小系統(tǒng)電路</p><p>  AT89S52單片機最小系統(tǒng)特點:</p><p> ?。?)具有電源指示。</p><p> ?。?)可以實現(xiàn)與電腦串口通信。</p><p

50、> ?。?)標準的11.0592M晶振。</p><p> ?。?)具有上電復位和手動復位。</p><p> ?。?)支持AT89SXX系列單片機。</p><p> ?。?)支持STC國產(chǎn)高性能單片機,且兼容單片機STC89C51、STC89C52、STC89C53等。</p><p>  (7)支持STC串口下載。</p&g

51、t;<p>  單片機只有滿足相應的時鐘信號才能進行工作,時鐘信號由晶振電路產(chǎn)生,通過在AT89S52的XT1、XT2引腳上接入11.0592MHz的石英晶振外加兩個電容(電容根據(jù)經(jīng)驗一般取30pF)組成的電路為單片機提供時鐘信號。采用11.0592MHz的晶振更能實現(xiàn)對計算機進行通信的波特率,使用11.0592MHz的晶體晶振為系統(tǒng)單片機提供必要的時鐘信號。</p><p>  晶振電路如圖11所

52、示。</p><p><b>  圖11 晶振電路</b></p><p>  AT89S52有復位信號引腳RST,用于從外界引入復位信號。復位有兩種方式,即手動復位和加電復位。在實際系統(tǒng)中,總是把手動復位電路和加電復位電路結(jié)合在一起,形成一個既能手動復位,又可加電復位的公用復位電路。</p><p>  單片機復位信號的產(chǎn)生采用了按鍵方式的

53、電路設計。按復位鍵通過電容(一般采用104)對單片機產(chǎn)生復位信號。</p><p>  復位電路如圖12所示。</p><p><b>  圖12 復位電路</b></p><p>  3.2.2 測量電路</p><p>  電路是一個由LM339組成的LC振蕩器。由單片機測量LC震蕩回路的頻率,然后根據(jù)標準電容出

54、電感的值。</p><p><b> ?。?) </b></p><p>  電容、電感的值,分別用下列式子計算: </p><p><b> ?。?)</b></p><p><b> ?。?)</b></p><p>  其中,是固有頻率,是接

55、入測試電容、電感后的頻率。</p><p>  測量電路如圖13所示。</p><p><b>  圖13 測量電路</b></p><p>  3.2.3 下載電路</p><p>  下載電路是下載口與單片機I/O口線相連。其中第1腳為MOSI,與單片機的P1.5引腳連接;第2腳為Vcc,接電源正極;第3腳為NC

56、;第5腳為RST,接單片機的RET;第7腳為SCK,接單片機的P1.7引腳;第9腳為MISO,接單片機的P1.6引腳;第4、6、8、10腳為GND,接電源地。</p><p>  下載電路如圖14所示。</p><p><b>  圖14 下載電路</b></p><p>  3.2.4 顯示電路</p><p> 

57、 LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別。</p><p>  顯示電路如圖15所示。</p><p><b>  圖15 顯示電路</b></p><p>  4 軟件系統(tǒng)的設計</p><p>  4.1 軟件設計的描述<

58、/p><p>  對于電容電感測量儀設計的軟件系統(tǒng)包括定時器/計數(shù)器程序模塊、液晶顯示程序模塊、按鍵處理程序模塊、控制與計算程序模塊等,以及其它必須要有的基本模塊程序。</p><p>  按鍵處理程序模塊主要通過在主程序中調(diào)用鍵掃函數(shù)keyscan()來執(zhí)行相應的功能。</p><p>  液晶顯示是通過在主程序中調(diào)用相關(guān)的液晶功能函數(shù)來執(zhí)行相應功能。</p&g

59、t;<p><b>  通過調(diào)用處理函數(shù):</b></p><p>  lcd_set():LCD功能設置函數(shù);</p><p>  display(uchar y, uchar x, uchar *p):顯示函數(shù);</p><p>  delay(uint count):延時函數(shù);</p><p>  w

60、rite(uchar command):寫命令函數(shù);</p><p>  read(uchar data0):寫數(shù)據(jù)函數(shù);</p><p>  jishu(void);顯示緩沖;</p><p>  jisuan(void);處理函數(shù);</p><p>  keyproc();鍵功能程序;</p><p>  disd

61、s();顯示函數(shù);</p><p>  先在鍵盤上輸入一個數(shù)字,然后輸入一個運算符,再輸入一個數(shù)字,最好通過處理函數(shù)運算出結(jié)果并把結(jié)果顯示在液晶上或者先輸入一個特殊的運算符,再輸入一個數(shù)字,最后通過處理函數(shù)運算出結(jié)果并把結(jié)果顯示在液晶上。</p><p>  4.2 系統(tǒng)軟件的程序設計</p><p>  4.2.1 定時器/計數(shù)器模塊</p>&

62、lt;p>  AT89S52單片機有兩個定時器/計數(shù)器T0和T1,初始化程序?qū)0設置為計數(shù)器,T1設置為定時器。T0是工作在計數(shù)狀態(tài)下,對輸入的信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為FOSC/24,由于FOSC=12MHz,因此,T0的最大計數(shù)頻率為500KHz。T1工作在定時狀態(tài)下,最大定時時間65ms,達不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。頻率計開始工作或者完成一次頻率

63、或周期的測量,程序都進行測量初始化。測量初始化模塊是用來設置1602液晶顯示、工作寄存器、中斷控制和定時器/計數(shù)器工作方式的。</p><p>  4.2.2 液晶顯示模塊</p><p>  液晶接在單片機上的P0及P3部分管腳,通過液晶功能函數(shù)LCD1602()的調(diào)用對液晶進行操作,將各類指令寫入液晶模塊,用來驅(qū)動液晶以實現(xiàn)不同的顯示功能,達到界面顯示的要求。</p>

64、<p>  液晶顯示流程圖如圖16所示。</p><p>  圖16 液晶顯示流程圖</p><p>  4.2.3 按鍵處理程序模塊</p><p>  按鍵處理程序的主要功能就是設置測量的類型和測量的檔位,當有按鍵被按下時就執(zhí)行相應的按鍵功能。</p><p>  按鍵處理程序流程圖如圖17所示。</p>&l

65、t;p>  圖17 按鍵處理程序流程圖</p><p>  4.2.4 電容電感計算程序模塊</p><p>  AT89S52單片機根據(jù)測得的頻率計算出電容、電感值,該程序的流程圖如圖18所示。</p><p>  圖18 電容電感計算程序流程圖</p><p>  4.2.5 主程序流程圖</p><p&

66、gt;  系統(tǒng)上電初始化并且清屏,單片機初始化完成后,進入鍵盤掃描程序,當要進行電容或電感測量時,選擇測量按鍵,系統(tǒng)進行自動判斷并進行電容或電感的測量。當判斷為電容時,系統(tǒng)選擇電容的計算方法。當判斷為電感時,系統(tǒng)選擇電感的計算方法。計算完成后在液晶屏上顯示測量結(jié)果。</p><p>  當把待測的電容或電感接入時,系統(tǒng)自動進行判斷,根據(jù)判斷結(jié)果確定算法。當判斷到是電容時,系統(tǒng)進,入電容的計算方式,電容的計算方式采

67、用公式(1)。當判斷為電感時,系統(tǒng)進入電感的計算方式,電感的計算方式采用公式(2)(3)。</p><p>  采用該系統(tǒng)進行電容和電感的測量,由于元器件的熱穩(wěn)定性和外界對電路的干擾影響,測量的結(jié)果會有所跳動,是因為三極管的結(jié)電容隨著溫度的變化而變化,從而影響測量結(jié)果,基于以上原因,在測量過程中可以采用多次測量求平均值的方法提高測量精度。</p><p>  主程序流程圖如圖19所示。&l

68、t;/p><p>  圖19 主程序流程圖</p><p>  5 系統(tǒng)測試與結(jié)果分析</p><p>  5.1 對電容電感的測試結(jié)果</p><p>  我們對于各種性質(zhì)的元件(電容電感)分別找了足夠量的元件;用高精度數(shù)字萬用表測量出器容值(感值)取多個相同電容的平均值作為參考量;然后用我們自制的電容電感測量儀進行測量,測量多個容值不同

69、的電容,算出其誤差,最后求平均誤差,電感的測量同理。</p><p>  表1 電容測試結(jié)果</p><p>  表2 電感測試結(jié)果</p><p><b>  5.2 誤差分析</b></p><p>  本測量儀的測量范圍較寬,并且達到了不錯的精度。</p><p>  電容測試結(jié)果分析

70、:電容測試最大誤差為3%。</p><p>  電感測試結(jié)果分析:電感測試最大誤差為3.5%。</p><p>  在實際測量中,由于測試環(huán)境、測試儀器、測試方法等都對測試值有一定的影響,都會導致測量結(jié)果或多或少地偏離被測量的真值,為了減小本設計中誤差的大小,主要利用修正的方法來減小本測試儀的測量誤差。所謂修正的方法就是在測量前或測量過程中,求取某類系統(tǒng)誤差的修正值。在測量的數(shù)據(jù)處理過程中

71、選取合適的修正值很關(guān)鍵,修正值的獲得有三種途徑。第一種途徑是從相關(guān)資料中查?。坏诙N途徑是通過理論推導求??;第三種途徑是通過實驗求取。本測試修正值選取主要通過實驗求取,對影響測量讀數(shù)的各種影響因素,如溫度,電壓電源等變化引起的系統(tǒng)誤差,通過對相同被側(cè)參數(shù)的多次測量結(jié)果和不同被側(cè)參數(shù)的多次測量選取平均值,最后確定被側(cè)參數(shù)公式的常數(shù)K值,從而達到減小本設計系統(tǒng)誤差的目的。由于振蕩電路外圍器件由電容電阻分立元件搭接而成,所以由振蕩電路產(chǎn)生的被

72、側(cè)參數(shù)對應的頻率有一定的誤差,所以只能通過多次實驗測量,選取合適的修正值來盡可能的減小本測試系統(tǒng)的誤差。</p><p><b>  5.3 設計體會</b></p><p>  課程設計是一次非常好的將理論與實際相結(jié)合的機會,通過對電容電感測量儀的課題設計,鍛煉了我的實際動手能力,增強了我解決實際工程問題的能力,同時也提高了我查閱文獻資料、設計規(guī)范以及電腦制圖等其

73、他專業(yè)能力水平。</p><p>  當然本系統(tǒng)還存在著許多需要改進的地方,比如還可以繼續(xù)提高測量的精度和加大測量的范圍,因為是采用單片機實現(xiàn)的,利用其可以編程的特性,使測量的值結(jié)合一些數(shù)據(jù)處理方式使測量更加接近真實值。</p><p>  本系統(tǒng)亦還有許多可以拓展的功能,比如可以增加語音功能,每次測量值穩(wěn)定的時候就通過語音報告出來;也可以增加在線測量的功能,這樣就更能夠測量出元件工作時的

74、正常值,而不僅僅是靜態(tài)的值。</p><p><b>  參考文獻</b></p><p>  [1]李廣弟.單片機基礎(chǔ)[M].北京:北京航空航天大學出版社,2003.35~38</p><p>  [2]李全利.單片機原理及應用(C51編程)[M].北京:高等教育出版社,2012.12</p><p><b>

75、;  ~15</b></p><p>  [3]馬忠梅.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,</p><p>  2003.78~82   </p><p>  [4]李光飛.單片機C程序設計指導[M].北京:北京航空航天大學出版社,2003.46</p><p><b>  ~55</

76、b></p><p>  [5]李光飛.單片機課程設計實例指導[M].北京:北京航空航天大學出版社,2004.</p><p><b>  48~51</b></p><p>  [6]焦娟麗,郭學良.液晶顯示器在單片機控制系統(tǒng)中的應用[J].現(xiàn)代顯示,2006</p><p><b>  (9):39~

77、42</b></p><p>  [7]居水榮.單片機及其發(fā)展趨勢[J].微納電子技術(shù),2001(2):13~15</p><p>  [8]顧正華,顧亞平,陳光.基于VXI總線數(shù)字多用表模塊硬件設計[J].中國測試</p><p>  技術(shù),2006,32(4):87~89,143</p><p>  [9]陳江華.一種實用的電

78、容、電感和電阻自動測量儀[J].計量與測試技術(shù),2002</p><p><b>  (1):21~22</b></p><p>  [10]王明娟.電容電感測試儀的設計[J].2010(5):35~36</p><p>  [11]劉軍,李智.基于單片機的高精度電容電感測量儀[J].國外電子測量技術(shù),</p><p>

79、  2007,26(6):48~51</p><p>  [12]胡漢才.單片機原理及其接口技術(shù)[M].北京:清華大學出版社,1996.98~103</p><p><b>  致 謝</b></p><p>  這次的單片機設計,讓我們有機會將我們在課堂上學到的知識運用到實際當中。通過對掌握的知識的理解以及運用,做一些比較與分析。既驗證了自

80、己所學到的理論知識,又相當于溫習了一遍之前學到的內(nèi)容。做這個課程設計,也許剛開始會異常困難,但只要堅持下去,穩(wěn)扎穩(wěn)打的做好每一步,就一定會成功的。通過這次課程設計,我進一步鞏固并加深了對課本專業(yè)知識的理解,更熟悉了AT89S52單片機的原理和各種電路的設計。當然,在這個過程中我也遇到了很多困難,于是就翻閱資料,咨詢同學老師。我最后找出了自己的錯誤并加以改正,這也是我的收獲,不但使我進一步提高了我的實踐動手能力,也讓我在未來的學習工作中有

81、了更大的信心。通過這次課程設計使我懂得了只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合,從實踐中得出結(jié)論,從而提高了自己的實際動手能力和獨立思考的能力。讓我收獲最大的是我發(fā)現(xiàn)了自己對以前的知識理解的不夠深刻,掌握得不夠牢固,通過這次設計,我把以前所學的知識重新溫故,鞏固了所學知識,讓我受益匪淺。在此,也要感謝老師這學期的悉心教導,同時對那些給予我?guī)椭耐瑢W表示由衷的感謝。我會繼續(xù)努力的! </p><

82、p><b>  附 錄</b></p><p><b>  附錄A 元件清單</b></p><p><b>  附錄B 實物圖</b></p><p><b>  附錄C 程序清單</b></p><p>  #include <re

83、g52.h></p><p>  #include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define LCM_Data P0 //LCD1602數(shù)據(jù)接口

84、</p><p>  #define Busy 0x80 //用于檢測LCM狀態(tài)字中的Busy標識</p><p>  sbit LCM_RW= P2^3; //讀寫控制輸入端,LCD1602的第五腳</p><p>  sbit LCM_RS= P2^4; //寄存器選擇輸入端,LCD1602的第四腳</p>&l

85、t;p>  sbit LCM_E= P2^2; //使能信號輸入端,LCD1602的第6腳</p><p>  sbit int0_int= P3^2;</p><p>  sbit l_button=P2^0;//電感測量控制開關(guān);</p><p>  sbit c_button=P2^1;//電容測量控制開關(guān);</p>

86、<p>  sbit f_button=P2^6;//頻率測試控制開關(guān);</p><p>  sbit min_elect_c_button=P2^7;//小電容測試控制開關(guān)</p><p>  sbit max_elect_c_button=P3^6;//小電容測試控制開關(guān)</p><p>  sbit fangdian_bu

87、tton=P2^5;//電解電容測量時放電控制腳</p><p>  //**************函數(shù)聲明***************************************</p><p>  void WriteDataLCM(uchar WDLCM);//LCD模塊寫數(shù)據(jù)</p><p>  void WriteCommandLC

88、M(uchar WCLCM,BuysC); //LCD模塊寫指令</p><p>  uchar ReadStatusLCM(void);//讀LCD模塊的忙標</p><p>  void DisplayOneChar(uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置顯示一個字符</p><p>  void

89、 LCMInit(void);//LCD初始</p><p>  void delayms(uint ms);//1MS基準延時程序</p><p>  void DisplayListChar(uchar X,uchar Y,uchar delayms, uchar code *DData);</p><p>  void judge_xians

90、hi(void);//顯示處理程序</p><p>  void lx_display();</p><p>  void cx_display();</p><p>  void fx_display();</p><p>  void init_t0();</p><p>  void

91、 strive_f1();//求取F1</p><p>  void strive_f2();//求取電感的大小</p><p>  void strive_cx();//求取小電容(無極性電容)的大小</p><p>  void strive_fx();//測試外邊頻率</p><p>  void strive_

92、min_c();//小電容測試</p><p>  void strive_max_c();//大電容測試</p><p>  uchar t0_crycle=0;</p><p>  uchar f_crycle;</p><p>  uchar flag1;//</p><p>  uchar

93、 display_flag;</p><p>  uint f1,temp,f2;</p><p><b>  long ryz;</b></p><p>  //***********************主程序******************************</p><p><b>  m

94、ain() </b></p><p><b>  { </b></p><p>  fangdian_button=1;</p><p>  LCMInit();</p><p>  init_t0();</p><p>  strive_f1();//求取F1</p&g

95、t;<p>  DisplayListChar(0,0,0, "F/L/C Tester");</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  strive_f2();//求取F1</p><p> 

96、 strive_cx();</p><p>  strive_fx(); </p><p>  strive_min_c();</p><p>  strive_max_c();</p><p>  judge_xianshi();</p><p><b>  }</b></p>&

97、lt;p><b>  }</b></p><p>  void judge_xianshi()</p><p><b>  {</b></p><p>  lx_display();</p><p>  cx_display();</p><p>  fx_disp

98、lay();</p><p><b>  }</b></p><p>  void strive_max_c()//大電解電容測試</p><p><b>  {</b></p><p>  max_elect_c_button=1;//置為1,準備判斷小電容測量開關(guān)的狀態(tài),上電時這個開關(guān)比較

99、彈起</p><p>  if(max_elect_c_button==0)</p><p><b>  { </b></p><p>  f_crycle=0;</p><p>  fangdian_button=0;</p><p>  delayms(250);</p>&l

100、t;p>  fangdian_button=1;</p><p>  TMOD=0x10;//設定T0以工作方式1定時</p><p><b>  TH1=0;</b></p><p><b>  TL1=0;</b></p><p><b>  EA=1;</b><

101、;/p><p>  ET1=1;//允許定時器0中斷</p><p><b>  TR1=1;</b></p><p>  int0_int=1;</p><p>  while(int0_int==1);</p><p><b>  TR1=0;</b></p>

102、<p><b>  ryz=0;</b></p><p>  ryz= f_crycle*50000;</p><p>  ryz+=TH1*256+TL1;</p><p>  DisplayListChar(1,0,0, "Cx=");</p><p>  DisplayOneChar(

103、1,3, ryz/1000000%10+0x30);</p><p>  DisplayOneChar(1,4, ryz/100000%10+0x30);</p><p>  DisplayOneChar(1,5, ryz/10000%10+0x30);</p><p>  DisplayOneChar(1,6, ryz/1000%10+0x30);</p&

104、gt;<p>  DisplayOneChar(1,7, ryz/100%10+0x30);</p><p>  DisplayOneChar(1,8,'.');</p><p>  DisplayOneChar(1,9, ryz/10%10+0x30);</p><p>  DisplayOneChar(1,10,ryz%10+0x3

105、0);</p><p>  DisplayListChar(1,11,0, "UF ");</p><p><b>  } </b></p><p><b>  }</b></p><p>  void strive_min_c()//小電容測試</p>

106、<p><b>  {</b></p><p>  min_elect_c_button=1;//置為1,準備判斷小電容測量開關(guān)的狀態(tài),上電時這個開關(guān)比較彈起</p><p>  if(min_elect_c_button==0)</p><p><b>  { </b></p><p&g

107、t;  f_crycle=0;</p><p>  fangdian_button=0;</p><p>  delayms(250);</p><p>  fangdian_button=1;</p><p>  TMOD=0x10;//設定T0以工作方式1定時</p><p><b>  TH1=0;&l

108、t;/b></p><p><b>  TL1=0;</b></p><p><b>  EA=1;</b></p><p>  ET1=1;//允許定時器0中斷 </p><p><b>  TR1=1;</b></p><p>  displa

109、y_flag=4;//顯示標志,為4為測試小電解電容</p><p>  int0_int=1;</p><p>  while(int0_int==1);</p><p><b>  TR1=0;</b></p><p><b>  ryz=0;</b></p><p> 

110、 ryz+=50000*f_crycle;</p><p>  ryz+=TH1*256+TL1;</p><p><b>  ryz/=20;</b></p><p>  DisplayListChar(1,0,0, "Cx=");</p><p>  DisplayOneChar(1,3, ry

111、z/1000000%10+0x30);</p><p>  DisplayOneChar(1,4, ryz/100000%10+0x30);</p><p>  DisplayOneChar(1,5, ryz/10000%10+0x30);</p><p>  DisplayOneChar(1,6, ryz/1000%10+0x30);</p><

112、;p>  DisplayOneChar(1,7, ryz/100%10+0x30);</p><p>  DisplayOneChar(1,8,'.');</p><p>  DisplayOneChar(1,9, ryz/10%10+0x30);</p><p>  DisplayOneChar(1,10,ryz%10+0x30);</

113、p><p>  DisplayListChar(1,11,0, "UF ");</p><p>  display_flag=4;//顯示標志,為4為測試小電解電容</p><p><b>  } </b></p><p><b>  }</b></p><

114、p>  void timer1() interrupt 3</p><p><b>  {</b></p><p>  TH1=(65536-50000)/256;//定時50毫秒</p><p>  TL1=(65536-50000)%256;</p><p>  f_crycle++;</p>&

115、lt;p><b>  }</b></p><p>  //求取小電容(無極性電容)的大小</p><p>  void strive_fx()</p><p><b>  {</b></p><p><b>  uchar i;</b></p><

116、;p>  f_button=1;//置為1,準備判斷小電容測量開關(guān)的狀態(tài),上電時這個開關(guān)比較彈起</p><p>  if(f_button==0)</p><p><b>  {</b></p><p>  if(display_flag!=3)init_t0();</p><p>  display_flag=

117、3;//顯示標志,為3為測試頻率</p><p><b>  TR0=1;</b></p><p><b>  TR1=1;</b></p><p><b>  ryz=0;</b></p><p>  for(i=0;i<20;i++)</p><p

118、><b>  {</b></p><p>  f_crycle=0;</p><p>  while(f_crycle<1);</p><p>  f_crycle=0;</p><p>  ryz+=temp;</p><p><b>  }</b></p

119、><p><b>  TR0=0;</b></p><p><b>  TR1=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void timer0() interru

120、pt 1</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;//定時50毫秒</p><p>  TL0=(65536-50000)%256;</p><p>  f_crycle++;</p><p>  t0_crycle=0;</p

121、><p>  TR0=0;//關(guān)閉定時0</p><p>  temp=TH1*256+TL1;//</p><p><b>  TH1=0;</b></p><p><b>  TL1=0;</b></p><p><b>  TR0=1;</b><

122、/p><p><b>  }</b></p><p>  void fx_display()</p><p><b>  {</b></p><p>  if(display_flag==3)</p><p><b>  {</b></p>&

溫馨提示

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

評論

0/150

提交評論