微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机控制步进电机正反转

单片机控制步进电机正反转

时间:11-18 来源:互联网 点击:

反转

K3BITP1.6

K4BITP1.7 ;步进电机停止转动

BEEPBITP3.7

;-------------------------------------------------------

ORG 0000H

LJMP MAIN

ORG 0030H

;-------------------------------------------------------

MAIN:

MOVSP,#60H

MOVP1,#0F0H ;关闭步进电机,键输入线置高

MAIN1:

JBK1,MAIN2

ACALLBEEP_BL ;步进电机正转

ACALLFFW

MAIN2:

JBK2,MAIN1

ACALLBEEP_BL ;步进电机反转

ACALLREV

JMPMAIN1

;------------------------正转-------------------------

FFW:

;MOV R3,#12 ;7.5度电机正转1圈共12个周期

MOVR3,#60 ;转5圈

FFW1:

MOV R0,#00H

FFW2:

JBK4,FFW3 ;终止步进电机运行

ACALLBEEP_BL

JMPFFW4

FFW3:

MOV P1,#0F0H

MOV A,R0

;MOV DPTR,#TABLE_F;选择工作方式

MOV DPTR,#TABLE1

MOVC A,@A+DPTR

MOV P1,A

LCALL DELAY

INC R0

CJNEA,#0FFH,FFW2

DJNZ R3,FFW1

FFW4:

MOV P1,#0F0H

RET

;---------------------------反转--------------------------

REV:

;MOV R3,#12 ;7.5度电机反转1圈共12个周期

MOVR3,#60 ;转5圈

REV1:

MOV R0,#00H

REV2:

JBK4,REV3;终止步进电机运行

ACALLBEEP_BL

JMPREV4

REV3:

MOV P1,#0F0H

MOV A,R0

; MOV DPTR,#TABLE_R ;选择工作方式

MOV DPTR,#TABLE2

MOVC A,@A+DPTR

MOV P1,A

CALL DELAY

INC R0

CJNEA,#0FFH,REV2

DJNZ R3,REV1

REV4:

MOV P1,#0F0H

RET

;-------------------------------------------------------

DELAY:

MOV R7,#40 ;步进电机的转速

DEL1:MOV R6,#248

DJNZ R6,$

DJNZ R7,DEL1

RET

;-------------------------------------------------------

DELAY1:

MOV R5,#20 ;2S 延时子程序

DEL2:

MOV R7,#200

DEL3:

MOV R6,#250

DJNZR6,$

DJNZR7,DEL3

DJNZR5,DEL2

RET

;-------------------------------------------------------

; 单双八拍工作方式

TABLE_F:;正转表

DB0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H

DB0FFH

TABLE_R:;反转表

DB0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H

DB0FFH

;-------------------------------------------------------

; 双四拍工作方式:

TABLE1:

DB 0F3H,0F6H,0FcH,0F9H;正转表

DB 0FFH;正转结束

TABLE2:

DB 0F9H,0FCH,0F6H,0F3H;反转表

DB 0FFH;反转结束

;--------------------------------------------------------

;蜂鸣器响一声子程序

;--------------------------------------------------------

BEEP_BL:

MOVR6,#100

BL1:

CALLDEX1

CPLBEEP

DJNZR6,BL1

RET

DEX1:

MOVR7,#180

DEX2:

NOP

DJNZR7,DEX2

RET

;---------------------------------------------------------

END

四相步进电机:

齿距角: Qz = 2π/ Z Z --- 转子的齿数

步距角---转子走一步所转过的角度

步距角: Qn = Qz/N = 2π/NZN --- 步进电机工作拍数

步进电机转速:

n = 60×f / N×Z (转/分); f =脉冲频率(Hz)

对于步距角为7.5度的步进电机而言:

Qn = 7.5度

Qz = Qn×N = 7.5×4=30度 (齿距角)

Z=2π/Qz = 360/30 = 12 (转子的齿数)

四相步进电机有三种运行状态:

1、步进电机为四相单四拍运行状态:

当电机绕组通电时序为A-B-C-D时为正转,通电时序为D-C-B-A时为反转。

N = 4

步距角: Qn = Qz/N = 2π/NZ =360/4*12=7.5°

则步进电机转一圈所需步进数: 360°/7.5°=48 (步进数)

2、步进电机为四相双四拍运行状态:

当电机绕组通电时序为AB-BC-CD-DA时为正转,通电时序为DA-CD-BC-AB时为反转。

N = 4

步距角: Qn = Qz/N = 2π/NZ =360/4*12=7.5°

则步进电机转一圈所需步进数: 360°/7.5°=48 (步进数)

3、步进电机为四相八拍运行状态。

当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时为正转,通电时序为DA-D-CD-C-BC-B-BA-A时为反转。

N = 8

步距角: Qn = Qz/N = 2π/NZ =360/8*12=3.75°

则步进电机转一圈所需步进数: 360°/3.75°=96 (步进数)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top