1、步进电机转动控制设计报告1摘 要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。步进电机控制系统以 8088 作为控制的核心元件,利用 8255 的 A 口控制步进电机, C 口连接 K0-K7,以选取不同档的移动速度,同时获取控制转动方向(即正转和反转). 本课程设计报告通过步进电机的基本介绍、系统的软硬件设计(包括最小系统介绍、接口电路设计、延时程序设计、步进电机的驱动程序设计等几个主要模块) 、完整的汇编语言程序等,我们完成了对步进电机系统
2、的设计,并完成了相应的任务,如正转、反转、正向加速、反向加速等,使我们进一步掌握了汇编语言,也使我们能很好的把书本上的知识与实践相结合,大大提高了我们的动手能力关键字:步进电机;8086CPU;8255 可编程 I/O 接口芯片;汇编语言目 录步进电机转动控制设计报告2摘要 11.1 步进电机转动控制的设计要求与设计方案1.2 步进电机转动控制的要求与功能 31.3 总体设计方案. 3一、 步进电机转动控制设计的硬件设计二、 2.1 步进电机转动控制的硬件框图 42.2 步进电机驱动原理 4三、 步进电机转动控制软件设计3.1 主程序流程图 63.2 8255 初始化 7四、步进电机硬/软件的
3、调试4.1 硬件调试 84.2 软件调试 84.3 调试过程 8五、设计总结 9附录一 10 步进电机转动控制设计报告3一、 步进电机控制的设计要求与设计方案11 步进电机转动控制的要求与功能使用汇编语言外加 K0-K7 等一系列的开关实现对步行电机转速与方向的控制(实现两个以上功能)1. 启动与停止控制:用户拨动某一指定键后可以实现电机的启动与停止的控制2. 方向的控制:用户将某一指定键拨向上可以实现电机的正转,拨向下实现电机的反转3. 速度的控制:用户将另一指定键拨向上可以实现电机的加速转动,拨向下实现电机的减速转动4. 综合控制:用户一起拨动上述的按键后可以实现电机的加速正转,减速反转等
4、操作;12 总体设计方案选用 TN8886 实验箱与微机,通过在实验箱构造硬件电路,主要是利用8255A 芯片单元模块、步进电机单元模块。通过微机编程与下载到实验箱上。实现软硬结合控制步进电机的转动二、步进电机转动控制设计的硬件设计2.1 步进电机转动控制的硬件框图1、按图 2-1 连接线路,用 8255 输出脉冲序列,开关 K0K6 控制步进电机转速,K7 控制步进电机转向。 2、PA0PA3 接电机的驱动端;PC0PC7 接 K0K7。 步进电机转动控制设计报告43、编写程序实现步进电机的顺时针旋转控制。当 K0K6 中任一开关为“1”向上拨时步进电机启动,全部为“0”时步进电机停止,其中
5、 K0 为“1”时速度最慢,K6 为“1”时速度最快。K7 为“1” (向上拨)时步进电机顺时针转动,为“0”(向下拨)时逆时针转动。图 2.12.2 步进电机驱动原理步进电机驱动原理:如图 2-2-1 是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。线圈的通电顺序决定了步进电机的旋转方向(顺时针或逆时针) 。驱动电路由脉冲信号来控制,所以,调节脉冲信号的频率便可改变步进电机的转速。 如图 2-2-1 所示:本实验使用的步进电机用直流5V 电压,每相电流 0.16A 电机线圈 由四相组成: 即: 1(BA) 2(BB) 3(BC) 4(BD步进电机转动控制设计报告5图 2-2-1驱动方
6、式为二相激磁方式,各线圈通电顺序如下表:表 2-2-2表 2-2-2 中首先向 1 和 2 线圈输入驱动电流,接着依次向 2 和 3,3 和 4,4 和1 输入驱动电流,最后再返回到 1 和 2,按这种顺序切换可使步进电机实现顺时针方向旋转。实验中可通过不同的时间延时来得到不同频率的步进电机输入脉冲,从而得到各种不同的电机转速。 步进电机转动控制设计报告6三、步进电机转动控制软件设计31 主程序流程图 YN YNN 图 3.1 主程序流程图开始8255 初始化,A 口输入 C 口输出33H=BUFBUF 内容从 8255A 口输出键盘有无按键按下读开关状态K0-k6=1?置停止信息置延时时间K
7、4=1?延时 延时控制信息循环右移一位 控制信息循环左移一位返回 DOS步进电机转动控制设计报告7选用 8255 的 A 口做输出,C 口做输入。BUF 输出给电机驱动端,通过检测开关,赋给不同的延时值和不同的移位命令,改变转速转向。不停的循环输出,使得电机转动。通过改变 CX 的赋值来控制电动机的转动速度。CX 越小电动机的转动速度越大。也可以通过改变 BL 的值来改变单个开关的速度。我们把 CX称为总开关,BL 成为分开关。从而达到从 K0 到 K6 速度逐渐变快,而 K7 控制电动机的反转。当 K7 闭合时电动机反转。3.2 8255 初始化8255 的片选信号 CS 接 288H28F
8、H。PA0PA3 接电机的驱动端;PC0PC7接 K0K7。 8255A 芯片一般占用四个连续的口地址,按照从高到低分别为:控制口、C 口、B 口、A 口。 8255 共有三种工作方式:方式 0:基本输入输出;方式 1:中断工作方式;方式 2:双通输入输出,仅有 A 口。 D7D0:10001001 A 口输出,C 口输入。 图 3.2 8255 引脚分析步进电机转动控制设计报告8四、步进电机硬/软件的调试4.1 硬件调试4.1.1 断电调试 为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确。经检测,原理正确也没有短路现象。 4.1.2 通电调试 打开电源,下载
9、程序,看是否正常4.2 软件调试将写好的源程序在软件上编译连接,直接下载到实验箱,观察现象。经过多次调试后达到了设计要求4.3 总调试过程在第一次下载后运行时,电机不转动,查找原因,发现电源接口没有接对,经修改后运行正确。步进电机转动控制设计报告9五、设计总结通过本次课程设计,使自己的动手实践与所学知识结合应用的能力有了很大的提高,让我认识到实践的重要性,但同时要实际应用过和当中,也发现理论知识的重要性,没有理论知识的支撑,是不能很好的完成本次课程设的。在设计实验的过程中,不断的让理论与实践结合,讲课堂上所学的知识转化为在实践中所需的过程,这个过程对我学习很宝贵。 本次设计步进电机转动控制,通
10、过我掌握了的微机原理与接口技术知识,查资料、百度、请教同学老师等等。虽然,知识固然重要,但废寝忘食般的研究态度和乐于助人的品格更需要提倡。通过利用 8255A 芯片来实现步进电机控制转动的设计应用,不仅为以后的学习实践打下了基础,并且很好的消化了所学知识的难点、问题。 在设计过程当中也发现了自己经验的不足。首先是对试验箱的认识和应用,很多模块的使用存在误解。然后就是在编程序方面的,有好多程序只是一知半懂,不能熟练地操作,需要提示和看书,需要大量的练习,为以后的学习指明方向。在完成自己所涉及项目后参与到其他同学的项目里,共同研究学习,互相帮助不仅帮助了他人,还扩展了自己的实践能力。 感谢老师提供
11、给我们实践课本知识的机会,并且认真地陪同学生一起设计课程设计,奠基了以后自主研究设计项目的能力步进电机转动控制设计报告10附录一 源程序P55A EQU 60H 8255A 口输出P55C EQU 62H 8255C 口输入P55CTRL EQU 63H 8255 控制口DATA SEGMENT BUF DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START : MOV DX,P55CTRL MOV AL,89H OUT DX,AL ;8255C 输入,A 输出 MOV BUF,33H OUT1: MOV AL,BUF MOV DX,
12、P55A OUT DX,AL IN1 MOV DX,P55C IN AL,DX ;读开关状态 TEST AL,01HJNZ 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 K5 TEST AL,40H JNZ K6步进电机转动控制设计报告11STOP: JMP OUT1 K0: MOV BL,10H SAM: TEST AL,80H JZ ZX0 JMP NX0 K1: MOV BL,18H JMP SAM K2: MOV BL,20H; JMP SAM
13、 K3: MOV BL,40H; JMP SAM K4: MOV BL,80H; JMP SAM K5: MOV BL,0C0H; JMP SAM K6: MOV BL,0FFH; JMP SAM ZX0 : CALL DELAY MOV AL,BUF ROR AL,01H ;循环右移MOV BUF,AL JMP OUT1 NX0 : CALL DELAY MOV AL,BUF ROL AL,01H ;循环左移MOV BUF,AL JMP OUT1 DELAY PROC NEAR DELAY1: MOV CX,0100H DELAY2: LOOP DELAY2 DEC BL ;减 1 指令 JNZ DELAY1 ;ZF 位标志是否为 1 RET 步进电机转动控制设计报告12DELAY ENDP CODE ENDS END STAR