⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor-rise-fall.asm

📁 基于51的DS18B20_1Wire温度控制等C,ASM源程序
💻 ASM
字号:
;/******************************************************************/
;/*                                                                */
;/* ME500单片机开发系统演示程序 - 步进电机加减速运行               */
;/*                                                                */
;/* 步进电机启动时,转速由慢到快逐步加速。                         */
;/* 步进电机匀速运行                                               */
;/* 步进电机由快到慢逐步减速                                       */
;/*                                                                */
;/* 版本: V1.0 (2006/11/20)                                       */
;/* 作者: gguoqing (Email: gguoqing@willar.com)                   */
;/* 网站: www.willar.com(伟纳电子)  www.mcusj.com(伟纳单片机世界) */
;/* 邮箱: support@willar.com                                      */
;/*                                                                */
;/*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved */
;/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      */
;/*                                                                */
;/******************************************************************/

; 步进电机步进角为 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -