舵机搞不掂啊 求助 !!!!!!

2019-07-15 22:56发布

我要实现的功能是 上电后  舵机转到45度  延时2.5s后  然后转到-90度  我只能用两个定时器才能写出来   可是52单片机定时器太少  不够用啊    所以改为用一个定时器写   可写了  不对啊   这是我的程序  哪位大哥可以帮我改一下   十分感谢  #include <reg52.h>
#define uint unsigned int
sbit pwm=P1^0;
uint PWM_W=0,PWM_T=0,PWM_data[]={20,5},i=1,h=0;
void Init()
{
  TMOD=0X01;
  TH0=65436/256;
  TL0=65436/256;
  EA=1;
  TR0=1;
  ET0=1;
   
}

void main()
{
  Init();       
  while(1);
}

void T0_time() interrupt 1//100微妙中断一次
{
  TH0=65436/256;
  TL0=65436/256;
  PWM_W++;
  PWM_T++;
  i++;
     if(PWM_T<200) //是否小于20MS
      {
            if(PWM_W<PWM_data[h]) //转向45度
                  {
                      pwm=1;
                  }
                  else pwm=0;
          }
        if(i==2500) //延时2.5s后再转个角度
          {  i=0;
             PWM_T=0;
             PWM_W=0;
             h++;
             if(h==2)//转向-90度
             h=0;
          }           
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。