怎样用51单片机计数器测量一个高电平脉冲的宽度,c语言程式,高电平开始计数,低电平停止并读取计数值。谢

怎样用51单片机计数器测量一个高电平脉冲的宽度,用c语言程式,高电平开始计数,低电平停止并读取计数值。谢

设你的P0.0接入脉冲,用T0定时计数器计数:
TR0 = 0;
while(P0.0 == 0) //当检测到高电平,开启计数器
TR0 =1;
while(P0.0 == 1) //当脉冲变低,关闭计数器
TR0 = 0;

然后直接读取 TH0和TL0中的计数数据,再乘以你的计数时间间隔(每计一个数的时间,跟你的时钟频率有关系)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-31
首先了解你要测的脉冲宽度最小是多少?然后至少选择8倍的采用率的时钟去采样;否则不太准。