大家帮忙看看这个程序有什么问题,这是用来驱动舵机转动的,按按键实现正反转动一定角度。但是下载到
开发板上,脸上舵机后,舵机会发生嗡嗡的声音但是转不动,会是什么问题?很急。。。谢谢
#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;
}
}
确实不行,示波器测了一下,占空比一直都是50,您知道该怎么改吗?
一周热门 更多>