📄 步进电动机控制程序段.txt
字号:
《步进电动机控制程序段》
1.《软件实现脉冲分配子程序》
COMMUTATION
LDP #0
BIT DIRECTION,15 ;判别转向
BCND CCW,NTC ;反转则跳转
CW
LACL STATE ;正转加1
ADD #1
SACL STATE
SUB #10
BCND ZZ,NEQ ;STATE没超过9则跳转
SPLK #0,STATE ;否则修正STATE=0
B ZZ
CCW
LACL STATE ;反转减1
SUB #1
SACL STATE
SUB #0FFFFH
BCND ZZ,NEQ ;STATE不小于0则跳转
SPLK #9,STATE ;否则修正STATE=9
ZZ LACL #ABC ;指向数据首地址
ADD STATE ;加偏移量
LDP #0E8H
TBLR ACTRA ;修改ACTRA
LDP #0
RET
ABC ;10个控制字
.WORD 000FH,003FH,003CH,00FCH,00F0H
.WORD 03F0H,03C0H,03C3H,0303H,030FH
2.《位置控制子程序》
POS
LDP #0
BIT DIRECTION,15 ;检测转向
BCND CCW,NTC ;反转则跳转
CW ;正转加一
CLRC C ;清进位标志
LACL ABSOLUTEL
ADD #1
SACL ABSOLUTEL
LACL ABSOLUTEH
ADDC #0 ;加进位
SACL ABSOLUTEH
BCND ALARM,C ;有进位则越界
B REL
CCW ;反转减一
SETC C ;清借位
LACL ABSOLUTEL
SUB #1
SACL ABSOLUTEL
LACL ABSOLUTEH
SUBB #0 ;减借位
SACL ABSOLUTEH
BCND ALARM,NC ;有借位则越界
REL
LACL RELATIVE ;步数减一
SUB #1
SACL RELATIVE
BCND QUIT,NEQ ;步数不等于0,退出
B STOP ;步数等于0,停机
ALARM
LDP #0E8H
LACL T1CON
AND #0FFBFH ;清TENABLE位
SACL T1CON ;停机
LDP #0
CALL BAOJING ;调报警子程序
STOP
LDP #0E8H
LACL T1CON
AND #0FFBFH ;清TENABLE位
SACL T1CON ;停机
QUIT
LDP #0
RET
3.《加减速子程序》
SPEED
LDP #0
BIT DIRECTION,15 ;检测转向
BCND CCW,NTC ;反转则跳转
CW ;正转加一
CLRC C ;清进位标志
LACL ABSOLUTEL
ADD #1
SACL ABSOLUTEL
LACL ABSOLUTEH
ADDC #0 ;加进位
SACL ABSOLUTEH
BCND ALARM,C ;有进位则越界
B UP
CCW ;反转减一
SETC C ;清借位
LACL ABSOLUTEL
SUB #1
SACL ABSOLUTEL
LACL ABSOLUTEH
SUBB #0 ;减借位
SACL ABSOLUTEH
BCND UP,C ;无借位则跳转
ALARM
LDP #0E8H
LACL T1CON
AND #0FFBFH ;清TENABLE位
SACL T1CON ;停机
LDP #0
ALARM1
CALL BAOJING ;调报警子程序
B ALARM1
UP
BIT ABC,15
BCND CONSTANT,NTC ;不是加速则跳转
LACL SPEEDUPN ;加速总步数减1
SUB #1
SACL SPEEDUPN
BCND UP1,NEQ ;加速总步数没走完则跳转
LACL ABC,1 ;修改标志,指向恒速
SACL ABC
B QUIT
UP1
LACL STEP ;级步数减1
SUB #1
SACL STEP
BCND QUIT,NEQ ;级步数没走完则退出
LACL SPEEDN ;速度级数加1
ADD #1
SACL SPEEDN
LT SPEEDN
MPY #K ;计算级步数
PAC
SACL STEP
LDP #0E8H
LACL T1PR
SUB #10 ;周期值减10
SACL T1PR
B QUIT
CONSTANT
BIT ABC,14
BCND DOWN,NTC ;不是恒速则跳转
LACL SPEEDCN ;恒速总步数减1
SUB #1
SACL SPEEDCN
BCND QUIT,NEQ ;恒速总步数没走完则退出
LACL ABC,1 ;修改标志,指向减速
SACL ABC
B DOWN2
DOWN
LACL SPEEDWN ;减速总步数减1
SUB #1
SACL SPEEDWN
BCND DOWN1,NEQ ;减速总步数没走完跳转
LDP #0E8H
LACL T1CON ;总步数走完停机
AND #0FFBFH ;清TENABLE位
SACL T1CON ;停机
B QUIT
DOWN1
LACL STEP ;级步数减1
SUB #1
SACL STEP
BCND QUIT,NEQ ;级步数没走完退出
DOWN2
LACL SPEEDN ;速度级数减1
SUB #1
SACL SPEEDN
LT SPEEDN ;计算级步数
MPY #K
PAC
SACL STEP
LDP #0E8H
LACL T1PR
ADD #10 ;周期值加10
SACL T1PR
QUIT ;退出
LDP #0
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -