ORG 0000H
AJMP MAIN
MAIN: MOV A,#020H ;PC5口置1,绿灯亮,不工作
MOV DPTR,#8002
MOVX @DPTR,A
LCALL DELAY
LOOP:MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#020H ;判断是否启动,若没启动则重新启动
JZ MAIN
MOV DPTR,#8002 ;判断工作模式;
MOVX A,@DPTR
ANL A,#01H
JNZ L1
MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#02H
JNZ L2
MOV DPTR,#8002
MOVX A,@DPTR
ANL A,#04H
JNZ A,L3
L1: MOV DPTR,#DONE1 ;跳转到方式1的控制模型
JMP LP2
L2: MOV DPTR,#DONE2 ;跳转到方式2的控制模型
JMP LP2
L3: MOV DPTR,#DONE3 ;跳转到方式3的控制模型
JMP LP2
LP2:MOV DPTR,#8000 ;读入PA口设定的步数到R2
MOVX A,#DPTR
MOV R0,A
LP3: MOV DPTR,#8002 ;判断PC4口(正反转口)是否为0,为0电机反转
MOVX A,#DPTR
ANL A,#010H
JZ LP5
MOV A,#080H ;PC4不为0,正转,红灯亮
MOV R1,#00H
LP4: MOV A,R1 ;P1口输出电机模型
MOVC A,@A+DPTR
JZ LP3
MOV P1,A
LCALL DELAY
INC R1 ;控制步数加1
DEC R0 ;剩余步数减1
LCALL LED ;LED显示剩余步数
DJNZ R0,LP4 ;步数未走完,继续
RET
LP5:MOV A,#040H ;PC4为0,反转,黄灯亮
MOV R1,A
AJMP LP4
DONE1:DB 01H,02H,04H,00H,01H,04H,02H,00H
DONE2:DB 03H,06H,05H,00H,03H,05H,06H,00H
DONE3:DB 01H,03H,02H,06H,04H,05H,00H,01H,05H,04H,06H,02H,03H,00H
DELAY: MOV R2,#0
DELAY0: MOV R4,DELAY0
RET
DISPLY:MOV A,#30H ;(显示输出参考课本P68)
MOV DPTR,#8001
MOV @DPTR,A
MOV R2,#30H ;显示缓冲区首地址送R2
MOV R3,#04H ;位选码指向最左一位,第三位
DISPY1: MOV A,@R ;取出要显示的数
MOV DPTR,#SEGTAB ;指向换吗表首址
MOVC A,@A+DPTR ;取出显示码
MOV DPTR,#8001 ;从B口输出显示码
MOV A,R3 ;从P1口输入位选码
MOV P1,A
LCALL DELAY
MOV A,R3
JNB ACCO,DISPY2
RET
DISPY2:INC R2 ;求下一位待显示的数的存放地址
MOV A,R3 ;求下一个位选码
RR A
MOV R3,A
AJMP DISPY1
DELAY: MOV R4,#20 ;延时程序
DELAY1: MOV R5,#0
DJNZ R5,DELAY1
DJNZ R4,DELAY1
RET
SEGTAB:
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;对应字符0 ~ F,8段管显示码
END
ULN2003,ULN2803都不能驱动2相4线步进电机(4相5线、4相6线、4相8线可以驱动)
ULN2003,只能向它灌入电流,输出为高阻态,zhi基本没输出电流。它一般用来吸收电流的。
比如数码管驱动,或者两相五线、两相六线的步进电机,这种步进电机有一个或两个公共端可以接电源正极,驱动电机,电流从其他各引线经过ULN2003流到地线上。通过控制ULN2003的输出状态来控制电机的节拍。
扩展资料:
ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLCULN2003芯片引脚图、数字量输出卡等控制电路中。可直接驱动继电器等负载。
输入5VTTL电平,输出可达500mA/50V。
ULN2003是高耐压、大电流达林顿系列,由七个硅NPN达林顿管组成。
该电路的特点如下: ULN2003的每一对达林顿都串联一个27K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
参考资料来源:百度百科-ULN2003
按照正常接线4个端口依次接A,A\,B,B\。
8拍实际上是这样的:A-AB-B-BA\-A\-A\B\-B\-B\A-A
这里面隐含了一个0的问题,就是比如第一拍A为1,则A\为0则AA\通电。BB\不通电。
第二拍A,B为1,则A\,B\为0AA\通电。BB\通电。依次类推,从而实现2细分,比如18度的电机就控制成09度的了。
扩展资料:
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机和驱动器的选择方法:
1 判断需多大力矩:静扭矩是选择步进电机的主要参数之一。负载大时,需采用大力矩电机。力矩指标大时,电机外形也大。
2 判断电机运转速度:转速要求高时,应选相电流较大、电感较小的电机,以增加功率输入。且在选择驱动器时采用较高供电电压。
3 选择电机的安装规格:如57、86、110等,主要与力矩要求有关。
4 确定定位精度和振动方面的要求情况:判断是否需细分,需多少细分。
5 根据电机的电流、细分和供电电压选择驱动器。
步进电机从其结构形式上可分为反应式步进电机(Variable Reluctance,VR)、永磁式步进电机Permanent Magnet,PM)、混合式步进电机(Hybrid Stepping,HS)、单相步进电机、平面步进电机等多种类型,在我国所采用的步进电机中以反应式步进电机为主。
步进电机的运行性能与控制方式有密切的关系,步进电机控制系统从其控制方式来看,可以分为以下三类:开环控制系统、闭环控制系统、半闭环控制系统。半闭环控制系统在实际应用中一般归类于开环或闭环系统中。
1 反应式:定子上有绕组、转子由软磁材料组成。结构简单、成本低、步距角小,可达12°、但动态性能差、效率低、发热大,可靠性难保证。
2 永磁式:永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为75°或15°)。
3 混合式:混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。其特点是输出力矩大、动态性能好,步距角小,但结构复杂、成本相对较高。
按定子上绕组来分,共有二相、三相和五相等系列。最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。
该种电机的基本步距角为18°/步,配上半步驱动器后,步距角减少为09°,配上细分驱动器后其步距角可细分达256倍(0007°/微步)。由于摩擦力和制造精度等原因,实际控制精度略低。同一步进电机可配不同细分的驱动器以改变精度和效果。
参考资料:
四相双级步进电动机(顾名思义就是4相,一般指8线的两相步进电机,非得有些人说四相)
四线双极性步进电机(就是指4线两相步进电机,因为两相步进电机6线是单极性步进电机)。
一个绕组只有两端的是双极性步进电机,如果绕组有中心抽头的是单极性电机。
一:线、相、极性
“相” 就是说明步进电机有几个线圈(也叫做绕组)。
线” 就是说明步进电机有几个接线口。
“极性” 分为 单极性 和 双极性。如果步进电机的线圈是可以双向导电的,那么这个步进电机就是双极性的,相反,如果步进电机的线圈是只允许单向导电的,那么这个步进电机就是单极性的。
上面的三个只要知道其中两个,就可以推断出第三个。
如:五线四相步进电机 就是有5个接线口,4个线圈。
由于有五个接线头,即接线头的个数是奇数个,也就是说有一个接线头是公共接头,所以它的线圈的导电方式就只允许是 单向的 ,即这个步进电机是单极性的。如下图:
四线双极性步进电机就是有4个接线口,导电方式是允许双向的。
二、步进电机的步进方式:单拍、双拍、单双拍
1、单拍:(单四拍工作方式)
单拍工作方式就是说每次只给一个线圈通电,通过改变每次通电的线圈从而使步进电机转动。
先说五线四相步进电机,假设它的四个线圈叫做 A、B、C、D,那么在单拍工作方式下,线圈的通电方式依次是:A、B、C、D;
注A、B指的是A、B线圈通正向电流,-A、-B指的是A、B线圈通反向电流。由于五线四相步进电机无法通反向电流,所以只有A、B、C、D。
2、双拍:(双四拍工作方式)
双拍工作方式就是:每次给两个线圈通电,通过改变通电的线圈从而使步进电机转动。
五线四相步进电机:在双拍工作方式下,线圈的通电方式依次是:AB、BC、CD、DA;
四线双极性步进电机,在双拍工作模式下,线圈的通电方式依次是:AB、B-A、-A-B、-BA;
3、单双拍(八拍工作方式)
单双拍工作方式就是单拍工作方式和双拍工作方式交替进行。
五线四相步进电机:A、AB、B、BC、C、CD、D、DA;
四线双极性步进电机:A、AB、B、B-A、-A、-A-B、-B、-BA;
四根线的步进电机应该是两相双极性的步进电机,它有A,B两个绕组。
A,B两个绕组,引出线端分别为A+、A-;B+、B-;
在运行中每个绕组的电流方向不是固定的,是改变的,这就是双极性的含意”。
激励状态改变一次走一步,四次完成一个循环,如果用→←表示电流方向。
则一个循环的激励过程如下:A+→A-;B+→B-;A+←A-;B+←B-。
/89C51控制步进电机c程序
使用89C51控制四相六线步进电机,
步进电机采用四相六线,步距角18度,半步工作09度八拍运行。
接口如下:
P15---启动信号输入
P14---停止信号输入
P13---接光电传感器
P20---输出控制步进电机的A相
P21---输出控制步进电机的B相
P22---输出控制步进电机的C相
P23---输出控制步进电机的D相
如下是我给步进电机八拍运行正向通电顺序:
P23(D相)、P22(C相)、P21(B相)、P20(A相)
第一步: 0 0 0 1
第二步: 0 0 1 1
第三步: 0 0 1 0
第四步: 0 1 1 0
第五步: 0 1 0 0
第六步: 1 1 0 0
第七步: 1 0 0 0
第八步: 1 0 0 1
使用光电传感器的输出作为脉冲信号,光电接收管的后面加一个三极管做信号放大。
光电传感器前有个齿盘,齿空的间隔距离是相等的,要求齿盘每移动一格,
光电传感器输出一个脉冲,步进电机移动一个角度09度。齿盘转动的速度不固定,
可能快也可能慢。步进电机没有转动之前,齿盘一直是转动的,
只有按下启动按钮步进电机才开始转动。
#include<reg52h>
#define uint unsigned int
#define uchar unsigned char
sbit START = P1^5;
sbit STOP = P1^4;
sbit COM = P1^3;
//电机接在低4位,接在其他位可修改数组。
uchar code lab[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
void Mdelay(uchar x)
{uchar j,k;
for(j=x;j>0;j--)
{
for(k=124;k>0;k--)
{;}
}
}
//步进程序,调用一次程序,移动一步,
//参数:方向,1为正转,0为反转。
void motormove(uchar dir)
{
static step=0;
P2&=0xf0;
if(dir)
{
if(step<=7)
{ P2|=lab[step++];}
else
{step=0;P2|=lab[step];}
}
else
{
if(step==0)
{P2|=lab[step];step=7;}
if(step>0)
{P2|=lab[step--];}
}
}
void main()
{
bit RUN=0;
while(1)
{
if(RUN==0)
{
if(!START) //读启动
{Mdelay(1);
if(!START)
{RUN=1;}
}
}
else
{
if(!COM) //读传感器,低电平移动步进电机
{motormove(1);}
if(!STOP) //读停止
{
Mdelay(1);
if(!STOP)
{RUN=0;}
}
}
}
}
以上就是关于步进电机步数控制系统设计(急)全部的内容,包括:步进电机步数控制系统设计(急)、用ULN2003怎么驱动两相四线步进电机请详细说明,谢谢!、2相4线步进电机怎么接线等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)