郭芸俊,张焕梅
(1.太原工业学院计算机工程系,山西 太原 030008;2.太原工业学院机械工程系,山西 太原 030008)
基于AT89C51的步进电机控制系统的设计
郭芸俊1,张焕梅2
(1.太原工业学院计算机工程系,山西 太原 030008;2.太原工业学院机械工程系,山西 太原 030008)
本设计以单片机AT89C51为控制核心,采用其内部的定时器改变CP脉冲频率从而实现对步进电机的转速进行控制。以L297作为驱动芯片产生驱动脉冲信号,由按键控制步进电机的步进方向和步进速度,并经液晶显示器实时显示,通过仿真软件Proteus对系统做了仿真和测试。
AT89C51;步进电机;Proteus;控制系统
步进电机是一种将脉冲电信号直接转换为角位移的机电一体化执行元件。电机本体、控制器和驱动器是构成步进电机控制系统的三大重要组成部分。当步进电机本体确定后,则系统的性能主要取决于驱动器及控制器的优劣。在工业控制中,由于步进电机具有良好的步进特性及较好的控制性能,其启停、正反转等均可在少数脉冲内完成,没有累积误差且可获得较高的控制精度[1],使其非常适合于单片机控制。以单片机为控制器的步进电机控制系统因其稳定性好、性价比高、使用灵活等优点,在各种自动化控制系统和机电一体化设备,如数控机床、机器人等中得到了广泛的应用,一般利用单片机的可编程I/O口P0-P3即可实现对步进电机的控制[2]。
该系统采用单片机AT89C51作为主控芯片,利用其产生的驱动脉冲通过驱动芯片放大,从而驱动四相步进电机。通过相关按键,实现对步进电机的控制,如启停、正转、反转等功能,通过软硬件相结合的控制方法,实现了单片机对步进电机的控制,通过液晶显示屏实时显示步进电机转速及方向。[3]系统总体结构图如图1所示。
图1 系统总体结构图
本系统的硬件电路主要包括单片机最小系统、步进电机驱动电路、按键电路及显示电路等部分。
2.1 步进电机驱动电路设计
步进电机的驱动方式有很多,集成电路集驱动和保护于一体,作为步进电动机的专用驱动芯片,使用起来非常方便,故本设计中选择ULN2003A作为步进电动机的驱动芯片。步进电机常用控制方式有单双四拍及四相八拍等,可以通过微机控制L297生成四相控制信号,实现对步进电机的控制。
本系统采用L297和ULN2003A构成驱动电路,P0.0口控制L297的方向控制端,P0.1控制步进时钟输入端,使L297输出四相八拍工作所需的正确相序,L297的四相输出接ULN2003A的1-4B使其1-4C输出放大后的四相驱动信号,从而驱动步进电机运行[4]。电路图如图2所示。
图2 电机驱动电路图
2.2 液晶显示电路设计
系统采用液晶显示芯片LM016L,与单片机的连接采用直连的方法,通过P1口的P1.0-P1.7控制LM016L实时显示步进电机的转速和转动方向。电路连接如图3所示。
图3 显示模块设计图
2.3 按键电路设计
按键主要用来提供人机接口,在本设计中,按键采用独立按键。按键工作方式采用定时扫描方式,利用定时器T0定时,通过输出数据,识别按键的工作状态。各功能按键分别与AT89C51的P3.1-P3.5相连接,实现步进电机的暂停、加速、减速、正转和反转。
系统软件采用模块化程序设计,系统主程序要完成的工作主要有系统参数初始化、系统初始状态的显示以及各种开关状态的检测判断等。包括初始化定时器及外部中断、对P1口、速度值存储区和方向值存储区送初值等内容。若初始化时P1=11H,速度和方向初始值均设为0,则意味着步进电机按四相单八拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图4所示。
图4 主程序流程图
本设计采用Keil和Proteus对系统进行仿真及调试。系统检测按键按下的情况,利用LCD将步进电机的转速和方向显示出来,正转仿真结果如图5所示,反转仿真结果如图6所示。
图5 正转仿真图 图6 反转仿真图
本设计基于Proteus和单片机AT89C51完成了步进电机控制系统的设计。整个系统采用模块化设计,结构简单,性能稳定,可应用于步进电机控制的大多数场合。
[1] 卢超.基于Proteus的步进电机控制系统仿真设计[J].实验室研究与探索,2010(6):54-57.
[2] 李明.基于Proteus的单片机对步进电机运动控制仿真[J].价值工程,2012(5):153-154.
[3] 杨宏,李国辉.基于Proteus与单片机的步进电机控制设计[J].现代电子技术,2010(5):104-106,109.
[4] 彭礴,张明敏,林飞龙,等.基于AT89S52高精度步进电机伺服控制系统设计[J].电子测量技术,2011(3):49-53.
Design of Stepper Motor Controlling System Based on AT89C51
Guo Yunjun1, Zhang Huanmei2
(1.DepartmentofComputerEngineering,TaiyuanInstituteofTechnology,TaiyuanShanxi030008,China;2.DepartmentofMechanicalEngineering.TaiyuanInstituteofTechnology,TaiyuanShanxi030008,China)
The design uses the AT89C51 MCU as the control center; the speed of stepper motor is controlled by changing the CP pulse frequency with the internal timer of AT89C51 MCU. The L297 is used as driver chip to produce a drive pulse signal. The stepping direction and speed are controlled by the keyboard, and at the same time, they are displayed on the LCD real-time. The system is simulated and tested by the simultative software proteus.
AT89C51; stepper motor; Proteus; control system
2017-02-09
郭芸俊(1971- ),男,山西祁县人,实验师,硕士,研究方向为嵌入式系统及应用软件开发。
1674- 4578(2017)02- 0005- 02
TM383.6
A