设你的P0.0接入脉冲,用T0定时计数器计数:TR0 = 0;while(P0.0 == 0) //当检测到高电平,开启计数器TR0 =1;while(P0.0 == 1) //当脉冲变低,关闭计数器TR0 = 0;然后直接读取 TH0和TL0中的计数数据,再乘以你的计数时间间隔(每计一个数的时间,跟你的时钟频率有关系)。
首先了解你要测的脉冲宽度最小是多少?然后至少选择8倍的采用率的时钟去采样;否则不太准。