微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于AT89C2051的多路舵机控制器设计

基于AT89C2051的多路舵机控制器设计

时间:07-31 来源:互联网 点击:
4 舵机控制器软件的设计

舵机控制器的控制核心为单片机AT89C2051。文中,程序用C5l编写,工作方式为前后台工作方式。单片机程序包括系统初始化程序、串口通信程序、上位机命令解释与PWM脉宽生成程序和多路PWM波形输出程序。串行通信程序和多路PWM波形输出程序采用中断方式。串口通信格式为渡特率9600bps、8位数据位、1位停止位、无校验、ASCII码字符通信。串口通信程序用于接收上位机发送过来的控制命令。控制命令采用自定义文本协议,即协议内容全部为ASCII码字符。通信协议格式如图7所示。  
  
例如,要控制通道1的PWM脉宽,脉宽系数为25,则通信协议内容为“#”“1”“0”“2”“5”“!”这6个字符。这时通道l的PWM占空比为25/256=O.098。一个通道号对应一个PWM脉冲输出端口。本设计为8个通道,号码为l~8,对应单片机的P1.o~P1.7。起始符和终止符起到帧同步的作用。串口通信程序流程如图8所示。  

  
图8中,CHNo存放的是PWM通道号ASCII码,Dutyl00、DutylO、Duoyl分别存放的是脉宽系数的百位数、十位数和个位数的ASCII码(注意,若高位数为O,则该位的字符应为“0”,不能省略。如25,完整字符应为“O”“2”“5”。CharNo为信号量,用于对串口接收的字符顺序以及串口中断与上位机命令解释程序之间进行同步。  

5 舵机控制器实验

图9为舵机控制板输出的其中一路PWM波形(带舵机负载)。

从图9中可看出,舵机控制器输出的PWM波形稳定、干净,符合设计要求。  
  
6 结论

本文提出的多路舵机控制器设计方法,以单片机AT89C2051为核心,由外部振荡电路提供PWM脉冲的定时基准,控制部分与舵机驱动部分由两个电源供电,两者电气隔离。这种设计方案的优点是:

①PWM波形由外部振荡电路提供定时基准,与单片机内部振荡器的频率无关,不影响串口通信、定时器等参数的配置。
②PWM波形的调整精度可任意确定。
③本没计思路可应用于任意多路的PWM输出,只要单片机能提供足够多的输出端口,例如将AT89C2051换成AT89S5l,就可以提供至少24路的PWM输出(P0、Pl、P2)。
④控制参数由SCI串口输入,适应面广,上位机可以是PC机、单片机或是PLC。
⑤本方法具有一般性,任何单片机只要能提供SCI中断、外部中断就可以应用本方法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top