【摘要】數(shù)字頻率計主要包含了對輸入信號的整形、計數(shù)、顯示三個部分。本文介紹了軟件部分主要包括實現(xiàn)選擇對不同分頻信號計數(shù)程序、對數(shù)據(jù)處理程序及顯示程序。在此采用了以AT89C2051單片機為核心的直接測頻法。
【關(guān)鍵詞】數(shù)字頻率計;單片機;顯示
1.引言
數(shù)字頻率計是直接用十進制碼來顯示被測信號頻率的一種測量裝置。作為一種基礎(chǔ)測量儀器,已在教學(xué)、科研、高精度儀器測量、工業(yè)控制等領(lǐng)域有較廣泛的應(yīng)用。
試驗中設(shè)計的頻率計測量的頻率范圍在1Hz-10MHz之間。能夠測量任何該頻率段內(nèi)的周期信號的頻率,延時要小,測量迅速,以十進制數(shù)顯示,便于讀數(shù),單位以Hz或KHz顯示,自動轉(zhuǎn)換單位。
方案1:目前市場上的頻率計多數(shù)使用專用計數(shù)芯片和數(shù)字邏輯電路計數(shù),測量原理圖如圖1所示。
圖1 計數(shù)芯片設(shè)計頻率計的基本原理
計數(shù)芯片是通過外部時鐘電路產(chǎn)生的時間基準(zhǔn)信號控制計數(shù)器的計數(shù)和保持狀態(tài)的,計數(shù)器的測量精度很大程度上就取決于時間基準(zhǔn)信號的精度。其次,要實現(xiàn)量程轉(zhuǎn)換,需要人為選擇量程,對時鐘電路產(chǎn)生的時間信號分頻得到不同量程所需的時間基準(zhǔn)信號,完成一次計數(shù)后要對電路產(chǎn)生控制信號送入計數(shù)器,使計數(shù)器清零以便下一次計數(shù),這使得電路比較復(fù)雜。再者,這種專用芯片的價格比較高,就決定了制作的頻率計的成本會很高。基于以上考慮,就否定了這種用計數(shù)芯片計數(shù)的方法。
方案2:現(xiàn)在單片機的使用比較廣泛,我們可以考慮用單片機設(shè)計頻率計。使用單片機設(shè)計時通常采用兩種辦法:1)使用單片機自帶的計數(shù)器對輸入脈沖進行計數(shù),或者測量信號的周期;2)單片機外部使用計數(shù)器對脈沖信號進行計數(shù),計數(shù)值再由單片機讀取。這里我們用第一種的直接測頻法。以AT89C2051單片機為核心,利用其內(nèi)部的定時(計數(shù))器來完成待測信號頻率的測量。單片機的其中一個定時/計數(shù)器定時,另一個計數(shù)。另外還可以通過軟件編程實現(xiàn)自動換檔,使電路結(jié)構(gòu)大為簡化。
比較以上兩種方案,很容易發(fā)現(xiàn)兩者的優(yōu)缺點:
方案1需要人為選擇量程,電路復(fù)雜,專用芯片的價格比較高,制作的頻率計的成本高;
方案2可實現(xiàn)自動換檔,取材方便、電路簡單,制作成本低。
從而確定了使用單片機計數(shù)的方案。
2.數(shù)字頻率計的基本原理
頻率的定義是單位時間(1s)內(nèi)周期信號的變化次數(shù)。若在一定時間間隔T內(nèi)測得周期信號的重復(fù)變化次數(shù)為N,則其頻率為:
F=N/T
所以測頻就是測量單位時間內(nèi)脈沖個數(shù),則首先就要對輸入信號整形,變換成矩形脈沖,送入計數(shù),計數(shù)完成后顯示頻率值。據(jù)此,設(shè)計原理如圖2所示。
圖2 數(shù)字頻率計的基本組成
3.軟件設(shè)計
軟件部分主要包括實現(xiàn)選擇對不同分頻信號計數(shù)程序、對數(shù)據(jù)處理程序及顯示程序。為使CPU不把大部分時間用在等待定時/計數(shù)結(jié)束,數(shù)碼管在單片機在計數(shù)的同時仍能顯示,就需要采用中斷方式。在主程序中,對定時/計數(shù)器設(shè)初值并開中斷,運行顯示程序,當(dāng)T0定時到時產(chǎn)生中斷,在中斷處理子程序中對數(shù)據(jù)處理,并重新對定時/計數(shù)器設(shè)初值。由于中斷服務(wù)子程序時間非常短,所以視覺上數(shù)碼管沒有停止顯示。
具體的工作過程為:
通過軟件設(shè)置單片機P1.5和P1.6,即設(shè)置了數(shù)據(jù)選擇器的地址端A和B,選擇對100分頻的信號測頻,清零標(biāo)記位(25H).0表示選擇100分頻;T1清零,T0定時100MS同時啟動T1計數(shù)和T0定時;
定時到時產(chǎn)生中斷,T1停止計數(shù),判斷標(biāo)記位(25H).0,為零表示單片機對100分頻的信號計數(shù)100MS,判斷計數(shù)值是否小于5000,(小于5000說明信號未經(jīng)分頻的頻率值小于5MHz),若大于5000表明信號頻率大于5MHz,信號實際頻率為:計數(shù)值×100×10Hz,所以信號頻率值可直接用計數(shù)值表示,單位為KHz;
若計數(shù)值小于5000,繼續(xù)判斷計數(shù)值是否小于500(小于500說明信號未經(jīng)分頻的頻率值小于500KHz),若大于500表明信號頻率在500 KHz-- 5MHz內(nèi),這時就沒必要對信號100分頻,只需要10分頻就可以,通過軟件設(shè)置單片機P1.5和P1.6,即設(shè)置了數(shù)據(jù)選擇器的地址端A和B,選擇對10分頻的信號測頻,標(biāo)記位(25H).0置1,標(biāo)記位(25H).1置1,表示計數(shù)值為10分頻的計數(shù),重新把T1清零,T0定時100MS同時啟動T1計數(shù)和T0定時,定時到時產(chǎn)生中斷,T1停止計數(shù),判斷標(biāo)記位(25H).0為1,表示不是100分頻的計數(shù),判斷標(biāo)記位(25H).1為1表示計數(shù)值為10分頻的計數(shù),信號實際頻率為:計數(shù)值×10×10Hz,所以信號頻率值為計數(shù)值除以10,單位為KHz,實際上可以直接在計數(shù)值的左邊第二位加小數(shù)點,表示對計數(shù)值進行了除以10的處理,設(shè)置標(biāo)記位P1.7為1,表示是分頻的計數(shù),需加小數(shù)點,這時需要把所有標(biāo)記位清零以便下一次計數(shù);
若計數(shù)值小于5000也小于500說明信號未經(jīng)分頻的頻率值小于500KHz,這時就沒必要對信號分頻,通過軟件設(shè)置單片機P1.5和P1.6,即設(shè)置了數(shù)據(jù)選擇器的地址端A和B,選擇對不分頻的信號測頻,置1標(biāo)記位(25H).0清零標(biāo)記位(25H).1,表示計數(shù)值為不分頻的計數(shù),重新把T1清零,T0定時100MS同時啟動T1計數(shù)和T0定時,定時到時產(chǎn)生中斷,T1停止計數(shù),判斷標(biāo)記位(25H).0為1,表示不是100分頻的計數(shù),判斷標(biāo)記位(25H).1為0,表示計數(shù)值不是10分頻的計數(shù),所以計數(shù)值為不分頻的計數(shù),信號實際頻率為:計數(shù)值×10Hz,所以信號頻率值為計數(shù)值乘以10,單位為Hz;但在低頻時,如果信號頻率小于10Hz,計數(shù)100MS就無法測量信號頻率,所以這時還有必要重新對T0置數(shù),使其定時1S,T1也重新計數(shù),設(shè)置標(biāo)記位P3.2為0表示計數(shù)值是1S的計數(shù),不用對計數(shù)值乘10。
由以上分析可知,通過軟件編程就可實現(xiàn)量程的自動轉(zhuǎn)換。
計數(shù)完成后需要對數(shù)據(jù)處理:
(1)由T1得到的計數(shù)值為二進制,需要轉(zhuǎn)換為十進制才能顯示,可通過軟件編程實現(xiàn);
(2)進制轉(zhuǎn)換完后衛(wèi)壓縮的BCD數(shù),要把壓縮BCD數(shù)轉(zhuǎn)換為分離BCD數(shù)。
程序流程圖如圖3、4、5所示。
各子程序流程圖如圖5所示。
4.總結(jié)
把已知頻率的標(biāo)準(zhǔn)信號輸入到制作好的頻率計上,觀察頻率計顯示數(shù)值發(fā)現(xiàn)與標(biāo)準(zhǔn)信號的頻率值存在一定的延遲和差值,這種誤差的產(chǎn)生主要是因為電路中各芯片的延遲和程序中對T0定時和T1計數(shù)時間并不是完全相等。但測得值與標(biāo)準(zhǔn)值相差不大,考慮到做模擬電路實驗時用到的頻率范圍及對頻率計的性能要求,在此制作的頻率計完全可以應(yīng)用在模擬電路實驗中。
注:由于某種原因,在此,設(shè)計的程序不予刊發(fā)。
參考文獻
[1]童詩白.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2002,5.
[2]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2004,4.
[3]余家春.PROTEL99SE電路設(shè)計使用教程[M].北京:中國鐵道出版社,2003,1.
[4]王廷才.電子線路輔助設(shè)計PROTEL99SE[M].北京:高等教育出版社,2004,8.
[5]張毅剛,彭喜元等.新編MCS-51單片機應(yīng)用設(shè)計[M].黑龍江:哈爾濱工業(yè)大學(xué)出版社,2003,7.
作者簡介:陳利新(1968—),男,山東臨沂人,大學(xué)本科,工程師,現(xiàn)供職于山東省新聞出版廣電局蒙山轉(zhuǎn)播臺,從事廣播電視發(fā)射轉(zhuǎn)播技術(shù)方面的工作。