步进电机简易控制系统设计.docx
《步进电机简易控制系统设计.docx》由会员分享,可在线阅读,更多相关《步进电机简易控制系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
![步进电机简易控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-1/26/ad38f667-3a82-43cd-86da-c6e4f454ae99/ad38f667-3a82-43cd-86da-c6e4f454ae991.gif)
步进电机简易控制系统设计
目录
第1章设计目的1
第2章设计任务与要求2
第3章设计思路与方案2
3.1控制电机正/反向转3
3.2控制电机运转速度3
第4章硬件电路设计3
4.1主控模块4
4.2驱动控制模块5
4.3按键控制模块6
4.4显示模块7
第5章系统软件设计8
5.1主程序8
5.2子程序9
第6章系统仿真9
6.1KEIL调试控制程序9
6.2Proteus仿真10
第7章收获与体会12
附录1总电路图14
附录2源程序清单16
步进电机简易控制系统设计
第1章设计目的
随着科学技术特别是微型计算机技术的高速发展,单片微机技术也获得了飞速发展。
目前,单片机已经在日常生活和控制领域等方面得到广泛的应用,它正为我国经济的快速发展发挥着举足轻重的作用。
而《单片机原理与应用》是自动化专业的一门重要专业课,对应用能力和动手能力要求很高,课程设计环节是学生学习该课程后进行的一项必不可少的基本训练。
其主要目的是使学生增进对单片机的感性认识,加深对单片机理论方面的理解,巩固学生所学理论知识;使学生掌握单片机的内部功能模块的应用,培养学生系统设计的思想;使我们对单片机理论知识有一个深刻的认识和全面的掌握。
另外通过这一真正意义上的实践活动,我们可以从中发现自己不足之处并能够在自己的深思下和老师的指导下得到及时的解决。
再次,它能使我们的应用能力和科技创新能力得到较大的提高
第2章设计任务与要求
(1)能用按键控制步进电机的正反装运行。
(2)能在一定范围内控制电机的加速和减速。
(3)在不断电的情况下能通过一个按钮能随时控制电机的停止。
(4)能显示电机当前的运行情况。
第3章设计思路与方案
对步进电动机的控制,接口采用软件方法控制步进电动机的旋转。
步进电动机的驱动电路由ULN2003A芯片实现,并通过90C52芯片的P1.0~P1.6端口引脚出发,然后通过ULN2003A芯片再驱动电动机。
操作部分共分为五个操作按钮:
正转、反转、暂停、加速、减速。
其中正反转通过接入步进电机绕组的不同相序来实现。
加速、减速是通过延时时间的改变调整输入电机绕组的频率实现。
停止按钮则保证随时可以在不断电源情况下暂停。
五个操作按键分别通过90C52芯片的P3.0~P3.4口读取正/反转控制信号(K1、K2)、启/停(K0)以及加速/减速控制(K3、K4)的值。
对步进电机简易控制系统的设计,其具体情况可以根据任务要求从以下几个方面来考虑:
3.1控制电机正/反向转
步进电动机某一项绕组通电时,在其内部形成N-S极,产生磁场,在磁场的作用下,转子将会转动,步进一步。
若步进电动机按顺序给绕组通电,步进电动机将沿顺时针方向转动。
若步进电动机按逆序给绕组通电,则步进电动机将沿逆时针方向转动。
因而只要控制脉冲输出的顺序,就可实现对步进电动机正/反转的控制。
3.2控制电机运转速度
步进电动机运转的速度是由输入到电机绕组的频率所决定的。
频率越高,电动机运转的速度越快,否则,速度就越慢。
因而通过延时程序控制输出脉冲的频率,就可以实现对步进电动机转速的控制。
第4章硬件电路设计
步进电机简易控制系统设计包含了主控模块、按键控制模块、驱动控制模块、显示模块四个模块。
其功能实现是首先利用按键模块输入所要执行的任务,然后通过主控模块调用所对应的程序并把信息送给步进电机,使电机按照所按下的按钮命令来运转,同时在显示屏上显示当下的运行状态。
从而实现步进电机简易控制系统设计的功能。
其硬件总电路图如附录一所示。
4.1主控模块
主控模块采用的是90C52单片机芯片来控制。
90C52是一个8位单片机,片内ROM全部采用FLASHROM技术,晶振时钟为12MHz。
90C52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。
第31引脚需要接高电位使单片机选用内部程序存储器;P3口的引脚10到引脚14分别接正转按钮、反转按钮、暂停按钮、加速按钮、减速按钮;引脚1到引脚7分别接芯片LN2003A的1、2、3、4引脚。
芯片接线简图如图1所示。
图190C52芯片图
4.2驱动控制模块
驱动电路主要是利用ULN2003A芯片来来驱动电机。
ULN2003A的原理是ULN2004A是一个7路反向器电路,即当输入端为高电平时ULN2003A输出端为低电平,当输入端为低电平时ULN2003A输出端为高电平,继电器得电吸合。
如下图3所示。
ULN2003A的引脚1、2、3、4分别接单片机AT89C52的P1.0、P1.1、P1.2、P1.3;LN2004A的1C引脚、2C引脚、3C引脚、4C引脚分别接电机的引脚A、C、A’、C’;COM(引脚9)接电机引脚的B和B’并与高电平+12V相接。
目的是驱动电机,使电机正常工作。
图3驱动电路图
4.3按键控制模块
按键模块有五个按钮,正转按钮、反转按钮、加速按钮、减速按钮和暂停按钮,它们分别控制电机的正向转动、反向转动、加速、减速和随时暂停。
如下图2所示:
K1正向转动按钮一端接单片机AT89C52的P3.0(引脚10),K2反向转动按钮一端接单片机AT89C52的P3.1(引脚11),K3暂停按钮接一端单片机AT89C52的P3.2(引脚12),K4是加速按钮一端接单片机AT89C52的P3.3(引脚13),K4是减速按钮一端接单片机AT89C52的P3.4(引脚14),同时都接地。
当按下其中任意一个键时,其状态的变换都会通过相应的端口输入单片机,从而完成控制的输入。
图2按键控制模块图
4.4显示模块
使电机正常工作。
P2.0口控制位显示,P0.0~P0.6控制段显示。
同时都通过一个上拉电阻接高电平,上拉电阻起到限流作用。
图4显示模块
第5章系统软件设计
5.1主程序
主程序的源程序见附录二源程序清单表,正转子程序及主程序设计流程图如下图4图5所示:
图4
图5
5.2子程序
子程序有正\反转子程序、正转加\减速子程序、反转加\减速子程序、延时子程序和显示子程序。
它们的源程序见附录二源程序清单表。
第6章系统仿真
6.1KEIL调试控制程序
调试程序具体步骤如下:
(1)打开Keil编译软件。
(2)新建一个项目,在项目里进行设置,转换成HEX文件。
(3)将刚写好的汇编语言程序添加进去。
(4)点击编译生成后缀名为“.HEX”的文件。
6.2Proteus仿真
打开Proteus上的单片机控制步进电机电路图,点击AT89C52单片机,调用后缀名为.”HEX”的文件。
点击运行,观察现象。
当按下Proteus软件上的开始按钮时,电机不转动。
其显示如图6所示:
图6暂停转动图
当按下K2按钮时,电机则正向转动,电机转动一段时间后的显示图如图8所示:
图8反向转动图
当按下K1按钮时,电机开始正向转动,电机上显示的是转过的角度。
下面是当电机反向转动一段时间后的显示图如图7所示:
图7正向转动图
当按下按钮K4或K5时,电机相应的做加速转动或减速转动,但加速或减速到一定范围是则不能再加速或减速了。
K3是控制电机的暂停,任意时刻按下K3按钮,电机就停止转动。
当再次按下按钮K1或K2按钮时电机又重新开始工作。
第7章收获与体会
此次课程设计使我对步进电机的控制有了更深的了解,对单片机也有了更高层次的了解。
也使我意识到许多地方的缺陷,所谓基础不牢地洞山摇。
单片机编程是用汇编语言进行编程,也就需要我们对电路的分析,然后总结,查阅相关资料才能变成好的程序,编程讲究的是多动手写,自己写,用自己的思路,不怕写错,写错再改,懂得有新的思想这样才能提高。
另外,在做课程设计过程中,我表现出耐心不够、专业知识不扎实等不足,这些都需要我在以后的学习和工作不断的改进。
最后,我还要感谢在此次课程设计中帮助过我的老师和同学。
特别是李老师和与我同组的同学,是他们无私的帮助才使我顺利的完成了本次课程设计。
进度安排
设计时间为两周
第一周
星期一、上午:
布置课题任务,讲课及课题介绍
下午:
借阅有关资料,总体方案讨论
星期二、系统总体方案
星期四、设计及调试
星期五、设计及调试
第二周
星期一、设计及调试
星期二、设计及调试
星期三、设计及调试
星期四、写说明书
星期五、上午:
写说明书,整理资料
下午:
交设计资料,答辩
参考文献
参考文献
1、《单片机原理及应用》王迎旭 机械工业出版社
2、《微型计算机接口技术及应用》 刘乐善等华中科技大学出版社
3、《51系列单片机应用与实践教程》 周向红 北京航空航天大学出版社
4、C程序设计》(第三版) 谭浩强 清华大学出版
附录1总电路图
附录2源程序清单
;程序功能:
开关控制步进电机正反转
;数码管显示0表示电动机正转
;1表示电动机反转
;2表示电动机正转加速
;3表示电动机正转减速
;4表示电动机反转加速
;5表示电动机反转减速
;键的端口定义K1EQUP3.0;正转键
K2EQUP3.1;反转键
K3EQUP3.2;停止键
K4EQUP3.3;加速
K5EQUP3.4;减速
;主程序
STOP:
MOVP1,#0FFH;关闭P1口
LOOP:
JNBK1,Z_M2;正转键按下转正转扫描部分
JNBK2,F_M2;反转键按下转反转扫描部分
JNBK3,STOP1;停止键按下转停止部分
JMPLOOP
;-----------------------------;键盘消抖
STOP1:
ACALLDELAY
JNBK3,$
ACALLDELAY
JMPSTOP
Z_M2:
ACALLDELAY
JNBK1,$
ACALLDELAY
JMPZ_M
F_M2:
ACALLDELAY
JNBK2,$
ACALLDELAY
JMPF_M
;---------------------------;正转子程序
Z_M:
MOVR0,#00H
Z_M1:
MOVR7,#0
ACALLDISPLAY
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZZ_M
MOVP1,A
JNBK3,STOP1
JNBK2,F_M2
JNBK4,ACC_M2_ZZ
JNBK5,DLY_M2_ZZ
ACALLDELAY
INCR0
JMPZ_M1
RET
;-----------------------------;反转子程序
F_M:
MOVR0,#05H
F_M1:
MOVR7,#1
ACALLDISPLAY
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZF_M
MOVP1,A
JNBK3,STOP1
JNBK1,Z_M2
JNBK4,ACC_M2_FZ
JNBK5,DLY_M2_FZ
ACALLDELAY
INCR0
JMPF_M1
RET
;-----------------------------;正转加速子程序
ACC_M2_ZZ:
MOVR0,#00H
ACC_M1:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZACC_M2_ZZ
MOVP1,A
JNBK3,STOP1
JNBK5,DLY_M2_ZZ
JNBK2,F_M2
ACALLDELAY1
INCR0
MOVR7,#2
ACALLDISPLAY
JMPACC_M1
RET
;-----------------------------;正转减速子程序
DLY_M2_ZZ:
MOVR0,#00H
ACC_M2:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZDLY_M2_ZZ
MOVP1,A
JNBK3,MID1
JNBK2,F_M2
JNBK4,ACC_M2_ZZ
ACALLDELAY2
INCR0
MOVR7,#3
ACALLDISPLAY
JMPACC_M2
RET
MID1:
LJMPSTOP1
MID2:
LJMPZ_M2
;-----------------------------;反转加速子程序
ACC_M2_FZ:
MOVR0,#05H
DLY_M1:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZACC_M2_FZ
MOVP1,A
JNBK3,MID1
JNBK1,MID2
JNBK5,DLY_M2_FZ
ACALLDELAY1
INCR0
MOVR7,#4
ACALLDISPLAY
JMPDLY_M1
RET
;-----------------------------;反转减速子程序
DLY_M2_FZ:
MOVR0,#05H
DLY_M2:
MOVA,R0
MOVDPTR,#TABLE
MOVCA,@A+DPTR
JZDLY_M2_FZ
MOVP1,A
JNBK3,MID1
JNBK1,MID2
JNBK5,ACC_M2_FZ
ACALLDELAY2
INCR0
MOVR7,#5
ACALLDISPLAY
JMPDLY_M2
RET
;-----------------------------;延时子程序
DELAY1:
MOVR1,#10
JMPD1
DELAY2:
MOVR1,#100
JMPD1
DELAY:
MOVR1,#40
D1:
MOVR2,#248
DJNZR2,$
DJNZR1,D1
RET
DISPLAY:
PUSHACC;显示子程序
PUSHDPH
PUSHDPL
MOVA,R7
CHANG:
MOVCA,@A+DPTR
MOVP0,A
CLRP2.0
ACALLDELAY2
SETBP2.0
POPDPL
POPDPH
POPACC
RET
TAB:
DB3FH,06H,5BH,4FH;显示字符存放表
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,5EH,79H,71H
;-----------------------------
TABLE:
DB0FCH,0F9H,0F3H,0F6H;正反转编码存放表
DB00
DB0F3H,0F9H,0FCH,0F6H
DB00
/*DB0F7H,0F3H,0FBH,0F9H
DB00H*/
;-------------------------------
END
电气与信息工程系课程设计评分表
项目
评价
优
良
中
及格
差
设计方案的合理性与创造性(10%)
开发板焊接及其调试完成情况*(10%)
硬件设计或软件编程完成情况(20%)
硬件测试或软件调试结果*(10%)
设计说明书质量(20%)
设计图纸质量(10%)
答辩汇报的条理性和独特见解(10%)
答辩中对所提问题的回答情况(10%)
完成任务情况(10%)
独立工作能力(10%)
出勤情况(10%)
综合评分
指导教师签名:
________________
日期:
________________
注:
表中标*号项目是硬件制作或软件编程类课题必填内容;
此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:
封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。