关于51驱动舵机转动的问题

2019-07-15 22:41发布

大家帮忙看看这个程序有什么问题,这是用来驱动舵机转动的,按按键实现正反转动一定角度。但是下载到开发板上,脸上舵机后,舵机会发生嗡嗡的声音但是转不动,会是什么问题?很急。。。谢谢
#include"reg51.h"
sbit  PWM=P0^1;    //PWM 输出引脚
sbit  up=P2^4;    //正转引脚
sbit  down=P2^5;    //反转引脚
unsigned char Gao,Di; //定时器定时时间Gao+Di=18432
void delay5ms()
{
    unsigned char i,j;
for(i=25;i>0;i--)
for(j=100;j>0;j--)
;
}
void ScanKey()
{
    if(up==0)
{
    delay5ms();
    if(up==0)
    {
        Gao+=200;
     Di-=200;
     if(Gao>=2304)Gao=1382;
     while(!up);
    }
    if(down==0)
    {
       delay5ms();
    if(down==0)
    {
             Gao-=200;
    Di-=200;
    if(Gao<=461)Gao=1382;
    while(!down);      
    }
    }
}
}
void main()
{
   TMOD=0x01;
   Gao=1382;
   Di=18432-Gao;
   PWM=1;
   TH0=(65536-Gao)/256;
   TL0=(65536-Gao)%256;
   EA=1;
   ET0=1;
   TR0=1;
   while(1)
   {
       ScanKey();
   }
}
void timer0() interrupt 3
{
    PWM=!PWM;
if(!PWM)
{
     TH0=(65536-Di)/256;
  TL0=(65536-Di)%256;
}
else
{
      TH0=(65536-Gao)/256;
   TL0=(65536-Gao)%256;
}
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。