网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

单片机-一个简单频率测量

 电路图逻辑上是这样的:

我将信号经过比例缩小跟随后直接接到INT0管脚。具体想法是这样的,设定一个10uM的定时器计时。每两秒中作为一个测量周期。方波最会有下跳沿的,每一下跳沿作为一个周期的开始。两秒计时结束后查看一共采集到K个下跳沿。那么该方波的周期就是T=2/K秒。频率f=K/2。

有一个同事提供了频率测量的思路。在三秒中时间范围内统计INT0下跳沿出现的个数,即可统计出方波脉冲的频率。因为下跳沿会触发外部中断,所以只需统计程序进入中断程序的次数。我们来看看代码实现的方法。

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

//定时器初始化

//每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

{

热门搜索:ADS1013IDGSR B3429D PS2408RA BT137S-600D118 01B1001JF SBB400 2839224 PS240810 TLP76MSG N060-002 2920120 SS480806 2804623 B40-8000-PCB 2320351 SPS-615-HG TLP825 8300SB1 2986122 2866569 02B1001JF TLM609NS PS120406 UL800CB-15 RBC11A
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质