怎样用51单片机计数器测量一个高电平脉冲的宽度,c语言程式,高电平开始计数,低电平停止并读取计数值。谢
答案:2 悬赏:0 手机版
解决时间 2021-11-09 10:55
- 提问者网友:感性作祟
- 2021-11-08 21:00
怎样用51单片机计数器测量一个高电平脉冲的宽度,c语言程式,高电平开始计数,低电平停止并读取计数值。谢
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-11-08 22:39
设你的P0.0接入脉冲,用T0定时计数器计数:
TR0 = 0;
while(P0.0 == 0) //当检测到高电平,开启计数器
TR0 =1;
while(P0.0 == 1) //当脉冲变低,关闭计数器
TR0 = 0;
然后直接读取 TH0和TL0中的计数数据,再乘以你的计数时间间隔(每计一个数的时间,跟你的时钟频率有关系)。
TR0 = 0;
while(P0.0 == 0) //当检测到高电平,开启计数器
TR0 =1;
while(P0.0 == 1) //当脉冲变低,关闭计数器
TR0 = 0;
然后直接读取 TH0和TL0中的计数数据,再乘以你的计数时间间隔(每计一个数的时间,跟你的时钟频率有关系)。
全部回答
- 1楼网友:大漠
- 2021-11-08 23:30
首先了解你要测的脉冲宽度最小是多少?然后至少选择8倍的采用率的时钟去采样;否则不太准。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