步进电机控制的设计说明书.doc
- 文档编号:18664018
- 上传时间:2023-08-24
- 格式:DOC
- 页数:24
- 大小:1.01MB
步进电机控制的设计说明书.doc
《步进电机控制的设计说明书.doc》由会员分享,可在线阅读,更多相关《步进电机控制的设计说明书.doc(24页珍藏版)》请在冰点文库上搜索。
目录
第一章绪论………………………………………………..2
1.1设计任务……………………………………..........2
1.2总体方案………………………………………..2
第二章元器件的介绍……………………………………..2
2.1步进电机…………………………………………..2
2.289C51………………………………………………3
2.3ULN2803芯片……………………………………..3
2.4数码管…………………………………….………..4
第三章步进电机控制系统硬件电路设计……………..…5
3.1控制电路…………………………………………...5
3.2最小系统…………………………………….……..6
3.3驱动电路……………………………………………7
3.4显示电路…………………………………….………8
3.5总体电路……………………………………………9
第四章软件的设计………………………………………...10
4.1方案论证……………………………………………10
4.2主程序设计………………………………………...10
4.3定时中断设计………………………..…….………11
4.4外部中断设计………………………………………12
4.5整体程序………………………………………..14
第五章仿真与调试……………………………………….18
第六章总结………………………………………….22
附录参考文献……………………………………….24
第一章绪论
1.1设计任务
1完成单片机与功率驱动电路及小功率步进电机的连接;
2控制步进电机的转动方向、转动速度及转过指定的角度;
3通过按键改变电机的转向、转速等参数。
1.2总体方案
单片机控制步进电机,就是利用单片机发出脉冲信号,经过驱动单元驱动步进电机工作,同时可以利用外围电路控制步进电机的状态,显示其工作状态。
本设计采用AT89C51,编程实现P1端四个口循环输出脉冲,用2803放大信号,供给四相电机。
另外,用按键和开关控制P3定时中断,使其加速、减速、启动、停止和换向。
P0口和P2口输出信号,经74LS164驱动数码管,显示转向和速度等级。
第二章元器件的介绍
2.1步进电机
步进电机是数字控制电机,工作原理是将脉冲信号转化成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合单片机控制。
这样,脉冲的数量和频率分别控制了电机的转角和转速,通电顺序控制了电机的转向。
当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。
本设计采用20BY-0型步进电机,四相单四拍,即按A-B-C-D-A顺序供电。
步距角为1.5度。
2.28951单片机
AT89C51是一种低功耗/低电压/高性能的8位单片机,其输出引脚指令系统都与MCS-51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失控型编程器来编程,内部除CPU外,还包括256字节RAM,四个8位并行I/O口,5个中断源,2个中断优先系统,2个16位可编程定时计数器。
89C51功能强、灵活性高且价格合理,完全可以满足本系统设计需要。
2.3ULN2803芯片
进行信号放大。
ULN2803内部集成了8组达林顿管,驱动负载电流为500mA,驱动电压50V.八路NPN达林顿连接晶体管阵系列特别适用于低逻辑电平。
本设计中,P0口四个端口输出脉冲接到ULN2803芯片进行放大,再供给电机。
.
2.4数码管
第三章硬件系统设计
本设计的硬件电路包括控制电路,最小系统,驱动电路,显示电路四大部分。
3.1控制电路
根据系统的控制要求,控制输入部分设置了启动/停止控制,换向控制,加速控制和减速控制按钮,分别是K1,K2,S2,S3。
如图2所示。
通过K1,K2状态变化来实现电机的启动和换向程序,内部程序检测P1.0和P1.1的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。
对单片机而言,主要的方法有:
软件延时和定时中断。
在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过S2,S3的断开和闭合,从而控制外部中断根部按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速
3.2最小系统
单片机最小系统或者称最小应用系统,用最少的原件组成的单片机可以工作的系统,对51系统单片机来说,最小系统一般包括:
单片机,复位电路,晶振电路。
复位电路:
使用了独立式点盘,单片机的P1口键盘的接口。
该设计要求只需4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了6路独立式键盘,复位电路采取手动复位,所谓手动复位,是指通过接通一按钮开关,是单片机进入复位状态,晶振电路使用30PF的电容和一12MHZ晶体振荡组成为整个电路提供时钟频率。
如图3所示。
晶振电路:
8051单片机的时钟信号通常用两种电路形式得到:
内部振荡方式和外部中断方式。
在引脚XTAL1和XTAL2外部晶振电路器或陶瓷晶振器,就构成了内部晶振方式。
由于单片机内部有一个高增益反相放大器,当外界晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如图3所示。
其电容值一般在5-30uf,晶振频率的典型值为12MHZ,采用6MHZ的情况也比较多。
内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。
3.3驱动电路
通过ULN2803构成比较多的驱动电路,电路如图4所示,通过单片机的P1.0-P1.3输出脉冲带ULN2803的1B-4B口,经过信号放大后从1C-4C口分别输出到电机的A,B,C,D相。
3.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转速依次递增,电路如下图所示
3.5总体电路图
把各个部分的电路图组合成总电路图,如图6所示
第四章软件的设计
4.1总体方案
四相单四拍脉冲分配,ABCD四相依次为1000、0100、0010、0001、1000循环。
P1.0~P1.3输出脉冲,用一片2803增加驱动能力。
用P0口控制第一数码管用于显示正反转,用P2口控制第二个数码管用于显示转速等级。
采用共阳极数码管。
总程序分成四个部分,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。
4.2主程序设计
主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。
其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。
若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图7所示。
开始
初始化
速度值为0?
启动开关为0?
停止计时器
显示
启动计时器
延时
停止计时器
图7主程序流程图
Y
N
Y
N
4.3定时中断设计
步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。
在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。
程序流程图如图8所示。
中断返回
T0中断入口
发速度脉冲
读方向指示
重送相关状态
恢复现场
保护现场
中断次数-1=0?
N
Y
图8定时中断程序流程图
4.4外部中断设计
外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。
速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回;小于7时,数据加1后返回。
速度减少按钮S3,当原数据不为0,减1保存数据;原数据为0则保持不变。
程序流程图如图9所示。
外部中断入口
保护现场
延时去抖
中断返回
速度值±1
恢复现场
速度=上或限值?
按钮是否弹起?
N
N
N
Y
Y
图9外部中断程序流程图
4.5总程序:
SPEED EQU 10H;SPEED为转速等级标志
FX EQU 11H;FX为方向标志
COUNT EQU 12H;COUNT中断次数标志
ORG 0000H
AJMP MAIN
ORG 0003H;外部中断0入口地址,加速子程序
AJMP UP
ORG 0013H;外部中断1入口地址,减速子程序
AJMP DOWN
ORG 000BH
AJMP ZDT0;定时器0中断入口地址,控制中断次数来达到控制转速
ORG 0030H;定义主程序首地址
MAIN:
MOV SP,#60H;置堆栈指针
MOV TMOD,#01H;定时器0方式1
MOV TH0 ,#0CFH;设置计数初值
MOV TL0 ,#2CH
MOV COUNT,#01H
SETB ET0;定时器0允许中断
CLR IT0;外部中断方式为电平触发方式,低电平有效
CLR IT1
SETB EX0;外部中断0允许
SETB EX1;外部中断1允许
SETB EA;开总中断
MOV R1,#11H;四相单拍运行
MOV SPEED,#00H
MOV FX,#00H
XIANS:
MOV A,SPEED
MOV DPTR,#LED;表格首地址送DPTR
MOVC A, @A+DPTR;查表获取等级对应数码管代码
MOV P2,A;转速等级显示
MOV A,FX;准备判断方向
CJNE A,#11H,ELS
MOV P0,#0F9H;第一数码管正转显示1
AJMP QD
ELS:
CJNE A,#00H ,ZHENG
MOV P0,#0C0H
AJMP QD
ZHENG:
MOV P0,#0BFH;第一个数码管反转显示一
QD:
JB P3.4 ,DD;P3.4接启动开关K1,P3.4=1时启动CLR TR0;停止定时/计数器
MOV P0,#0C0H;第一个数码管显示0,表示不转
MOV P2,#0C0H;第二个数码管显示0,表示转速为0
MOV SPEED,#00H;重新赋初值
MOV FX,#00H
AJMP QD
DD:
MOV A,SPEED
JNZ GO;A不等于0,即初始速度不为零则转移到GO
CLR TR0;停止定时/计数器
AJMP QD
GO:
SETB TR0;开启定时/计数器
ACALL DELAY
AJMP XIANS
DELAY:
MOV R6,#10;延时子程序
DEL1:
MOV R7,#250
HERE1:
DJNZ R7,HERE1
DJNZ R6,DEL1
RET
;以下ZDT0为定时中断程序
ZDT0:
PUSH ACC
PUSH DPH
PUSH DPL
MOV TH0, #0D8H
MOV TL0, #0F0H
DJNZ COUNT, EXIT
JB P3.5, NIZHUAN;查询方向标志,P3.5接换向开关K2
MOV FX, #11H
;正反转驱动控制服务程序
NIZHUAN:
MOV A, FX
CJNE A, #11H,FZ;若A不等于11,即正转转移到FZ
MOV A, R1;R1记录上一次电机脉冲的状态
MOV P1, A;右循环一位
RR A
MOV R1, A
MOV P1,A
AJMP RE
FZ:
MOV A,R1
MOV P1, A
RL A;左循环一位
MOV P1,A
MOV R1,A
RE:
MOV A, SPEED
MOV DPTR,#TAB
MOVC A, @A+DPTR
MOV COUNT, A;把转速级别赋给COUNT
JB P3.5, FFX
MOV FX, #11H
AJMP EXIT
FFX:
MOV FX, #0FEH;只要FX不等于11H,就可以通过循环左移或右移进行换向
EXIT:
POP DPL
POP DPH
POP ACC
RETI
;以下UP为加速中断程序
UP:
PUSH ACC
ACALL DELAY;延时防抖动
JB P3.2 ,UPEX;P3.2为外部中断0位,接增速开关S2,低电平有效,若P3.2=1,则退出
MOV A,SPEED
CJNE A,#7 ,SZ;最大等级为7,若A不等于7,则转移到SZ
AJMP UPEX;若A=7,则退出
SZ:
INC SPEED
UPEX:
POP ACC
HERE2:
JNBP3.2,HERE2;本条指令为防止开关S2按下去后弹不起,导致一直产生中断
RETI
;以下DOWN为减速中断程序
DOWN:
PUSH ACC
ACALL DELAY
JB P3.3, DEX;P3.3为外部中断1位,接减速开关S3,低电平有效,若P3.3=1,则退出
MOV A,SPEED
CJNE A, #0,SJ
AJMP DEX
SJ:
DEC SPEED
DEX:
POP ACC
HERE3:
JNB P3.3,HERE3
RETI
TAB:
DB0,60,50,35,28,25,21
LED:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
END
第五章仿真与调试
5.1软件介绍
Proteus软件介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
5.2keil软件介绍
Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
5.3仿真过程:
1)在Protues中画出系统电路图,
2)把程序在keil里编译并生成hex文件
3)把在keil编译生成的hex文件载入AT89C51芯片中
4)运行仿真
总结与展望
进过了将近两周的时间,在组成员的共同努力下,我们组终于按时完成了单片机课程设计。
我们组设计的题目是“步进电机的控制”。
通过这次课程设计不仅进一步增加了我的理论知识,更使我提高了将理论知识运用到实际中的能力和团队合作的能力。
下面是我两周以来的心得体会:
困难:
刚拿过这个课题时感觉有些难,在机电一体化和机电传动控制中我们都学过步进电机的工作原理这是相对容易的,但是单片机的知识我们只是学习了一些基础知识,就是个初学者,编一个复杂程序对我来说是较困难的。
刚开始设计时,我们找不到一点头绪,不知从何做起,之后我们通过上网查资料,学习了其他人做过的类似的设计,知道了一个完整的课程设计包含的内容有很多,它需要将所学的知识应用到实际当中去,这就增加设计的难度。
还有在进行仿真实验时,由于没有真正接触过Proteus软件和keil软件,在运用时我们需要从零开始,学习了软件,再运用到设计当中。
分工与合作:
虽然在设计的开始有很多困难,但在我们组老师的指导下,各组员有各自明确的任务,有的负责上网查资料,查相应的芯片的功能及用法;有的负责选择设计方案并对所选择的程序进行分析;有的则学习以上提到的两个软件等,极大提高了工作效率。
经过大约两天的时间,我们便选择好了方案,于是就开始了设计,最后经过我们的共同努力,完成了现在这个课题。
收获:
当我们把课程的最后一步——仿真成功时,我们感到非常的高兴,我们成功了。
此次此刻,那种愉悦的心情是无法用言语表达的。
通过这次课程设计,让我更进一步掌握了51单片机的原理及应用方法,了解了步进电机的设计及测试方法,巩固了自己的理论知识,并将其运用到实践当中。
在这次课程设计当中,我还学会了熟练运用Proteus软件和keil软件,添补自己原来欠缺的知识。
在其中,我还进一步掌握步进电机的工作原理。
要学习的东西还很多很多,并深切的感受到实践是检验真理的唯一标准这一箴言。
这次课程设计对我们今后的学习、工作和生活都有很大的帮助。
在这一过程中,也让我体会到了团队合作的重要性,相信有了这次课程设计的积累,在今后的工作学习中会更加的顺利。
展望:
在这次课程设计中,我们完成了对步进电机的启动、停止,增速或减速和转向的控制,但在速度方面,我们只实现了有级调速,即只能在我们设定的速度级下运转,并没有实现无级调速,这是我们这个课题在今后的设计中仍需研究的问题
总之,经过了这次课程设计让我学到了很多,无论是理论知识还是实践能力都有了进一步的提高,当然,在设计中可能还存在方法的不得当,很多功能不够精简,不够完善,但其中充满了我们的智慧与汗水,相信通过这次课程设计,为我们今后的毕业设计以及以后的工作生活奠定了基础。
附录:
参考文献
[1]何立民.单片机高级教程—应用设计[M].北京:
北京航空航天大学出版社,2007.
[2]李广第主编.单片机基础.第一版.北京航空航天大学出版社.北京.1994年6月
[3]王修才主编.单片机接口技术.第一版.复旦大学出版社.上海.1995年10月
[4]汪贵平、李登峰、龚贤武、雷旭编著.新编单片机原理及应用.北京:
机械工业出版社.
[5]李运华主编.机电控制.第一版.北京航空航天大学出版社.
[6]秦曾煌主编.电工学上册:
电工技术.第五版.高等教育出版社.
[7]张建民.就机电一体化系统设计.第三版.北京高等教育出版社.2000年
袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制 设计 说明书
![提示](https://static.bingdoc.com/images/bang_tan.gif)