打印

如何用单片机控制多个舵机?

[复制链接]
3910|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lydzzhx|  楼主 | 2008-10-28 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
打算用20个舵机做个双足机器人 可不知道用什么芯片可以对多个舵机进行PWM脉宽并行发送 MCU+8253 可能会用到太多的8253 用MCU+CPLD CPLD器件不好找PCB加工困难 希望论坛的的兄弟给个最佳方案   

相关帖子

沙发
腾时代| | 2008-10-28 17:25 | 只看该作者

回复主题:如何用单片机控制多个舵机?

回复主题:如何用单片机控制多个舵机? 
回复主题:如何用单片机控制多个舵机? 
回复主题:如何用单片机控制多个舵机? 
回复主题:如何用单片机控制多个舵机? 

使用特权

评论回复
板凳
@@Steven| | 2010-9-7 17:40 | 只看该作者
用舵机控制板应该可以实现

使用特权

评论回复
地板
ar_dong| | 2010-9-8 08:59 | 只看该作者
还是用cpld吧
我用单片机定时器控制一个都不理想

使用特权

评论回复
5
icecut| | 2010-9-8 09:12 | 只看该作者
用硬件pwm.或者一堆单片机.
其实来个arm也不错.关键是你频率有多高..

使用特权

评论回复
6
不倒翁0312| | 2013-4-8 18:48 | 只看该作者
icecut 发表于 2010-9-8 09:12
用硬件pwm.或者一堆单片机.
其实来个arm也不错.关键是你频率有多高..

怎样用硬件生成PWM信号?

使用特权

评论回复
7
不倒翁0312| | 2013-4-8 18:51 | 只看该作者
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define zhouqi 2180
uchar order;
uint PWM[8]={1308,1308,1308,1308,1308,1308,1308,1308};
void initPWM();

void main()
{
       initPWM();
       P1=-PWM[0]/256;
       P2=-PWM[0]%256;
       while(1);
}
void t0() interrupt 1
{
       switch(order)
       {
              case 1:    P0=0x01;
                            TH0=-PWM[0]/256;
                            TL0=-PWM[0]%256;
                            break;
              case 2:    P0=0x00;
                            TH0=-(zhouqi-PWM[0])/256;
                            TL0=-(zhouqi-PWM[0])%256;
                            break;
              case 3:    P0=0x02;
                            TH0=-PWM[1]/256;
                            TL0=-PWM[1]%256;
                            break;
              case 4:    P0=0x00;
                            TH0=-(zhouqi-PWM[1])/256;
                            TL0=-(zhouqi-PWM[1])%256;
                            break;
              case 5:    P0=0x04;
                            TH0=-PWM[2]/256;
                            TL0=-PWM[2]%256;
                            break;
              case 6:    P0=0x00;
                            TH0=-(zhouqi-PWM[2])/256;
                            TL0=-(zhouqi-PWM[2])%256;
                            break;
              case 7:    P0=0x08;
                            TH0=-PWM[3]/256;
                            TL0=-PWM[3]%256;
                            break;
              case 8:    P0=0x00;
                            TH0=-(zhouqi-PWM[3])/256;
                            TL0=-(zhouqi-PWM[3])%256;
                            break;
              case 9:    P0=0x10;
                            TH0=-PWM[4]/256;
                            TL0=-PWM[4]%256;
                            break;
              case 10:P0=0x00;
                            TH0=-(zhouqi-PWM[4])/256;
                            TL0=-(zhouqi-PWM[4])%256;
                            break;
              case 11:P0=0x20;
                            TH0=-PWM[5]/256;
                            TL0=-PWM[5]%256;
                            break;
              case 12:P0=0x00;
                            TH0=-(zhouqi-PWM[5])/256;
                            TL0=-(zhouqi-PWM[5])%256;
                            break;
              case 13:P0=0x40;
                            TH0=-PWM[6]/256;
                            TL0=-PWM[6]%256;
                            break;
              case 14:P0=0x00;
                            TH0=-(zhouqi-PWM[6])/256;
                            TL0=-(zhouqi-PWM[6])%256;
                            break;
              case 15:P0=0x80;
                            TH0=-PWM[7]/256;
                            TL0=-PWM[7]%256;
                            break;
              case 16:P0=0x00;
                            TH0=-(zhouqi-PWM[7])/256;
                            TL0=-(zhouqi-PWM[7])%256;
                            order=0;
                            break;
              default:order=0;
       }
       order++;
}

void initPWM()
{
       order=1;
       TMOD=0X11;
       TH0=(65536-1500)/256;
       TL0=(65536-1500)%256;
       EA=1;
       TR0=1;
       ET0=1;
}
我自己的程序,简单看看。顺便再提提建议。

使用特权

评论回复
8
icecut| | 2013-4-9 09:41 | 只看该作者
8051不支持硬件pwm,avr,arm都支持

使用特权

评论回复
9
123654789| | 2013-4-9 10:03 | 只看该作者
STC12C5204PWM支持硬件PWM

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

100

帖子

1

粉丝