毕业设计基于单片机的步进电机控制系统汇编及C语言程序各个.docx
《毕业设计基于单片机的步进电机控制系统汇编及C语言程序各个.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的步进电机控制系统汇编及C语言程序各个.docx(34页珍藏版)》请在冰点文库上搜索。
![毕业设计基于单片机的步进电机控制系统汇编及C语言程序各个.docx](https://file1.bingdoc.com/fileroot1/2023-8/13/fca730ef-f427-40c6-812e-75023ac282c5/fca730ef-f427-40c6-812e-75023ac282c51.gif)
毕业设计基于单片机的步进电机控制系统汇编及C语言程序各个
基于单片机的步进电机控制系统设计
、八—
前言步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四
相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电
随着微电子和计算机技术的步进电机是机电数字控制系统
格低的步进电机控制驱动器提供了先进的技术和充足的资源。
1.步进电机原理及硬件和软件设计
1.1步进电机原理及控制技术由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备一步进电机控制驱动器,典型步进电机控制系统如图1所示:
控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:
一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。
另一类是用硬件构成的环形分配器,通常称硬环形分配器。
功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的,步进电机的基本控制包括转向控制和速度控制两个方面。
从结构上看,步进电机分为三相单三拍、三相双三拍和三相六拍3种,其基本原理如下:
文档来自于网络搜索
(1)换相顺序的控制通电换相这一过程称为脉冲分配。
例如,三相步进电机在单三拍的工作方式下,其各相通电顺序为AfBtSa,通电控制脉冲必须严格按照这一顺序分别控制
A,B,C相的通断。
三相双三拍的通电顺序为ABtBCtcatAB,三相六拍的通电顺序为AtABtBtBCtCtCAtA。
文档来自于网络搜索
(2)步进电机的换向控制
如果给定工作方式正序换相通电,步进电机正转。
若步进电机的励磁方式为三相六拍,即AtABtBtBCtCtcatA。
如果按反序通电换相,即AtACtCtCBtBtBAta,则电机就反转。
其他方式情况类似。
文档来自于网络搜索
(3)步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两
个脉冲的间隔越短,步进电机就转得越快。
调整送给步进电机的脉冲频率,就可以对步进电机进行调试。
文档来自于网络搜索
(4)步进电机的起停控制
步进电机由于其电气特性,运转时会有步进感。
为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。
在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采
用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。
文档来自于网络搜索
(5)步进电机的加减速控制
在步进电机控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步现象。
所有步进电机在启动时,必须有加速过
程,在停止时波形有减速过程。
理想的加速曲线一般为指数曲线,步进电机整个降速过程频
率变化规律是整个加速过程频率变化规律的逆过程。
选定的曲线比较符合步进电机升降过程
的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可
防止失步和过冲现象。
在一个实际的控制系统中,要根据负载的情况来选择步进电机。
步进
电机能响应而不失步的最高步进频率称为“启动频率”,于此类似“停止频率”是指系统控
制信号突然关断,步进电机不冲过目标位置的最高步进频率。
电机的启动频率、停止频率和
输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。
加速过程有突然施加的脉冲启动频率fO。
步进电机的最高启动频率(突跳频率)一般为0.1KHZ
到3~4KHz,而最高运行频率则可以达到N*102KHZ,以超过最高启动频率的频率直接启动,
会产生堵转和失步的现象。
文档来自于网络搜索
图1步进电机运行工程中频率变化曲线
在一般的应用中,经过大量实践和反复验证,频率如按直线上升或下降,控制效果
就可以满足常规的应用要求。
用PLC实现步进电机的加P减速控制,实践上就是控制发脉冲
的频率。
加速时,使脉冲频率增高,减速则相反。
如果使用定时器来控制电机的速度,加减速控制就是不断改变定时中断的设定值。
速度从v1~v2变化,如果是线性增加,则按给定
的斜率加P减速;如果是突变,则按阶梯加速处理。
在此过程中要处理好两个问题:
文档来自于
网络搜索
1.速度转换时间应尽量短。
为了缩短速度转换的时间,可以采用建立数据表的方法。
结合各曲线段的频率和各段间的阶梯频率,就可以建立一个连续的数据表,并通过转换程序
将其转换为定时初始表。
通过在不同的阶段调用相应的定时初值,就可控制电机的运行。
定
文档来自于
时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。
网络搜索
2.保证控制速度的精确性。
要从一个速度准确达到另一个速度,就要建立一个校验机
制,以防超过或未达到所需速度。
文档来自于网络搜索
⑹步进电机的换向控制
步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的
冲击而损坏电机。
换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第一个脉冲前发出。
对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀度及高低
电平方式。
在某一高速下的正、反向切换实质包含了降速一换向一加速3个过程。
步进电机
有如下特点汶档来自于网络搜索
1
因此当它转一转后,没有累计误
步进电机的角位移与输入脉冲数严格成正比,
差,具有良好的跟随性。
2
既非常方便、廉价,也非常可靠。
文档来自于网络搜索
由步进电机与驱动电路组成的开环数控系统,
同时,它也可以有角度反馈环节组成高性能的闭环数控系统。
3步进电机的动态响应快,易于启停、正反转及变速。
4速度可在相当宽的范围内平滑调节,低速下仍能保证获得很大的转矩,因此一
般可以不用减速器而直接驱动负载。
文档来自于网络搜索
5步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电
源。
⑥步进电机自身的噪声和振动比较大,带惯性负载的能力强。
1.2总体设计方框图
总体设计方框图如图2所示。
1.3设计原理分析
1.3.1元器件介绍
(1)步进电机
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进
电机就转动一个角度,因此非常适合于单片机控制。
步进电机区别于其他控制电机的最大特点是:
它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
文档来自于网络搜索
步进电机分三种:
永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行文档来自于网络搜索
图2总体设计方框图
元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。
步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)
或前进、倒退一步。
步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。
文档来自于网络搜索
1四相步进电机的工作原理
该设计采用了20BY。
型步进电机,该电机为四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。
当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。
文档来自于网络搜索
2步进电机的静态指标及术语
相数:
产生不同队N、S磁场的激磁线圈对数,常用m表示。
拍数:
完成一个磁场周期性变化所需脉冲用n表示,或指电机转过一个齿距角所需
脉冲数,以四相电机为例,有四相四拍运行方式即ABtC"DATAB,四相八拍运行方
式即AtABtBtBCtCtCDTDtDAta。
文档来自于网络搜索
0表示。
0=360度(转子齿角四相运行时步距角为0=360度。
文档来自于网络搜索
(由磁场齿形的谐波以
步距角:
对应一个脉冲信号,电机转子转过的角位移用运行拍数),以常规二、四相,转子齿角为50齿角电机为例。
度/(50*4)=1.8度,八拍运行时步距角为0=360度/(50*8)=0.9
定位转矩:
电机在不通电的状态下,电机转子自身的锁定力矩及机械误差造成的)。
电机转轴的锁定力矩。
此
虽然静态转矩与电磁激磁匝数增加励磁匝数来提高静转矩是文档来自于网络搜索
静转矩:
电机在额定静态作业下,电机不做旋转运动时,力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。
成正比,与定子和转子间的气隙有关。
但过分采用减小气隙,不可取的,这样会造成电机的发热及机械噪音。
3四相步进电机的脉冲分配规律
目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉
冲分配器、专用集成芯片环形脉冲分配器等。
本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。
四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。
各种工作方式在电源通电时的时序与波形分别如图1a,b,c所示。
本设计的电机工作方式为
四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速
就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。
文档来自于网络搜索
(2)89C51单片机
Atmel公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片机,它采用CMOS和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容片
内的FlashROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,
还包括256字节ram,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。
文档来自于网络搜索
1.3.2方案论证
从该系统的设计要求可知,该系统的输入量为速度和方向,速度应该有增减变化,
通常用加减按钮控制速度,这样只要2根口线,再加上一根方向线盒一根启动信号线共需要
4根输入线。
系统的输出线与步进电机的绕组数有关。
这里选文档来自于网络搜索
图3步进电机工作时序波形图
表1四相单四拍脉冲分配表
A
B
C
D
N
1
0
0
0
N+1
0
1
0
0
N+2
0
1
N+3
0
0
0
1
表2四相双四拍脉冲分配表
A
B
C
D
N
1
0
0
0
N+1
0
1
1
0
N+2
0
0
1
1
N+3
1
0
0
1
进电机,该电机共有四相绕组,工作电压为四相绕组用P1口的P1.0~P1.3控制,由于能力。
用P0口控制第一数码管用于显示正反转,级。
数码管采用共阳的。
文档来自于网络搜索
1.3.3硬件设计
本设计的硬件电路只要包括控制电路、最小系统、只要是为了使单片机正常工作。
+5V,可以个单片机共用一个电源。
步进电机的
口驱动能力不够,因而用一片2803增加驱动
用P2口控制第二个数码管用于显示转速等
P1
驱动电路、显示电路四大部分。
最小系统控制电路只要由开关和按键组成,
需要进行操作。
显示电路主要是为了显示电机的工作状态和转速。
输出的脉冲进行功率放大,从而驱动电机转动。
文档来自于网络搜索
(1)控制电路
根据系统的控制要求,控制输入部分设置了启动控制,换向控制,
由操作者根据相应的工作驱动电路主要是对单片机
加速控制和减速控制按钮,分别是K1,K2,S2,S3控制电路如图4所示。
通过K1,K2状态变化来实现电机的启动和换向功能。
当K1,K2的状态变化时,内部程序检测P1.0和P1.1的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。
文档来自于网络搜索
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。
对于单片机而言,主要的方法有:
软件延时和定时中断在此
电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通
过S2,S3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。
文档来自于网络搜索
U1
19
sXTALl
iWBT
roa^va
PDZTAErrmu了
POS/ADS
¥
ZT
Z1
ALE
z?
P2・l倨
P2JSfA1*
P2.7W1£
FIB
P1.1
P1立
PO
P1>
P1去
P1JS
P”
P311/RXPP3.iinr>t阳刃nrmpaamm
ram
P□.THTU
K1
匸Tt-L
k2
ftTSCSI-TEcn
R1ih*IfBO
辱Z
o
ber•;
sa
R3
O0
图4控制电路原理图
(2)最小系统
单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作
的系统,对51系列单片机来说,最小系统一般应该包括:
单片机、复位电路、晶振电路。
文
档来自于网络搜索
复位电路:
使用了独立式键盘,单片机的P1口键盘的接口。
该设计要求只需对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了6路独立式键盘。
4个键
复位电
路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,
电路用30PF的电容和一12M晶体振荡器组成为整个电路提供时钟频率。
如图5示。
于网络搜索
晶振
文档来自
晶振电路:
8051单片机的时钟信号通常用两种电路形式电路得到
外部中断方式。
在引脚XTAL1和XTAL2外部接晶振电路器
了内部晶振方式。
由于单片机内部有一个高增益反相放大器,振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如图
晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
较稳定,实用电路实用较多。
文档来自于网络搜索
:
内部震荡方式和
(简称晶振)或陶瓷晶振器,就构成当外接晶振后,就构成了自激5示。
其电容值一般在5}3Opf,
内部振荡方式所得的时钟信号比
Cl
C2
AVI
■-TE'-n
X2tRY&TALuTE
15
IS
C3
■zE
LI1
XTXL2
FST
POnADGPHWADI
P0aAD2PDMRDQ
P口却Ire
POj^AK
FOMAS'
'ItF-
T卜
S厂TE^-
RS
R5
He
cTE
3
ALE
PZIIA3
PZ.IfAB
PZ^A-B
P2311
PZiiAC号An
P3«AH
PZ.T^Ae
PIO
P1.1
P13
P12
PI.*
P1£
P1j€
P1.T
P3.irrKD
PHNnng
口四
图5复位及时钟振荡电路(3)驱动电路
6所示。
通过单片机的
通过ULN2803构成比较多的驱动电路,电路图如图
P1.0~P1.3输出脉冲到ULN2803的1B~4B口,经信号放大后从1C~4C口分别输出到电机的A,B,C,D相。
图6步进电机驱动电路
(4)显示电路
在该步进电机的控制器中,电机可以正反转,可以加速、
级分为七级,为了方便知道电机的运行状态和电机的转速的等级,机的工作状态的显示电路。
在显示电路中,主要是利用了单片机的
共阳数码管作显示。
第一个数码管接的显示电机正反转状态,正转时显示“管的a、b、c、d、e、f、g、h分别接P2.0~P2.7口,
从1~7转速依次递增,“0”表示转速为零。
电路如图
L)1
XTR口
PET
p口irxDOP□一1嗔
P口环DCPDJTAIOpm点帕PDJTAPfP口用MGPQ.rrxR
FTEK
临a畑
PZZ'ACnm
ALE
BC
Pin
PZJ&RI*
PZ.TfAIS
PmflXb
PM
p3.1nt®
P12
phEITID
FlJ
pizsmm
P1*
PIWTC
Pif
P3jm
FIS
Fl,7
pajfRF
IS
3
5
S
1*-T3-
~~rT
:
Tn:
S
3S~g
It
ID—IT
云
—77
图7显示电路
⑸总体电路图
把各个部分的电路图组合成总电路图,如图8所示。
RS
Ic-TECP-
C2u
C1iH•:
gr
CFVtB™.:
TE:
-
鑒
rXTAU
PCIDTAU]
P□.1曲的
P口EXEC
XTALZ
PDNREDPD.rfAD*
PDSADSPDjSfAM
RBT
PEI.TFAPT
FZ.Ii-AB
PSEI
P2JAM
ALE
FZ.h-AC
0
FZA-AO
PZjffAU
Pin
PS看MS
PlJJPtKb
PM
p1卫
PHJIHi|j
p13
P刁Hid14
P3
P15
pzsm
F1jS
P3JSW
PTT
PIJ/TTF
U1
IE
K7
ITT
—L
3Z
211
iH
1
————
N1
F
1i
F劃
R1
二
l=L*
R3
I*FIzF
Aism=TB◎
-CT
■:
TE專新为冀農itC
lb
-Lp
图8总体电路图
1.3.4软件设计
通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。
下面分析主程序与定时器中断程序及外部中断程序。
文档来自于网络搜索
(1)主程序设计
主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。
其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。
若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示0”速度值显示0”主程序流程图如图9所示。
文档来自于网络搜索
图9主程序流程图
(2)定时中断设计
步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。
在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断
次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。
程序流程图如图10所示。
文档来自于网络搜索
图10定时中断程序流程
(3)外部中断设计
外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数
据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电
机的转速。
速度增加按钮S2为INTO中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。
程序流程图如图11所示。
文档来自于网络搜索
图11外部中断程序流程图
1.3.5源程序(汇编、
汇编程序如下:
C语言程序各一个)
SPEEDEQU10H
FXEQU11H
COUNTEQU12H
ORG0000H
;SPEED为转速等级标志,共7级,即1~7
;FX为方向标志
;COUNT中断次数标志
AJMPMAIN
ORG0003H
AJMPUP
;外部中断0入口地址,加速子程序
ORG0013H
;外部中断1入口地址,减速子程序
AJMPDOWN
ORG000BH
;定时器0中断入口地址,控制中断次数来达到控制转速
AJMPZDT0
ORG0030H
MAIN:
MOVSP,#60H
;工作于定时、软件置位启动!
模式1(16位计时器)
MOVTMOD,#01H
MOVTH0,#0CFH
MOVTL0,#2CH
MOVCOUNT,#01H
SETBET0
CLRIT0
CLRIT1
;定时/