步进电动机控制程序段

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《步进电动机控制程序段》
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,STA TE ;否则修正STATE=0
B ZZ
CCW
LACL STATE ;反转减1
SUB #1
SACL STATE
SUB #0FFFFH
BCND ZZ,NEQ ;STATE不小于0则跳转
SPLK #9,STA TE ;否则修正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
ADDC ZERO ;加进位
SACL ABSOLUTEH
BCND ALARM,C ;有进位则越界
B REL
CCW ;反转减一
SETC C ;清借位
LACL ABSOLUTEL
SUB #1
SACL ABSOLUTEL
LACL ABSOLUTEH
SUBB ZERO ;减借位
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 ;清进位标志
ADD #1
SACL ABSOLUTEL
LACL ABSOLUTEH
ADDC ZERO ;加进位
SACL ABSOLUTEH
BCND ALARM,C ;有进位则越界
B UP
CCW ;反转减一
SETC C ;清借位
LACL ABSOLUTEL
SUB #1
SACL ABSOLUTEL
LACL ABSOLUTEH
SUBB ZERO ;减借位
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 ;加速总步数没走完则跳转
LACC ABC,1 ;修改标志,指向恒速
SACL ABC
B QUIT
UP1
LACL STEP ;级步数减1
SUB #1
SACL STEP
BCND QUIT,NEQ ;级步数没走完则退出
LACL SPEEDN ;速度级数加1
ADD #1
SACL SPEEDN
MPY #K ;计算级步数
PAC
SACL STEP
LDP #0E8H
LACL T1PR
SUB #10 ;周期值减10
SACL T1PR
FSR ;除2
SACL CMPR1 ;送比较器
B QUIT
CONSTANT
BIT ABC,14
BCND DOWN,NTC ;不是恒速则跳转
LACL SPEEDCN ;恒速总步数减1
SUB #1
SACL SPEEDCN
BCND QUIT,NEQ ;恒速总步数没走完则退出
LACC 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
LACL T1PR
ADD #10 ;周期值加10
SACL T1PR
FSR ;除2
SACL CMPR1 ;送比较器QUIT ;退出
LDP #0
RET。

相关文档
最新文档