本文为大家带来两个89C51单片机的步进电动机控制系统设计。
89C51单片机的步进电动机控制系统设计一
系统整图如图1所示,本系统采用外部中断方式,p0口作为信号的输入部分,p1口为发光二极管显示部分,p2口作为电机的驱动部分。
图1 系统整图
电源部分
利用LM7812和LM7805芯片得到12V和5V的电压,它们的应用要注意以下几点:
(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;
(2)输出电流不能太大,1.5A 是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;
(3)输入输出压差也不能太小,大小效率很差。 其中12V电压给步进电机供电,5V电压则给单片机供电。分别如图2、图3所示。
(1)产生12V的电压给步进电机供电
图2 12V电路部分
(2)产生5V的电压给单片机供电
图3 5V电路部分
按键部分
本次设计选用的是单片机的P0口来控制信号的输入,所以把按键开关和P0口连接起来,当按下开关S1时,相当于给P0.0口一个低电平;当按下开关S2时,相当于给P0.1口一个低电平;当按下开关S3时,相当于给P0.2口一个低电平;当按下开关S4时,相当于给P0.3口一个低电平;当按下开关S5时,相当于给P0.4口一个低电平。然后通过单片机实行相应的操作。如图4。
图4 按键部分电路
驱动部分
此电路是步进电机的驱动部分,我选用的是ULN2004芯片来驱动的,ULN2004系列是一款高耐压,大电流达林顿管驱动器,包含7个NPN达林顿管。如图5。
图5 驱动部分电路
状态指示部分
状态指示用P1口控制发光二极管的显示,如果相应端口是低电平,相应的发光二极管就会亮,用它来表示步进电机所处的状态。
时钟部分
时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度,本次设计采用的晶振为12MHz。如图6。
图6 时钟部分电路
系统软件设计
系统主程序
系统分为电机正转、电机反转、电机加速与电机减速的几部分组成,其主程序框图如图7所示。
图7 主程序框图
查键部分
查键程序用于判断P0.0口与P0.1口的值,当p0.0口为0时,电机正转,当p0.0口为1时,继续判断p0.1口的值,p0.1口为0时,电机反转。如图8所示。
图8 查键部分流程图
前进部分
系统初始化之后,前进子程序R0用于给P2口送不同的值,根据电机转动的相序,使电机正向转动,P2口的值分别为01H,03H,02H,06H,04H,0CH,08H,09H。流程图如图9所示。
图9 前进部分流程图
后退部分
电机反转原理与正转相似,此时P2口的值分别为09H,08H,0CH,04H,06H,02H,03H,01H。流程图如图10所示。
图10 后退部分流程图
加速部分
当电机正转或反转的时候,按下加速键,调用加速子程序,使电机每转动一步的延时时间变短,从而实现电机的加速。流程图如图11所示。
图11 加速部分流程图
减速部分
电机正转或反转的时候,按下减速键,通过改变电机每转动一步的延时时间,使时间变长,从而实现电机减速。流程图如图12所示。
图12
89C51单片机的步进电动机控制系统设计二
控制系统设计
步进电机控制系统主要由单片机、PC上位机、驱动电路、步进电动机、4*4键盘和LED显示等模块组成,下图为步进电机控制系统是总体结构图。单片机产生脉冲信号并将脉冲信号传送给步进电动机,完成对步进电动机的步数和圈数的准确计数,从而实现对步进电动机的转速控制。PC上位机模块是系统的核心,通过串口向单片机发送控制命令,实现PC机对步进电动机的实时控制,并实时显示步进电动机的运行状态。4*4键盘模块实现指令输入,LED显示模块可显示步进电动机的转速和转向等运行状态。为保护单片机控制系统硬件电路,在单片机和步进电机之间增加过驱动电路。
系统总体结构图
由于步进电动机的驱动电流比较大,步进电动机较大驱动电流的通断会造成电磁干扰,进而会影响单片机的正常工作。因而单片机与步进电动机之间的驱动电路就显得尤为重要。本系统采用74LS04非门与有光电隔离的4N29达林顿管组成驱动电路,这样不仅避免了在驱动电路发生故障,造成高电压、大电流进入单片机而烧毁器件。同时割断了驱动电路与单片机控制电路之间的电气连接。另外步进电动机的启停和正反转分别由S1,S2控制。硬件接线图如下图所示。
步进电机与单片机硬件接线图
软件实现
单片机程序判断步进电机是否启动;若启动则进一步判断其旋转方向;然后按照既定的旋转方向传送控制脉冲序列,再加上脉宽延时即可。每走一步步数减1,并判断步数是否为零,从而决定是否送下一个脉冲序列。其控制状态如下表所示。
三相单三拍控制模式
由上表可以看出,输出的不同状态字,表示不同的励磁方式。P1=0x06H,表示A相通电,其它两相断电:P1=0x05H,表示B相通电,其它两相断电;P1=0x03H,表示C相通电,其它两相断电。若以次给P1口送0X06H,0X05H,0X03H,则步进电机通电顺序为A——B——C——A相。反之若以次给P1口送0X03H,0X05H,0X06H,则步进电机通电顺序为C——B——A——C相。从而用软件实现了步进电机的正反转控制。步进电机的旋转速度可以用脉冲宽度,即送出控制状态字后的延时时间长短来控制。
软件设计流程框图如下图所示。
步进电动机控制流程图
相关文章