最新单片机课程设计步进电机Word格式.docx
- 文档编号:19072692
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:17
- 大小:105.05KB
最新单片机课程设计步进电机Word格式.docx
《最新单片机课程设计步进电机Word格式.docx》由会员分享,可在线阅读,更多相关《最新单片机课程设计步进电机Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具
有快速起动和停止的特点。
其驱动速度和指令脉冲能严格同步,具有较高的重复定位精度,并能实现正反转和平滑速度调节。
它的运行速度和步距不受电源电压的波动及负载的影响,因而被广泛应用于数模转换、速度控制和位置控制系统。
步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。
常见的步进电机分三种:
永磁式(PM)、反应式(VR)、混合式(HB),永磁式步进一般分为两相,转矩和体积较小,步进角一般为7.5度或15度;
反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。
在欧美等发达国家早已被淘汰;
混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:
两相步进角一般为1.8度而五相步进角一般为0.72度,这种步进机应用最为广泛。
目前使用单片机控制,单片机为微控制器的下位机和以计算机为上位机的步进电机控制系统,用软件代替步进控制器,使得线路简单,成本低,可靠性大大增加,灵活改变步进电机的控制方案,无需逻辑电路组成时序发生器,软件编程可灵活产生步进电机励磁序列来控制步进电机的运行方式。
用此方式设计步进电
机控制系统顺应了目前国内外控制系统微机化发展的趋势,充分利用了单片机的
优点,使得通用性得到了提高。
伴随不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。
、总体实现原理
步进电机的系统总体框图如图1,在系统中采用AT89C51单片机产生A、B、C、D四相信号(更具实际需要,可以扩充更多相信好)。
当采用单片机控制时,需要在单片机和步进电机之间设置隔离电路以使强弱分开。
由于步进电机的驱动
电流相对较大,可增设放大电路来提供步进电机的工作电流。
系统电路由6部分
组成,即:
输入显示部分;
AT89C51单片机;
驱动部分,步进电机。
图1系统总体框图
三、步进电机原理及硬件设计
3.1步进电机
3.1.1步进电机的工作原理
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
它将脉冲
信号转变成角位移,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。
设计中米用了步进电机,该电机为四相步进电机,米用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。
当某一相
绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐。
其中步进电机的静态
指标及术语如下。
(1)相数:
产生不同队N、S磁场的激磁线圈对数,常用m表示。
(2)拍数:
完成一个磁场周期性变化所需脉冲用n表示,或指电机转过一
个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD
fDA—AB,四相八拍运行方式即A—AB—B—BC—C—CD—D—DA—A。
(3)步距角:
对应一个脉冲信号,电机转子转过的角位移用B表示。
(4)定位转矩:
电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿的谐波以及机械误差造成的)。
(5)静转矩:
电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。
此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。
虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。
3.1.2控制原理
根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是KD、KA、KB、KC。
通过KD、KA状态变化来实现电机的启动和换向功能。
当KD、KA的状态变化时,内部程序检测P1.3和P1.0的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。
对于单片机而言,主要的方法有:
软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过KB的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。
3.1.3步进电机的驱动方式
步进电机不能识别单片机发出的信号,应有驱动模块将单片机发出的信号进行转换、放大;
才可以让步进电机做出相应的动作;
驱动器在这里起到桥梁作用,为单片机与步进电机的连接而采用的;
步进电机有单、双拍及单双混合式工作方式,课程设计采用四相五线式步进电机(双四拍工作方式),驱动模块应具备四
根相线,才能满足步进电机的要求,驱动模块选取ULN2003芯片,ULN2003特点是低电压,低功率控制元件,符合课程设计要求
图2步进电机驱动电路
3.2输入显示部分
本系统是基于提高智能机灵活性而设计的,对于步进电机的频率、步数、位置和停止等通过键盘输入相应指令,由单片机输出步进电机控制信号来实现控制,用数码管显示输入的参数并在工作时动态显示剩下的步数。
显然,要显示一个字型就应该使此字型的相应发光二极管点亮,实际上就是送一个不同
电平的组合代表的数据到数码管。
在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。
3.3电源
电源为各个模块提供电能,让每个模块都能正常工作的基础
四、软件程序设计
在步进电机系统中,相应的控制信号由单片机来产生,根据需要通过键盘输入电机的转动方向、转动速率和转动步数,在工作使用数码管来动态显示剩下的步数。
所以,软件部分由4大模块组成:
主程序部分、定时器中断部分、外部中断部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若
启动开关合上则系统开始工作,反之系统停止工作;
定时器部分控制脉冲频率,它决定了步进电机转速的快慢;
两个外部中断程序要做的工作都是为了完成改变速度这一功能。
下面分析主程序与定时器中断程序及外部中断程序。
4.1主程序的设计
主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。
其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;
对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。
若初始化P仁11H、速度和方向初始值均设为0,就意味着步进电机按相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图3所示
厂开始
[显示结束提示信息
结束二)
图3主程序流程图
4.2定时中断设计
步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律
通入电流,步进电机才会旋转,时间间隔越短,速度就越快。
在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向发下一个脉冲,以及保存当前的各种状态。
程序流程图如图4所示。
图4定时中断程序流程
4.3外部中断设计
外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该
数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。
速度增加按钮KB为INTO中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;
速度减少按钮KC,当原数据不为0,减1保存数据,原数据为0则保持不变。
程序流程图如图5所示。
图5外部中断程序流程图
4.4启动、转向、加减速子程序
改变方向子程序:
'
I'
|~~<
土屯~1、■!
:
;
£
』学hl■!
>
[ir,I「k
J■一」X■'
.j」h-丄a》逞踪離竽包tn歸了£
』
谖:
mq[冷杓_f>
jp
I3迥]卜丘狂•-整二赴imtfl]►
启动步进电机子程序:
增速子程序:
减速子程序:
恻始弭我扯阶X
叫疔卜'
.沖证讨=耳讣订:
|
*J
祁監鹑速徒时1二糾骷轲連血赠I
^H>
Wr|
4.4系统软件程序
;
定义模块名
8279.ASM中定义的子程序
NAMEMAIN
EXTRN
CODE(INIT8279,SCAN_KEY,Display8)
MAIN_CODE
MAIN_BIT
MAIN_DATA
STACK
SEGMENTCODE
SEGMENTBIT
SEGMENTDATA
SEGMENTIDATA
RSEG
MAIN_DAT
StepControl:
DS
1
下一次送给步进电机的值
buffer:
8
显示缓冲区,8个字节
SpeedNo:
选择哪一级速度
StepDelay:
转动一步后,延时常数
如果选择的速度快于启动速度,延时由长到短,最终使用对应的延时常数
StartStepDelay
1:
bFirst:
DBIT
有没有转动过步进电机
bClockwise:
=1顺时针方向=0逆时针方向转
动
bNeedDisplay:
已转动一步,需要显示新步数
20H
32BytesStack
CSEG
AT
0000H
定位0
LJMP
STAR
000BH
TIMER0
MAIN_COD
E
STAR:
MOV
SP,#STACK-1
ACALL
INIT8279
SETB
bFirst
bClockwise
StepControl,#33H;
SpeedNo,#5
TMOD,#02H
TH0,#55
TL0,#55;
200us延时
IE,#82H
Buffe叶7,#0
buffe叶6,#0
buffe叶5,#0
buffe叶4,#0
buffer+3,#10H
buffe叶2,SpeedNo
buffer+1,#10H
buffer,#0
STAR2:
R0,#buffer
Display8
STAR3:
Scan_Key
JC
STAR5
JNB
bNeedDisplay,STAR3
CLR
bNeedDisplay
Step_SUB_1
SJMP
STAR2
STAR5:
TR0;
终止步进电机转动
CJNE
A,#10,$+3
JNC
STAR1
buffer+4,buffer+5
buffe叶5,buffe叶6
buffe叶6,buffe叶7
Buffer+7,A
STAR1:
A,#14,$+3
STAR3
DPTR,#DriverTab
C
SUBB
A,#10
RL
A
DriverTab:
JMP
@A+DPTR
Direction;
转动方向
Speed_up;
提咼转速
Speed_Down;
降低转速
Exec;
步进电机根据方向、转速、步数开
始转动
Direction:
CPL
JB
bClockwise,Clockwise
buffer,#1
AntiClockwise:
bFirst,AntiClockwise1
StepControl,#91H
Direction1
AntiClockwisel
A,StepControl
RR
StepControl,A
Clockwise:
buffer,#。
bFirst,Clockwise1
StepControl,#33H
Clockwisel:
Directionl:
Speed_up:
A,SpeedNo
A,#11,Speed_up1
Speed_up2
Speed_up1:
INC
SpeedNo
Speed_up2:
Speed_Down:
JZ
Speed_Down1
DEC
Speed_Down1:
Exec:
TakeStepCount
DPTR,#StepDelayTab
MOVC
A,@A+DPTR
StepDelay,A
A,#50,$+3
Exec1
A,#50
Execl:
StartStepDelay,A
StartStepDelay1,A
TR0
AJMP
StepDelayTab:
DB
250,125,83,62,50,42,36,32,28,25,22,21
TIMERO:
PUSH
ACC
DJNZ
StartStepDelay,TIMER0_1
A,StartStepDelay1
A,StepDelay,TIMER0_5
TIMER0_2
TIMER0_5:
TIMER0_2:
P1,A
bClockwise,TIMER0_3
TIMER0_4
TIMER0_3:
TIMER0_4:
A,R6
ORL
A,R7
TIMER0_1
R7,TIMER0_1
R6,TIMER0_1
TIMERO_1:
POP
RETI
Step_SUB_1:
R5,#4
R0,#buffe叶
7
A,@R0
Step_SUB_1_1:
@R0
JNZ
Step_SUB_1_2
@R0,#9
R0
R5,Step_SUB_1_1
Step_SUB_1_2:
RET
TakeStepCount:
A,buffe叶4;
转动步数送入R6R7
B,#10
MUL
AB
ADD
A,buffe叶5
ADDA,buffer+6
MOVR7,A
MOVA,B
ADDCA,#0
MOVB,#10
MULAB
XCHA,R7
XCHA,B
ADDA,R7
ADDA,buffer+7
MOVR6,A
CJNER7,#0,TakeStepCount1
TakeStepCount1
INCR6;
低位不为0,则高位加一,因循环
时,会多减一
END
总结
本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。
对本次设计,采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。
采用键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。
系
统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。
使用单片机以软件方式驱动步进电机,不但可以通过编程方法,在一定范围内自由设定步进电机的转速、往返转动的角度以及转动次数等,而且还可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求。
因此,常把单片机步进电机控制电路称之为可编程步进电机控制驱动器。
步进电机控制(包括控制脉
冲的产生和分配)使用软件方法,即用单片机实现,这样既简化了电路,也降低了成本。
这次的课程设计更注重于对我们所学的综合知识的运用,同时培养我们运用
所学着知识来发现问题、提出和解决问题的能力。
这次的硬件设计中主要运用了AT89C51单片机,通过查阅资料了解更多关于单片机的知识和功能,进一步巩固了所学的单片机课程。
特别是对程序的编写更加巩固了汇编语言的编程方法。
学习途径掌握了许多书本上所没有学到过的知识,可以说在这短短的时间里获益
匪浅。
参考文献
[1]张鑫,华臻,陈书谦•《单片机原理及应用》电子工业出版社2005.8
[2]梅丽凤,王艳秋,张军.《单片机原理及接口技术》清华大学出版社
2004.6
[3]胡汉才•单片机原理与接口技术[M]•北京:
清华大学出版社,19956
[4]楼然苗等.51系列单片机设计实例[M]•北京:
北京航空航天出版社,20033
[5]何立民.单片机高级教程[M]•北京:
北京航空航天大学出版社,2001.
[6]张迎新,等.单片机微型计算机原理、应用及接口技术[M].修订版.北
京:
•国防工业出版社,2004.
[7]丁志刚,李刚民.单片微型计算机原理与应用[M].北京:
电子工业出版社,1990.
[8]孙传友,等.测控电路及装置[M].北京:
北京航天航空大学出版社,2000.
[9]马淑华,王凤文,张美金.单片机原理与接口技术[M].北京:
北京邮电大学出版社,2007.
[10]张靖武,周灵彬.单片机系统的PROTEUS设计与仿真[M].北京:
电子工业出版社,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 单片机 课程设计 步进 电机
![提示](https://static.bdocx.com/images/bang_tan.gif)