基于51單片機的頻率計設(shè)計
4 系統(tǒng)軟件設(shè)計
頻率計開始工作或者完成一次頻率測量,系統(tǒng)軟件都進(jìn)行測量初始化。測量初始化模塊設(shè)置堆棧指針(SP)、工作寄存器、中斷控制和定時/計數(shù)器的工作方式。定時/計數(shù)器的工作首先被設(shè)置為計數(shù)器方式,即用來測量信號頻率。首先定時/計數(shù)器的計數(shù)寄存器清0,運行控制位TR置1,啟動對待測信號的計數(shù)。計數(shù)閘門由軟件延時程序?qū)崿F(xiàn),從計數(shù)閘門的最小值(即測量頻率的高量程)開始測量,計數(shù)閘門結(jié)束時TR清0,停止計數(shù)。計數(shù)寄存器中的數(shù)值經(jīng)過數(shù)制轉(zhuǎn)換程序從十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。判斷該數(shù)的最高位,若該位不為0,滿足測量數(shù)據(jù)有效位數(shù)的要求,測量值和量程信息一起送到顯示模塊;若該位為0,將計數(shù)閘門的寬度擴大10倍,重新對待測信號的計數(shù),直到滿足測量數(shù)據(jù)有效位數(shù)的要求。
當(dāng)上述測量判斷過程直到計數(shù)閘門寬度達(dá)到1 s(對應(yīng)的頻率測量范圍為100~999 Hz)時測量結(jié)果仍不具有3位有效數(shù)字,頻率計則使用定時方法測量待測信號的周期。定時/計數(shù)器的工作被設(shè)置為定時器方式,定時/計數(shù)器的計數(shù)寄存器清0,在判斷待測信號的上跳沿到來后,運行控制位TR置為1,以單片機工作周期為單位進(jìn)行計數(shù),直至信號的下跳沿到來,運行控制位TR清0,停止計數(shù)。16位定時/計數(shù)器的最高計數(shù)值為65 535,當(dāng)待測信號的頻率較低時,定時/計數(shù)器將發(fā)生溢出。產(chǎn)生溢出時,程序進(jìn)入定時器中斷服務(wù)程序,對溢出次數(shù)進(jìn)行計數(shù)。待測信號的周期由3個字節(jié)組成:定時/計數(shù)器溢出次數(shù)、定時/計數(shù)器的高8位和低8位。信號的頻率f與信號的周期T之間的關(guān)系為: f=1/T
完成信號的周期測量后,需要做一次倒數(shù)運算才能獲得信號的頻率。為提高運算精度,采用浮點數(shù)算術(shù)運算。浮點數(shù)由3個字節(jié)組成:第1字節(jié)最高位為數(shù)符,其余7位為階碼;第2字節(jié)為尾數(shù)的高字節(jié);第3字節(jié)為尾數(shù)的低字節(jié)。待測信號周期的3個字節(jié)定點數(shù)通過截取高16位、設(shè)置數(shù)符和計算階碼轉(zhuǎn)換為上述格式的浮點數(shù)。然后浮點數(shù)算術(shù)運算對其進(jìn)行處理,獲得用浮點數(shù)格式表達(dá)的信號頻率值。再通過浮點數(shù)到BCD碼轉(zhuǎn)換模塊把用浮點數(shù)格式表達(dá)的信號頻率值變換成本頻率計的顯示格式,送到顯示模塊顯示待測信號的頻率值。完成顯示后,頻率計都開始下一次信號的頻率測量。系統(tǒng)軟件流程圖如圖2所示。
系統(tǒng)軟件設(shè)計采用模塊化設(shè)計方法。整個系統(tǒng)由初始化模塊、顯示模塊和信號頻率頻率測量模塊等各種功能模塊組成。上電后,進(jìn)入系統(tǒng)初始化模塊,系統(tǒng)軟件開始運行。在執(zhí)行過程中,根據(jù)運行流程分別調(diào)用各個功能模塊完成頻率測量、量程自動切換、周期測量和測量結(jié)果顯示。
5 實測結(jié)果和誤差分析
為了衡量這次設(shè)計的頻率計的工作情況和測量精度,我們對系統(tǒng)進(jìn)行了試驗。以南京電訊儀器廠制造的E312B型通用計數(shù)器為基準(zhǔn),用這次設(shè)計的頻率計對信號源進(jìn)行了測量,測量數(shù)據(jù)如表1所示。
如圖1信號預(yù)處理電路所示,待測信號在進(jìn)入單片機之前經(jīng)過了10×2次分頻。頻率計以進(jìn)入單片機時的信號頻率=100 Hz為基準(zhǔn)(即待測信號頻率為2 kHz),大于此頻率采用頻率測量,小于此頻率采用周期測量。由表1頻率測量對比表可以看出,頻率測量的測量精度大于周期測量的測量精度。
采用計數(shù)法實現(xiàn)頻率測量,誤差來源主要有計數(shù)誤差和閘門誤差2部分。誤差表達(dá)式為:
其中:N為計數(shù)值,t為閘門時間。
閘門時間相對誤差dt/t主要取決于單片機晶振的頻率穩(wěn)定度,選擇合適的石英晶體和振蕩電路,誤差一般可<10-6。當(dāng)僅顯示3位有效數(shù)字時,該項誤差可以忽略。對于dN/N部分,無論閘門時間長短,計數(shù)法測頻總存在1個單位的量化誤差。在表1中,待測信號頻率>2 kHz時的誤差就來源于計數(shù)誤差。增加顯示的有效數(shù)字位數(shù)可降低該項誤差的影響。
當(dāng)待測信號頻率<2 kHz時,直接測量的是信號的周期。周期測量的誤差表達(dá)式為:
其中:dN/N為量化誤差,dτ0/τ0為單片機晶振的頻率穩(wěn)定度。
進(jìn)行周期測量時進(jìn)入單片機的信號頻率<100 Hz,使用12 MHz時鐘時的最小計數(shù)值為10 000。當(dāng)僅顯示3位有效數(shù)字時,該項誤差現(xiàn)在也可以忽略。待測信號的周期測量值通過浮點數(shù)運算變換成頻率值,這時的誤差來源于浮點數(shù)運算和數(shù)制轉(zhuǎn)換所帶來的誤差。
6 結(jié) 語
介紹了一種基于單片機89C51制作的頻率計的設(shè)計方法,所制作的頻率計需要外圍器件較少,適宜用于嵌入式系統(tǒng)。該頻率計應(yīng)用周期測量和相應(yīng)的數(shù)學(xué)處理實現(xiàn)低頻段的頻率測量,因此很容易擴展實現(xiàn)信號的周期測量和占空比測量。該頻率計被應(yīng)用于筆者設(shè)計的“高頻實驗裝置”之中,用來對LC振蕩器和RC振蕩器輸出信號的頻率穩(wěn)定度進(jìn)行測量,取得良好的應(yīng)用效果。
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理 lc振蕩電路相關(guān)文章:lc振蕩電路原理 施密特觸發(fā)器相關(guān)文章:施密特觸發(fā)器原理
評論