刚开始用定时/计数器,模模糊糊弄不明白,请教了!
我用89S51判断电机转速,0.1S(晶振6M,初值50000)内计数如果小于1,就跳出循环,如果大于1就继续判断。下面是我弄的程序的局部,程序到判断这请大侠帮指点一下,多谢了!
freq=3;
N=1;
while(freq>=N ) //霍尔判断转速开始
{
measure();
}
MOT1=0;
delay2ms(100);
MOT2=1;
N=1;
void measure(void) //测量函数,T0初值设为0.1S
{
IE=0x8a;
TMOD=0x51;
TH0=TH_M0;
TL0=TL_M0;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
/*=========T0中断子程序========*/
void T0_1s(void)interrupt 1 // 定时/计数器中断程序
{ TH0=TH_M0;
TL0=TL_M0;
TR1=0;TR0=0;
DPL=TL1;
DPH=TH1;
freq=DPTR;
}
本人QQ:370384227,不会游泳的鱼。加入时请说明,谢谢! |