微机原理步进电机控制课程设计报告.docx
《微机原理步进电机控制课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理步进电机控制课程设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
微机原理步进电机控制课程设计报告
河北科技大学
课程设计报告
学生姓名:
学号:
专业班级:
课程名称:
学年学期:
20—20学年第学期
指导教师:
20年月
课程设计成绩评定表
学生姓名
学号
成绩
专业班级
起止时间
设计题目
指
导
教
师
评
语
学习态度:
端正□较端正□一般□较差□
学习纪律:
好□较好□一般□较差□
电路设计与连线:
好□较好□一般□较差□
程序设计:
好□较好□一般□较差□
动手能力:
强□较强□一般□较差□
课程设计完成情况:
优秀□好□一般□较差□
课程设计报告完成情况:
优秀□好□一般□较差□
指导教师:
年月日
一、设计题目……………………………………………………………….
二、设计目的……………………………………………………………….
三、设计原理及方案……………………………………………………….
四、实现方法……………………………………………………………….
五、实施结果……………………………………………………………….
六、改进意见及建议……………………………………………………….
七、设计体会……………………………………………………………….
、
一、设计题目
编程实现步进电机的控制
二、设计目的
1.了解步进电机控制的基本原理
2.掌握控制步进电机转动的编程方法
3.了解8086控制外部设备的常用电路
4.掌握8255的使用方法
三、设计原理及方案
设计原理
步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。
利用8255对四相步进电机进行控制。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。
通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动。
硬件连接图
四.实现方法
.步进电机控制程序流图
.程序代码
ASTEPEQU01H
BSTEPEQU02H
CSTEPEQU04H
DSTEPEQU08H
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,8003H;8255控制口地址
MOVAL,82H;PA口输出,B口输入
OUTDX,AL;写控制字
K0:
MOVDX,8000H;PA口地址
MOVAL,0;输出低电平
OUTDX,AL;电机停止转动
MOVDX,8001H;PB口地址
INAL,DX;读开关状态
TESTAL,01H;PB0位(K0=0吗)
JNZK1;不是零转K1
JMPSTEP8;是零转单/双八拍工作方式
K1:
INAL,DX;读开关状态
TESTAL,02H;PB1位(K1=0吗)
JNZK2;不是零转K2
JMPSTEP4;是零转双四拍工作方式
K2:
INAL,DX;读开关状态
TESTAL,04H;PB2位(K2=0吗)
JZSTEP41;是零转单四拍反转工作方式
JMPK0;循环
;单/双八拍工作方式:
A→AB→B→BC→C→CD→D→DA→A
STEP8:
MOVBX,9000H;设置初始延时时间
MOVDX,8000H;PA口地址
MOVAL,ASTEP
OUTDX,AL
CALLDELAY
MOVAL,ASTEP+BSTEP
OUTDX,AL
CALLDELAY
MOVAL,BSTEP
OUTDX,AL
CALLDELAY
MOVAL,BSTEP+CSTEP
OUTDX,AL
CALLDELAY
MOVAL,CSTEP
OUTDX,AL
CALLDELAY
MOVAL,CSTEP+DSTEP
OUTDX,AL
CALLDELAY
MOVAL,DSTEP
OUTDX,AL
CALLDELAY
MOVAL,DSTEP+ASTEP
OUTDX,AL
CALLDELAY
JMPK0
;双四拍工作方式:
AB→BC→CD→DA→AB
STEP4:
MOVBX,5000H;设置延时时间
MOVDX,8000H;PA口地址
MOVAL,ASTEP+BSTEP;PA0PA1(AB相)输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,BSTEP+CSTEP;BC输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,CSTEP+DSTEP;CD输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,DSTEP+ASTEP;DA输出高电平
OUTDX,AL
CALLDELAY;调延时
JMPK0
;单四拍反转工作方式:
D→C→B→A→D
STEP41:
MOVBX,1000H;设置延时时间
MOVDX,8000H;PA口地址
MOVAL,DSTEP;D输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,CSTEP;C输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,BSTEP;B;输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,ASTEP;A输出高电平
OUTDX,AL
CALLDELAY;调延时
JMPK0
DELAYPROCNEAR;延时子程序
PUSHCX
MOVCX,BX
DD1:
NOP
LOOPDD1
POPCX
RET
DELAYENDP;延时子程序结束
CODEENDS;代码段结束
ENDSTART
五.实施结果
.操作步骤
1、硬件测试
【WINXP】【步进电机】
2、在硬件测试通过后,要注意三个相一致
(1)PNP地址和数据段中的端口地址。
(2)控制字和接线。
(3)代码段中的端口地址和接线。
3、把程序代码烧进写实验箱中
.运行结果
(1)K0扳下表示启动,步进电机转动。
K0扳下表示停止,步进电机停止。
(2)K1扳下表示顺时针转,速度慢。
(3)K2扳下表示逆时针,即倒转,速度快。
六.改进意见及建议
程序设计没有实现加速和减速,在步进电机的转动函数里,每次循环都改变延时的大小即可实现变速。
延时时间依次变长则步进电机减速,延时时间依次变短则步进电机加速。
再配合开关即可实现加速减速的任意控制。
七.设计体会
这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多。
首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识。
其次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了。
通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:
要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。
在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬。
在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识。