当前位置:文档之家› 微型计算机原理步进电机实验

微型计算机原理步进电机实验

微型计算机原理综合实验装题目:步进电机控制订线学院电子信息工程学院学科门类工学专业通信工程学号**********姓名孙姣指导教师侯顺艳2015年1 月7日目录一、实验目的………………………………………………..二、设计要求……………………………………………….三、设计原理……………………………………………….四、程序流程图……………………………………………五、程序源代码……………………………………………六、总结与体会……………………………………………. 参考文献…………………………………………………….一、实验目的1.1掌握微机原理程序设计方法,达到运用所学知识来应用于实践的目的;1.2培养学生查阅资料、使用工程设计标准、手册及编写设计技术的能力;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方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a. 单4拍b. 双4拍c. 八拍图2 步进电机工作时序波形图35BYJ46步进电机为四相八拍,其相序表如下:步序 PA3 PA2 PA1 PA0 对应A口输出值1 0 0 0 1 01H2 0 0 1 1 03H3 0 0 1 0 02H4 0 1 1 0 06H5 0 1 0 0 04H6 1 1 0 0 0CH7 1 0 0 0 08H8 1 0 0 1 09H步进电机的工作方式:35BYJ46 有四相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 所示。

其中的脉冲发生器用于产生频率变化的脉冲信号; 脉冲分配器根据方向控制信号将脉冲信号转换成有一定逻辑关系的环形脉_冲;功率放大器将脉冲分配器输出的环形脉冲放大,用于控制步进电机的运转,这些部分都可以由专门的电路来实现。

二、步进电机的驱动步进电机的驱动方式很多,有单电压驱动、双电压驱动、斩波驱动、细分驱动和集成电路驱动。

由于集成电路集驱动和保护于一体,作为小功率步进电动机的专用驱动芯片,使用起来非常方便。

在实际应用中, 我们可以选择L298N 集成电路芯片作为35BYJ46 的驱动芯片。

但本次实验我们采用的是自行设计的驱动电路。

3.2编写步进电机汇编程序1、通过实验了解8255工作在方式0下的编程方法8255可编程并行接口芯片介绍8255可编程外围接口芯片是Intel公司生产的通用并行I/0接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0—基本输入/出方式;方式1—选通输入/出方式;方式2—双向选通工作方式四、程序流程图本程序用8255的a口输出控制信息,经驱动电路实现对步进电机的速度和方向的控制。

程序中8255的地址段设置为200h~207h,控制键为0~9,正转速度分三档,分别由123控制;3为最高速度,反转速度分三档,分别由456控制,6为最高速度;78键为速度微调,分别在各档位速度的基础上小幅度调节速度的大小;0为停止键;9为退出键。

程序设计上用按键控制输出的延迟时间的大小来达到控制转速的目的。

程序流程图如下:五、实验程序ASTEP EQU 01H BSTEP EQU 02H CSTEP EQU 04H dstep EQU 08H CODE SEGMENT ORG 1000HASSUME CS:CODESTART :MOV DX,0FFDBH ;8255控制口地址MOV AL, 82H ;PA口输出,pB口输入OUT DX, AL ;写控制字K1:MOV DX, 0FFD8H ;PA口地址MOV AL,0 ;输出低电平OUT DX,AL ;电机停止转动MOV DX,0FFD9H ;PB口地址IN AL,DX ;读开关状态TEST AL,01H ;PB0位(K1=0吗?)JNZ K2 ;不是零转K2JMP ZHENGFAST ;是零转ZHENGFASTK2: MOV DX, 0FFD8H ;PA口地址MOV AL,0 ;输出低电平OUT DX,AL ;电机停止转动MOV DX,0FFD9HIN AL,DX ;读开关状态TEST AL,02H ;PB1位(K2=0吗?)JNZ K3 ;不是零转K3JMP FANFAST ;是零FANFASTK3: MOV DX, 0FFD8H ;PA口地址MOV AL,0 ;输出低电平OUT DX,AL ;电机停止转动MOV DX,0FFD9HIN AL,DX ;读开关状态TEST AL,08H ;PB2位(K3=0吗?)JNZ K4 ;不是零转K4JMP FANLOW ;是零转FANLOWK4: MOV DX, 0FFD8H ;PA口地址MOV AL,0 ;输出低电平OUT DX,AL ;电机停止转动MOV DX,0FFD9HIN AL,DX ;读开关状态TEST AL,04H ;PB2位(K3=0吗?) JNZ K1 ;是零转ZHENGKUAIJMP ZHENGLOWZHENGFAST:MOV BX,500H;设置初始延时时间 MOV DX, 0FFD8H;PA口地址MOV AL,CSTEPOUT DX,ALCALL DELAYMOV AL,CSTEP+DSTEPOUT DX,ALCALL DELAYMOV AL,BSTEPOUT DX,ALCALL DELAYMOV AL,BSTEP+CSTEPOUT DX,ALCALL DELAYMOV AL,DSTEPOUT DX,ALCALL DELAYMOV AL,ASTEP+BSTEPOUT DX,ALCALL DELAYMOV AL,ASTEPOUT DX,ALCALL DELAYMOV AL,DSTEP+ASTEPOUT DX,ALCALL DELAYJMP K1ZHENGLOW:MOV BX,1000H;设置延时时间MOV DX, 0FFD8H;PA口地址MOV AL,ASTEP+BSTEP;PA0PA1(AB相)输出高电平 OUT DX,ALCALL DELAY ;调延时MOV AL,ASTEP+DSTEP ;BC输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,CSTEP+DSTEP;CD输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,BSTEP+CSTEP;DA输出高电平OUT DX,ALCALL DELAY ;调延时JMP K1FANFAST:MOV BX,500H;设置延时时间MOV DX, 0FFD8H;PA口地址MOV AL,ASTEP+BSTEP;PA0PA1(AB相)输出高电平 OUT DX,ALCALL DELAY ;调延时MOV AL,BSTEP+CSTEP ;BC输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,DSTEP+CSTEP;DA输出高电平OUT DX,ALCALL DELAYMOV AL,ASTEP+DSTEP;CD输出高电平OUT DX,ALCALL DELAY ;调延时JMP K1FANLOW:MOV BX,1000H;设置延时时间MOV DX, 0FFD8H;PA口地址MOV AL,ASTEP+BSTEP;PA0PA1(AB相)输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,BSTEP+CSTEP ;BC输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,CSTEP+DSTEP;CD输出高电平OUT DX,ALCALL DELAY ;调延时MOV AL,DSTEP+ASTEP;DA输出高电平OUT DX,ALCALL DELAY ;调延时JMP K1DELAY PROC NEAR ;延时子程序PUSH CXMOV CX,BXDELAY1:NOPLOOP DELAY1POP CXRETDELAY ENDP ; 延时子程序结束CODE ENDS ;代码段结束END START六、总结与体会本次试验不仅实现了步机的转动,还可以通过控制开关实现步机顺时针旋转、逆时针旋转、加快速度的转动和减慢的转动,通过本次程序设计加深了8255的工作原理,对课本知识有了进一步的了解与认知,通过这次试验收获很大。

相关主题