微型计算机原理课程设计.docx
《微型计算机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微型计算机原理课程设计.docx(10页珍藏版)》请在冰豆网上搜索。
微型计算机原理课程设计
微型计算机原理综合实验
题目:
步进电机控制
学院
学科门类工科
专业
学号
姓名
指导教师
0000年000月000日
步进电机控制
摘要
本实验通过设计电路,编写程序来驱动步进电机的转动。
采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调节。
所谓步进,就是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即电机转动依次。
根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。
实验中采用的步进电机为35BYJ011型四相八拍,电压为DC12V。
关键词:
步进电机30BYJ011,汇编语言,8255,控制理论
目录
一.实验目的--------------------------------------1
二.设计要求------------------------------1
三、设计原理------------------------------1
四.硬件工作原理--------------------------4
五.程序流图------------------------------5
六.总结与体会-----------------------------5
参考文献----------------------------------5
附录(源程序代码)------------------------6
一.实验目的
1.1掌握8255的使用
掌握8255的工作原理,掌握通过8255并行口传输数据,控制步进电机的转动。
进一步熟练8255的使用。
1.2掌握8255的编程方法
掌握用8255控制步进电机转动的编程方法。
1.3掌握模拟电路的基本知识
1.4培养初步掌握设计开发产品的能力,了解微机控制系统的一般设计方法。
二.设计要求
2.1外设电路要求
设计电路,使其能够驱动步进电机转动,所需元件及器材由实验室提供,其中步进电机为35BYJ46型四相八拍电机,电压为DC12V,电源取自实验箱。
数据的输入采用开关键、输出采用实验箱上8255单元完成。
2.2程序要求
编写程序,控制步进电机的运转,要求可调整步进电机运转的方向和速度。
选择合适的设计方案,并进行理论阐述。
编制相应的控制程序,要求有程序流程图,程序加注释。
绘制实现电路原理图,所有图纸均用计算机绘制。
三.设计原理
3.1工作过程
一、步进电机的概述及四相八拍步进电机的工作原理:
步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。
步进电机的输入量是脉冲序列,输出量则为相应的增量位移或步进位移,正常运行情况下,它每转一周是有固定的步数。
该步进电机为四相八拍步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图1是该四相反应式步进电机工作原理示意图。
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
图1四相步进电机步进示意图
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:
a.单四拍b.双四拍c八拍
图2步进电机工作时序波形图
步进电机的工作方式:
35BYJ011有四相ABCD,如果对各个相依次单独通电,"A-B-C-D",磁场旋转一周需要换相四次,则称为四相单四拍;如果每次对两相同时通电,"AB-BC-CD-DA",则称为四相双四拍;也可以每次对三相同时通电,"ABC-BCD-CDA-DAB";将单四拍和双四拍交替使用,就称为四相八拍,如:
"A-AB-B-BC-C-CD-D-DA"、"AB-ABC-BC-BCD-CD-CDA-DA-DAB",此时磁场旋转一周需要换相八次。
双四拍每次对多相同时通电,与单四拍比较起来,每相通电的时间长,消耗的电功率增大,电机所得到的电磁转矩也大。
同时,采用多相励磁会产生电磁阻尼,会削弱或消除振荡现象,使得电机不易产生失步。
四相八拍与四相四拍相比较,步距角减小了一倍,有利于削弱振荡,提高电机的带负载能力。
一般说来,步进电机控制系统需要以下部分,如图1所示。
其中的脉冲发生器用于产生频率变化的脉冲信号;脉冲分配器根据方向控制信号将脉冲信号转换成有一定逻辑关系的环形脉_冲;功率放大器将脉冲分配器输出的环形脉冲放大,用于控制步进电机的运转,这些部分都可以由专门的电路来实现。
图3
二、步进电机的驱动
步进电机的驱动方式很多,有单电压驱动、双电压驱动、斩波驱动、细分驱动和集成电路驱动。
由于集成电路集驱动和保护于一体,作为小功率步进电动机的专用驱动芯片,使用起来非常方便。
在实际应用中,我们可以选择L298N集成电路芯片作为35BYJ46的驱动芯片。
但本次实验我们采用的是自行设计的驱动电路。
3.2编写步进电机汇编程序
1、通过实验了解8255工作在方式0下的编程方法
8255可编程并行接口芯片介绍,8255可编程外围接口芯片是Intel公司生产的通用并行I/0接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0—基本输入/出方式;方式1—选通输入/出方式;方式2—双向选通工作方式,8255的内部结构及引脚如下图所示。
图48255的内部结构及引脚
8255工作方式控制字和C口按位置位/复位控制字格式如下图所示。
图5(a)工作方式控制字 (b)C口按位置位/复位控制字
四.硬件工作原理
4.1需要的器件
导线若干、学生实验箱、计算机、35BYJ011型四相八拍步进电机一个
4.2硬件电路
8255的片选
孔用导线接至译码处200H~207H插孔,8255的PA0-PA3用导线接至步进电机的A、B、C和D,PB0-PB3用导线接至开关K0、K1和K2。
图6用8255A端口控制步进电机电路框图
五.程序流图
图7程序流程图
六.总结与体会
通过这次试验,我熟悉了8255和步进电机的工作方式,了解了程序设计的流程,熟悉了用汇编语言控制硬件电路的方法。
通过对所学知识的综合运用来实现步进电机的控制原理,主要用到了汇编语言的寻址方式和指令系统,通汇编语言来编写程序源代码来实现步进电机的加速。
参考文献
[1]微型计算机原理实验指导书河北大学电子信息工程学院;
[2]王永山杨宏五杨婵娟。
微型计算机原理与应用(第二版)西安电子科技大学出版社;
[3]华成英、童诗白。
模拟电路技术基础(第四版)高等教育出版社。
附录
ASTEPEQU01H
BSTEPEQU02H
CSTEPEQU04H
DSTEPEQU08H
CODESEGMENT
ORG1000H
ASSUMECS:
CODE
START:
MOVDX,0FFDBH;8255控制口地址
MOVAL,82H;PA口输出,pB口输入
OUTDX,AL;写控制字
K0:
MOVDX,0FFD8H;PA口地址
MOVAL,0;输出低电平
OUTDX,AL;电机停止转动
MOVDX,0FFD9H;PB口地址
INAL,DX;读开关状态
TESTAL,01H;PB0位(K0=0吗?
)
JNZK1;不是零转K1
JMPSTEP8;是零转单/双八拍工作方式
K1:
MOVDX,0FFD8H;PA口地址
MOVAL,0;输出低电平
OUTDX,AL;电机停止转动
MOVDX,0FFD9H
INAL,DX;读开关状态
TESTAL,02H;PB1位(K1=0吗?
)
JNZK2;不是零转K2
JMPSTEP4;是零转双四拍工作方式
K2:
MOVDX,0FFD8H;PA口地址
MOVAL,0;输出低电平
OUTDX,AL;电机停止转动
MOVDX,0FFD9H
INAL,DX;读开关状态
TESTAL,04H;PB2位(K2=0吗?
)
JNZK0;是零转单四拍反转工作方式
JMPSTEP41;单/双八拍工作方式:
A→AB→B→BC→C→CD→D→DA→A
STEP8:
MOVBX,900H;设置初始延时时间
MOVDX,0FFD8H;PA口地址
MOVAL,CSTEP
OUTDX,AL
CALLDELAY
MOVAL,CSTEP+DSTEP
OUTDX,AL
CALLDELAY
MOVAL,BSTEP
OUTDX,AL
CALLDELAY
MOVAL,BSTEP+CSTEP
OUTDX,AL
CALLDELAY
MOVAL,DSTEP
OUTDX,AL
CALLDELAY
MOVAL,ASTEP+BSTEP
OUTDX,AL
CALLDELAY
MOVAL,ASTEP
OUTDX,AL
CALLDELAY
MOVAL,DSTEP+ASTEP
OUTDX,AL
CALLDELAY
JMPK0
;双四拍工作方式:
AB→BC→CD→DA→AB
STEP4:
MOVBX,3000H;设置延时时间
MOVDX,0ffd8H;PA口地址
MOVAL,ASTEP;PA0PA1(AB相)输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,BSTEP;BC输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,DSTEP;DA输出高电平
OUTDX,AL
CALLDELAY
MOVAL,CSTEP;CD输出高电平
OUTDX,AL
CALLDELAY;调延时
JMPK1
;单四拍反转工作方式:
D→C→B→A→D
STEP41:
MOVBX,4000H;设置延时时间
MOVDX,0ffd8H;PA口地址
MOVAL,ASTEP;PA0PA1(AB相)输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,BSTEP;BC输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,CSTEP;CD输出高电平
OUTDX,AL
CALLDELAY;调延时
MOVAL,DSTEP;DA输出高电平
OUTDX,AL
CALLDELAY;调延时
JMPK2
DELAYPROCNEAR;延时子程序
PUSHCX
MOVCX,BX
DD1:
NOP
LOOPDD1
POPCX
RET
DELAYENDP;延时子程序结束
CODEENDS;代码段结束
ENDSTART