下载此文档

基于C51的多路舵机PWM控制原理(有程序).doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
一、基本原理介绍二、演示机构采用的是舵机, 每个需要一路 PWM 波和两路电源输入。电源输入标准为 5V 1-8A , 采用带输入和输出保护的 50w 开关电源供电; PWM 波为 50Hz , 正脉冲时间为 - , 对应-90 °至 90 ° (实际使用中为了保护机械,为 - ,舵机旋转范围为-70 °至 70°)。由于系统对于输出的频率有 5 Hz 的限制, 因此使用软件延迟来实现最多八路的的 PWM 波输出。 PWM 波由 MCU 通过软件延时产生, 算法概述如下(流程图见附件): 路输出 脉冲( 输出正脉冲, 不足时间由低电平补至 ), 此时其他五路无输出,相当于输出 低电平; 路输出 脉冲(同A路, 不足时间由低电平补齐), 此时包括 A 路的其他五路无输出,相当于输出 低电平; 3. 同理,输出 C,D,E,F 路 4. 此时, 1-3 步总时间为 *6=15ms ,其中每路由一个小于 的正脉冲和低电平时间组成。由于输出周期为 20ms ,故应再输出 20ms-15ms=5ms 低电平时间,使得各路频率为 50Hz 。重复 1-3 步,得到输出波形如下图: (仅以 4 路为例,使用 Proteus 仿真示波器,图 ) 可以看到,此时各路输出均为 50Hz ,正脉冲时间为 - 舵机及其控制原理此算法在 50Hz ( 20ms )频率的限制下,最多可输出 8路 PWM 波形( 8*=20ms ) 三、实际程序程序如下: #include <> #include <> #define uchar unsigned char #define uint unsigned int sbit Out1=P2^0; sbit Out2=P2^1; sbit Out3=P2^2; sbit Out4=P2^3; sbit Out5=P2^4; 图 Proteus 仿真 void PWM(uint a, uint b,uint c, uint d,uint e) { uchar A,B,C,D,E; uint M=984; A=250-a; B=250-b; C=250-c; D=250-d; E=250-e; do{ Out1 = 1;} while(a--); do{ Out1 = 0;} while(A--); do{ Out2 = 1;} while(b--); do{ Out2 = 0;} while(B--); do{ Out3 = 1;} while(c--); do{ Out3 = 0;} while(C--); do{ Out4 = 1;} while(d--); do{ Out4 = 0;} while(D--); do{ Out5 = 1;} while(e--); do{ Out5 = 0;} while(E--); do{ }while(M--); } main() { uchar a,b,c,d,e; uint m; a=170; b=149; c=d=e=149; SCON = 0x50; //REN=1 允许串行

基于C51的多路舵机PWM控制原理(有程序) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人6188
  • 文件大小214 KB
  • 时间2017-05-27