基于单片机频率相位表相位差设计
1452下载地址 https://docs.qq.com/doc/DWEpnR2pOWU91b3p4?pub=1&dver=2.1.0
1.2.1测量方波频率的原理
定时/计数器工作在方式1,每产生一次定时器0中断,计数65536个脉冲,此时的脉冲来自自振荡器的12分频后的脉冲,其周期为1uS。根据产生外部中断0时,定时器0中断的次数u,以及此时定时/计数器0计数寄存器的数值X,即可求得待测方波的周期为:T=65536*u+X 微秒。取其倒数即可求得待测方波的频率,小数点后保留两位,即可使得频率精度为0.1HZ。
1.2.2相位差的测量原理
将两路同频不同相的方波信号异或后得到的脉冲宽度t与方波信号的周期T的比值(占空比),即对应为两信号的相位差,,此时相位差 。其中,脉冲宽度的测量方法与方波周期的测量方法相同。异或测量相位差的原理图
#include <reg51.h> #include "LCD1602.h" //短延时函数:ShortDelay() void ShortDelay(uchar i) { for(;i>0;i--) ; } /* //长延时函数:LongDelay() void LongDelay(uint i) { uint j; for(;i>0;i--) { for(j=1000;j>0;j--);} } */ //寄存器选择信号:SetRS() void SetRS(bit i) { if(i==1) PinRS = 1; else PinRS = 0; } //读写操作控制信号:SetRW() void SetRW(bit i) { if(i==1) PinRW = 1; else PinRW = 0; }