收藏 分享(赏)

基于AT89C51单片机步进电机控制.doc

上传人:tangtianxu1 文档编号:2995980 上传时间:2018-10-01 格式:DOC 页数:18 大小:415.06KB
下载 相关 举报
基于AT89C51单片机步进电机控制.doc_第1页
第1页 / 共18页
基于AT89C51单片机步进电机控制.doc_第2页
第2页 / 共18页
基于AT89C51单片机步进电机控制.doc_第3页
第3页 / 共18页
基于AT89C51单片机步进电机控制.doc_第4页
第4页 / 共18页
基于AT89C51单片机步进电机控制.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、控制系统项目课程设计论文题目:基于 AT89C51 单片机步进电机控制姓 名 陈悟宇 学 号 201103820129 年 级 2011 级 专 业 飞行器制造工程 系 (院) 机械工程学院 指导教师 徐 波 2014 年 5 月 23 日1目 录摘要: 21 设计要求 22 步进电机原理 22.1 步进电机工作方式 22.2 框图设计 42.3 知识点 43 硬件设计 53.1 电路原理 53.2 驱动电路 63.3 晶振电路 63.4 总体电路图 74 软件设计 74.1 程序流程图 74.2 程序清单 95 遇到的问题及解决方案 95.1 问题 95.2 解决方法 9参考文献 9设计心得

2、体会 10附录一原器件清单 11附录二Proteus 仿真图 12附录三ULN2003 作用及引脚介绍 .13附录四程序清单 142基于 AT89C51 单片机步进电机控制摘要:步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中。由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用。大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。关键词:步进电机 单片机 控制1 设计要求(1) 最小系统:选择 AT89C51 单片机为核心元件构成系统。有时钟产生电路和复位电路。(2) 控制电路:C

3、语言编程控制。由操作者根据相应的工作需要进行操作。(3) 驱动部分:对单片机输出的脉冲进行功率放大,从而驱动电机转动.(4) 主要功能:实现步进电机的正转,反转,加速,停转。2 步进电机原理2.1 步进电机工作方式3由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备-步进电机控制驱动器,典型步进电机控制系统如图 1 所示控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进

4、电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。另一类是用硬件构成的环形分配器,通常称硬环形分配器。功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的,步进电机的基本控制包括转向控制和速度控制两个方面。从结构上看,步进电机分为三相单三拍、三相双三拍和三相六拍 3 种,其基本原理如下:(1)换相顺序的控制通电换相这一过程称为脉冲分配。例如,三相步进电机在单三拍的工作方式下,其各相通电顺序为 ABCA,通电控制脉冲必须严格按照这一顺序分别控制 A、B、C 相的通断。三相双三拍的通电顺序为 ABBCCAAB,三相六

5、拍的通电顺序为 AABBBCCCAA。(2)步进电机的换向控制如果给定工作方式正序换相通电,步进电机正转。若步进电机的励磁方式为三相六拍,即 AABBBCCCAA。如果按反序通电换相,即AACCCBBBAA,则电机就反转。其他方式情况类似。(3)步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整送给步进电机的脉冲频率,就可以对步进电机进行调试。(4)步进电机的起停控制步进电机由于其电气特性,运转时会有步进感。为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进

6、角,跳过电机运行的平稳性。在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。(5)步进电机的加减速控制在控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步象。所有步进电机在启动时,必须有加速过程,在停止时波形有减速过程。理想的加速曲线一般为指数曲线,步进电机4整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。实际

7、的控制系统中,根据负载的情况来选择步进电机。步进电机能响应不失步的最高步进频率称为“启动频率” ,于此类似“停止频率”是指系统控制信号突然关断,步进电机不冲过目标位置的最高步进频率。电机的启动频率、停止频率和输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。加速过程有突然施加的脉冲启动频率 f0。步进电机的最高启动频率(突跳频率)一般为 0.1KHz 到 34KHz,而最高运行频率则可以达到 N*102KHz,以超过最高启动频率的频率直接启动,会产生堵转和失步的现象。2.2 框图设计根据 C51 芯片的工作方式设计总体设计方框图如图 2 所示。控制信号AT89C

8、51图 2 总体设计方框图2.3 知识点 本项目需要通过学习和查阅资料,掌握和了解如下知识点: +5V 电源原理及设计内部时钟产生电路XTAL RSTP3 复位电路键盘控制 电路ULN2003 电机P2.0 P2.6P1.0 P1.3 P0.0 P0.6 5 单片机复位电路工作原理及设计 单片机晶振电路工作原理及设计 ULN2003 大电流驱动阵列 AT89C51 单片机引脚 单片机汇编语言及程序设计3 硬件设计本设计的硬件电路只要包括控制电路、最小系统、驱动电路三大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显

9、示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。3.1 电路原理基于 AT89C51 单片机进电机速度控制原理如图 3 所示。步进电机的驱动信号必须为脉冲信号,转动的速度和脉冲的频率成正比。步进电机步进角为 7.5 度,一圈 360 度,需要 48 个脉冲完成。A 组线圈对应 P2.4B 组线圈对应 P2.5C 组线圈对应 P2.6D 组线圈对应 P2.7正转次序: AB 组-BC 组-CD 组-DA 组 (即一个脉冲,正转 7.5 度)63.2 驱动电路通过 ULN2003 构成比较多的驱动电路,电路图如图 3 所示。通过单片机的P1.0P1.3 输出

