《2022年步进电机控制系统方案设计书 .pdf》由会员分享,可在线阅读,更多相关《2022年步进电机控制系统方案设计书 .pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计任务书设计题目 :微机步进电机控制系统设计设计目的:1. 巩固和加深课堂所学知识;2. 学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3. 通过步进电机控制系统设计与制作,深入了解与掌握步进电机的运行方式、方向、速度、启 /停的控制。设计任务 及要求 :(在规定的时间内完成下列任务)任务:控制四相步进电机按双八拍的运行方式运行。按下开关SW1 时启动步进电机,按ESC 键停止工作。采用循环查表法,用软件来实现脉冲循环分配器的功能对步进电机绕组轮流加电。要求对题目进行功能分析(四项功能:快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转),进行步进电机远程控制系统硬件
2、电路设计,画出电路原理图、元器件布线图、实验电路图;绘制程序流程图,进行步进电机控制程序设计(采用8086 汇编语言);系统调试、运行,提交一个满足上述要求的步进电机控制系统设计。时间安排:(部分时间 ,某些工作可以自己安排重叠进行)月 日介绍题目,分任务、查找相关资料月 日查阅资料,确定设计题目;月 日 月 日功能分析,硬件设计,拟定实验电路,编写程序,修改程序;月 日 月 日调试程序、运行系统;月 日 月 日答辩后撰写设计报告,修改报告。具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写),具体内容如下:设计任务与要求总体方案与说明硬件原理图与说明实验电路图与说明软件主要模块流程
3、图源程序清单与注释问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想); 小结与体会附录: 源程序(必须有简单注释)使用说明参考资料指导教师签名: 08年 12月 01日教研室主任(或责任教师)签名:年月日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 14 页目录第 1 章需求分析11.1 课程设计题目11.2 步进电机介绍11.3 课程设计任务及要求11.4 软硬件运行环境及开发工具1第 2 章概要设计22.1 设计原理及实现方法22.1.1 步进电机控制原理22.1.2微机步进电机控制系统
4、原理图22.1.3 运行方式与方向的控制 循环查表法32.1.4步进电机的启/停控制 设置开关 42.2 微机步进电机控制系统设计流程图4第 3 章详细设计53.1 硬件设计与实现53.2 软件设计53.2.1正向慢转子程序53.2.2正向快转子程序63.2.3反向慢转子程序63.2.4反向快转子程序63.2.5长延时子程序73.2.6短延时子程序7第 4 章系统调试与操作说明74.1 系统调试74.2 操作说明8第 5 章课程设计总结与体会8参考文献8附录微机步进电机控制系统源程序9精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 14
5、 页第1章需求分析1.1 课程设计题目微机步进电机控制系统设计1.2 步进电机介绍步进电机是一种将电脉冲信号转换成相应的角位移和线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件。步进电机具有快速启动和停止的能力,它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件如:温度、气压、冲击和振动等影响,仅与脉冲频率有关。它每转一周都有固定的步数,在不丢失步的情况下运行,其步矩误差不会长期累积。正因为步进电机具有快速启动、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。随着微机的发展,步进电机的使用领域将更加广阔。1.3 课程设计任务及要求任务:控制四相步
6、进电机按双八拍的运行方式运行。将开关K2 置高电平时启动步进电机,将K2 键置低电平时,停止工作。步进电机的加电采用循环查表法,用软件来实现脉冲循环分配器的功能对步进电机绕组轮流加电。要求:要使电机能通过控制实现四项功能:快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转,进行步进电机控制系统硬件电路设计,画出电路原理图、元器件布线图、实验电路图;绘制程序流程图,进行步进电机控制程序设计(采用汇编语言)。1.4 软硬件运行环境及开发工具硬件:唐都TDN86/88 实验平台、 PC机一台开发语言:汇编语言精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
7、- - -第 3 页,共 14 页第 2章 概要设计2.1 设计原理及实现方法2.1.1 步进电机控制原理步进电机是将电脉冲信号转换成角位移的一种机电式数模转换器。其旋转的角位移与输入脉冲的个数成正比;转速与输入脉冲的频率成正比;转动方向和输入脉冲对绕组加电的顺序有关。因此,步进电机旋转的角度位移、转速以及方向均受输入脉冲的控制。步进电机在系统中是一种执行元件,都要带负载,因此需要功率驱动。在电子设备中,一般所需功率较小,常采用达林复合管作功率驱动。驱动原理如图2.1 所示。图 2.1 步进电机驱动原理图2.1.2微机步进电机控制系统原理图步进电机接口的硬件部分主要是提供输送相序代码的并行数据
8、线(8 根),以及保护电机绕组的器件,所以接口电路以8255A 为主芯片,将PA 口作数据口,传送加电代码,再加上锁存器74LS373 作绕组保护。另外,还有功率驱动管TIP122,以及二极管、开关K0、K1、K2。本实验采用A 口作为控制口,B 口作为输出口,PA0、PA1、PA2 分别接开关的K0 、K1、K2,PB0、PB1、PB2、PB3 分别接 motor unit 的 ABCD 。微机步进电机控制系统原理图如图 2.2 所示。+12V A TIP122 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 14 页图 2.2 微机
9、步进电机控制系统原理图2.1.3运行方式与方向的控制循环查表法步进电机的运行方式是指各相绕组循环轮流通电的方式。本次设计采用的是双八拍,即 AB ABC BCBCD CDCDA DA DAB 步进电机的运行方式及方向控制采用循环查表法。循环查表法是将各绕组加电顺序的控制代码编制成一张步进电机相序表(如表 2.1 所示),存放在内存区,在设置一个地址指针。表 2.1 步进电机相序表绕组与数据线的连接运行方式相序表查表方向D C B A 双八拍加电代码地址代码正转反转D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 1 1 AB 03H 400H 0 0 0 0 0 1 1
10、1 ABC 07H 401H 0 0 0 0 0 1 1 0 BC 06H 402H 0 0 0 0 1 1 1 0 BCD 0EH 403H 0 0 0 0 1 1 0 0 CD 0CH 404H 0 0 0 0 1 1 0 1 CDA 0DH 405H 0 0 0 0 1 0 0 1 DA 09H 406H 0 0 0 0 1 0 1 1 DAB 0BH 407H +5v +12v A B C D K0 K1 K2 Y4-4 A2 PB3 D7 PB2 PB1 D0 PB0 8255A A1 A0 PA2 CS PA1 PA0 D DC C B B A A G1 G_ _2A 译G- -2
11、B 码C 器B A D7 D0 A1 A0 CPU A6 A7M/IO-A5A4 A3 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 14 页2.1.4步进电机的启 /停控制设置开关K0控制步进电机旋转速度的快慢,K0=0 表示慢转, K0=1 表示快转;K1控制步进电机旋转方向,K1=0 表示正转, K1=1 表示反转;K2控制步进电机的启/停, K2=0 表示停, K2=1 表示启动。2.2 微机步进电机控制系统设计流程图图 2.3 微机步进电机控制系统设计流程图N N N N Y Y Y Y Y 开始8255初 始K2=?长延时
12、正慢旋转判断 K1K0 的值00 10 11 反慢旋转反快旋转短延时01 正快旋转结束精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 14 页第 3章 详细设计3.1 硬件设计与实现本电路的设计是利用8255A 的 A 口作为输入口,B 口作为输出, C 口没有用到。PA0PA2 分别用来控制步进电机的开启/停止、正反向、快慢转。PB0PB3 作为输出口,分别接步进电机的ABCD 端口,输出相序表中的加电编码,从而使步进电机可以开始运转。具体的接线如图3.1 所示:图 3.1 微机步进电机控制系统连线图3.2 软件设计实现步进电机运行方
13、式、方向和速度以及启/停的控制,是接口软件设计的主要任务。为此,在编写程序之前,要建立一个相序表。相序表的建立应根据步进电机运行方式的要求及各绕组与8255A 端口连接情况来确定加电代码。根据上图的连接情况,可以写出相序表中双八拍运行方式的加电代码为:03H,07H,06H,0EH,0CH,0DH,09H,0BH。在 8259 初始化完毕后,取出相序表的首地址,将其存如BX 。当要求步行电机正转时,首地址进行加1 操作。在次过程中要检查指针是否指到末地址。若是,指针减7,回到首地址,如此循环。当要求反转时,将首地址进行加7 操作到达末地址,在进行减1 操作,在次过程找要检查指针是否到达首地址。
14、如是,则将指针加7 回到末地址。根据设计流程图,软件设计部分将本系统分为6 个子程序,分别是正向慢转子程序、正向快转子程序、反向慢转子程序、反向快转子程序、长延时子程序、短延时子程序。3.2.1正向慢转子程序ZM:MOV AL,BX PB3 PB2 PB1 PB0 8255A PA2 PA1 PA0 D D C CB B A Amotor unit K2 K1 K0 Kk UNIT 4 3 2 1 Motor 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 14 页CMP AL,0BH 。 检查是不是最后一个加电代码JNZ XH1 SU
15、B BX,8 XH1:INC BX 。 指针作加1 运算,及实现向后移动MOV AL,BX OUT 61H,AL 。从 B 口输出CALL DELAY1 。调用长延时JMP A1 3.2.2正向快转子程序ZK:MOV AL,BX CMP AL,0BH JNZ XH2 SUB BX,8 XH2: INC BX MOV AL,BX OUT 61H,AL CALL DELAY2 。调用短延时JMP A1 3.2.3反向慢转子程序FM:MOV AL,BX CMP AL,03H 。检查是不是第一个加电码JNZ FXH1 ADD BX,8 。若是第一个加电码,则指针加8 跳到最后一个加电码FXH1:DEC
16、 BX 。指针减 1,实现向前移动MOV AL,BX OUT 61H,AL CALL DELAY1 。调用长延时子程序JMP A1 3.2.4反向快转子程序FM:MOV AL,BX CMP AL,03H 。检查是不是第一个加电码JNZ FXH1 ADD BX,8 。若是第一个加电码,则指针加8 跳到最后一个加电码FXH1:DEC BX 。指针减 1,实现向前移动MOV AL,BX OUT 61H,AL 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 14 页CALL DELAY2 。调用短延时子程序JMP A1 3.2.5长延时子程序D
17、ELAY1:PUSH CX MOV CX,0E300H 。通过修改CX 的值来提高旋转的速度ADD1: PUSH AX POP AX LOOP ADD1 POP CX RET 3.2.6短延时子程序DELAY2:PUSH CX MOV CX,06300H 。 CX 的值 就为循环的次数,通过循环来达到延时ADD2: PUSH AX POP AX LOOP ADD2 POP CX RET 第 4章 系统调试与操作说明4.1 系统调试在刚开始,从网上找了一个程序,运行之后,步进电机能够按照需求运转,但是后来同学提醒实现单步运行,这个时候就出现了问题,当要步进点击停止时,moto union 的指示
18、灯总是停在相同的位置,而且单步运行时的灯的顺序并不是按照相序表来变化的,仅仅电机能转而已,所以最后舍弃了这个程序,开始自己写。首先就是要让步进电机转起来,转起来的前提就是要读去相序表,在这个过程中,我一直采用的是单步运行方式,在单步运行时,能够顺利的读取相序表,但是当我运行时,就出现了问题,因为当读到最后一个时,不能返回来,每次只能顺序读一次。最后和同学讨论,得到了解决方法,在正转时,每次都判断是不是到了最后一个加电码,如果是,则指针减8(因为正转时,每次指针都要加1),这样就又回到了首地址了。在整个程序中,延时程序调试的次数最多了,刚开始,用的数值不是很大,这样电机转的速度很快,导致指示灯一
19、直亮着,而且快、慢转几乎很难分清。最后经过不断的实验,将数据调到了一个比较合理的值,即转的不是很快,灯能正常显示,又能很好的区分快慢转了。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 14 页4.2 操作说明首先打开唐都TDN86/88 实验平台,按照微机步进电机控制系统连线图(图3.2)连接电路图。然后在PC 机上运行WMD86 4.0,将源代码导入,编译,运行。各个开关控制步行电机的状态如表4.1 所示。表 4.1 各开关对应的步行电机状态表开关步进电机运行状态K2 K2 K0 0 0 0 停止1 0 0 正向慢转1 0 1 正向
20、快转1 1 0 反向慢转1 1 1 反向快转第 5章 课程设计总结与体会这课程设计,花了差不多7 天的时间,在这些天时间里不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说8255A 的具体作用等,通过这次课程设计之后,一定把以前所学过的知识重新温故。除了以上所
21、说的以外,我觉得其实去设计以及实现一个程序所花费的时间远不如测试时用的多,在测试的过程中,我懂得了一些调试的基本步骤,概括的说就是从小到大,从局部到整体,在实现了局部的功能后,应该学会怎么样去将它用最简洁的方法与整体融合起来。而纠正错误的过程中,也要逐步的去排除,而不应当自己觉得哪里错了就去修改哪里,这样的后果只会事倍功半。我觉得这些东西对于我以后的工作将有很大的帮助。参考文献1 周佩玲,彭虎,傅忠谦微机原理与接口技术北京,电子工业出版社 2005 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 14 页2 沈美明,温东婵IBM-PC
22、 汇编语言程序设计北京,清华大学出版社 1993 附录 微机步进电机控制系统源程序STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT TAB DB 03H,07H,06H,0EH,0CH,0DH,09H,0BH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AL,90H OUT 63H,AL MOV BX,OFFSET TAB A1:IN AL,60H AND AL,04H CMP AL,00H JZ A
23、1 IN AL,60H AND AL,03H CMP AL,00H JZ ZM CMP AL,01H JZ ZK CMP AL,02H JZ FM CMP AL,03H JZ FK ZM:MOV AL,BX CMP AL,0BH JNZ XH1 SUB BX,8 XH1:INC BX MOV AL,BX OUT 61H,AL CALL DELAY1 JMP A1 ZK:MOV AL,BX CMP AL,0BH JNZ XH2 SUB BX,8 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 14 页 XH2: INC BX MOV A
24、L,BX OUT 61H,AL CALL DELAY2 JMP A1 FM:MOV AL,BX CMP AL,03H JNZ FXH1 ADD BX,8 FXH1:DEC BX MOV AL,BX OUT 61H,AL CALL DELAY1 JMP A1 FK:MOV AL,BX CMP AL,03H JNZ FXH2 ADD BX,8 FXH2:DEC BX MOV AL,BX OUT 61H,AL CALL DELAY2 JMP A1 DELAY1:PUSH CX MOV CX,0E300H ADD1: PUSH AX POP AX LOOP ADD1 POP CX RET DELAY2
25、:PUSH CX MOV CX,06300H ADD2: PUSH AX POP AX LOOP ADD2 POP CX RET CODE ENDS END START 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 14 页设计过程中质疑(或答辩)记载:1如何提高步行电机正快转的速度?答:通过修改延时子程序中CX 的值即可调整速度。 CX 的值越大转速越慢,值越小转速越快。2该程序中步行电机是如何实现正反旋转的?答:首先将相序表的值写入段码表,在程序初始化完成后,读取段码表的首地址,存入 BX。当开关 K1=0 时,表示此时是正转,则对BX 进行加 1 运算,即指针向后移动一位。然后将指针对应的值赋给AL ,从 8255的 B 口输出,即实现了步行电机的正转。当K1=1 时,表示反转,此时,首先将BX 加 7,即让BX 指向段码表的末地址,然后再对BX 进行减 1运算,即实现反向读取相序表。这是就实现了步行电机的反转。指导教师评语:评分:签名:年月日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 14 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 14 页
限制150内