四相八拍工作程序
28BYJ-48 四相八拍 减速步进电机

步进电机低速转动时振动和噪声大是其固有的缺点,一般可采用以下方案来克服:
A.如步进电机正好工作在共振区,可通过改变减速比等机械传动避开共振区; B.采用带有细分功能的驱动器,这是最常用的、最简便的方法; C.换成步距角更小的步进电机,如三相或五相步进电机; D.换成交流伺服电机,几乎可以完全克服震动和噪声,但成本较高; E.在电机轴上加磁性阻尼器,市场上已有这种产品,但机械结构改变较大。
10.细分驱动器的细分数是否能代表精度?
步进电机的细分技术实质上是一种电子阻尼技术(请参考有关文献),其主 要目的是减弱或消除步进电机的低频振动,提高电机的运转精度只是细分技术的 一个附带功能。比如对于步进角为 1.8°的两相混合式步进电机,如果细分驱动
器的细分数设置为 4,那么电机的运转分辨率为每个脉冲 0.45°,电机的精度能 否达到或接近 0.45°,还取决于细分驱动器的细分电流控制精度等其它因素。 不同厂家的细分驱动器精度可能差别很大;细分数越大精度越难控制。
void delaynms(uint aa) {
uchar bb; while(aa--) {
for(bb=0;bb<115;bb++) {
; } }
//1ms 基准延时程序
}
void delay500us(void) {
int j; for(j=0;j<57;j++) {
; } }
void beep(void)
1/64 ,
//所以 N=64 时,步进电机主轴转一圈
while(1)
{
if(K1==0)
{
beep();
for(r=0;r<N;r++)
4_四相步进电机模块

四相步进电机模块四相步进电机模块有一个步进电机和外围驱动电路组成,模块的电源通过接口总线获得。
(1)步进电机的工作原理步进电机是纯粹的数字控制电动机。
它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源;此外步进电机的角位移与输入脉冲严格成正比,因此,当它转一转后,没有累计误差,具有良好的跟随性。
步进电机由定子和转子两部分组成。
以四相步进电机为例,定子上有四组相对的磁极,每对磁极缠有同一绕组,形成一相。
定子和转子上分布着大小、间距相同的多个小齿。
当步进电机某一相通电形成磁场后,在电磁力的作用下,转子被强行推动到最大磁导率(或最小磁阻)的位置。
本模块中使用的四相步进电机在八排工作方式时,走动5.625°角度需64步;一圈分为64个刻度,因而走动一圈需64×64步,即4096步。
另外必须按照一定的次序给每个相通电,才能正常完成四步一个齿距的动作。
相电压为12V,其它参数按电机型号,查阅相关资料,本模块使用电机型号为:28BYJ48型。
通电次序如下图所示:图3—61模块电路原理:图3—62步进电机有四根引出线。
步进电机接线插头的红色线对应模块电路板上5针插座标有1的一端,蓝色对应标有5的一端。
(2) 模块的测试方法CPU模块的P1.4接步进电机模块的A插孔,P1.5接B插孔,P1.6接C插孔,P1.7接D插孔。
运行测试参考程序STEP1.ASM,步进电机应顺时针转动。
说明该模块正常。
测试程序STEP1.ASM如下:CSEG AT 4000HLJMP STARTCSEG AT 4030HSTART: MOV P1,#0FFHNOPSTART1: MOV A, #60HMOV P1,ALCALL DEL0MOV A, #70HMOV P1,ALCALL DEL0MOV A, #30HMOV P1,ALCALL DEL0MOV A, #0B0HMOV P1,ALCALL DEL0MOV A, #90HMOV P1,ALCALL DEL0MOV A, #0D0HMOV P1,ALCALL DEL0MOV A, #0C0HMOV P1,ALCALL DEL0MOV A, #0E0HMOV P1,ALCALL DEL0LJMP START1DEL0: MOV R2, #03H DEL1: MOV R3, #07FHDJNZ R3, $DJNZ R2, DEL1RETEND。
四相步进电机工作原理

由 此 可 见 :电 机 的 位 置 和 速 度 由 导 电 次 数( 脉 冲 数 )和 频 率 成 一 一 对 应 关 系 。而 方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用 A-AB-B-BC -C-CA-A 这种导电状态,这样将原来每步 1/3 て改变为 1/6 て。甚至于通过二相电 流不同的组合,使其 1/3 て变为 1/12 て,1/24 て,这就是电机细分驱动的基本理论 依据。 不难推出:电机定子上有 m 相励磁绕阻,其轴线分别与转子齿轴线偏移 1/m, 2/m ……(m -1)/m ,1。并 且 导 电 按 一 定 的 相 序 电 机 就 能 正 反 转 被 控 制 —— 这 是 步 进 电 机 旋 转 的 物 理 条 件 。只 要 符 合 这 一 条 件 我 们 理 论 上 可 以 制 造 任 何 相 的 步 进 电 机 ,出 于 成 本等多方面考虑,市场上一般以二、三、四、五相为多。
2、旋转: 如 A 相通电,B,C 相不通电时,由于磁场作用,齿 1 与 A 对齐,(转子不受任 何力以下均同)。如 B 相通电,A,C 相不通电时,齿 2 应与 B 对齐,此时转子向右 移过 1/3 て,此时齿 3 与 C 偏移为 1/3 て,齿 4 与 A 偏移(て-1/3 て)=2/3 て。如 C 相通电,A,B 相不通电,齿 3 应与 C 对齐,此时转子又向右移过 1/3 て,此时齿 4 与 A 偏移为 1/3 て对齐。如 A 相通电,B,C 相不通电,齿 4 与 A 对齐,转子又向 右移过 1/3 て这样经过 A、B、C、A 分别通电状态,齿 4(即齿 1 前一齿)移到 A 相, 电机转子向右转过一个齿距,如果不断地按 A,B,C,A……通电,电机就每步(每 脉冲)1/3 て,向右旋转。如按 A,C,B,A……通电,电机就反转。
实验指导书(7)-步进电机控制

实验七步进电机控制一、实验目的1、掌握PLC功能指令的用法2、掌握用PLC控制步进电机的方法二、实验器材1. DICE-PLC01型可编程序控制器实验台/箱l台2. 编程电缆l根3. 连接导线若干三、实验内容及步骤1、步进电机的工作原理步进电也称为脉冲电机,它可以直接接收来自计算机的数字脉冲,使电机旋转过相应的角度。
步进电机在要求快速启停,精确定位的场合做为执行部件,得到了广泛采用。
四相步进电机的工作方式:*单相四拍工作方式,其电机控制绕组A、B、C、D相的正转通电顺序为:A→B→C→D→A;反转通电顺序为:A→D→C→B→A。
*四相八拍工作方式,正转的绕组通电顺序为:A→AB→B→BC→C→CD→D→DA→A;反向的通电顺序为:A→AD→D→DC→C→CB→B→BA→A。
*双四拍工作方式,正转的绕组通电顺序为:AB→BC→CD→DA→AB;反向的通电顺序为:AB→AD→DC→CB→BA。
步进电机有如下特点:给步进脉冲电机就转,不给步进脉冲电机就不转;步进脉冲的频率越高,步进电机转得越快;改变各相的通电方式,可以改变电机的运行方式;改变通电顺序,可以控制电机的正、反转。
2、设计要求(1)控制模块中的步进电机工作方式为四相八拍,电机的四相线圈分别用A、B、C、D表示,公共端已接地。
当电机正转时,其工作方式如下:A→AB→B→BC→C→CD→D→DA→A。
当电机反转时,其工作方式如下:A→-AD→D→DC→C→CB→B→BA→A。
设计程序,要求能控制步进电机正反转,并能控制它的转速。
(2)设置以下控制按钮:启动、停止按钮;正、反转控制按钮;快速、慢速控制按钮。
步进电机的脉冲可用逐位移位指令循环移位来实现,其脉冲频率可通过控制逐位移位指令的移位脉冲来调节,而移位脉冲可用两个定时器组合来完成,要改变脉冲频率,只要改变定时器设定值即可。
(3)程序运行后,首先选择正、反转按钮,然后选择快、慢速按钮,最后按下“启动”按钮,电机便会按照按钮的选择控制来工作。
(整理)四相步进电机原理图.

四相步进电机原理图本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。
1. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图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. 单四拍b. 双四 c八拍图2.步进电机工作时序波形图2.基于AT89C2051的步进电机驱动器系统电路原理步进电机驱动器系统电路原理如图3:图3 步进电机驱动器系统电路原理图AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。
使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。
图中L1为步进电机的一相绕组。
AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。
28BYJ-48步进电机

1212步进电机28BYJ-48介绍和驱动及编程28BYJ-48步进电机:步电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。
),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。
),八拍(A-AB-B-BC-C-CD-D-DA-A。
)红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。
由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下:橙 A黄B P1.2粉C P1.1蓝D P1.0十六制(P1口)P1.310 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 0 1 0x09顺序刚好相反所以可以定义旋转相序uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表C语言代码:#include<AT89X52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表sbit K1=P3^2; //反转按键sbit K2=P3^3; //正转按键sbit K3=P3^4; //停止按键sbit FMQ=P3^6; // 蜂鸣器void delaynms(uint aa){uchar bb;while(aa--){for(bb=0;bb<115;bb++) // 1ms基准延时程序{;}}}void delay500us(void) {int j;for(j=0;j<57;j++){;}}void beep(void){uchar t;for(t=0;t<100;t++){delay500us();FMQ=!FMQ; //产生脉冲}FMQ=1; //关闭蜂鸣器}void motor_ccw(void){uchar i,j;for(j=0;j<8;j++)//电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周 {if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CCW[i];delaynms(10); //调节转速}}}void motor_cw(void){uchar i,j;for(j=0;j<8;j++){if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CW[i];delaynms(2); //调节转速}}}void main(void){uchar r;uchar N=64; //因为步进电机是减速步进电机,减速比的1/64 ,//所以N=64时,步进电机主轴转一圈while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ccw(); //电机逆转if(K3==0){beep();break;}}}else if(K2==0){beep();for(r=0;r<N;r++) {motor_cw(); //电机反转if(K3==0){beep();break;}}}elseP1=0xf0; //电机停止}}附:步进电机小知识(转)1.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
步进电机_28BYJ-48介绍和驱动及c编程
步进电机28BYJ-48介绍和驱动及编程28BYJ-48步进电机:步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。
),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。
),八拍(A-AB-B-BC-C-CD-D-DA-A。
)红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口。
由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如下:橙黄粉蓝十六制(P1口)1 0 0 0 0x081 1 0 0 0x0c0 1 0 0 0x040 1 1 0 0x060 0 1 0 0x020 0 1 1 0x030 0 0 1 0x011 0 0 1 0x09顺序刚好相反所以可以定义旋转相序uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表C语言代码:#include<AT89X52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表sbit K1=P3^2; //反转按键sbit K2=P3^3; //正转按键sbit K3=P3^4; //停止按键sbit FMQ=P3^6; // 蜂鸣器void delaynms(uint aa){uchar bb;while(aa--){for(bb=0;bb<115;bb++) //1ms基准延时程序{;}}}void delay500us(void){int j;for(j=0;j<57;j++){;}}void beep(void){uchar t;for(t=0;t<100;t++){delay500us();FMQ=!FMQ; //产生脉冲 }FMQ=1; //关闭蜂鸣器}void motor_ccw(void){uchar i,j;for(j=0;j<8;j++) //电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周{if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CCW[i];delaynms(10); //调节转速}}}void motor_cw(void){uchar i,j;for(j=0;j<8;j++){if(K3==0){break; //如果K3按下,退出此循环}for(i=0;i<8;i++) //旋转45度{P1=CW[i];delaynms(2); //调节转速}}}void main(void){uchar r;uchar N=64; //因为步进电机是减速步进电机,减速比的1/64 , //所以N=64时,步进电机主轴转一圈while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ccw(); //电机逆转if(K3==0){beep();break;}}}else if(K2==0){beep();for(r=0;r<N;r++){motor_cw(); //电机反转if(K3==0){beep();break;}}}elseP1=0xf0; //电机停止}}附:步进电机小知识(转)1.什么是步进电机?步进电机是一种将电脉冲转化为角位移的执行机构。
四相步进电机原理图
四相步进电机原理图及其驱动器的软、硬件设计1. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图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. 单四拍b. 双四拍 c八拍图2.步进电机工作时序波形图2.基于AT89C2051的步进电机驱动器系统电路原理步进电机驱动器系统电路原理如图3:图3 步进电机驱动器系统电路原理图AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。
使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。
图中L1为步进电机的一相绕组。
AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。
4相步进电机的工作原理
1. 步进电机的工作原理 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图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. 单四拍 b. 双四拍 c八拍 51单片机驱动步进电机的方法。 驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!
该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 采用51驱动ULN2003的方法进行驱动。
ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。
四相步进电机环形脉冲分配的两种实现
• 160•以四相混合式步进电机为例,对比介绍了用软件和硬件方式实现步进电机环形脉冲分配,分析了两种不同实现方法的优缺点。
步进电机作为精密的执行元件,广泛应用于数字控制的各个领域,特别是在开环控制系统中,步进电机具有绝对优势。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而环行脉冲分配就是产生控制脉冲中心。
因此,环行脉冲分配的可靠性、精确度以及可变性控制对步进电机的控制显得尤为重要。
实现步进电机脉冲分配的方法主要有两种:一种是通过计算机软件采用查表和计算方法进行脉冲分配,简称软环分,另一种是硬环分,即采用硬件手段实现脉冲分配。
这两种方法在使用上都各有千秋,本文将以四相混合式步进电机为例,对这两种方法做些简单介绍。
图1 单片机与四相步进电机接线示意图1 软环分如图1所示,单片机与步进电机通过P0口相接,要实现系统的电机脉冲环分功能,则需要在内存ROM 中开辟一个区域存储环形分配器的输出状态表。
系统软件通过查表得到电机输出状态控制字,送至输出口。
例如,在程序存储器中,从2000H 开始存储电机的四相单四拍的状态表,从3000H 开始存储电机的四相双四拍的状态表,从4000H 开始存储电机的四相八拍的状态表,并且设定高电平导通,低电平截止,则不同地址的存储内容已经对应电机绕组导通状态如表1所示。
在系统软件中,设定一个字节R0作为状态计数器,并按正反转要求执行加1减1操作,在程序中,判断P1.0、P1.1、P1.2位状态,决定电机的运转方式,则对应正转程序为:调用延时子程序改变输出状态码的间隔时间就可改变X 向或Y向步进电动机的转速,程序如下:用软环分的方法充分利用计算机软件资源,降低硬件成本,尤其对多相电机的脉冲分配有更大的优点,但由于软环分占用计算机的运行时间,故会使插补周期增加,易影响步进电机的运行速度。
2 硬件环分硬件环形分配器是由数字逻辑电路设计而成,相对于软环分来说,硬环分提高了系统的灵活性和可靠性,使CPU 专职于控四相步进电机环形脉冲分配的两种实现南昌航空大学工程训练中心 曹清国南昌航空大学航空制造工程学院 肖 洁 候华腾表1 存储内容与电机绕组状态对应表地址内容状态地址内容状态地址内容状态四相单四拍2000H01H A 四相双四拍3000H 03H AB 四相八拍4000H 01H A 2001H 02H B 3001H 06H BC 4001H 03H AB 2002H04HC3002H0CHCD4002H 02H B 2003H08HD3003H09HDA4003H 06H BC 2004H01HA3004H03HAB4004H 04H C 2005H02H B 3005H 06H BC 4005H 0CH CD 2006H 04H C 3006H 0CH CD 4006H 08H D 2007H08HD3007H09HDA4007H09HDA制工作,而且专用芯片使用方便,接口简单,易于编程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000
LJMP START ORG 0100H START: LOOP: MOV P1,#00H ; 步进电机停止 ORL P1,#0E0H MOV A,P1 JB ACC.5,STOP ; 停止 JB ACC.6,FOR ; 正转 JB ACC.7,rev ; 反转 JMP LOOP ; FOR: MOV R0, #00H ; 正转到tab取码指针初值 for1: MOV A,R0 ; 取码 MOV DPTR,#TABLE ; MOVC A,@A+DPTR JZ LOOP ; 是否到了结束码00h CPL A ;把acc反向 MOV P1,A ;输出到p1开始正转 ACALL DELAY ;转动的速度 INC R0 ;取下一个码 JMP FOR1 ;继续正转 rev: MOV R0,#09H ;反转到tab取码指针初值 rev1: MOV A,R0 MOV DPTR,#TABLE ;取码 MOVC A,@A+DPTR JZ LOOP ;是否到了结束码00h CPL A ;把acc反向 MOV P1,A ;输出到p1开始反转 ACALL DELAY ;转动的速度 INC R0 ;取下一个码 JMP REV1 ;继续反转 stop:
MOV P1, #00H
JMP LOOP
DELAY: MOV R1,#150 ;步进电
机的转速20ms
D1: MOV R2,#248
DJNZ R2,$
DJNZ R1,D1
RET
TABLE:
db
01h,03h,04h,06h,04h,12h,08h,09h ;正转表
db 00 ;正转结束
db
01h,09h,08h,12h,04h,06h,04h,03h ;反转
db 00 ;反转结束
END