微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 舵机搞不掂啊 求助 !

舵机搞不掂啊 求助 !

时间:10-02 整理:3721RD 点击:
我要实现的功能是 上电后  舵机转到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;
          }           
}

有空加我Q328292074我给你弄些资料。你自己看看就明白了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top