步进电机课程设计.doc_第1页
步进电机课程设计.doc_第2页
步进电机课程设计.doc_第3页
步进电机课程设计.doc_第4页
步进电机课程设计.doc_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 步进电机简介1.1 步进电机原理 步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。步进电机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电机能直接接受数字量的控制,所以特别适宜采用微机进行控制。驱动方式为二相激磁方式各线圈通通电顺序如表1-1所示。表 1-1相序表顺序 相ABAB01100101102001131001电机正反转控制和速度控制: 当电机绕组通电时序为AB-BA-AB-BA-AB时为正转,通电时序为AB-BA-AB-BA-AB时为反转。步进电机的驱动电路,微电脑向步进电机输入端传送1或0信息,则可实现上述操作。电机速度控制:通过不同长度的延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度,也就是改变电机的转动速度。1.2 步进电机各参数 1.2.1相数(m) 产生不同对极N、S磁场的激磁线圈对数,常用m表示。 1.2.2 拍数(n) 完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以两相电机为例,有两相四拍运行方式即AB-BA-AB-BA-AB,两相八拍运行方式即AB-B-BA-A-AB-B-BA-A-AB。1.2.3 步距角() 对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二相,转子齿为50齿电机为例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)。1.2.4 信号分配 感应子式二相步进电机,工作方式有二相四拍和二相八拍二种,具体分配如下:二相四拍为,步距角为1.8度;二相八拍为,步距角为0.9度。两相四拍为AB-BA-AB-BA-AB,步距角为1.8度;两相八拍为AB-B-BA-A-AB-B-BA-A-AB,步距角为0.9度。这里选取四拍的的工作方式。 第2章 总体设计方案2.1 设计思路 步进电机是通过脉冲信号来控制的,通过对脉冲信号宽度进行调节,将电脉冲转换为角速度或线速度。所以怎样产生这个信号和产生怎样的信号是控制的关键。 在设计中选用AT89C52为电机控制芯片。选取P1口为电机控制信号输出口;因采用动态数码显示,故选取P2低4位口作为LED数码显示器的位选信号输出端口,选取P0口8位作为LED数码显示器段选信号输出端口;因为电机只有停止、正转、反转、加速、减速四种不同工作状态,故选取P3口低四位作为按键信号输入端口。具体结构框图如2-1图所示。2.2 总结构框图 P0.0-P0.7XATLAT89C5RET P2.0-P2.4 P1 P3.0-P3.4 振荡电路复位电路LED数码显示器路电机及驱动电路按键电路 图 2-1总结构框图 第3章 硬件设计3.1 硬件选取3.1.1 单片机的选取单片机的XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。这里选取AT89C52作为控制单片机。3.1.2 步进电机的选取设计要求实现两相四拍步进电机的控制。考虑到电机的驱动,我们选取了六线步进电机。值得注意的是步进电机应用于低速场合-每分钟转速不超过1000转,(0.9度时6666PPS),最好在1000-3000PPS(0.9度)间使用,可通过减速装置使其在此间工作,此时电机工作效率高,噪音低。 这里规定电机转速525转每分钟。 3.1.3显示器的选取数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。根据本课程设计的程序要求:高电平选通位,低电平选通段(共阳极).同时设计要求中只需要4位即可实现所要求的显示,故选用7SEG-MPX4-CA。表3-1数符编码表共阳极代码字形共阴极代码字形0C0H090H90F9H188HA0A4H283HB0B0H30C6HC99H40A1HD92H586HE82H68EHF0F8H70FFH全灭80H889HH0BFH-07FH.3.2 硬件连接与驱动3.2.1 显示器的连接与驱动由于实际连线中,单片机不具备直接驱动LED显示器的功能,所以在连接显示时需要加入驱动电路。为了使硬件电路清晰,这里我们采用74HC573作为位选驱动。而软件设计中段选由P0口输出,在52系列中P1口内部不具备上拉电阻,故选取排阻RESPACK-8为上拉电阻。显示电路连接与驱动电路图3-1所示。 图 3-1显示电路连接与驱动电路图3.2.2 按键连接与驱动采用简单按键由P3口低4为输入。根据程序要求,当有键按下时输入信号为低电平,故需要上拉电阻使按键未按下时始终保持高电平。按键电路如3-2所示。图 3-2按键电路3.2.3 时钟电路连接 单片机工作的时间基准是由时钟电路控制的。在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为30PF。石英晶体选择12MHZ。具体电路如3-3所示。图 3-3时钟电路图3.2.4 复位电路连接在设计当中,为了更合理利用单片机得I/O口,停止按键上利用了单片的复位端口。这样很好实现了对电机控制中停止状态的要求。其电路如图3-4所示。 图 3-4复位电路图3.2.5 步进电机连接与驱动 由于单片机不能直接驱动电机,所以在电机与单片机之间需要有驱动电路。单片机控制电机信号由P1口输出,其电路图如图3-5所示。 图 3-5步进电机连接驱动电路图第4章 软件设计4.1 主程序开始 开始进入程序就对电机转速,电机正反转,定时器T0、T1和显示转速进行初始化,还要设置显示缓冲区和入栈的栈顶SP。主程序只负责点亮LED和键盘的扫描,所以主程序的功能就是调用显示和键盘扫描子程序。流程图如图4-1所示。设置显示缓冲区7A-7F 调用显示子程序DISPLAY设置电机正反转控制缓冲区 设置显示控制缓冲区 设置电机转速控制缓冲区3FH4AH单元初始化定时器T0、T1 工作于方式01调显示子程序DISPLAY调扫描键盘程序KEYA=0?NY判断并执行电机运行各状态 图 4-1主程序流程图4.2 步进电机正反转控制程序 步进电机的转向由输入电机信号脉冲的相序控制,要改变步进电机的转向只需改变输入电机信号脉冲的相序,即在电机正反转控制缓冲区装入不同的值。两相四拍步进电机相序表如表1所示,正转时候装入的初值为03H-06H-09H-0CH,反转时候装入初值为0CH-09H-06H-03H.转向控制流成图如4-2所示。Y显示、转向、速度、定时装入相应初值NA=0FEH?A0返回调用A1启动定时显示、转向、速度、定时装入相应初值YA=0FDH?调用A3启动定时图 4-2转向控制流成图4.3 步进电机转速显示子程序由于显示是采用的7段LED数码动态显示,不仅需要段选信号输出还需要位选信号输出。根据要求,只需要4位进行显示即可实现所有显示要求。选取P2口得低四位进行位选信号输出,而P0口8为进行段选信号输出,来实现动态显示。在这里为了实习对步进电机各时速度显示以及运行状态显示,采用对显示缓冲区(7AH-7FH)更换初值来实现,即不同状态对应装入不同值,再从P0、P2口输出。具体流程图如4-3所示。显示子程序DISPLAY#TABLE给DPTR送位选信号给P2口送段选信号给P0口调用延时子程序R0+1 、R1右移一位NR1=10H?YRET图 4-3显示程序流程图4.4 步进电机转速控制子程序 由于步进电机的速度有信号脉冲长度所决定,要调节步进电机的转速即调节输入信号脉冲的长短。而脉冲的长短有定时器控制,加速与减速定时器分开,加速有定时器T0完成,减速有T1完场。通过更换定时器初值缓冲区内,即速度缓冲区数据来实现加速与减速控制。当按下加速键时T0装入初值并启动,减速键按下时也类同。具体流程图如4-4所示。R0=#4AH ?R1=#3FH ?NNYY使电机保持最大速度R0 #48H R1 #49HLJMP LP使电机保持最小速度R0 #40H R1 #41HN改变定时器定时初值TL0 R0+2TH0 R1+2A=0FDH?改变指针R0、R1 R0-2 R1-2 A0A=0FBH?改变指针R0、R1 R0+2 R1+2 改变定时器定时初值TL0 R0-2TH0 R1-2YYN图 4-4转速控制流程图4.5 按键扫描子程序由于这里只需对步进电机进行停止、正转、反转、加速、减速控制,而且停止键课利用芯片的复位端口实现,所以没采用复杂的矩阵键盘,而是用是简单按键。按键的扫描包括判断有无键按下、去抖动、读键、等待键释放四个步骤,所以流程图课如4-5所示。有无RET等待键释放读键去抖动判断有无键按下调用KEY1按键子程序KEY图 4-5按键扫描流程图第5章 程序的调试与故障分析5.1 软件部分将程序写入WAVE程序编辑界面进行调试。调试步骤如下:1. 设置好程序入口0000H,因为程序要用的单片机的定时器T0和T1,所以还要设置定时器的入口地址000BH和001BH。2. 设置显示缓冲区7AH7DH, 设置电机转向,通过改变R6的值, 设置显示转速R0,R1寄存器01组, 设置定时器的初值(加减速),也是改变步进电机的转速R0,R1寄存器00组, 设置定时器T0,T1工作方式1,设置初值15R/MIN, 开放CPU和T0中断。3. 运行主程序LP, 循环点亮和扫描键盘。4. 调用显示子程序,ACALL DISPLAY。5. 调用扫描键盘子程序,ACALL KEY。6. 当主程序在运行时,T0或T1定时时间到,程序就去执行T0或T1的中断服务程序。TX中断服务程序,先重新设置计数初值,开放CPU和TX中断,中断完后程序返回。5.2 硬件部分根据原理图将硬件焊接好,用STC-ISP-V3.5软件下载WAVE软件生成的HEX文件到单片机中,再给单片机上电,程序就开始运行。按下0从P1口输出脉冲,步进电机正转,按下1从P1口输出脉冲,步进电机反转,按下4电机加速,按下5电机减速。按下RESET按钮,单片机复位,电机停止转动。5.3 故障分析及解决出现问题:在各子程序成功调试完成后,将各子程序合并时出现了许多不融合现象,每个子程序都只能够单独运行。问题分析:在编写程序时都是各自按照主程序格式编写,地方的跳转和调用都与综合后的程序有很大差别,故需要综合各子程序在主程序中的位置和调用的先后来改正个子程序。解决问题:全面考虑个子程序,综合住程序,改变跳转与调用以及返回语句,实现程序综合化。第6章 设计总结 这次单片机课程设计我们历时两个星期,经过这两个星期的实践和体验下来,收获不少。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 首先在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。当然在这次课程设计的过程中,我们难免会遇到各种各样的问题,发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。 回顾这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。 在此,感谢对给过我帮助的所有同学和各位指导老师,感谢李晓秀老师的辛勤指导。参考文献1王迎旭.单片机原理及及应用.北京:机械工业出版社2张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社3房小翠.单片机实用系统设计技术.北京:国防工业出版社4何立民.单片机应用系统设计.北京:北航出版社5刘国荣.单片微型计算机技术.北京:机械工业出版社附 录附录A 系统原理图附录B 程序清单ORG 0000H LJMP START ORG 000BH LJMP A2 ORG 001BH LJMP A4 ORG 0030HSTART: MOV SP,#0b0H MOV 7AH,#00H MOV 7BH,#00H ; 设置初始显示转速为0 MOV 7CH,#10H ;显示-,前面表示转速,后面表示按键 MOV 7DH,#11H ;显示H,表示没有键按下 ACALL DISPLAY;-设置电机转向,通过改变R6的值- MOV 5FH,#00H MOV 60H,#03H MOV 61H,#06H MOV 62H,#09H MOV 63H,#0CH MOV 64H,#00H;-设置显示转速R0,R1寄存器01组- MOV 50H,#0 MOV 51H,#5 ;显示05 MOV 52H,#1 MOV 53H,#0 ;显示10 MOV 54H,#1 MOV 55H,#5 ;显示15 MOV 56H,#2 MOV 57H,#0 ;显示20 MOV 58H,#2 MOV 59H,#5 ;显示25;-设置定时器的初值(加减速),也是改变步进电机的转速R0,R1寄存器00组- MOV 3FH,#00H MOV 40H,#15H ;输出转速5r/min 定时器定时为60ms MOV 41H,#9FH MOV 42H,#8AH ;输出转速10r/min MOV 43H,#0CFH MOV 44H,#0B1H ;输出转速15r/min MOV 45H,#0DFH MOV 46H,#0CFH ;输出转速20r/min MOV 47H,#67H MOV 48H,#0D1H ;输出转速25r/min MOV 49H,#1FH MOV 4AH,#00H ;-设置定时器T0,T1工作方式1,初始化- MOV TMOD,#11H ;定时器T0,T1工作于方式1 MOV TH0,#0B1H ;设置初值15R/MIN MOV TL0,#0DFH MOV TH1,#0B1H ;设置初值15R/MIN MOV TL1,#0DFH SETB EA SETB ET0 ;开放CPU和T0中断 ;-循环点亮和扫描键盘- LP: ACALL DISPLAY ACALL KEY JZ LP ;-电机正转 按0 - CJNE A,#0FEH,LP12 MOV A,#00H PUSH PSW SETB RS0 MOV R0,#54H MOV R1,#55H MOV 7AH,R0 MOV 7BH,R1 CLR RS0 POP PSW MOV 7DH,A CLR TR1 MOV R0,#44H ;为保证每次启动或者换向时电机转速为15r/min MOV R1,#45H MOV A,#03H ;顺向转动 MOV R6,60H ACALL A1 LJMP KEY ;-电机反转 按1 - LP12: CJNE A,#0FDH,LP13 MOV A,#01H PUSH PSW SETB RS0 MOV R0,#54H MOV R1,#55H MOV 7AH,R0 MOV 7BH,R1 CLR RS0 POP PSW MOV 7DH,A CLR TR0 MOV R0,#44H ;为保证每次启动或者换向时电机转速为15r/min MOV R1,#45H MOV A,#0CH ;反向转动 MOV R6,63H ACALL A3 LJMP KEY ;-加速- LP13: CJNE A,#0FBH,LP14 ;电机加速 按2 MOV A,#02H MOV 7DH,A PUSH PSW SETB RS0 INC R0 INC R0 INC R1 INC R1 CJNE R0,#5AH,J1 MOV R0,#58H MOV R1,#59H J1: MOV 7AH,R0 MOV 7BH,R1 CLR RS0 POP PSW INC R0 INC R0 ;重新设置T0初值 INC R1 INC R1 CJNE R0,#4AH,LOOP1 MOV R0,#48H ;保持的最大速度 MOV R1,#49HLOOP1: SJMP LP ;-减速- LP14: CJNE A,#0F7H,LP ;电机减速 按3 MOV A,#03H MOV 7DH,A PUSH PSW SETB RS0 DEC R0 DEC R0 DEC R1 DEC R1 CJNE R1,#4FH,J2 MOV R0,#50H MOV R1,#51H J2: MOV 7AH,R0 MOV 7BH,R1 CLR RS0 POP PSW DEC R0 DEC R0 ;重新设置T0初值 DEC R1 DEC R1 CJNE R1,#3FH,LOOP2 MOV R0, #40H ;保持的最小速度 MOV R1, #41HLOOP2: LJMP LP ;-定时器T0的启动- A1: MOV P1,A SETB TR0 ;启动T0 RET ;-T0中断服务程序- A2: CLR TR0 MOV TH0,R1 ;重新设置初值 MOV TL0,R0 SETB EA SETB ET0 ;开放CPU和T0中断 INC R6 INC R6 INC R6 CJNE R6,#0FH,LOOP3 MOV R6,60H LOOP3: MOV A,R6 AJMP A1 ;-定时器T1的启动- A3: MOV P1,A SETB TR1 ;启动T1 RET;-T1中断服务程序- A4: CLR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论