华夏学院步进电机控制系统设计.doc

上传人:scccc 文档编号:11179240 上传时间:2021-07-10 格式:DOC 页数:21 大小:720KB
返回 下载 相关 举报
华夏学院步进电机控制系统设计.doc_第1页
第1页 / 共21页
华夏学院步进电机控制系统设计.doc_第2页
第2页 / 共21页
华夏学院步进电机控制系统设计.doc_第3页
第3页 / 共21页
华夏学院步进电机控制系统设计.doc_第4页
第4页 / 共21页
华夏学院步进电机控制系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《华夏学院步进电机控制系统设计.doc》由会员分享,可在线阅读,更多相关《华夏学院步进电机控制系统设计.doc(21页珍藏版)》请在三一文库上搜索。

1、武汉理工大学华夏学院课 程 设 计课程名称 微机接口技术及应用 题 目 步进电机控制系统设计 武汉理工大学华夏学院信息工程系课 程 设 计 任 务 书课程名称:微机接口技术与应用 指导教师: 班级名称: 开课系、教研室: 一、课程设计目的与任务目的:1. 巩固、实践本课程所学理论知识,综合运用可编程接口芯片8255、8253、8259进行应用系统设计;2. 通过步进电机控制系统设计与制作,学习、掌握计算机控制系统软、硬件的设计方法;3. 通过课程设计培养学生查阅、合理运用参考资料的能力。任务:步进电机控制系统设计二、课程设计的内容与基本要求内容:1步进电机采用三相双八拍运行方式;2用1个开关控

2、制步进电机起停,分别用2/4个开关控制步进电机四种工作模式:1)正向慢速旋转 2)正向快速旋转 3)反向慢速旋转 4)反向快速旋转3送电时和步进电机停止时,七段码显示器显示数字“0”;运行时,分别显示对应四种工作模式的序号1、2、3、4;* 4使用硬件延时实现步进电机的快、慢旋转控制。(选做)要求:1画出硬件原理图(接口芯片和外设部分)和实验连线图;2掌握计算机控制系统的软硬件的调试方法和步骤;3设计报告撰写格式要求(按提供的设计报告统一格式撰写)具体内容如下: 设计任务与要求 总体方案与说明 硬件原理图与说明 实验电路图与说明 系统流程图 软件主要功能模块及流程图 问题分析与解决方案(包括调

3、式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想); 小结与体会 参考文献提供附录: 源程序(必须有简单注释) 使用说明 参考资料三、课程设计步骤及时间进度和场地安排设计步骤:功能分析、硬件设计,拟定实验电路,编写程序,调试程序、运行系统;时间进度安排:(部分时间,某些工作可以重叠进行)6月9日布置题目,确定任务、查找相关资料6月10日6月12日功能分析,硬件设计,拟定实验电路,编写程序,调试程序、运行系统;6月13日答辩后撰写设计报告。6月13 日下午4:00前交设计报告。场地安排:信息系实验中心,接口技术实验室。四、课程设计考核及评分标准评 分 项 目评 分1.设计目的明

4、确10分2.理解题目要求,设计方案正确,具有可行性、创新性20分3.功能模块设计合理,硬件电路设计正确,程序清晰,程序运行结果符合题目功能要求,测试性能达到技术要求40分4.设计报告规范,参考文献不少于2篇15分5.答辩15分总 分100分目 录1.需求分析11.1课程设计题目11.2课程设计任务及要求11.3 软硬件运行环境及开发工具12.概要设计22.1设计原理及实现方法22.1.1步进电机控制原理22.1.2步进电机的驱动32.1.3运行方式与方向的控制循环查表法32.1.4步进电机的启/停控制设置开关32.1.5步进电机速度控制调用延时程序42.2主要芯片说明42.3步进电机控制系统流

