
51单片步进电机控制原理与控制设计程序
51单片步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称vr)、永磁式步进电机(简称pm)和混合式步进电机(简称hb)。
51单片步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
51单片步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:
(1)控制换相顺序
通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为a-b-c-d,通电控制脉冲必须严格按照这一顺序分别控制a,b,c,d相的通断。
(2)控制步51单片进电机的转向
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
(3)控制51单片步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
程序在你的芯片里就够了,步进驱动器内置好转换程序,上面的开关啊按键啊都是为了配合不同的上位控制部分加入的。
上位机是大脑,步进驱动器和步进电机只是执行部分。
大脑中知道怎么走,该发什么样的指令,然后就是驱动器怎么设定搭配程序的指令就可以了
我刚刚做过一个步进电机的程序,里面含有步进电机的加速程序。都是自己编写的。程序如下:
RS EQU P10
RW EQU P12
E EQU P11
LCD EQU P2
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: NOP
C0: SETB P14
NOP
NOP
NOP
NOP
NOP
NOP
JB P14,C1
AJMP C0
;ACALL WRITE_1
C1: ACALL SET1_LCD
ACALL SHOW1
CLR P03
AJMP L2
;LCD初始化程序
SET1_LCD:
MOV R5,#01H ;清屏
ACALL WRITE_1
MOV R5,#3CH ;两行显示,510点矩阵
ACALL WRITE_1
MOV R5, #06H ;输入模式为移动光标
ACALL WRITE_1
MOV R5,#0CH ;显示开关控制
ACALL WRITE_1
MOV R5,#02H ;光标归位
ACALL WRITE_1
RET
SHOW1:
MOV DPTR,#TAB1
MOV R1,#00H
A1: MOV A,R1
MOVC A,@A+DPTR
MOV R6,A
LCALL WRITE_D
INC R1
CJNE R1,#0AH,A1
RET
SHOW2:
MOV DPTR,#TAB2
MOV R1,#00H
A2: MOV A,R1
MOVC A,@A+DPTR
MOV LCD,A
MOV R6,A
LCALL WRITE_D
INC R1
CJNE R1,#0AH,A2
RET
;写数据子程序
WRITE_D: SETB RS
CLR RW
MOV LCD,R6
CLR E
ACALL CHECK_BF
SETB E
RET
;写命令子程序
WRITE_1: CLR RS
CLR RW
MOV LCD,R5
CLR E
ACALL CHECK_BF
SETB E
RET
;判断是否忙碌子程序
CHECK_BF:
MOV LCD,#0FFH ;此时不接受外来指令
CLR RS ;RS=0,选择指令寄存器
SETB RW ;RW=1,选择读模式
CLR E ;E=0,禁止读/写LCM
;ACALL DELAY10MS
;延时1微秒
SETB E ;E=1,允许读/写LCM
JB LCD7,CHECK_BF ;忙碌循环等待
RET
DELAY10MS:
MOV R3,#0AH ;外循环10次
DL2: MOV R4,#0FAH ;内循环50次
DL1: NOP
NOP
DJNZ R4,DL1
DJNZ R3,DL2
RET
DELAY3S: MOV R3,#0FFH
DL3: MOV R4,#0FFH
DL5: MOV R5,#66H
DL6: DJNZ R5,DL6
DJNZ R4,DL5
DJNZ R3,DL3
RET
L2: MOV R1,#18H
L1: MOV R2,#82H
L0: MOV R3,#0C0H
L3: ACALL M2
SETB P13
JB P13,C2
SETB P15
JB P15,WBI1
DJNZ R3,L3
DJNZ R2,L0
DJNZ R1,L1 ;延时6秒
M20: MOV A,#036H
AJMP M0
C2: ACALL M4
;ACALL SET1_LCD
AJMP M9
M0:MOV R4,#10H ;电机加速时间参数
M12:SETB P05
ACALL M5
CLR P05
ACALL M5
DJNZ R4,M12
DEC A
CJNE A,#08H,M0
MOV A,#08H
AJMP M13 ;电机加速程序
RET
M5:MOV R7,A ;延时程序
M1: NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,M1
RET ;延时程序
M13:MOV R4,#0FFH ;电机加速时间参数
M14:SETB P05
ACALL M15
CLR P05
ACALL M15
SETB P05
DJNZ R4,M14
DEC A
CJNE A,#07H,M13
AJMP D0 ;电机加速程序
RET
WBI1: AJMP WBI
M15:MOV R7,A ;延时程序
M16:NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,M16
RET
D0: MOV R5,#2H
ACALL M4
D1: MOV R6,#083H
ACALL M4
D2: MOV R4,#0F0H
M6: ACALL M4
SETB P13
JB P13,C2
ACALL M4
SETB P15
JB P15,WBI
ACALL M4
DJNZ R4,M6
DJNZ R6,D2
ACALL M4
DJNZ R5,D1 ;延时18秒
AJMP L2 ;gaiguo
M4: SETB P05 ;电机稳定运行程序
ACALL M8
CLR P05
ACALL M8
SETB P05
RET
M8: MOV R7,#07H ;转速参数
M7: NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,M7
RET
M9: MOV A,#05H
M10:MOV R4,#02H ;电机减速时间参数
M17:SETB P05
ACALL M18
CLR P05
ACALL M18
DJNZ R4,M17
INC A
CJNE A,#0FFH,M10
;MOV A,#08H
AJMP M3 ;电机减速程序
RET
M18:MOV R7,A ;延时程序
M19:NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,M19
RET
WBI:MOV R5,#058H
N1: MOV R6,#55H
N2: MOV R7,#7DH
N3: ACALL M2
SETB P15
JB P15,WBI
DJNZ R7,N3
DJNZ R6,N2
DJNZ R5,N1
AJMP M20
M2: SETB P05
RET
M3: SETB P05
ACALL SET1_LCD
ACALL SHOW2
TAB1: DB 53H,79H,73H,74H,65H,6DH,5FH,4FH,4EH,5FH
TAB2: DB 53H,79H,73H,74H,65H,6DH,5FH,4FH,46H,46H
END
步进电机驱动器上的开关有D1、D2、D4-D6,其设置方法分别如下:
1、D1设置驱动程序发送脉冲的方式。 如果步进电机驱动器未发送脉冲来控制电机本身,则D1设置为OFF。 如果步进电机驱动器自身发出脉冲,则将D1设置为ON。
2、D2设置也是驱动程序发出脉冲的方式,但条件是D2设置仅在D1设置为OFF时才生效。
3、D4-D6设置步进电机的工作细分数,即步进电机旋转一圈所需的脉冲数。 细分越大,精度越高,但是产生误差越容易。
扩展资料:
步进电机驱动器的工作原理:
步进电机驱动器的原理由单极性直流电源供电。只要步进电动机的相绕组在适当的时机通电,步进电动机就可以逐步旋转。
步进电机不能直接连接到工频交流或直流电源,而必须使用特殊的驱动器。如图所示,它由脉冲发生控制单元,电源驱动单元和保护单元组成。驱动单元必须直接与驱动器耦合,并且也可以理解为微计算机控制器的电源接口。
工作频率由高压UH供电,以增加导电相绕组的电流前沿,并且在通过该前沿之后,使用低压UL来维持绕组的电流。这种效果还改善了驱动器的高频性能,并消除了对串联电阻Rs的需求,从而消除了额外的损耗。
以上就是关于单片机控制步进电动机的运动的原理及单片机程序全部的内容,包括:单片机控制步进电动机的运动的原理及单片机程序、步进电机驱动器需要烧写程序吗、89C51控制步进电机汇编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)