单片机测量方波的频率、占空比及相位差的方法
2014-11-18 15:38
555 查看
1、 频率及占空比的测量
![](http://img.blog.csdn.net/20141118153939954)
如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临时,读取定时器的值,假设定时时间为t1;下一个上升沿来临时关闭定时器,读取定时器的值,假设定时时间为t2。t1即为1个周期内高电平的时间,t2即为脉冲的周期。t1/t2即为占空比,1/t2即为频率。
C51程序如下:
2、 相位差的测量
![](http://img.blog.csdn.net/20141118154203625)
测量相位差的电路如上所示,待测量的两路脉冲分别作为两个D触发器的时钟输入,两个D触发器的输入端D及S端都接高电平,第一个D触发器的输出接第二个D触发器的R端,第二个D触发器的互补输出端接第一个D触发器的R端。从下面的波形图可以看出,第一个D触发器输出的脉冲信号的占空比乘以2π即为相位差。这样就将测量两路方波信号的相位差转化为测量一路方波信号的占空比,就可以按照前面介绍的测量占空比的方法来测量了。
![](http://img.blog.csdn.net/20141118154237732)
黄色的波形为脉冲1,蓝色的波形为脉冲2,红色的波形为相位差。
如上图所示,当脉冲的上升沿来临时,将定时器打开;紧接着的下降沿来临时,读取定时器的值,假设定时时间为t1;下一个上升沿来临时关闭定时器,读取定时器的值,假设定时时间为t2。t1即为1个周期内高电平的时间,t2即为脉冲的周期。t1/t2即为占空比,1/t2即为频率。
C51程序如下:
TH0=0; //定时器高位,初值设为0 TL0=0; //定时器低位,初值设为0 T0_num=0; //定时器溢出次数,初值设为0 while(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,红色的波形为相位差。
相关文章推荐
- 使用 STM32 测量频率和占空比的几种方法
- 用频谱仪测量晶体频率的方法
- 关于单片机测量信号频率的精度问题
- 用NI 板卡生成方波,修改占空比的方法!
- Arduino利用TimerOne库产生固定频率和占空比的方波
- STM32 自定义频率与占空比PWM输出的方法
- 电子线路设计技巧7:UC3843A升压电路中振荡频率和占空比的确定方法
- 增强型单片机STC12C5A60S2输出各种频率方波信号
- 【方法】STM32F103C8单片机通过定时器DMA测量脉冲宽度,无需CPU干预(以DHT11传感器为例)
- CPU频率计算方法---PLL设置
- python最简单的测量时间方法
- MCS51系列单片机双机并行互连的实现方法
- 单片机破解的常用方法及应对策略
- CPU频率计算方法---PLL设置
- 补充:测量程序运行时间的几种方法
- 单片机系统软件抗干扰方法
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- 方波频率的检测和倍频的程序
- 单片机破解的常用方法及应对策略
- 测量程序执行时间的两种方法