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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機(jī)的頻率計設(shè)計

          基于51單片機(jī)的頻率計設(shè)計

          作者: 時間:2013-02-21 來源:網(wǎng)絡(luò) 收藏

          1 引 言
            本設(shè)計綜合考慮了頻率測量精度和測量反應(yīng)時間的要求。例如當(dāng)要求頻率測量結(jié)果為3位有效數(shù)字,這時如果待測信號的頻率為1 Hz,則計數(shù)閘門寬度必須大于1 000 s。為了兼顧頻率測量精度和測量反應(yīng)時間的要求,把測量工作分為兩種方法:
            
            (1)當(dāng)待測信號的頻率>100 Hz時,定時/計數(shù)器構(gòu)成為計數(shù)器,以機(jī)器周期為基準(zhǔn),由軟件產(chǎn)生計數(shù)閘門,計數(shù)閘門寬度>1 s時,即可滿足頻率測量結(jié)果為3位有效數(shù)字;
           ?。?)當(dāng)待測信號的頻率<100 Hz時,定時/計數(shù)器構(gòu)成為定時器,由的予處理電路把待測信號變成方波,方波寬度等于待測信號的周期。這時用方波作計數(shù)閘門,當(dāng)待測信號的頻率=100 Hz,使用12 MHz時鐘時的最小計數(shù)值為10 000,完全滿足測量精度的要求?! ?/P>

          的設(shè)計以AT89C為核心,利用他內(nèi)部的定時/計數(shù)器完成待測信號周期/頻率的測量。單片機(jī)內(nèi)部具有2個16位定時/計數(shù)器,定時/計數(shù)器的工作可以由編程來實現(xiàn)定時、計數(shù)和產(chǎn)生計數(shù)溢出時中斷要求的功能。在定時器工作方式下,在被測時間間隔內(nèi),每來一個機(jī)器周期,計數(shù)器自動加1(使用12 MHz時鐘時,每1μs加1),這樣以機(jī)器周期為基準(zhǔn)可以用來測量時間間隔。在計數(shù)器工作方式下,加至外部引腳的待測信號發(fā)生從1到0的跳變時計數(shù)器加1,這樣在計數(shù)閘門的控制下可以用來測量待測信號的頻率。外部輸入在每個機(jī)器周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個機(jī)器周期(24個振蕩周期),所以最大計數(shù)速率為時鐘頻率的1/24(使用12 MHz時鐘時,最大計數(shù)速率為500 kHz)。定時/計數(shù)器的工作由運(yùn)行控制位TR控制,當(dāng)TR置1,定時/計數(shù)器開始計數(shù);當(dāng)TR清0,停止計數(shù)。

          2 的量程自動切換
              使用定時方法實現(xiàn)頻率測量時,外部的待測信號通過頻率計的預(yù)處理電路變成寬度等于待測信號周期的方波,該方波同樣加至定時/計數(shù)器的輸入腳。工作高電平是否加至定時/計數(shù)器的輸入腳;當(dāng)判定高電平加至定時/計數(shù)器的輸入腳,運(yùn)行控制位TR置1,啟動定時/計數(shù)器對單片機(jī)的機(jī)器周期的計數(shù),同時檢測方波高電平是否結(jié)束;當(dāng)判定高電平結(jié)束時TR清0,停止計數(shù),然后從計數(shù)寄存器讀出測量數(shù)據(jù)。這時讀出的數(shù)據(jù)反映的是待測信號的周期,通過數(shù)據(jù)處理把周期值變換成頻率值,由顯示電路顯示測量結(jié)果。

            使用計數(shù)方法實現(xiàn)頻率測量時,外部的待測信號為單片機(jī)定時/計數(shù)器的計數(shù)源,利用軟件延時程序?qū)崿F(xiàn)計數(shù)閘門。頻率計的工作過程為:定時/計數(shù)器的計數(shù)寄存器清0,運(yùn)行控制位TR置1,啟動定時/計數(shù)器工作;運(yùn)行軟件延時程序,同時定時/計數(shù)器對外部的待測信號進(jìn)行計數(shù),延時結(jié)束時TR清0,停止計數(shù)。從計數(shù)寄存器讀出測量數(shù)據(jù),測量數(shù)據(jù)在完成數(shù)據(jù)處理后,由顯示電路顯示測量結(jié)果。
            
            測量結(jié)果的顯示格式采用科學(xué)計數(shù)法,即有效數(shù)字乘以10為底的冪。這里設(shè)計的頻率計用5位數(shù)碼管顯示測量結(jié)果:前3位為測量結(jié)果的有效數(shù)字;第4位為指數(shù)的符號;第5位為指數(shù)的值。采用這種顯示格式既保證了測量結(jié)果的顯示精度,又保證了測量結(jié)果的顯示范圍(0.100 Hz~9.99 MHz)。
            
            頻率計測量量程自動轉(zhuǎn)換的過程由頻率計測量量程的高端開始。由于只顯示3位有效數(shù)字,測量量程的高端計數(shù)閘門不需要太寬,例如在進(jìn)入計數(shù)器的信號頻率范圍在10.0~99.9 kHz,計數(shù)閘門寬度為10 ms即可。頻率計開始工作時使用計數(shù)方法實現(xiàn)頻率測量,并使計數(shù)閘門寬度為最窄,完成測量后判斷測量結(jié)果是否具有3位有效數(shù)字,如果成立,將結(jié)果送去顯示,完成測量工作;否則將計數(shù)閘門寬度擴(kuò)大10倍,繼續(xù)進(jìn)行測量判斷,直到計數(shù)閘門寬度達(dá)到1 s,這時對應(yīng)的進(jìn)入單片機(jī)的待測信號頻率范圍為100~999 Hz。如果測量結(jié)果仍不具有3位有效數(shù)字,頻率計則使用定時方法實現(xiàn)頻率測量。
            
            定時方法測量的是待測信號的周期,這種方法只設(shè)一種量程,測量結(jié)果通過浮點數(shù)運(yùn)算模塊將信號周期轉(zhuǎn)換成對應(yīng)的頻率值,再將結(jié)果送去顯示。無論采用何種方式,只要完成一次測量,頻率計自動開始下一個測量循環(huán),因此該頻率計具有連續(xù)測量的功能,同時實現(xiàn)量程的自動轉(zhuǎn)換。

          3 信號預(yù)處理電路
            
            信號預(yù)處理電路如圖1所示,他由4級電路構(gòu)成。第1級為零偏置放大器,當(dāng)輸入信號為零或者為負(fù)電壓時,三極管截止,輸出高電平;當(dāng)輸入信號為正電壓時,三極管導(dǎo)通,輸出電壓隨著輸入電壓的上升而下降。零偏置放大器可把正負(fù)交替波形變換成單向脈沖,這使得頻率計既可以測量脈沖信號的頻率,也可以測量正弦波信號的頻率。放大器的放大能力實現(xiàn)了對小信號的測量,本電路可以測量幅度≥0.5 V的正弦波或脈沖波待測信號。三極管應(yīng)采用開關(guān)三極管以保證放大器具有良好的高頻響應(yīng)。第2級采用帶施密特觸發(fā)器的反相器7414,他用于把放大器生成的單向脈沖變換成與TTL/CMOS電平相兼容的方波。第3級采用十進(jìn)制同步計數(shù)器74160,第2級輸出的方波加到74160的CLK,當(dāng)從74160的TC輸出可實現(xiàn)10分頻(多個74160的級連可以進(jìn)一步擴(kuò)展測頻范圍)。第4級同樣采用十進(jìn)制同步計數(shù)器74160,第3級輸出的方波加到他的CLK,當(dāng)從他的Q0輸出既可實現(xiàn)2分頻,且其輸出為對稱方波,方波寬度等于待測信號的周期,從而為測量信號周期提供基礎(chǔ)。

          點擊瀏覽下一頁

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理
          lc振蕩電路相關(guān)文章:lc振蕩電路原理
          施密特觸發(fā)器相關(guān)文章:施密特觸發(fā)器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: 51單片機(jī) 頻率計 AT89C51

          評論


          相關(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); })();