我没有现成的,但是可以给你一个思路。
我假定你是个51单片机的新手,只懂一些简单的C语言和怎么把程序写入单片机中,那么我教你如何一步一步实现这个功能。
1、学会怎么操作51的IO口。这个还用学吗?
sbit LED = P1 ^ 0;
void main( void )
{
LED = 1;
while(1);
}
或者 LED = ~LED; 这是什么?呵呵。复习一下C语言去。
2、学会怎么使用51单片机的定时器
void Init_timer0( void )
{
TMOD = 0x01;
TH0 = ( 65536 - 5000 ) / 256;
TL0 = ( 65536 - 5000 ) % 256;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main( void )
{
Init_timer0();
while(1);
}
void timer0_isr( void ) interrupt 1
{
TH0 = ( 65536 - 5000 ) / 256;
TL0 = ( 65536 - 5000 ) % 256;
LED = ~LED; // 脉宽为 5毫秒的方波
}
3、尝试输出一个占空比为20%的PWM。
void timer0_isr( void ) interrupt 1
{
static unsigned char cnt = 0;
TH0 = ( 65536 - 5000 ) / 256;
TL0 = ( 65536 - 5000 ) % 256;
cnt++;
if( cnt < 20 ) LED = 1;
else if ( cnt >= 100 ) cnt = 0;
else LED =0;
}
4、彻底地查一下你的舵机,有几个参数一定要知道。输入PWM频率范围、合适的PWM正脉宽范围。
5、尝试驱动一个舵机。
6、尝试驱动两个...