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