单片机测量方波的频率、占空比及相位差的方法1、频率及占空比的测量如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临时,读取定时器的值,假设定时时间为t1;下一个上升沿来临时关闭定时器,读取定时器的值,假设定时时间为t2。t1即为1个周期内高电平的时间,t2即为脉冲的周期。t1/t2即为占空比,1/t2即为频率。C语言程序如下:TH0=0;//定时器高位,初值设为0TL0=0;//定时器低位,初值设为0T0_num=0;//定时器溢出次数,初值设为0while(pulse);//pulse为脉冲的输入引脚while(!pulse);//等待上升沿来临TR0=1;//打开定时器while(pusl1);//等待下降沿来临th1=TH0;tl1=TL0;num1=T0_num;//保存定时器值while(!pusl1);//等待上升沿来临TR0=0;//关闭定时器th2=TH0;tl2=TL0;num2=T0_num;//保存定时器值上升沿打开定时器下降沿读取定时器值并保存下一个上升沿关闭定时器,读取定时器值并保存2、相位差的测量测量相位差的电路如上所示,待测量的两路脉冲分别作为两个D触发器的时钟输入,两个D触发器的输入端D及S端都接高电平,第一个D触发器的输出接第二个D触发器的R端,第二个D触发器的互补输出端接第一个D触发器的R端。从下面的波形图可以看出,第一个D触发器输出的脉冲信号的占空比乘以2π即为相位差。这样就将测量两路方波信号的相位差转化为测量一路方波信号的占空比,就可以按照前面介绍的测量占空比的方法来测量了。黄色的波形为脉冲1,蓝色的波形为脉冲2,红色的波形为相位差。