趙翠玉
摘要:本文基于AT89C52的脈沖寬度測量儀的設(shè)計。該儀器測量結(jié)果采用了軟件數(shù)字濾波,消除了測量中抖動問題,測量精度高、穩(wěn)定性好,具有一定的實用性。
關(guān)鍵詞:AT89C52;測量儀;脈沖寬度
中圖分類號:TM935.4 文獻標識碼:A 文章編號:1007-9416(2019)02-0129-01
0 引言
脈沖寬度的測量,實質(zhì)是時間的測量,以往測量儀采用的是門電路來進行脈沖寬度測量,而 AT89C52單片機系統(tǒng)資源豐富:內(nèi)置256KB的RAM模塊、32個外部雙向可編程I/O口線、3個16位定時器/計數(shù)器、0-24MHz時鐘頻率、2個外中斷口[1]。該單片機不僅提供豐富的硬件資源,也提供良好的上位機控制軟件,只要通過軟件的功能操作就能實現(xiàn):源代碼的調(diào)試編譯,查找與修改錯誤之處,在線代碼下載等功能。基于以上優(yōu)點,本文設(shè)計了采用AT89C52單片機實現(xiàn)脈沖寬度測量儀。
1 測量機理
基于AT89C52的脈沖寬度測量儀以AT89C52為系統(tǒng)控制核心,通過AT89C52內(nèi)部的定時器對脈沖寬度進行測量。設(shè)定AT89C52工作于定時器方式,計數(shù)的輸入為內(nèi)部時鐘信號,頻率為固定的12MHz。只要令GATE=1,TR0=1,TR1=1,將輸入脈沖接到INT1口,即可測量輸入脈沖寬度,測量機理如圖1所示。
2 系統(tǒng)硬件設(shè)計
該測量儀主要由AT89C52單片機最小系統(tǒng)、555定時電路、LED顯示驅(qū)動電路、LED顯示電路和電源電路等組成[2]。
測量時通過單片機外中斷INT1和定時器T1配合來完成外部待測脈沖高電平持續(xù)時間的測量。首先將U1(AT89C52)的T1設(shè)為定時器方式,且門控GATE=1;然后將U2(NE555)的3腳輸出的方波信號送至U1的P3.3腳(INT1口),當P3.3腳的信號出現(xiàn)下降沿時,進入INT1中斷服務(wù)程序并判斷脈沖位置,如果是第一個方波脈沖,則打開計數(shù)器T1的開關(guān)(將TR1設(shè)為1),否則關(guān)閉T1的開關(guān)(將TR1設(shè)為0),等到第二個方波脈沖上升沿抵達U1的P3.3腳時,TH1、TL1自動開始計數(shù),當?shù)诙€方波脈沖下降沿到來時計數(shù)器自動關(guān)閉停止計數(shù),此時為待測信號高電平期間,且再次進入外部中斷INT1的中斷服務(wù)程序中,讀取TH1、TL1的計數(shù)值,并計算出所測量的結(jié)果,該結(jié)果就是待測方波脈沖的寬度。隨后,清零TH1和TL1,以便下一個脈寬的測量。同時,測得的信號寬度數(shù)值從U1的P1.0~P1.7口分別輸出a~g及dp八位段選字符編碼信號至數(shù)碼管的相應(yīng)段選線,從U1的P3.4~P3.7口輸出四只數(shù)碼管的位選信號,分別經(jīng)Q5~Q8處理送至四只數(shù)碼管相應(yīng)的位選線,控制相應(yīng)數(shù)碼管的點亮,實現(xiàn)被測結(jié)果的實時顯示。系統(tǒng)工作電壓由電源電路把220交流電經(jīng)變壓器降壓、D1~D4整流、C9~C10濾波、U3(7805)穩(wěn)壓得到+5V穩(wěn)定電壓來提供。
可以得出測量脈沖寬度分兩個階段:一個是準備階段,完成狀態(tài)的設(shè)置;另一個是測量階段,從脈沖上升沿開始測量計數(shù),到脈沖下降沿結(jié)束計數(shù),以兩個脈沖為一個測量周期。
3 系統(tǒng)軟件設(shè)計
該系統(tǒng)軟件使用C語言進行了編寫,采用了模塊化的設(shè)計思想[3],將設(shè)計劃分為T0溢出中斷、T1溢出中斷和INT1溢出中斷等相應(yīng)的程序模塊,分別進行設(shè)計、調(diào)試,增強了程序的條理性。AT89C52的脈沖寬度測量儀主程序設(shè)計流程如圖2所示。
4 數(shù)據(jù)及結(jié)果的分析
通過實驗觀察,對T0、T2兩種方式都可以達到計數(shù)脈寬的長度的要求,實驗數(shù)據(jù)均可以達到所要求的:6位 LED顯示計數(shù)值,時間精確到0.1秒。
實驗中也遇到一些問題,如數(shù)碼管顯示不出數(shù)值(P口位置插錯),小數(shù)點顯示錯位(沒有在程序中編對位置),顯示只顯示第一次多出數(shù)值(調(diào)用程序返回時出錯)等問題。
5 結(jié)語
本文的創(chuàng)新在于遵循硬件電路可靠、操作簡便,充分借助AT89C52單片機系統(tǒng)的豐富資源,通過硬件的完整設(shè)計和軟件強大的編程等過程,實現(xiàn)了脈沖寬度的測量功能,具有實際的應(yīng)用價值。
參考文獻
[1] 羅印升.單片微機原理與應(yīng)用[M].北京:機械工業(yè)出版社,2012.
[2] 路而紅.專用集成電路設(shè)計與電子設(shè)計自動化[M].北京:清華大學出版社,2004.
[3] 張培仁.基于C語言編程MCS-51單片機原理與應(yīng)用[M].北京:清華大學出版社,2003.
Design and Implementation of Pulse Width Measuring Instrument Based on AT89C52
ZHAO Cui-yu
(Jiangsu Urban and Rural Construction College,Changzhou Jiangsu? 213000)
Abstract:The design of pulse width measuring instrument based on AT89C52 is presented in this paper. The measurement results of the instrument are filtered by software digital filter, which eliminates the problem of jitter in the measurement. The measurement accuracy is high and the stability is good. It has certain practicability.
Key words:AT89C52; measuring instrument; pulse width