日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 單片機-一個簡單頻率測量

          單片機-一個簡單頻率測量

          作者: 時間:2018-09-05 來源:網(wǎng)絡(luò) 收藏

          單位由一個信號源的項目,其中由一個功能,即實現(xiàn)一個方波信號頻率的測量。實際情況中,信號的頻率一般在15-25Hz。占空比在10%-90%之間。可以說頻率非常低。因為單位使用STC89C54的時間比較長,所以單位要求使用該單片機。這個項目非常簡單。因為時間很久了,所以我稍微回憶一下。

          本文引用地址:http://yuyingmama.com.cn/article/201809/388457.htm

           電路圖邏輯上是這樣的:

          我將信號經(jīng)過比例縮小跟隨后直接接到INT0管腳。具體想法是這樣的,設(shè)定一個10uM的定時器計時。每兩秒中作為一個測量周期。方波最會有下跳沿的,每一下跳沿作為一個周期的開始。兩秒計時結(jié)束后查看一共采集到K個下跳沿。那么該方波的周期就是T=2/K秒。頻率f=K/2。

          有一個同事提供了頻率測量的思路。在三秒中時間范圍內(nèi)統(tǒng)計INT0下跳沿出現(xiàn)的個數(shù),即可統(tǒng)計出方波脈沖的頻率。因為下跳沿會觸發(fā)外部中斷,所以只需統(tǒng)計程序進入中斷程序的次數(shù)。我們來看看代碼實現(xiàn)的方法。

          /*************************************/

          //定時器初始化

          //每1毫秒中斷一次

          /*************************************/

          #define SYS_CLK   12000000L

          #define TIME0_LOAD -(SYS_CLK/12/1000)

          typedef struct FREQ

          {

             unsigned char start;

            unsigned int timer;

            unsigned int int_Count;

            unsigned int T;

          }FREQ;

          FREQ  freq={0,0};

          void Timer0_Init( )

          {

             TMOD = TMOD | 0x01;

            TH0 = TIME0_LOAD>>8;

            TL0 = TIME0_LOAD0x00FF;

            EA =1;

            ET0 =1;

            TR0 =1;

          }

          /*************************************/

          //定時器串口中斷程序

          /*************************************/

          void Timer0_isr( ) interrupt 1

          {


          上一頁 1 2 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

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

          關(guān)閉