步进电机加速-匀速-减速运行程序(ASM)

电子制作

252人已加入

描述

步进电机加速-匀速-减速运行程序(ASM)

功能:

    步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速

方式运行直到步进电机停止转动。由K1键控制演示程序运行。步进电机模块上D1-D4可以指示工作状态。

 ;/******************************************************************/
 ;/*                                                               
 ;/* ME300B单片机开发系统演示程序 - 步进电机加减速运行程序          
 ;/*                                                                
 ;/* 步进电机启动时,转速由慢到快逐步加速。                         
 ;/* 步进电机匀速运行                                               
 ;/* 步进电机由快到慢逐步减速                                       
 ;/*                                                                                                  
 ;/* 网站: http://www.elecfans.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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分