51单片机测量频率的方法2012-12-1011:1151单片机的测量频率方法有很多,这里谈的是,将被测量信号经过整形后转换成方波信号,利用单片机查询两个上升沿,在此期间根据晶体振荡器产生的周期为Tc的脉冲送计数器进行计数,设计数值为N,则得被测量信号的周期值Tx=Tc×N,然后取其倒数即为被测量信号的频率。当然如果利用单片机的捕捉功能,实现起来可能程序更加简练。下面频率测量计数波形示意图程序代码如下/*-------------------------------------测量周期法的基本原理:在被测信号T内,对某一基准时间进行计数,基准时间与计数值的乘积便是被测周期.---------------------------------------*/#includeat89x51.h#defineuintunsignedintuintcount,period;bitrflag=0;//设置周期标志voidcontrol(void){TMOD=0x09;//T/C0为方式1,INT0为1是启动定时器IT0=1;//脉冲方式(后沿负跳有效)进入中断TH0=0;TL0=0;P1_0=0;P1_0=1;//触发器清零TR0=1;//启动T/C0EX0=1;//只开外部中断1EA=1;//开总中断}voidINT_0(void)interrupt0using1//INTO中断服务{EA=0;TR0=0;count=TL0+TH0*256;//取计数值rflag=1;//设标志EA=1;}main(){control();while(rflag==0);、//等待一个周期period=count*2;//fosc=6MHz,2us计数增1,周期值单位us}