5、程53.详细设计63.1 硬件设计与实现63.2 软件设计73.2.1正向慢转子程序73.2.2正向快转子程序73.2.3反向慢转子程序83.2.4反向快转子程序83.2.5短延时子程序93.2.6长延时子程序94 系统调试与操作说明104.1系统调试104.2 操作说明115.课程设计总结与体会12参考文献12附录 微机步进电机控制系统源程序131.需求分析1.1课程设计题目微机步进电机控制系统设计1.2课程设计任务及要求1步进电机采用三相双八拍运行方式;2用1个开关控制步进电机起停,分别用2/4个开关控制步进电机四种工作模式;3实现步进电机正向慢速旋转,正向快速旋转,反向慢速旋转,反向快速

6、旋转;4送电时和步进电机停止时,七段码显示器显示数字“0”;运行时,分别显示对应四种工作模式的序号1、2、3、4;5画出硬件原理图(接口芯片和外设部分)和实验连线图;6掌握计算机控制系统的软硬件的调试方法和步骤;7设计报告撰写格式要求(按提供的设计报告统一格式撰写)1.3 软硬件运行环境及开发工具硬件:唐都TDN86/88实验平台、PC机一台开发语言:汇编语言2.概要设计2.1设计原理及实现方法 2.1.1步进电机控制原理步进电机是将电脉冲信号转换成角位移的一种机电式数模转换器。其旋转的角位移与输入脉冲的个数成正比;转速与输入脉冲的频率成正比;转动方向和输入脉冲对绕组加电的顺序有关。因此,步进

7、电机旋转的角度位移、转速以及方向均受输入脉冲的控制。本实验采用A口作为控制口,B,C口作为输出口,PA0、PA1、PA2分别接开关的K0、K1、K2,PC0、PC1、PC2、PC3分别接motor unit的ABCD。微机步进电机控制系统原理图如图2.1所示。+5v+12vABCDK0K1K24A2 PC3D7 PC2 PC1D0 PC0 8255AA1A0PA2 PA1PA0D D C CB BA AG1 2A 译2B 码 C 器BA D7 D0A1A0CPUA6 A7 M A5 A4A3 图2.1 微机步进电机控制系统原理图2.1.2步进电机的驱动 步进电机在系统中是一种执行元件,都要带负

8、载,因此需要功率驱动。在电子设备中,一般所需功率较小,常采用达林复合管作功率驱动。驱动原理如图2.2所示。+12VATIP122图2.2 步进电机驱动原理图2.1.3运行方式与方向的控制循环查表法 步进电机的运行方式是指各相绕组循环轮流通电的方式。此实验是使用双八拍:ABABCBCBCDCDCDADADAB。循环查表法是将各绕组加电顺序的控制代码制成一张表步进电机相序表,存放在内存区,再设置一个地址指针。表2.1步进电机相序表DCBA运行方式D3D2D1D0双八拍0011AB03H0111ABC07H0110BC06H1110BCD0EH1100CD0CH1101CDA0DH1001DA09H

9、1011DAB0BH2.1.4步进电机的启/停控制设置开关K0控制步进电机旋转速度的快慢,K0=0 表示慢转,K0=1表示快转;K1控制步进电机旋转方向,K1=0表示正转,K1=1表示反转;K2控制步进电机的启/停,K2=0表示停,K2=1表示启动。2.1.5步进电机速度控制调用延时程序 程序中有2个延时子程序,通过改变CX的值来控制快慢。使用进栈,出栈的方式对CX的值进行保护,每次调用延时程序后,CX还是原始值。2.2主要芯片说明8255A:Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为825

