我用STC89C52单片机控制舵机,为什么它只在单片机上电一瞬间工作,然后就没反应了,球大神指导。程序如下

#include<reg52.h>
unsigned char count; //次数标识
unsigned char jd; //角度标识
sbit PWM=P3^7;
sbit Jia=P2^7;
sbit Jan=P2^6;
void delay(unsigned char i)
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
void Timer_Init()
{
TMOD=0x01;
TH0=0xfe;
TL0=0x33; //0.5ms
ET0=1;
TR0=1;
EA=1;
}
void Timer0_Int() interrupt 1
{
TH0=0xfe;
TL0=0x33;
count++;
if(count < jd) //判断0.5ms次数是否小于角度标示
PWM = 1;
else
PWM = 0;
count = count+1;
count=count%40;
}
void keyscan() //按键扫描控制舵机正反转动,
{
if(!Jia)
{
delay(10);
if(!Jia)
{
jd++;
count=0;
if(jd==6)
jd=5;
while(Jia==0);
}
}
if(!Jan)
{
delay(10);
if(!Jan)
{
jd--;
count=0;
if(jd==0)
jd=1;
while(Jan==0);
}
}
}
void main()
{
jd=1;
count=0;
Timer_Init();
while(1)
{
keyscan();
}
}
我用的是11.0592KHz的晶振。通过模拟控制PWM脉冲,调整它的占空比来控制舵机旋转。
我用的舵机是MG995的.
尺寸:
40mmX20mmX36.5mm
重量:
62g
技术参数:无负载速度
0.17

/60

(4.8V)
0.13

/60

(6.0V)
扭矩:
13KG
使用温度
:-30~~+60
摄氏度

死区设定
:4
微秒

工作电压
:3.0V-7.2V
40mmX20mmX36.5mm
重量:
62g
技术参数:无负载速度
0.17

/60

(4.8V)
0.13

/60

(6.0V)
扭矩:
13KG
使用温度
:-30~~+60
摄氏度

死区设定
:4
微秒

工作电压
:3.0V-7.2V

舵机控制要输入50hz的方波,用示波器检测一下波形,看占空比和频率对不对。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-16
舵机驱动电路怎么做的啊!
相似回答