10、脉冲到 ULN2003 的 1B4B 口,经信号放大后从 1C4C 口分别输出到电机的 A、B、C、D 相。图 3 步进电机驱动电路3.3 晶振电路晶振电路如图 4 所示:图 4 晶振电路73.4 总体电路图把各个部分的电路图组合成总电路图,如图 5 所示。图 5 总体电路图4 软件设计4.1 程序流程图程序分主程序和中断程序,采用 C 语言编程,计时采用延时程序。步进电机从静止到高速转动需要一个加速的过程,否则电机很容易被“卡住” 。在此程序中,当转速参数 speedlevel 为 2 时,可以算出,此时步进电机的转速为 1500RPM,而当转速参数 speedlevel 1 时,转速为 3

11、000RPM。当步进电机停止,如果直接将speedlevel 设为 1,此时步进电机将被“卡住” ,而如果先把 speedlevel 设为 2,让电机以 1500RPM 的转速转起来,几秒种后,再把 speedlevel 设为 1,此时电机就能以3000RPM 的转速高速转动,这就是“加速”的效果。8开始延时去抖动初始化改变转速是 是停转 转速计数1改变转向反转是改变转速记录当前步进,等待再次输入停转否否94.2 程序清单程序清单见附录。5 遇到的问题及解决方案5.1 问题(1).焊接的线路有问题(2).电动机不转(3).要求正转出现发转 5.2 解决方法(1) 检查电路并重新焊接。(2) U

12、LN2003 的驱动直接用单片机系统的 5V 电压,可能力矩不够大,加大驱动电压到12V。(3) ABCD 接线反向。参考文献1 周向红. 51 系列单片机应用与实践教程M. 北京:北京航空航天大学出版社,2008.2 马淑华,王凤文,张美金.单片机原理与接口技术M.北京:北京邮电大学出版社,2007.3 张靖武,周灵彬.单片机系统的 PROTEUS 设计与仿真M.北京:电子工业出版社,2007.4 杨居义,杨尧,王益斌,杨晓琴. 单片机课程设计指导 M. 清华大学出版社.2009.5 匿名.ULN2003.DB/OL.http:/ 型号 数量 用途单片机 AT89C51 1 控制核心步进电机

13、 - 1 实验核心驱动器 UNL2003 1 放大信号电源 Vcc 5V/12V 1/1 提供电源电容 30pF 2 晶振电路电解电容 20F 1 复位电路按键 - 1 控制开关电阻 1K 1 保护电路12附录二Proteus 仿真图13附录三ULN2003 作用及引脚介绍UNL20035作用:ULN2003 是大电流驱动阵列,多用于控制电路中,可直接驱动继电器等负载。引脚 1:CPU 脉冲输入端,端口对应一个信号输出端。引脚 2:CPU 脉冲输入端。引脚 3:CPU 脉冲输入端。引脚 4:CPU 脉冲输入端。引脚 5:CPU 脉冲输入端。引脚 6:CPU 脉冲输入端。引脚 7:CPU 脉冲输

14、入端。引脚 8:接地。引脚 9:集电极对地接通。引脚 10:脉冲信号输出端,对应 7 脚信号输入端。引脚 11:脉冲信号输出端,对应 6 脚信号输入端。引脚 12:脉冲信号输出端,对应 5 脚信号输入端。引脚 13:脉冲信号输出端,对应 4 脚信号输入端。引脚 14:脉冲信号输出端,对应 3 脚信号输入端。引脚 15:脉冲信号输出端,对应 2 脚信号输入端。引脚 16:脉冲信号输出端,对应 1 脚信号输入端。14附录四程序清单基于 AT89C51 单片机步进电机速度控制程序清单如下:程序中,步进电机的运转控制放在时间中断函数之中,这样主函数就能很方便的加入其它任务的执行,而对步进电机的运转不产

15、生影响。在此程序中,不但实现了步进电机的转速和转向的控制,另外还加了一个停止的功能,以防损坏步进电机甚至烧毁系统。#include static unsigned int count; /计数static int step_index; /步进索引数static bit turn; /步进电机转动方向static bit stop_flag; /步进电机停止标志static int speedlevel; /步进电机转速参数static int spcount; /步进电机转速参数计数void delay(unsigned int endcount); /延时函数void gorun(); /

16、步进电机控制步进函数void main(void) count = 0;step_index = 0;spcount = 0;stop_flag = 0;P1_0 = 0;P1_1 = 0;P1_2 = 0;P1_3 = 0;EA = 1; /打开 CPU 中断 TMOD = 0x11; /设定时器 0 和 1 为模式 1 ET0 = 1; /打开定时器 0 中断 TH0 = 0xFE;TL0 = 0x0C; /设定时中断TR0 = 1; /开始计数turn = 0;speedlevel = 2;delay(10000);speedlevel = 1;dospeedlevel = 2;delay(10000);15speedlevel = 1;delay(10000);stop_flag=1;delay(10000);stop_flag=0;while(1); void timeint(void) interrupt 1 TH0=0xFE;TL0=0x0C; /设定时中断count+;spcount-;if(spcount7)step_index=0;17elsestep_index-;if (step_index0)step_index=7;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报