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