10、5(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。图2.3 8255A引脚图2.3步进电机控制系统流程开始七段码显示为0开关k2=1?N k0=0 k1=0YESk1=0 k0=0k1=0 k0=1k1=1 k0=0k1=1

11、 k0=1NNN正向慢转,七段码显示为1正向快转,七段码显示为2反向慢转,七段码显示为3反向慢转,七段码显示为4YYYYN图3.1 步进电机控制流程图3.详细设计3.1 硬件设计与实现本电路的设计是利用8255A的A口作为输入口,B,C口作为输出。PA0PA2分别用来控制步进电机的开启/停止、正反向、快慢转。PB0PB3作为输出口,分别接步进电机的ABCD端口,输出相序表中的加电编码,从而使步进电机可以开始运转。具体的接线如图3.1,3.2所示:七 B7段 B6码 B5显 B4示 B3器 B2B1B0PB7 PC3 PB6 PC2PB5 PC1PB4 PC0PB3PB2 8255APB1PB0

12、PA2PA1PA0D DC CB BA AMotorunitmotor unitK2K1K0K UNIT4321Motor图3.1 实验接线图图3.2实验连线图3.2 软件设计3.2.1正向慢转子程序 首先取步进电机相序表的首地址,通过口输出,每输出一个,就指向下一个。当指向最后一个加点码后,用SUB SI,8语句,使指向偏移首地址的前一位。加1后,指向TAB1的首地址。如此实现循环。其中在每输出一个加点码后,调用DELAY1长延时。ZM: MOV AL,1 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“1” MOV AL,SI ;

13、SI为表TAB1的偏移地址,将地址SI中的值给AL CMP AL,0BH ;比较是否为最后一个元素,若是则减8,回到首地址 JNZ XH1 的前一位 SUB SI,8 XH1: INC SI ;指针加1,实现向后移动 MOV AL,SI ;获取相序表TAB1中的值 OUT 62H,AL ;C口输出 CALL DELAY1 ;调用长延时 JMP A23.2.2正向快转子程序首先取步进电机相序表的首地址,通过口输出,每输出一个,就指向下一个。当指向最后一个加点码后,用SUB SI,8语句,使指向偏移首地址的前一位。加1后,指向TAB1的首地址。如此实现循环。其中在每输出一个加点码后,调用DELAY

14、2短延时。ZK: MOV AL,2 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“2” MOV AL,SI ;SI为表TAB1的偏移地址,将地址SI中的值给AL CMP AL,0BH JNZ XH2 SUB SI,8 ;偏移地址SI减8 XH2: INC SI ;指针加1,实现向后移动 MOV AL,SI ;获取相序表TAB1中的值 OUT 62H,AL ;C口输出 CALL DELAY2 ;调用短延时 JMP A23.2.3反向慢转子程序首先取步进电机相序表的加点码,通过口输出,每输出一个,就指向前一个。当指向第一个加点码后,用A

15、DD SI,8语句,使指向偏移末地址的后一位。减1后,指向TAB1的首末地址。如此实现循环。其中在每输出一个加点码后,调用DELAY1长延时。FM: MOV AL,3 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“3” MOV AL,SI ;SI为表TAB1的偏移地址,将地址SI中的值给ALCMP AL,03H ;比较是否为第一个元素,若是则加8,回到末地址 JNZ FXH1 的后一位 ADD SI,8 FXH1:DEC SI ;指针减1,实现向前移动 MOV AL,SI OUT 62H,AL ;从B口输出 CALL DELAY1

16、;调用长延时 JMP A23.2.4反向快转子程序首先取步进电机相序表的加点码,通过口输出,每输出一个,就指向前一个。当指向第一个加点码后,用ADD SI,8语句,使指向偏移末地址的后一位。减1后,指向TAB1的首末地址。如此实现循环。其中在每输出一个加点码后,调用DELAY2长延时。FK: MOV AL,4 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“4” MOV AL,SI CMP AL,03H JNZ FXH2 ADD SI,8 FXH2: DEC SI ;指针减1,实现向前移动 MOV AL,SI OUT 62H,AL ;

17、从B口输出 CALL DELAY2 ;调用短延时 JMP A23.2.5短延时子程序使用进栈,出栈的方法对CX进行使用和保护,使用loop循环来实现延时,CX的取值非常重要,CX=04300H时,实现短延时。DELAY1:PUSH CXMOV CX,04300H ;通过修改CX的值来提高旋转的速度,CX的值越小,其速度就快ADD1: PUSH AX POP AX LOOP ADD1 POP CX RET3.2.6长延时子程序使用进栈,出栈的方法对CX进行使用和保护,使用loop循环来实现延时,CX的取值非常重要,CX=0E300H时,实现长延时。DELAY2: PUSH CXMOV CX,0E

18、300H ; CX的值 就为循环的次数,通过循环来达到延时ADD2: PUSH AX POP AX LOOP ADD2 POP CX RET4系统调试与操作说明4.1系统调试调试一:利用延时程序,来控制步行电机旋转速度,K0为0时调用长延时,K0为1时调用短延时。DELAY1:PUSH CXMOV CX,0E300H ADD1: PUSH AX POP AX LOOP ADD1 POP CX RET结果:步行电机慢速旋转DELAY2: PUSH CXMOV CX,04300H ADD2: PUSH AX POP AX LOOP ADD2 POP CX RET结果:步行电机快速旋转调试二:利用K

19、1控制步行电机旋转的正反,K1为0时,步行电机正向旋转,从相序表中取值,和最后一个值比较,若相同则回到初始位置。反之,指向下一个值,如此实现循环,K1为1时,步行电机反向旋转。 MOV AL,SI CMP AL,0BH JNZ XH2 SUB SI,8 XH2: INC SI MOV AL,SI OUT 62H,AL结果:步行电机正向旋转 MOV AL,SI CMP AL,03H JNZ FXH1 ADD SI,8 FXH1:DEC SI ; MOV AL,SI OUT 62H,AL 结果:步行电机反向旋转4.2 操作说明首先打开唐都TDN86/88实验平台,按照微机步进电机控制系统连线图(图

20、3.1)连接电路图。然后在PC机上运行WMD86,将源代码导入,编译,运行。各个开关控制步行电机的状态如表4.1所示。其中K2是控制步进电机的启动与暂停,K2等于1时运行。K2是控制步进电机旋转速度的快慢,K0=0 表示慢转,K0=1表示快转;K1是控制步进电机旋转方向,K1=0表示正转,K1=1表示反转;表4.1 各开关对应的步行电机状态表开关步进电机运行状态K2K1K0000停止100正向慢转101正向快转110反向慢转111反向快转5.课程设计总结与体会 在这一个星期里不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要

21、的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A的具体作用等,通过这次课程设计之后,一定把以前所学过的知识重新温故。 除了以上所说的以外,我觉得其实去设计以及实现一个程序所花费的时间远不如测试时用的多,在测试的过程中,我懂得了一些调试的基本步骤,概括的说就是从小到大,从局部到整体,在实现了局部的功能后,应该学会怎么样去将它用最简洁的方法与整体融合起来。而纠正错误的过程

22、中,也要逐步的去排除,而不应当自己觉得哪里错了就去修改哪里,这样的后果只会事倍功半。我觉得这些东西对于我以后的工作将有很大的帮助。通过这次的课程设计,让我更加了解到微机的重要性。以及它对我们专业的发展发挥的作用。对我们而言,知识上的收获很重要,但精神上的丰收更加可喜。让我知道了学无止境的道理。这次课程设计必将成为我人生旅途上一个非常美好的回忆!同时在做课程设计时要能够从多方面去考虑,去研究,用多种方法去实现要求。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,这些都让我受益非浅, 培养了我的综合能力和运用所学知识 ,发现,提出,分析和解决实际问题的能力,锻炼

23、实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。参考文献1 周佩玲,彭虎,傅忠谦 微机原理与接口技术 北京,电子工业出版社 20052 沈美明,温东婵 IBM-PC汇编语言程序设计 北京,清华大学出版社 1993设计者: 蒋燃 日 期: 2014 年 6 月 13 日附录 微机步进电机控制系统源程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENT TAB1 DB 03H,07H,06H,0EH,0CH,0DH,09H,0BH ;定义代码段 TAB2 DB 3FH,06H,5BH,4FH,66H ;七段码显示器的定义DAT

24、A ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,90H OUT 63H,AL MOV SI,OFFSET TAB1 A1: MOV AL,0 MOV BX,OFFSET TAB2 XLAT OUT 61H,AL IN AL,60H AND AL,04H CMP AL,00H JZ A1 A2: IN AL,60H TEST AL,04H JZ A1 AND AL,03H CMP AL,00H JZ ZM CMP AL,01H JZ ZK CMP AL,02H JZ FM C

25、MP AL,03H JZ FKZM: MOV AL,1 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“1” MOV AL,SI ;SI为表TAB1的偏移地址,将地址SI中的值给AL CMP AL,0BH ;比较是否为最后一个元素,若是则减8,回到首地址 JNZ XH1 的前一位 SUB SI,8 XH1: INC SI ;指针加1,实现向后移动 MOV AL,SI ;获取相序表TAB1中的值 OUT 62H,AL ;C口输出 CALL DELAY1 ;调用长延时 JMP A2ZK: MOV AL,2 MOV BX,OFFSET TA

26、B2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“2” MOV AL,SI ;SI为表TAB1的偏移地址,将地址SI中的值给AL CMP AL,0BH JNZ XH2 SUB SI,8 ;偏移地址SI减8 XH2: INC SI ;指针加1,实现向后移动 MOV AL,SI ;获取相序表TAB1中的值 OUT 62H,AL ;C口输出 CALL DELAY2 ;调用短延时 JMP A2FM: MOV AL,3 MOV BX,OFFSET TAB2 XLAT ;取表 OUT 61H,AL ;B口输出,二极管上显示数字“3” MOV AL,SI ;SI为表TAB1的偏移地

27、址,将地址SI中的值给ALCMP AL,03H ;比较是否为第一个元素,若是则加8,回到末地址 JNZ FXH1 的后一位 ADD SI,8 FXH1:DEC SI ;指针减1,实现向前移动 MOV AL,SI OUT 62H,AL ;从B口输出 CALL DELAY1 ;调用长延时 JMP A2 FK: MOV AL,4 MOV BX,OFFSET TAB2 XLAT OUT 61H,AL MOV AL,SI CMP AL,03H JNZ FXH2 ADD SI,8 FXH2: DEC SI MOV AL,SI OUT 62H,AL CALL DELAY2 JMP A2 DELAY1:PUS

28、H CXMOV CX,0E300H ;通过修改CX的值来提高旋转的速度ADD1: PUSH AX POP AX LOOP ADD1 POP CX RETDELAY2: PUSH CXMOV CX,04300H ; CX的值 就为循环的次数,通过循环来达到延时ADD2: PUSH AX POP AX LOOP ADD2 POP CX RETCODE ENDS END START设计过程中质疑(或答辩)记载:1.程序运行时如何暂停?答:在4个子程序末尾,都有跳转到A2的语句,而在A2中,有IN AL,60H TEST AL,04H JZ A1,这几条语句就是判断第三位K2位是否为0,若等于0,则跳转到A1。使二极管显示数字0,程序循环运行A1,指导K2变为1。2.如何实现正向慢转的?答:正向慢转是用数字1显示。使用XLAT取表指令,将AL转换为06H,在用B口输出,二极管上九显示为1。SI为表TAB1的偏移首地址,将SI的值赋给AL,先和0BH比较,若相等,将SI减8,得到TAB1表首地址的前一位,INC SI,使SI为TAB1表的首地址,这样就可以实现相序表的循环。将SI赋给AL,由C口输出,调用长延时使灯,指针运行速度变慢。最后跳回到A2段。指导教师评语:评分:签名:年 月 日17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1