标题: 单片机测量频率 哪里出了问题? [打印本页]

作者: 汉子    时间: 2017-5-3 16:11
标题: 单片机测量频率 哪里出了问题?
哪个大神可以帮我看下这个单片机测量频率的程序哪里出了问题吗?
#include"at89x51.h"
#define uint unsigned int
uint count, f;
bit rflag = 0;             //设置周期标志
void control(void)
{
       TMOD = 0x01;      //gate=0,方式116位定时计数器INT0 为1是启动定时器
       IT0 = 1;     //脉冲方式(后沿负跳有效)进入中断
       TH0 = 0;TL0 = 0;设置初值
      P3_2 = 0   //触发器清零
       TR0 = 1; //TR0 = 1,才允许T0计数
       EX0 = 1; //只开外部中断0
       EA = 1; //开总中断
}
}
void INT_0(void) interrupt 0 using 1 //INTO中断服务
{
       EA = 0;
       TR0 = 0;//禁止T0计数
       count = TL0 + TH0 * 256;//取计数值
       rflag = 1;                  //设标志
}
main()
{
While(1){
f=1/count;
      if(rflag){
      rflag = 0
       TH0 = 0;TL0 = 0;设置初值
       TR0 = 1; //TR0 = 1,才允许T0计数
       EX0 = 1; //只开外部中断0
       EA = 1; //开总中断
}
}


作者: zl2168    时间: 2017-5-3 20:17
本帖最后由 zl2168 于 2017-5-3 20:19 编辑

实例73  测量脉冲频率
实例73 测量脉冲频率.rar (52.74 KB, 下载次数: 13)
Proteus仿真一下,确认有效
以上摘自张志良编著《单片机实验实训100例》ISBN 978-7-5124-1603-1,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。



作者: 1872040489    时间: 2017-5-3 21:30
f=1/count;f不会是0么??、
作者: zl2168    时间: 2017-5-4 08:50
1872040489 发表于 2017-5-3 21:30
f=1/count;f不会是0么??、

你提的问题似乎是数学问题!还2个问号!问题严重啊!
作者: zl2168    时间: 2017-5-4 21:10
1872040489 发表于 2017-5-3 21:30
f=1/count;f不会是0么??、

"f=1/count;f不会是0么??、"    还获黑币奖励? count定义uint ,f会是0么?   这是数学问题 。
作者: 归依龙井    时间: 2017-5-4 22:41
测量频率,你的思路是啥

作者: shuisheng60    时间: 2019-2-7 00:51
这里有测率的例程http://www.51hei.com/bbs/dpj-146532-1.html




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1