![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 步进电动机控制程序段 | |||||
作者:61IC 文章来源:本站原创 点击数: 更新时间:2007-1-17 ![]() |
|||||
|
《步进电动机控制程序段》 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, .word 2.《位置控制子程序》 POS LDP #0 BIT DIRECTION,15 ;检测转向 BCND CCW,NTC ;反转则跳转 CW ;正转加一 CLRC C ;清进位标志 LACL ABSOLUTEL ADD #1 SACL ABSOLUTEL LACL ABSOLUTEH 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 ;清进位标志 LACL ABSOLUTEL 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 LT 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 LDP #0E8H LACL T1PR ADD #10 ;周期值加10 SACL T1PR FSR ;除2 SACL CMPR1 ;送比较器 QUIT ;退出 LDP #0 RET |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|