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

📄 motor.asm

📁 步进马达.ASM
💻 ASM
字号:
         ORG     0000H
STOP:    ORL     P1, #0FFH              ; 步进马达停止
LOOP:    JNB     P2.0, FOR2             ; 是否按P2.0,是则正转
         JNB     P2.1, REV2             ; 是否按P2.1,是则逆转
         JNB     P2.2, STOP1            ; 是否按P2.2,是则停止
         JMP     LOOP
FOR:     MOV     R0, #00H               ; 正转至TABLE取码指针初值
FOR1:    MOV     A, R0                  ; 至TABLE取码
         MOV     DPTR, #TABLE
         MOVC    A, @A+DPTR
         JZ      FOR                    ; 是否取到结束码(00H)?
         CPL     A                      ; 将ACC反相
         MOV     P1, A                  ; 输出至P1,正转
         JNB     P2.2, STOP1            ; 是否按2.2,是则停止运行
         JNB     P2.1, REV2             ; 是否按2.1,是则逆转
         CALL    DELAY                  ; 步进马达转速
         INC     R0                     ; 取下一个码
         JMP     FOR1
REV:     MOV     R0, #05H               ; 逆转至TABLE取消指针初值
REV1:    MOV     A, R0                  ; 至TABLE取码
         MOV     DPTR, #TABLE
         MOVC    A, @A+DPTR
         JZ      REV                    ; 是否取到结束码(00H)?
         CPL     A                      ; 将ACC反相
         MOV     P1, A                  ; 输出至P1,逆转
         JNB     P2.2, STOP1            ; 是否按P2.2,是则停止运转
         JNB     P2.0, FOR2             ; 是否按P2.0,是则正转
         CALL    DELAY                  ; 步进马达转速
         INC     R0                     ; 取下一个码
         JMP     REV1
STOP1:   CALL    DELAY                  ; 按P2.2消除抖动
         JNB     P2.2, $                ; P2.2放开否
         CALL    DELAY                  ; 放开消除抖动
         JMP     STOP
FOR2:    CALL    DELAY                  ; 按P2.0消除抖动
         JNB     P2.0, $                ; P2.0放开否
         CALL    DELAY                  ; 放开消除抖动
         JMP     FOR
REV2:    CALL    DELAY                  ; 按P2.1消除抖动
         JNB     P2.1, $                ; P2.1放开否
         CALL    DELAY                  ; 放开消除抖动
         JMP     REV
DELAY:   MOV     R1, #40                ; 步进马达转速20ms
D1:      MOV     R2, #248
         DJNZ    R2, $
         DJNZ    R1, D1
         RET
TABLE:   DB 03H, 09H, 0CH, 06H          ; 正转
         DB 00                          ; 逆转结束码
         DB 03H, 06H, 0CH, 09H          ; 逆转
         DB 00                          ; 逆转结束码
         END
         
         

⌨️ 快捷键说明

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