1、课 程 设 计课程名称 微机接口与接口技术 题 目 步进电机控制系统设计 专 业 计算机科学与技术(网络) 班 级 学 号 姓 名 成 绩 _指导教师 2010 年 6 月 25 日课程设计任务书设计题目:步进电机控制系统设计设计目的:1.巩固和加深课堂所学知识;2.学习掌握计算机控制系统的软硬件的设计方法和查阅、运用资料的能力;3.通过步进电机控制系统设计与制作,深入了解与掌握步进电机的运行原理和控制方式。设计任务:1画出硬件原理图(接口芯片和外设部分)和实验连线图;2用 1 个开关控制步进电机起停,1 个开关控制正反转,1 个开关控制速度的快与慢(电机正转停反转;反之相同) ;3送电时和步
2、进电机停止时,彩灯全部点亮;步进电机正转时,彩灯正向循环点亮。步进电机逆转时,彩灯反向循环点亮;*4步进电机转速较快时,彩灯循环速度也较快。时间安排:6 月 21 日 布置题目,确定任务、查找相关资料6 月 22 日6 月 24 日 功能分析,硬件设计,拟定实验电路,编写程序,调试程序、运行系统;6 月 25 日 答辩后撰写设计报告。具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写)具体内容如下: 设计任务与要求 总体方案与说明 硬件原理图与说明 实验电路图与说明 软件主要模块流程图 源程序清单与注释 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方
3、法及改进设想) ; 小结与体会附录: 源程序(必须有简单注释) 使用说明 参考资料指 导 教 师 签 名: 10 年 6 月 21 日教研室主任(或责任教师)签名: 10 年 6 月 21 日目录设计任务与要求 4设计目的 4设计任务 4总体方案与说明 4步进电机 4总体方案 5实验电路图和原理图 5程序设计 6程序流程图 6分段功能子程序(参考) 7实验操作与调试 9实验小结与体会 10参考文献 10附录 10源程序代码 10设计任务与要求设计目的1.巩固和加深课堂所学知识;2.学习掌握计算机控制系统的软硬件的设计方法和查阅、运用资料的能力;3.通过步进电机控制系统设计与制作,深入了解与掌握
4、步进电机的运行原理和控制方式。设计任务1画出硬件原理图(接口芯片和外设部分)和实验连线图;2用 1 个开关控制步进电机起停,1 个开关控制正反转,1 个开关控制速度的快与慢(电机正转停反转;反之相同) ;3送电时和步进电机停止时,彩灯全部点亮;步进电机正转时,彩灯正向循环点亮。步进电机逆转时,彩灯反向循环点亮;*4步进电机转速较快时,彩灯循环速度也较快。总体方案与说明步进电机步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角) 。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉
5、冲频率来控制电机转动的速度和加速度,从而达到调速的目的。实验室给定步进电机为 4 相,为了使步进电机转动更加稳定,设计为双 8 拍脉冲,即:ABABCBCBCDCDCDADADABAB 反转就从右到左。如果给步进电机发一个控制脉冲 ,它就转一步 ,再发一个脉冲 ,它会再转一步。2 个脉冲的间隔越短 ,步进电机就转得越快。调整送给步进电机的脉冲频率 ,就可以对步进电机进行调速。总体方案此次我们所设计的是一个步进电机控制系统并行输入/输出接口 8255A,4相步进电机,8 位发光二极管,及一些其他相关元件设计而成。可以通过一个开关来控制系统的启/停工作,当系统运转时,再用一个开关来控制方向,并使相
6、应的指示灯亮起,另外一个开关控制步进电机的转速。步进电机为 4 拍,可以利用 8255 的输出口提供给电机 4 根线路,给与不同的脉冲,脉冲的设计可以事先做一个相序表,8255 的 C 口的 0 位作为步进电机的 A相,1 作为 B 相,2 作为 C 相,3 作为 D 相,相序表如表 1.绕组与数据线的连接 运行方式 相序表 查表方向D C B AD7 D6 D5 D4 D3 D2 D1 D0 双八拍 加电代码地址代码正转反转0 0 0 0 0 0 1 1 AB 03H 400H0 0 0 0 0 1 1 1 ABC 07H 401H0 0 0 0 0 1 1 0 BC 06H 402H0 0
7、 0 0 1 1 1 0 BCD 0EH 403H0 0 0 0 1 1 0 0 CD 0CH 404H0 0 0 0 1 1 0 1 CDA 0DH 405H0 0 0 0 1 0 0 1 DA 09H 406H0 0 0 0 1 0 1 1 DAB 0BH 407H表 1那么 8 相的脉冲可以计算出分别为:00000011 00000111 00000110 00001110 00001100 00001101 00001001 00001011换成汇编语言中常中的 16 进制,则为:03H 07H 06H 0EH 0CH 0DH 09H 0BH将这 8 种数字信号按正或反序输给步进电机就
8、能实现步进电机的转动了8255 的 B 口 0 位接 K1 开关,控制延时,延时长则步进电机转速慢,延时短则步进电机转速快。1 位接 K2 开关,通过控制输出相序表的方向达到控制步进电机正反转的目的。2 位按 K3 开关,控制步进电机和 LED 灯的启动与停止。8255 的 A 口的 0 到 7 位作为输出接口接 8 个 LED 灯。8255 的 C 口的 0 到 3 位作为输出接口接步进电机的四相。实验电路图和原理图实验中主要用到 8255 芯片,利用汇编程序设计芯片 A 口和 C 口为输出,B 口为输入,用到了 A 口的 PA0,PA1,PA2,PA3,用到了 B 口的 PB0,PB1,P
9、B2,用到 C 口 PC0-PC7;PB0 对应开关 K0 控制启动开关, PB1 对应开关 K1 控制电机的旋转方向, PB2 对应开关 K2 控制电机的旋转快慢。PB3PB2PB1PB08255APA2PA1PA0D DC CB BA Amotor unitK2K1K0Kk UNIT4321Motor+5v+12vABCDK0K1K2Error!4A2PB3D7 PB2PB1D0 PB08255AA1A0PA2Error! PA1PA0D D C CB BA AG1 Error!2A 译Error!2B 码 C 器BA D7D0A1A0CPUA6 A7 MError! A5 A4A3 图
10、1软件设计软件流程图NNNNYYYYY开始8255 初始化K0=1长延时正慢旋转判断 K1K2 的值001011反慢旋转反快旋转短延时01 正快旋转结束图 2分段功能子程序(参考)1.测试开关,读取步进电机旋转参数和 LED 灯点亮参数分别检测 PB 口读入的开关的数值,PB0=0, 步进电机开始转动,灯开始循环点亮;PB1 = 1 步进电机开始逆向转动,灯循环向左点亮;PB1 = 0 步进电机开始正向转动,灯循环向右点亮;PB2 = 1 步进电机开始慢速转动;PB2 = 0 步进电机开始快速转动。JIANCE: MOV DX,61HIN AL,DXTEST AL,01H ;B0 开。则继续做
11、JZ JIANCETEST AL,04H ;检测快慢JZ MANKUAI: MOV AH,01HJMP ZFMAN: MOV AH,00HZF: TEST AL,02H ;检测 B1 的值,为后面的正反转设定跳转JZ BEGIN2 ;为 1 是逆时针2.控制正向转动BEGIN1:XOR AL,ALZHENG: MOV DX,PORT_AMOV BX,OFFSET TABLE1ZHUAN1: PUSH AX ;逆时针XLATOUT 60H,ALPOP AXINC ALCALL LIANG1TEST AH,01HJZ MANSU1CALL DELAY1MANSU1: CALL DELAY3CMP
12、AL,07HJNZ ZHUAN1MOV AL,00HJMP JIANCE3.控制逆向转动BEGIN2:MOV AL,07HZHUAN2: PUSH AX ;顺时针XLATOUT 60H,ALPOP AXDEC ALCALL LIANG2TEST AH,01HJZ MANSU2CALL DELAY1MANSU2: CALL DELAY3CMP AL,00HJNZ ZHUAN2MOV AL,07HJMP JIANCE4.两段延时子程序分别用两个 loop 循环作为软延时DELAY1: MOV CX, 0FFFFH DELAY2: LOOP DELAY2 RETDELAY3: MOV CX, 5FF
13、FH DELAY4: LOOP DELAY4 RET5.两个点亮 LED 灯的子程序通过循环左移和右移来使 LED 灯循环点亮LIANG1: PUSH AXMOV AL,CANSHUROL AL,1HOUT 62H,ALMOV CANSHU,ALPOP AXRETLIANG2: PUSH AXMOV AL,CANSHUROR AL,1HOUT 62H,ALMOV CANSHU,ALPOP AXRET实验操作与调试1 根据连线图连好线,确认连线正确。2 打开电源,运行程序。3 打开开关 k2(即将 k0 置为 1), 步进电机开始转动,LED 灯开始循环点亮4 打开开关 k1(即将 k1 置为
14、1), 步进电机开始逆向转动,灯循环向左点亮5 关闭开关 k1(即将 k1 置为 0), 步进电机开始正向转动,灯循环向右点亮6 打开开关 k0(即将 k2 置为 1), 步进电机开始慢速转动7 关闭开关 k0(即将 k2 置为 0), 步进电机开始快速转动实现了步进电机的转速与正反向转动的控制表 4.1 各开关对应的步行电机状态表开关K2 K2 K0 步进电机运行状态0 0 0 停止1 0 0 正向慢转1 0 1 正向快转1 1 0 反向慢转1 1 1 反向快转实验小结与体会通过这一星期的课程设计,使我更加懂得理论是为实践做基础的,带着目标在实践中学习,远比单纯的课本知道灌输式学习更加有效率
15、,而且实践中也可以应证理论知识的正确性,知识印象更加深刻,更重要的是从而提高自己的实际动手能力和独立思考的能力。通过实践,进一步掌握了 8255A 各引脚的功能, 8255A 和系统总线之间的连接,8255A 和 CPU 之间的数据交换,以及 8255A 的内部逻辑结构;掌握了软件设计和调试的基本方法和技巧参考文献1 周佩玲,彭虎,傅忠谦 微机原理与接口技术 北京,电子工业出版社 20052 沈美明,温东婵 IBM-PC 汇编语言程序设计 北京,清华大学出版社 1993 附录源程序代码STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENT T
16、AB DB 03H,07H,06H,0EH,0CH,0DH,09H,0BH ;进步电机的控制字CANSHU DB 0FEHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXmov al,82hOUT 63H,ALMOV BX,OFFSET TABmov al,01hout 62h,alMAIN: MOV AL,0ffH out 60h,al ;A 口控制灯in al,61h ;B 口控制开关AND AL,04H CMP AL,00HJZ MAINin al,61hAND AL,03HCM
17、P AL,00HJZ ZManCMP AL,01HJZ ZKuaiCMP AL,02HJZ NManCMP AL,03HJZ NKuaiZMan: MOV AL,BX ; 正向慢转子程序CMP AL,0BH ; 检查是不是最后一个加电代码JNZ XH1 ; 不等于时,跳转到 XH1SUB BX,8 ; BX-8XH1: INC BX ; 指针作加 1 运算,及实现向后移动MOV AL,BXout 62h,al ; 从 a 口输出CALL Deng2 CALL DELAY1 ;调用长延时JMP MAINZKuai: MOV AL,BX ; 正向快转子程序CMP AL,0BH ;比较JNZ XH2
18、 ;不等时跳转SUB BX,8XH2: INC BXMOV AL,BXout 62h,alCALL Deng2CALL DELAY2 ;调用短延时JMP MAINNMan:MOV AL,BXCMP AL,03HJNZ FXH1ADD BX,8FXH1:DEC BXMOV AL,BXout 62h,alCALL Deng1CALL DELAY1JMP MAINNKuai:MOV AL,BX ;检查是不是第一个加电码CMP AL,03HJNZ FXH2ADD BX,8 ;若是第一个加电码,则指针加 8 跳到最后一个加电码 FXH2:DEC BX ;指针减 1,实现向前移动MOV AL,BXout
19、62h,alCALL Deng1CALL DELAY2 ;调用短延时子程序JMP MAINDELAY1:PUSH CXMOV CX,0D300H ;通过修改 CX 的值来提高旋转的速度ADD1: PUSH AXPOP AXLOOP ADD1POP CX RETDELAY2:PUSH CXMOV CX,03300H ; CX 的值 就为循环的次数,通过循环来达到延时ADD2: PUSH AXPOP AXLOOP ADD2POP CX RETDeng1: PUSH AX ; 循环左移使 LED 灯循环点亮MOV AL,CANSHUROL AL,1Hout 60h,alMOV CANSHU,ALPOP AXRETDeng2: PUSH AX ; 循环右移使 LED 灯循环点亮MOV AL,CANSHUROR AL,1Hout 60h,alMOV CANSHU,ALPOP AXRETCODE ENDS END START设计过程中质疑(或答辩)记载:1. 如何进行使进步电机正转和反转的?答:正向输入进步电机控制字和反向输入进步电机控制字来控制进步电机正转和反转。2. 8255 芯片是如何进行输入输出的?答:A 口输出控制 LED 灯,B 口输入接受开关的信号,C 口输出控制进步电机旋转。指导教师评语:评分:签名:年 月 日