你好 求一个51单片机控制舵机机器人的程序

求一个51单片机控制4个舵机的程序

我没有现成的,但是可以给你一个思路。

我假定你是个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、尝试驱动两个...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-08
留邮箱,我把我比赛的程序发给你,你用的应该是驱动板控制吧,51是不能直接控制舵机的。我是用驱动板控制的。