网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  步进电动机控制程序段         ★★★ 【字体:
步进电动机控制程序段
作者: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,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      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条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号