用单片机控制舵机,为什么只在通电一瞬间动

用AT89S51控制舵机转动,用示波器查看过电路(最小系统),有PWM波形出来,不知道为什么舵机就只是在接触一瞬间有反应,希望高手帮个忙,(我是新手,没有多少分数...)程序如下,万分感谢~~~
//11.0592M
#include <reg51.h>
#define uchar unsigned char

sbit input=P1^2;
uchar t=0,p;

void InitTimer0(void)
{ //100us一次中断
TMOD =0x01;
TH0 =(65536-92)/256;
TL0 =(65536-92)%256;
ET0 = 1;
EA = 1;
TR0 = 1;
}

void Timer0Interrupt(void) interrupt 1
{
//20ms循环
TH0 =(65536-92)/256;
TL0 =(65536-92)%256;

if(t<p)
input=1;
else
input=0;

t++;
t=t%200;
}

void delay(uchar k)
{ uchar i,j;
for(i=0;i<k;i++)
{
for(j=0;j<120;j++);
}
}

void main()
{
InitTimer0();
while(1)
{
p=5;
delay(2000);
p=25;
delay(2000);

}
}

第1个回答  2009-12-22
首先,舵机的工作PWM频率你要知道
是50~60HZ,占空比为10~20(8位PWM的情况)
你查下资料
第2个回答  2017-03-29
应该没供电
相似回答