步进电机转动控制设计(共13页).doc
精选优质文档-倾情为你奉上 华夏学院微机原理与接口技术课程设计题 目: 步进电机转动控制的设计学院(系): 信息工程系 年级专业: 自动化1083班 学 号: 学生姓名: 王 鑫 指导教师: 周立群 摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。步进电机控制系统以8088作为控制的核心元件,利用8255的A口控制步进电机, C口连接K0-K7,以选取不同档的移动速度,同时获取控制转动方向(即正转和反转). 本课程设计报告通过步进电机的基本介绍、系统的软硬件设计(包括最小系统介绍、接口电路设计、延时程序设计、步进电机的驱动程序设计等几个主要模块)、完整的汇编语言程序等,我们完成了对步进电机系统的设计,并完成了相应的任务,如正转、反转、正向加速、反向加速等,使我们进一步掌握了汇编语言,也使我们能很好的把书本上的知识与实践相结合,大大提高了我们的动手能力。关键字:步进电机;8086CPU;8255可编程I/O接口芯片;汇编语言前言561.1 步进电机转动控制的功能与要求1.2 设计方案的确定72.1 步进电机转动控制的硬件框图2.2 步进电机驱动原理103.1 主程序流程图3.2 8255工作方式134.1 硬件调试4.2 软件调试4.3 调试过程14参考文献15附录16一、系统硬件原理图二、源程序前言微机原理与接口课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。步进电机转动控制具有设计简单应用广泛的特点,非常适合作为课程设计课题。步进电机转动控制是通过操作实现电机的加速减速正转与反转,广泛用于现实社会生活生产中,如高楼中的电梯,工厂中的机床。因此,研究步进电机转动控制,有着非常现实的意义。通过本次课程设计,我提高如何综合运用所学知识解决时间问题的能力,以及获得有关项目管理和团队合作等等众多方面的具体经验,增强对相关课程内容的理解和掌握能力,培养对整体课程知识综合运用和融会贯通的能力。此次步进电机转动控制利用8255A芯片,以8088微处理器作为CPU,A口为输出,C口为输入来控制步进电机转动,拨动开关来调节速度。第一章 步进电机转动控制的设计要求与设计方案1.1 微机原理与接口技术实现的功能与要求使用汇编语言外加K0-K7等一系列的开关实现对步行电机转速与方向的控制(实现两个以上功能):1.启动与停止控制:用户拨动某一指定键后可以实现电机的启动与停止的控制;2.方向的控制:用户将某一指定键拨向上可以实现电机的正转,拨向下实现电机的反转;3.速度的控制:用户将另一指定键拨向上可以实现电机的加速转动,拨向下实现电机的减速转动;4.综合控制:用户一起拨动上述的按键后可以实现电机的加速正转,减速反转等操作;1.2 设计方案的确定选用TN8886实验箱与微机,通过在实验箱构造硬件电路,主要是利用8255A芯片单元模块、步进电机单元模块。通过微机编程与下载到实验箱上。实现软硬结合控制步进电机的转动。第二章 步进电机转动控制的硬件设计2.1 步进电机转动控制的元件框图1、 按图2-1连接线路,用8255 输出脉冲序列,开关K0K6 控制步进电机转速,K7控制步进电机转向。2、 PA0PA3 接电机的驱动端;PC0PC7 接K0K7。3、 编写程序实现步进电机的顺时针旋转控制。当K0K6中任一开关为“1”(向上拨)时步进电机启动,全部为“0”时步进电机停止,其中K0为“1”时速度最慢,K6为“1”时速度最快。K7为“1”(向上拨)时步进电机顺时针转动,为“0”(向下拨)时逆时针转动。 图 2-12.2步进电机驱动原理步进电机驱动原理:如图2-2-1是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。线圈的通电顺序决定了步进电机的旋转方向(顺时针或逆时针)。驱动电路由脉冲信号来控制,所以,调节脉冲信号的频率便可改变步进电机的转速。如图2-2所示:本实验使用的步进电机用直流5V 电压,每相电流为0.16A,电机线圈由四相组成:即: 1(BA)2(BB)3(BC) 4(BD)图2-2-1驱动方式为二相激磁方式,各线圈通电顺序如下表:表2-2-2 表2-2-2 中首先向F1-F2线圈输入驱动电流,接着依次向F2-F3,F3-F4,F4-F1输入驱动电流,最后再返回到F1-F2,按这种顺序切换可使步进电机实现顺时针方向旋转。实验中可通过不同的时间延时来得到不同频率的步进电机输入脉冲,从而得到各种不同的电机转速。第三章 步进电机转动控制的软件设计3.1 主程序流程图开始8255初始化,A口输出,C口输入33H=> BUFBUF内容从8255A口输出读开关状态K0=1?K1=1?K3=1?K2=1?K5=1?K4=1?K6=1?置停止信息控制循环信息右移一位控制循环信息左移一位延时延时K7=1?置延时时间YYYYYYYYNNNNNNN图3-1 主程序流程图选用8255的A口做输出,C口做输入。BUF输出给电机驱动端,通过检测开关,赋给不同的延时值和不同的移位命令,改变转速转向。不停的循环输出,使得电机转动。通过改变CX的赋值来控制电动机的转动速度。CX越小电动机的转动速度越大。也可以通过改变BL的值来改变单个开关的速度。我们把CX称为总开关,BL成为分开关。从而达到从K0到K6 速度逐渐变快,而K7控制电动机的反转。当K7闭合时 电动机反转3.2 8255工作方式 8255 的片选信号CS 接288H28FH。PA0PA3 接电机的驱动端;PC0PC7 接K0K7。 8255A芯片一般占用四个连续的口地址,按照从高到低分别为:控制口、C口、B口、A口。 8255共有三种工作方式: 方式0:基本输入输出; 方式1:中断工作方式; 方式2:双通输入输出,仅有A口。 D7D0: A口输出,C口输入。MOV DX,P55CTLMOV AL,89H ;(89H=B,为控制字)OUT DX,AL图3-2 8255A管脚分配图第四章 步进电机转动控制的安装与调试4.1 硬件调试 4.1.1 断电调试为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确。经检测,原理正确也没有短路现象。4.1.2 通电调试打开电源,下载程序,看是否正常。 4.2 软件调试 将写好的源程序在软件上编译连接,直接下载到实验箱,观察现象。经过多次调试后达到了设计要求。4.3 调试过程 在第一次下载后运行时,电机不转动,查找原因,发现电源接口没有接对,经修改后运行正确。第五章 设计体会与小结通过本次课程设计,使自己的动手实践与所学知识结合应用的能力有了很大的提高,让我认识到实践的重要性,但同时要实际应用过和当中,也发现理论知识的重要性,没有理论知识的支撑,是不能很好的完成本次课程设计的。本次设计步进电机转动控制,通过我掌握了的微机原理与接口技术知识,查资料、百度、请教同学老师等等。虽然,知识固然重要,但废寝忘食般的研究态度和乐于助人的品格更需要提倡。通过利用8255A芯片来实现步进电机控制转动的设计应用,不仅为以后的学习实践打下了基础,并且很好的消化了所学知识的难点、问题。在设计过程当中也发现了自己经验的不足。首先是对试验箱的认识和应用,很多模块的使用存在误解。然后就是在编程序方面的,有好多程序只是一知半懂,不能熟练地操作,需要提示和看书,需要大量的练习,为以后的学习指明方向。在完成自己所涉及项目后参与到其他同学的项目里,共同研究学习,互相帮助,不仅帮助了他人,还扩展了自己的实践能力。感谢指导老师提供给我们实践课本知识的机会,并且认真地陪同学生一起设计课程设计,奠基了以后自主研究设计项目的能力参考文献1. 彭虎. 微机原理与接口技术(第2版).电子工业出版社.2006.2. 冯博琴, 吴宁. 微型计算机原理与接口技术(第2版).清华大学出版社.20073. 汪汝, 夏帆. 微机原理与接口技术实验指导书. 武汉理工大学华夏学院计算机专业实验室.2010.4. 杨全胜,胡友彬. 现代微性计算机原理与接口技术 国防工业出版社.1999.5. 宋杰,江敏. 微机原理与接口技术 机械工业出版社.2005附录附录一 系统硬件原理图附录二 源程序P55A EQU 60H ; 8255A口输出P55C EQU 62H ; 8255C口输入P55CTRL EQU 63H ; 8255控制口DATA SEGMENTBUF DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART : MOV DX,P55CTRLMOV AL,89H OUT DX,AL ;8255C输入,A输出 MOV BUF,33HOUT1: MOV AL,BUF MOV DX, P55A OUT DX,ALIN1: MOV DX,P55C IN AL,DX ;读开关状态 TEST AL,01H JNZ K0 TEST AL,02H JNZ K1 TEST AL,04H JNZ K2 TEST AL,08H JNZ K3 TEST AL,10H JNZ K4 TEST AL,20H JNZ K5TEST AL,40H JNZ K6STOP: JMP OUT1K0: MOV BL,10H; 0001 0000BSAM: TEST AL,80H ;K7是否为1 JZ ZX0 JMP NX0K1: MOV BL,18H; 0001 1000B JMP SAMK2: MOV BL,20H; 0010 0000B JMP SAMK3: MOV BL,40H; 0100 0000B JMP SAMK4: MOV BL,80H; 1000 0000B JMP SAMK5: MOV BL,0C0H; 1100 0000B JMP SAMK6: MOV BL,0FFH; 1111 1111B JMP SAMZX0 : CALL DELAY MOV AL,BUF ROR AL,01H ;循环右移 MOV BUF,AL JMP OUT1NX0 : CALL DELAY MOV AL,BUF ROL AL,01H ;循环左移 MOV BUF,AL JMP OUT1DELAY PROC NEARDELAY1: MOV CX,0100HDELAY2: LOOP DELAY2 DEC BL ; 减1指令 JNZ DELAY1 ; ZF位标志是否为1RETDELAY ENDPCODE ENDSEND START 专心-专注-专业