步进电机加速-匀速-减速运行程序(ASM)
功能:
步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速
方式运行直到步进电机停止转动。由K1键控制演示程序运行。步进电机模块上D1-D4可以指示工作状态。
;/******************************************************************/
;/*
;/* ME300B单片机开发系统演示程序 - 步进电机加减速运行程序
;/*
;/* 步进电机启动时,转速由慢到快逐步加速。
;/* 步进电机匀速运行
;/* 步进电机由快到慢逐步减速
;/*
;/* 网站: //www.obk20.com/ ;
;/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
;/*********************************************************/
; 步进电机步进角为 7.5度,一圈 360 度。
; 双四拍工作方式:
; AB-BC-CD-DA (即一个脉冲,转 7.5 度)
; 单双八拍工作方式:
; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)
;-------------------------------------------------------
; A组线圈对应 P1.0 (桔色)
; B组线圈对应 P1.1 (棕色)
; C组线圈对应 P1.2 (黄色)
; D组线圈对应 P1.3 (黑色)
;-------------------------------------------------------
RATE EQU 50H
BEEP BIT P3.7
K1 BIT P1.4
;-------------------------------------------------------
ORG 0000H
LJMP MAIN
ORG 0030H
;---------------- ---------正转-------------------------
MAIN:
MOV SP,#60H
MOV P1,#0F0H
MOV RATE,#10H
JB K1,$
ACALL BEEP_BL
;-------------------------------------------------------
;加速启动过程
;-------------------------------------------------------
FFW_RISE:
MOV R0,#00H
FFW1:
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW1
MOV R0,#00H
MOV A,RATE
DEC A
MOV RATE,A
CJNE A,#1,FFW1
;---------------------------------------------------
;匀速运行过程
;---------------------------------------------------
FFW_CONSTANT:
MOV R1,#0FFH
FFW2:
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW2
MOV R0,#00H
DJNZ R1,FFW2
;---------------------------------------------------
;减速停止过程
;---------------------------------------------------
FFW_FALL:
MOV R0,#00H
FFW3:
MOV A,R0
MOV DPTR,#TABLE_F ;选择工作方式
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
INC R0
JNZ FFW3
MOV R0,#00H
MOV A,RATE
INC A
MOV RATE,A
CJNE A,#10H,FFW3
JMP MAIN
;-------------------------------------------------------
; 延时子程序
;-------------------------------------------------------
DELAY:
MOV R5,RATE
DEL2:
MOV R7,#5
DEL3:
MOV R6,#250
DJNZ R6,$
DJNZ R7,DEL3
DJNZ R5,DEL2
RET
;-------------------------------------------------------
;蜂鸣器响一声子程序
;-------------------------------------------------------
BEEP_BL:
MOV R6,#100
BL1:
CALL DEX1
CPL BEEP
DJNZ R6,BL1
RET
DEX1:
MOV R7,#180
DEX2:
NOP
DJNZ R7,DEX2
RET
;-------------------------------------------------------
; 单双八拍工作方式
TABLE_F: ;正转表
DB 0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
DB 00
TABLE_R: ;反转表
DB 0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H
DB 00
;-------------------------------------------------------
; 双四拍工作方式:
TABLE1:
DB 03H,06H,0cH,09H ;正转表
DB 00 ;正转结束
TABLE2:
DB 09H,0CH,06H,03H ;反转表
DB 00 ;反转结束
;-------------------------------------------------------
END
评论
查看更多