熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

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

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

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

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

本文引用地址:http://www.bjwjmy.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)閉