单片机课程设计步进电机.docx
《单片机课程设计步进电机.docx》由会员分享,可在线阅读,更多相关《单片机课程设计步进电机.docx(11页珍藏版)》请在冰豆网上搜索。
单片机课程设计步进电机
《单片机原理及应用》
课程设计报告
课程设计名称:
步进电机的控制
系别:
机电与自动化学院
专业班级:
机电一体化
姓名:
夏
学号:
2009xxxxxxxx
指导老师:
陈
日期:
2011·6
内容提要
随着进入21世纪的,我们进入了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
工业现代化也得到进一步的发展,自动化已经成为现代企业中的重要支柱,在现在越来越多的产品都越来越智能化,这些智能化的产品中有一大部分的是单片机来控制的,由于它的体积小、质量轻、价格便宜、还能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量,同时为学习、应用和开发提供了便利条件。
本次单片机原理及应用课程设计是让我们在学习了单片机这门课的基础上进一步对单片机有一个更深的认识,同时通过通过这次课程设计让我们编写一个控制步进电机的系统,实现步进电机的正反转、加减速。
提高单片机应用系统和调试水平。
关键词:
单片机、步进电机
目录
●内容摘要………………………………………………………1
●课题背景及意义………………………………………………3
●总体方案的设计………………………………………………3
1.系统的概述………………………………………………3
1.1步进电机的控制工作原理……………………………3
1.2步进电机的转向控制…………………………………4
1.3步进电机的速度控制…………………………………4
2.系统总体设计思路………………………………………4
●硬件部分的设计和描述………………………………………4
1.硬件的总体设计…………………………………………4
2.算法的设计………………………………………………5
●软件部分的设计流程及描述…………………………………6
1.步进电机的工作方式……………………………………6
2.软件的设计流程图………………………………………6
3.编写的程序代码…………………………………………8
●调试……………………………………………………………8
●参考文献………………………………………………………8
●课程设计心得与体会…………………………………………8
●成绩评定………………………………………………………9
1.课题背景及意义:
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
它是一种控制用的特种电机,作为执行元件,是机电一体化的关键产物之一,随着微电子和计算机技术的发展,步进电机的驱动器性能提高,步进电机的需求量与日俱增。
步进电机在运行中精度没有积累误差的特点,使其广泛应用于各种自动化控制系统,特别是开环控制系统。
它涉及到机械、电机、电子及计算机等许多专业知识。
通过这次步进电机的控制,了解如何通过单片机实现对步进电机的控制,从中学到了解步进电机工作原理,掌握用单片机的步进电机控制系统的硬件设计方法,熟悉步进电机驱动程序的设计与调试,提高单片机应用系统设计和调试水平。
2.总体方案的设计:
1.系统概述
1.1步进电机的控制原理:
步进电机实际上是一个数字\角度转换器,也是一个串行的数\摸转换器。
步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面,从结构上看,步进电机分为三相、四相、五相等类型,常用的则以三相为主。
其工作方式有单拍、双拍及一些多拍的工作方式,如:
三相有三相六拍,四相的有四相八拍。
本次实验是四相四拍的步进电机
图2-2为三种节拍控制方式的时序图。
图2-2-a单四拍图2-2-b双四拍图2-2-c八拍
1.2步进电机的转向控制:
如果给定工作方式正序换相通电,步进电机正转,若步进电机的励磁方式为三相六拍,即A-AB-B-BC-C-CA,如果按反序通电换相,即则电机就反转,其他方式情况类似。
1.3步进电机的速度控制
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
2个脉冲的间隔越短,步进电机就转得越快。
调整送给步进电机的脉冲频率,就可以对步进电机进行调速。
2.系统的总体设计思路
此次我们设计的是一个步进电机的控制系统,主要由80C51单片机的P1.0至P1.3口来分别控制四相步进电机的A.B.C.D四个相,通过不断的分别给P1.0至P1.3口高电平来实现步进电机的运转同时通过LED灯来显示四相步进电机的四想的工作状态,
通过程序不断的给P1,0至P1.3口不同的值来实现对步进电机的正、反转,通过程序中来调整脉冲频率来实现步进电机的加、减速。
3.硬件部分的设计和描述:
3.1硬件的总体设计:
设计一个单片机四相步进电机控制系统要求系统具有如下功能:
(1)用五个LED灯来显示四相步进电机的A.B.C.D四相的工作状态
(2)对P1.0至P1.3口不同的值来实现步进电机的正转,然后对P1.0至P1.3口赋值不同的值来控制步进电机的反转
(3)通过改变延时时间来实现步进电机的加、减速
根据设计要求所做硬件的连线图如下:
3.2算法的设计:
由于本次课程设计所用的是四相四拍的步进电机,其工作方式是AB—BC—CD—DA—AB,步距角为1.8度,所以在这次算法中,我们为了实现步进电机正转我们将P1.0至P1.3口赋值0F3H,0F6H,0FCH,0F9H来给AB、BC、CD、DA给电来实现步进电机的正转,反之,我们将P1.0至P1.3口赋值79H,7cH,76H,73H来实现步进电机的反转。
正转:
序号
步数
D
C
B
A
1
0F3H
0
0
1
1
2
0F6H
0
1
1
0
3
0FCH
1
1
0
0
4
0F9H
1
0
0
1
反转:
序号
步数
D
C
B
A
1
79H
1
0
0
1
2
7CH
1
1
0
0
3
76H
0
1
1
0
4
73H
0
0
1
1
(1-4示脉冲周期;ABCD表示电机的各相,1表示此时有一个脉冲,0表示没有脉冲)
4.软件设计流程及描述:
1.步进电机的工作方式
●四相四拍电机的工作方式:
:
步进电机是工业过程控制及仪表中常用的控制元件之一,步进电机实际上是一个数字/角度转换器,当某一相绕组通电时,对应的磁极就产生磁场,并与转子形成磁路,如果这时定子的小齿和转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子和定子的齿相互对齐。
由此可见,错齿是促使步进电机旋转的原因。
超想-3000TB实验仪选用的是20BY-0型4相步进电机,其工作电压为4.5V,在双四拍运行方式时,其步距角为18O,相直流电阻为55Ω,最大静电流为80Ma。
采用8031单片机控制步进电机的运转,按四相四拍方式在P1口输出控制代码,令其正转或反转。
因此P1口输出代码的变化周期T控制了电机的运转速度:
n=60/T.N,其四相四拍的工作方式是AB—BC—CD—DA—AB,通过不断地给A、B、C、D相赋值来实现步进电机的运转.
2.软件的设计流程图
●设计流程图:
首先我们给A相通电让其正转,让步进电机步与步之间延时两百毫秒,通过不断的改变步与步之间的延时时间来实现步进电机的加减速运转,然后通过判断累加器A的最高位视为1还是0来实现步进电机的正反转,其设计流程图如下:
程序流程图:
●程序代码(见附录)
5.程序的调试:
第一步,将实验箱里的程序调用出来,用编辑程序把编制的源程序按照一定的书写格式送到计算机中,
第二步,把送入的源程序翻译成机器语言,即用编译程序对源程序进行语法检查并将符合语法规则的源程序语句翻译成计算机能识别的“语言”。
如果经编译程序检查,发现有语法错误,那就必须用编辑程序来修改源程序中的语法错误,然后再编译,直至没有语法错误为止。
第三步,按照试验要求连接好电路,使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,在连接过程中,一般不会出现连接错误,如果出现了连接错误,说明源程序中存在子程序的调用混乱或参数传递错误等问题。
这时又要用编辑程序对源程序进行修改,再进行编译和连接,如此反复进行,直至没有连接错误为止。
第四步,在编译和连接无误后开始执行,观看实验现象。
6.参考文献:
《单片机原理及应用》北京理工大学出版社主编:
别传爽
《单片机原理及接口技术》余锡存,曹国华编著西安电子科技大学出版社
《步进电机应用技术》(日)坂本正文著;王自强译科学出版社
《单片机原理及应用》李建忠编著西安电子科技大学出版社
《单片机原理与应用》靳孝峰,张艳主编北京航空航天大学出版社
7.课程设计的心得与体会:
通过这次单片机原理与应用课程设计,让我在已学过单片机的基础上进一步的对单片机有了一个更深的认识,熟悉的掌握了对步进电机的操作过程。
在这次课程设计中,由于时间有限,我们是调用试验箱里面的程序,让我们看别人的代码,学习人家的思路。
这个在学习是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高。
通过学习别人所编写的程序、观察对应的实验现象,了解别人的思路后,知道别人是如何来控制步进电机的,在深入的了解到别人的方法时,就要开始自己动手动脑改程序,首先我得想法是将这个程序改为四个小的模块,它分别是:
加速、减速、正转、反转,并通过四个开关来分别控制,但由于我自己的能力有限,在修改程序中出现了两种情况:
一种就是改后的程序编译没问题但在执行的时候,步进电机没有运转,另一种就是编译中就出现问题根本就无法执行。
通过这个问题我知道我在单片机上还是存在很大的问题,,同时我在查询资料的时候我较深的了解到当今社会单片机所扮演的角色越来越重要,越来越多的智能化产品都包含着单片机的知识,我们作为机电一体化专业的学生学习单片机的要求也越来越高,所以我们更应该学好单片机,这次课程设计结束了并不代表我们对单片机的学知识的学习也就结束。
我将在以后的时间里慢慢的来丰富自己的单片机方面的知识。
最后在这次课程设计中我收获最大的是,本次课程设计我们是以小组的形式进行的,在小组中我们相互学习、相互讨论,无形之中增添了我们相互帮助的精神,友谊及团队合作、达到共赢的精神。
课程设计成绩:
项目
业务考核成绩(70%)
(百分制计分)
平时成绩(30%)
(百分制计分)
总分
指导教师评语:
指导教师(签名):
年月日
附录:
程序代码:
ORG0000H
STRT:
MOVSP,#6FH;初始化
MOV20H,#0;状态寄存器清零
MOVP1,#0F1H;正转A相通电
MLP:
MOVR7,#64H;R7为步计数器,正转100步
MOV42H,#0C8H;42H为延时计数器
MLP0:
MOVR6,42H;调用延时200MS子程序
MLP9:
LCALLDEL
DJNZR6,MLP9
DEC42H
LCALLSTEPS;调用步进子程序
DJNZR7,MLP0;以上为加速程序
MOVR7,#64H;以下为恒速程序
MLP1:
MOVR6,42H
MLPX:
LCALLDEL
DJNZR6,MLPX
LCALLSTEPS
DJNZR7,MLP1
MOVR7,#64H;以下为减速程序
MLP2:
MOVR6,42H
MLPY:
LCALLDEL
DJNZR6,MLPY
LCALLSTEPS
INC42H
DJNZR7,MLP2
CPL7
LJMPMLP
STEPS:
INC20H;正反转步进子程序
ANL20H,#83H
MOVA,20H
ANLA,#3
JB7,STPSC
MOVDPTR,#FTAB
SJMPSTPW
STPSC:
MOVDPTR,#CTAB
STPW:
MOVCA,@A+DPTR
MOVP1,A
RET
FTAB:
DB0F3H,0F6H,0FCH,0F9H
CTAB:
DB79H,7cH,76H,73H
DEL:
MOVR5,#0;延时子程序
DEL0:
DJNZR5,DEL0
RET
END