标题: 单片机测量频率 哪里出了问题? [打印本页]
作者: 汉子 时间: 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,方式1是16位定时计数器,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
你提的问题似乎是数学问题!还2个问号!问题严重啊!
作者: zl2168 时间: 2017-5-4 21:10
"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 |