基于STC89C51单片机步进电机控制系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STC89C51单片机步进电机控制系统的设计
作者:陈慧琴
来源:《山东工业技术》2016年第18期
摘要:本文基于STC89C51单片机,设计了步进电机控制系统,系统分为STC89C51单片机最小系统、按键模块、显示模块、电机驱动模块以及步进电机等几个部分,通过编程实现了步进电机的正反转,加减速,启停控制以及运行状态LED状态显示功能。
实验结果表明,系统性能优于传统的步进电机控制器。
关键词:STC89C51单片机;步进电机;控制系统;设计
DOI:10.16640/ki.37-1222/t.2016.18.165
1 引言
步进电机是机电设备中最广泛使用的一种电机,又被称为脉冲电动机或者阶跃电动机,其工作原理是将电脉冲信号转变为角位移或线位移。
每输入一个电脉冲,电机转动一个角度前进一步,其输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。
在控制中,可以利用输入电脉冲的频率、数量和各相绕组的通电顺序来精确控制电机的启停、转速、转向和定位,几乎不受电压和环境温度等影响,误差小。
随着单片机嵌入式系统的发展应用,基于单片机的步进电机控制系统在各个领域得到了广泛应用,比如线切割的工作台运动、ATM机、刻字机、工业控制系统等等,并且特别适合要求性能稳定、误差率低、响应迅速、运行时产生噪音小、具有较长的使用寿命以及能输出较大扭矩的应用场合。
本文设计了基于STC89C51单片机的步进电机控制系统,具备价格低廉、结构简单、移植性好等特点,具有广泛的应用前景。
2 系统总体框架
本系统主要由STC89C51单片机最小系统、驱动电路模块、按键电路模块、数码管显示电路模块和步进电机等几个模块组成。
本设计中步进电机功率和额定电流都较小,从经济性方面考虑,驱动芯片选用 ULN2003芯片,ULN2003芯片是一种高耐压、大电流、内部包含七个硅PNP达林顿管的驱动芯片。
步进电机的控制主要通过按键来实现,分别负责控制加减速、换向、转速。
STC89C51单片机向ULN2003输出脉冲信号,驱动芯片将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组,使步进电机随着不同的脉冲信号分别作相应的动作。
系统结构如图1所示。
3 硬件电路设计
以STC89C51单片机为核心处理器及主控制器,由28BYJ-48步进电机与ULN2003组成电机与驱动模块,矩阵键盘模块分别控制步进电机的启停、正反转、加速、减速,显示模块驱动数码管显示步进电机当前的转速与转动方向。
3.1 步进电机选择与设计
本设计采用28BYJ-48步进电机,内部结构如图2所示,内部接线如图3所示。
28BYJ-48步进电机一共有四组线圈,每对绕组有一个共同端点,将两个公共端点连在一起引出,这样一共得到5根引出线。
给各引出端通电,就能使步进电机转动。
步进电机的转动方向由给定工作方式的换相通电顺序决定。
正转的循环通电顺序是A-AB-B-BC-C-CD-D-DA,反转的循环通电顺序是D-DC-C-CB-B-BA-A-AD,通过调整步进电机的四个绕组的通电顺序,来控制其转动方向,通过调整发射脉冲信号的频率来控制其转速,频率越高,速度越快。
3.2 单片机系统
本设计采用STC89C5l单片机作为核心,如图4所示,该单片机结构简单,价格低廉,使用方便,能够反复写入或擦除程序达几万次以上。
除此之外,STC89C51还支持MCS51系列单片机的所有功能。
单片机最小系统主要由复位电路和振荡电路组成。
最小系统如图5所示。
3.3 按键控制电路
开关断开时,输出电压为低电平,开关闭合时,输出电压为高电平。
通过按键扫描程序扫描按键输出的是否为高电平就可以判断按键是否闭合。
设计四个发光二极管用于显示当前脉冲信号的发射状态,如果按键按下,则发光二极管的发光状态会发生改变。
控制按键电路如图6所示。
3.4 数码管显示电路
选用共阳极数码管来显示步进电机当前实时转动速度和方向。
数码管显示电路图如图7所示。
3.5 步进电机驱动电路
ULN2003通过1号到4号接口依次与单片机的28号到25号接口相连,STC89C51通过这四个引脚向ULN2003输入信号,同时ULN2003的16号到13号接口与步进电机相连用于驱动步进电机转动。
本设计采用单拍方式对步进电机进行控制,1号到4号接口在同一时刻只有一
个连通,其余的3个接口断开。
步进电机每个时刻只有一个引出端与ULN2003相连。
驱动电路如图8所示。
4 软件设计
4.1 软件设计思路
软件系统采用MCS-51 单片机汇编语言编写,系统由初始化模块、按键模块、显示模块、步进电机控制模块等几个部分组成,通过按键模块控制步进电机的启停,调整转速、转向。
转速和转向通过LED数码管实时显示。
程序流程图如图9所示。
4.2 按键扫描模块
按键扫描子程序的运行流程是首先启动按键扫描子程序,然后扫描按键输出端,检测是否有按键动作发生,如果没有按键动作发生,就回到程序的开始,即继续扫描按键输出端以检测是否发生按键动作,直到检测到有按键动作发生时运行按键处理子程序,而后回到程序的初始,继续扫描按键输出端。
在本子程序中,还需要加入一个消抖子程序,当检测到输入时,运行一个延时程序,延时时间为十毫秒,接着再次对按键输端进行扫描,如果仍能检测到输入,则说明真的有按键动作发生,否则按键输出是由抖动产生,最后将所确认的按键输出值反馈给按键扫描子程序以准备运行按键处理子程序。
4.3 按键处理模块
按键处理子程序的目的是改变定时器T0的运行状态,因为定时器T0控制着脉冲信号的输出。
按键处理子程序的运行流程是:首先开始运行按键处理子程序,将各变量初始化,接着依次检测四个按键是否有按键动作发生,如果有按键动作发生,就对相应的值做修改,然后退出该程序。
需要注意的是,每运行一次程序只对一个按键做出反应,即检测到一个按键有输入并处理完之后就退出该程序而非把所有按键都检测一遍之后再退出。
4.4 步进电机控制模块
在设计中,将换向子程序放在定时中断服务程序中,运行时,通过判断换向按键是否按下,来决定是否执行换向子程序,以达到对转向的控制。
首先运行步进电机控制中断子程序,设置T0时间参数,接着根据按键处理子程序运行的结果判断是否需要改变转动方向控制位的值,如果需要则改变方向控制位的变量值,然后退出程序,如果不需要则再根据按键输出子程序的运行结果来查询输出脉冲为多少,最后退出程序。
需注意的是,如果按键处理子程序没有检测到加速、减速按钮的按键动作,则根据步进电机当前的转动速度来决定脉冲信号的输出频率。
5 总结
本文基于STC89C 51单片机、ULN2003驱动芯片和28BYJ-48步进电机设计了步进电机控制硬件电路,软件编程实现了实时精确控制步进电机转速、转向和停转,该系统结构简单、性能稳定、精确度高、通用性强、成本低廉。
经仿真测试,该步进电机控制系统各项指标达到了良好效果,实现了预期目标,可广泛应用于数控机床、轧钢机、机器人以及自动化仪表等多个方面。
具有较高的实用价值和经济效益。
参考文献:
[1]王宗培.步进电动机及其控制系统[M].哈尔滨:哈尔滨工业大学出版社,2009.
[2]李强.基于单片机的步进电机控制系统设计与实现.仪器仪表用户.2008(04):44-46.
[3]陈理壁.步进电机及其应用[M].上海:上海科学技术出版社,2009.
[4]洪新华,陈建锋,霍鹏飞.基于单片机的步进电机控制系统的设计.湛江师范学院学报,2010(06):84-8.
[5]刘帅,祖静,张红艳.基于单片机的步进电机控制系统设计.电子设计工程,2010(04):38-40.。