<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)89C51制作的頻率計(jì)的設(shè)計(jì)方法,

          基于單片機(jī)89C51制作的頻率計(jì)的設(shè)計(jì)方法,

          作者: 時(shí)間:2013-03-08 來(lái)源:網(wǎng)絡(luò) 收藏

            
            當(dāng)上述測(cè)量判斷過(guò)程直到計(jì)數(shù)閘門寬度達(dá)到1 s(對(duì)應(yīng)的頻率測(cè)量范圍為100~999 Hz)時(shí)測(cè)量結(jié)果仍不具有3位有效數(shù)字,則使用定時(shí)方法測(cè)量待測(cè)信號(hào)的周期。定時(shí)/計(jì)數(shù)器的工作被設(shè)置為定時(shí)器方式,定時(shí)/計(jì)數(shù)器的計(jì)數(shù)寄存器清0,在判斷待測(cè)信號(hào)的上跳沿到來(lái)后,運(yùn)行控制位TR置為1,以工作周期為單位進(jìn)行計(jì)數(shù),直至信號(hào)的下跳沿到來(lái),運(yùn)行控制位TR清0,停止計(jì)數(shù)。16位定時(shí)/計(jì)數(shù)器的最高計(jì)數(shù)值為65 535,當(dāng)待測(cè)信號(hào)的頻率較低時(shí),定時(shí)/計(jì)數(shù)器將發(fā)生溢出。產(chǎn)生溢出時(shí),程序進(jìn)入定時(shí)器中斷服務(wù)程序,對(duì)溢出次數(shù)進(jìn)行計(jì)數(shù)。待測(cè)信號(hào)的周期由3個(gè)字節(jié)組成:定時(shí)/計(jì)數(shù)器溢出次數(shù)、定時(shí)/計(jì)數(shù)器的高8位和低8位。信號(hào)的頻率f與信號(hào)的周期T之間的關(guān)系為: f=1/T
            
            完成信號(hào)的周期測(cè)量后,需要做一次倒數(shù)運(yùn)算才能獲得信號(hào)的頻率。為提高運(yùn)算精度,采用浮點(diǎn)數(shù)算術(shù)運(yùn)算。浮點(diǎn)數(shù)由3個(gè)字節(jié)組成:第1字節(jié)最高位為數(shù)符,其余7位為階碼;第2字節(jié)為尾數(shù)的高字節(jié);第3字節(jié)為尾數(shù)的低字節(jié)。待測(cè)信號(hào)周期的3個(gè)字節(jié)定點(diǎn)數(shù)通過(guò)截取高16位、設(shè)置數(shù)符和計(jì)算階碼轉(zhuǎn)換為上述格式的浮點(diǎn)數(shù)。然后浮點(diǎn)數(shù)算術(shù)運(yùn)算對(duì)其進(jìn)行處理,獲得用浮點(diǎn)數(shù)格式表達(dá)的信號(hào)頻率值。再通過(guò)浮點(diǎn)數(shù)到BCD碼轉(zhuǎn)換模塊把用浮點(diǎn)數(shù)格式表達(dá)的信號(hào)頻率值變換成本的顯示格式,送到顯示模塊顯示待測(cè)信號(hào)的頻率值。完成顯示后,都開始下一次信號(hào)的頻率測(cè)量。系統(tǒng)軟件流程圖如圖2所示。

          點(diǎn)擊瀏覽下一頁(yè)

            系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方法。整個(gè)系統(tǒng)由初始化模塊、顯示模塊和信號(hào)頻率頻率測(cè)量模塊等各種功能模塊組成。上電后,進(jìn)入系統(tǒng)初始化模塊,系統(tǒng)軟件開始運(yùn)行。在執(zhí)行過(guò)程中,根據(jù)運(yùn)行流程分別調(diào)用各個(gè)功能模塊完成頻率測(cè)量、量程自動(dòng)切換、周期測(cè)量和測(cè)量結(jié)果顯示。

          5 實(shí)測(cè)結(jié)果和誤差分析
            
            為了衡量這次設(shè)計(jì)的頻率計(jì)的工作情況和測(cè)量精度,我們對(duì)系統(tǒng)進(jìn)行了試驗(yàn)。以南京電訊儀器廠制造的E312B型通用計(jì)數(shù)器為基準(zhǔn),用這次設(shè)計(jì)的頻率計(jì)對(duì)信號(hào)源進(jìn)行了測(cè)量,測(cè)量數(shù)據(jù)如表1所示。
            
            如圖1信號(hào)預(yù)處理電路所示,待測(cè)信號(hào)在進(jìn)入之前經(jīng)過(guò)了10×2次分頻。頻率計(jì)以進(jìn)入時(shí)的信號(hào)頻率=100 Hz為基準(zhǔn)(即待測(cè)信號(hào)頻率為2 kHz),大于此頻率采用頻率測(cè)量,小于此頻率采用周期測(cè)量。由表1頻率測(cè)量對(duì)比表可以看出,頻率測(cè)量的測(cè)量精度大于周期測(cè)量的測(cè)量精度。

          點(diǎn)擊瀏覽下一頁(yè)

            采用計(jì)數(shù)法實(shí)現(xiàn)頻率測(cè)量,誤差來(lái)源主要有計(jì)數(shù)誤差和閘門誤差2部分。誤差表達(dá)式為:

          點(diǎn)擊瀏覽下一頁(yè)
          其中:N為計(jì)數(shù)值,t為閘門時(shí)間。

            閘門時(shí)間相對(duì)誤差dt/t主要取決于單片機(jī)晶振的頻率穩(wěn)定度,選擇合適的石英晶體和振蕩電路,誤差一般可<10-6。當(dāng)僅顯示3位有效數(shù)字時(shí),該項(xiàng)誤差可以忽略。對(duì)于dN/N部分,無(wú)論閘門時(shí)間長(zhǎng)短,計(jì)數(shù)法測(cè)頻總存在1個(gè)單位的量化誤差。在表1中,待測(cè)信號(hào)頻率>2 kHz時(shí)的誤差就來(lái)源于計(jì)數(shù)誤差。增加顯示的有效數(shù)字位數(shù)可降低該項(xiàng)誤差的影響。
            
            當(dāng)待測(cè)信號(hào)頻率<2 kHz時(shí),直接測(cè)量的是信號(hào)的周期。周期測(cè)量的誤差表達(dá)式為:

          點(diǎn)擊瀏覽下一頁(yè)

          其中:dN/N為量化誤差,dτ0/τ0為單片機(jī)晶振的頻率穩(wěn)定度。
            
            進(jìn)行周期測(cè)量時(shí)進(jìn)入單片機(jī)的信號(hào)頻率<100 Hz,使用12 MHz時(shí)鐘時(shí)的最小計(jì)數(shù)值為10 000。當(dāng)僅顯示3位有效數(shù)字時(shí),該項(xiàng)誤差現(xiàn)在也可以忽略。待測(cè)信號(hào)的周期測(cè)量值通過(guò)浮點(diǎn)數(shù)運(yùn)算變換成頻率值,這時(shí)的誤差來(lái)源于浮點(diǎn)數(shù)運(yùn)算和數(shù)制轉(zhuǎn)換所帶來(lái)的誤差。

          6 結(jié) 語(yǔ)
            
            介紹了一種基于單片機(jī)制作的頻率計(jì)的設(shè)計(jì)方法,所制作的頻率計(jì)需要外圍器件較少,適宜用于嵌入式系統(tǒng)。該頻率計(jì)應(yīng)用周期測(cè)量和相應(yīng)的數(shù)學(xué)處理實(shí)現(xiàn)低頻段的頻率測(cè)量,因此很容易擴(kuò)展實(shí)現(xiàn)信號(hào)的周期測(cè)量和占空比測(cè)量。該頻率計(jì)被應(yīng)用于筆者設(shè)計(jì)的“高頻實(shí)驗(yàn)裝置”之中,用來(lái)對(duì)LC振蕩器和RC振蕩器輸出信號(hào)的頻率穩(wěn)定度進(jìn)行測(cè)量,取得良好的應(yīng)用效果。

          施密特觸發(fā)器相關(guān)文章:施密特觸發(fā)器原理

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 單片機(jī) 89C51 頻率計(jì)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();