AT89C51单片机控制步进电机.docx
- 文档编号:9091682
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:24
- 大小:430.31KB
AT89C51单片机控制步进电机.docx
《AT89C51单片机控制步进电机.docx》由会员分享,可在线阅读,更多相关《AT89C51单片机控制步进电机.docx(24页珍藏版)》请在冰豆网上搜索。
AT89C51单片机控制步进电机
摘要
步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。
步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。
关键词:
步进电机;单片机;精度高;体积小;控制方便。
设计要求
1.1设计要求
(1)最小系统:
选择AT89C51单片机为核心元件构成系统。
有时钟产生电路和复位电路。
(2)控制电路:
由开关和按键组成,由操作者根据相应的工作需要进行操作。
(3)显示电路:
显示电机的工作状态和转速。
(4)驱动部分:
对单片机输出的脉冲进行功率放大,从而驱动电机转动.
(5)主要功能:
实现步进电机的正反转,加速、减速;显示电机转速(转速级别)和工作状态(正转、反转、不转)。
1.2验收标准
(1)按照设计要求,画出系统硬件电路组成框图,电路组成原理图,PCB图,并在现有的单片机实验系统上完成硬件电路接线。
(2)完成本题程序设计,提交流程图和程序清单。
(3)完成硬件与软件联合调试,实现单片机控制步进电机的功能。
(4)提交课程设计报告。
步进电机原理及硬件和软件设计
2.1步进电机工作方式
由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备----步进电机控制驱动器,典型步进电机控制系统如图1所示:
控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:
一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。
另一类是用硬件构成的环形分配器,通常称硬环形分配器。
功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的,步进电机的基本控制包括转向控制和速度控制两个方面。
从结构上看,步进电机分为三相单三拍、三相双三拍和三相六拍3种,其基本原理如下:
(1)换相顺序的控制通电换相这一过程称为脉冲分配。
例如,三相步进电机在单三拍的工作方式下,其各相通电顺序为A→B→C→A,通电控制脉冲必须严格按照这一顺序分别控制A、B、C相的通断。
三相双三拍的通电顺序为AB→BC→CA→AB,三相六拍的通电顺序为A→AB→B→BC→C→CA→A。
(2)步进电机的换向控制如果给定工作方式正序换相通电,步进电机正转。
若步进电机的励磁方式为三相六拍,即A→AB→B→BC→C→CA→A。
如果按反序通电换相,即A→AC→C→CB→B→BA→A,则电机就反转。
其他方式情况类似。
(3)步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整送给步进电机的脉冲频率,就可以对步进电机进行调试。
(4)步进电机的起停控制步进电机由于其电气特性,运转时会有步进感。
为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。
在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。
(5)步进电机的加减速控制在控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步象。
所有步进电机在启动时,必须有加速过程,在停止时波形有减速过程。
理想的加速曲线一般为指数曲线,步进电机整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。
选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。
实际的控制系统中,根据负载的情况来选择步进电机。
步进电机能响应不失步的最高步进频率称为
“启动频率”,于此类似“停止频率”是指系统控制信号突然关断,步进电机不冲过目标位置的最高步进频率。
电机的启动频率、停止频率和输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。
加速过程有突然施加的脉冲启动频率f0。
步进电机的最高启动频率(突跳频率)一般为0.1KHz到3~4KHz,而最高运行频率则可以达到N*102KHz,以超过最高启动频率的频率直接启动,会
产生堵转和失步的现象。
在一般的应用中,用PLC实现步进电机的加P减速控制,实践上就是控制发脉冲的频率。
加速时,使脉冲频率增高,减速则相反。
如果使用定时器来控制电机的速度,加减速控制就是不断改变定时中断的设定值。
速度从v1~v2变化,如果是线性增加,则按给定的斜率加P减速;如果是突变,则按阶梯加速处理。
在此过程中要处理好两个问题:
①速度转换时间应尽量短。
为了缩短速度转换的时间,可以采用建立数据表的方法。
结合各曲线段的频率和各段间的阶梯频率,就可以建立一个连续的数据表,并通过转换程序将其转换为定时初始表。
通过在不同的阶段调用相应的定时初值,就可控制电机的运行。
定时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。
②保证控制速度的精确性。
要从一个速度准确达到另一个速度,就要建立一个校验机制,以防超过或未达到所需速度。
(6)步进电机的换向控制步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的冲击而损坏电机。
换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第一个脉冲前发出。
对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀度及高低电平方式。
在某一高速下的正、反向切换实质包含了降速→换向→加速3个过程。
2.2总体设计方框图
根据C51芯片的工作方式设计总体设计方框图如图2所示。
控制信号
ULN2803
P
AT89C51
图2总体设计方框图
2.3设计原理分析
2.3.1元器件介绍:
步进电机
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机区别于其他控制电机的最大特点是:
它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
步进电机分三种:
永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。
步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。
步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。
①四相步进电机的工作原理该设计采用了20BY-0型步进电机,该电机为四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。
当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。
②步进电机的静态指标及术语相数:
产生不同队N、S磁场的激磁线圈对数,常用m表示。
拍数:
完成一个磁场周期性变化所需脉冲用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB→BC→CD→DA→AB,四相八拍运行方式即A→AB→B→BC→C→CD→D→DA→A。
步距角:
对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度(转子齿角运行拍数),以常规二、四相,转子齿角为50齿角电机为例。
四相运行时步距角为
θ=360度/(50*4)=1.8度,八拍运行时步距角为θ=360度/(50*8)=0.9度。
定位转矩:
电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。
静转矩:
电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。
此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。
虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。
但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热及机械噪音。
③四相步进电机的脉冲分配规律目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。
本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。
四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。
各种工作方式在电源通电时的时序与波形分别如图1a、b、c所示。
本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。
2.3.2方案论证
从该系统的设计要求可知,该系统的输入量为速度和方向,速度应该有增减变化,通常用加减按钮控制速度,这样只要2根口线,再加上一根方向线盒一根启动信号线共需要4根输入线。
系统的输出线与步进电机的绕组数有关。
这里选四相步进电机,该电机共有四相绕组,工作电压为+5V,可以个单片机共用一个电源。
步进电机的四相绕组用P1口的P1.0~P1.3控制,由于P1口驱动能力不够,因而用一片2803增加驱动能力。
用P0口控制第一数码管用于显示正反转,用P2口控制第二个数码管用于显示转速等级。
数码管采用共阳的。
2.3.3硬件设计
本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。
最小系统只要是为了使单片机正常工作。
控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。
显示电路主要是为了显示电机的工作状态和转速。
驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。
(1)控制电路根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、S2、S3,控制电路如图4所示。
通过K1、K2状态变化来实现电机的启动和换向功能。
当K1、K2的状态变化时,内部程序检测P1.0和P1.1的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。
对于单片机而言,主要的方法有:
软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过S2、S3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。
图4控制原理图
(2)驱动电路通过ULN2803构成比较多的驱动电路,电路图如图5所示。
通过单片机的P1.0~P1.3输出脉冲到ULN2803的1B~4B口,经信号放大后从1C~4C口分别输出到电机的A、B、C、D相。
图5步进电机驱动电路
(4)显示电路在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。
在显示电中,主要是利用了单片机的P0口和P2口。
采用两个共阳数码管作显示。
第一个数码管接的a、b、c、d、e、f、g、h分别接P0.0~P0.7口,用于显示电机正反转状态,正转时显示
“1”,反转时显示“一”,不转时显示“0”。
第二个数码管的a、b、c、d、e、f、g、h分别接P2.0~P2.7口,用于显示电机的转速级别,共七级,即从1~7转速依次递增,“0”表示转速为零。
电路如图6所示。
图6显示电路
(5)总体电路图
把各个部分的电路图组合成总电路图,如图7所示。
图7Proteus仿真图
绘制原理图和PCB图是注意库中没有的原件要自己会出,注意电气特性。
PCB图布线要尽量少交叉。
图8Protel电子线路原理图
图9PCB图
2.3.4元件清单
表三元件名称、大小和封装形式.
元件名称
大小
封装形式
R1
1K
AXIAL0.4
R6
10K
AXIAL0.3
R4
10K
AXIAL.3
R5
10K
AXIAL0.3
R3
10K
AXIAL0.3
X1
12MHZ
XTAL1
C1
22
RB.2/.4
C2
22pF
RAD0.1
C3
22pF
RAD0.1
R2
100
AXIAL0.3
R7
100
AXIAL0.3
R8
100
AXIAL0.3
A2
AMBERCA
DIP12
A1
AMBERCA
DIP12
U1
AT89C51
DIP40
U3
MOTORSTEPPER
TO-3
S2
SW-PB
DIP
S3
SW-PB
DIP4
S5
SWSPDT
SDPT
U2
ULN2803
DIP18
2.3.5软件设计
(1)系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。
若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图10所示。
图10主程序流程图
(2)定时中断设计步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就快。
在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。
程序流程图如图11所示。
Y
图11定时中断程序流程
(3)外部中断设计外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。
速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。
程序流程图如图12所示。
Y
中断返回
图12外部中断程序流程图
(4)源程序
SPEEDEQU10H;SPEED为转速等级标志,共7级,即1~7
FXEQU11H;FX为方向标志
COUNTEQU12H;COUNT中断次数标志
ORG0000H
AJMPMAIN
ORG0003H;外部中断0入口地址,加速子程序
AJMPUP
ORG0013H;外部中断1入口地址,减速子程序
AJMPDOWN
ORG000BH;定时器0中断入口地址,控制中断次数来达到控制转速AJMPZDT0
ORG0030H
MAIN:
MOVSP,#60H
MOVTMOD,#01H;工作于定时、软件置位启动,模式1(16位计时器)
MOVTH0,#0CFH
MOVTL0,#2CH
MOVCOUNT,#01H
SETBET0;定时/计数器允许中断
CLRIT0;外部中断为电平触发方式,低电平有效
CLRIT1
SETBEX0;外部允许中断
SETBEX1
SETBEA;开总中断
MOVR1,#11H;四相单四拍运行,共阳数码管方向显示8,速度值显示0
MOVSPEED,#00H
MOVFX,#00H
XIANS:
MOVA,SPEED
MOVDPTR,#LED
MOVCA,@A+DPTR;查表获取等级对应数码管代码
MOVP2,A;第二个数码管显示转速等级
MOVA,FX;准备判断转向
CJNEA,#11H,ELS
MOVP0,#0F9H;第一个数码管显示1,表示正转
AJMPQD
ELS:
CJNEA,#00H,ZHENG
MOVP0,#0C0H;第一个数码管显示0,表示不转
AJMPQD
ZHENG:
MOVP0,#0BFH;第一个数码管显示-,表示反转
QD:
JBP3.4,DD;P3.4接启动开关K1,P3.4=1时启动
CLRTR0;停止定时/计数器
MOVP0,#0C0H;第一个数码管显示0,表示不转
MOVP2,#0C0H;第二个数码管显示0,表示转速为0
MOVSPEED,#00H;重新赋初值
MOVFX,#00H
AJMPQD
DD:
MOVA,SPEED
JNZGO;A不等于0,即初始速度不为零,则转移到GO
CLRTR0;停止定时/计数器
AJMPQD
GO:
SETBTR0;开启定时/计数器
ACALLDELAY
AJMPXIANS
DELAY:
MOVR6,#10;延时子程序
DEL1:
MOVR7,#250
HERE1:
DJNZR7,HERE1
DJNZR6,DEL1
RET
;以下ZDT0为定时器中断程序
ZDT0:
PUSHACC
PUSHDPH
PUSHDPL
MOVTH0,#0D8H
MOVTL0,#0F0H
DJNZCOUNT,EXIT
JBP3.5,NIZHUAN;查询方向标志,P3.5接换向开关K2
MOVFX,#11H
NIZHUAN:
MOVA,FX
CJNEA,#11H,FZ;若A不等于11,即正转,则转移到FZ
MOVA,R1;R1记录上一次电机脉冲状态
MOVP1,A
RRA;循环右一位
MOVR1,A
MOVP1,A
AJMPRE
FZ:
MOVA,R1
MOVP1,A
RLA;循环左移一位
MOVP1,A
MOVR1,A
RE:
MOVA,SPEED
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVCOUNT,A;把转速级别赋给COUNT
JBP3.5,FFX;P3.5接换向开关K2,即换向位,若P3.5=1,则跳到FFX
MOVFX,#11H
AJMPEXIT
FFX:
MOVFX,#0FEH;只要FX不等于11H,就可以通过循环左移或右移进行换向
EXIT:
POPDPL
POPDPH
POPACC
RETI
;以下UP为加速中断程序
UP:
PUSHACC
ACALLDELAY;延时防抖
JBP3.2,UPEX;P3.2为外部中断0位,接增速开关S2,低电平有效,若
3.2=1,则退出
MOVA,SPEED
CJNEA,#7,SZ;最大等级为7,若A不等于7,则转移到SZ
AJMPUPEX;若A=7,则退出
SZ:
INCSPEED;SPEED=SPEED+1
UPEX:
POPACC
HERE2:
JNBP3.2,HERE2;本条指令为防止开关S2按下去后弹不起,导致一直产生中断
RETI
;以下DOWN为减速中断程序
DOWN:
PUSHACC
ACALLDELAY
JBP3.3,DEX;P3.3为外部中断1位,接减速开关S3,低电平有效,
P3.3=1则退出
MOVA,SPEED
CJNEA,#0,SJ
AJMPDEX
SJ:
DECSPEED;SPEED=SPEED-1
DEX:
POPACC
HERE3:
JNBP3.3,HERE3
RETI
TAB:
DB0,60,40,35,30,28,25,21;经仿真,小于21时,由于脉冲太快,会出现失
步;
LED:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
END
总结
本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。
对本次设计,有以下结论:
(1)采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。
而且整个系统所包含的技术几乎包括了现本科学校控制专业所要求的知识,有利于实践教学取得最大效果。
(2)键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。
(3)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。
致谢
本人深知自己做的课设还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。
由于时间的原因,设备的原因,实验做的不够好,相关验证性的数据、信息不够丰富。
可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。
本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89C51 单片机 控制 步进 电机