测量ne555方波发生器的方法——使用定时器
用测周期法测量频率,一个定时器计时1s,另一个定时器计数(建议定时器0,一般符合电路)1s内有多少个脉冲。
测量时,NET—SIG与P34脚相连,p34脚接入的计数器0的中断
void initTimer()
{
TMOD=0x15; // C/T 定时器0工作方式1, 做16位计数器 ,C/T 定时器1 做16位定时器。
TL1 = 0x66;
TH1 = 0xFC; //定时器11ms定时
TH0=0; // 计数器0从0开始计数
TL0=0;
EA=1;
ET1=1;
TR0=TR1=1; //启动定时、计数。
}
void timer1() interrupt 3
{
static u16 counter;
TL1 = 0x66; //1ms定时
TH1 = 0xFC;
counter++;
if(counter>=1000)
{
counter=0;
flag=1;
fre=(TH0<<8)|TL0; //变量保存频率计的数
TH0=TL0=0; //计数器0清零 ,以便下一次的。
D[1]=(u8)(fre>>8);
D[2]=(u8)(fre&0x00ff);
}
}