keyd.asm

来自「步进电机单片机源代码,用C51编写的,下载的快!」· 汇编 代码 · 共 62 行

ASM
62
字号
    ;步进电机控制程序p3.2正转,p1.2反转,p1.1停止  步进电机接p0.0 p0.1 p0.2 p0.3
; www.hseda.com

org 00h
stop: orl p0,#0ffh             ;  步进电机停止
loop:jnb p3.2,for2             ; 如果p3.2按下正转
         jnb p1.2,rev2         ; 如果p1.2按下反转
         jnb p1.1,stop1        ; 如果p1.1按下停止
         jmp loop              ;反复监测键盘
for: mov r0,#00h               ;正转到tab取码指针初值
for1:mov a,r0                  ;取码
         mov dptr,#table        ;
         movc a,@a+dptr
         jz for                 ;是否到了结束码00h
         cpl a                  ;把acc反向
         mov p0,a               ;输出到p0开始正转
         jnb p1.1,stop1         ;  如果p1.1按下停止
         jnb p1.2,rev2          ;  如果p1.2按下反转
         call delay             ;转动的速度
         inc r0                 ;取下一个码
         jmp for1               ;继续正转
rev:mov r0,#05h                 ;反转到tab取码指针初值
rev1:mov a,r0
         mov dptr,#table           ;取码
         movc a,@a+dptr
         jz rev                 ;是否到了结束码00h
         cpl a                  ;把acc反向
         mov p0,a               ;输出到p0开始反转
         jnb p1.1,stop1         ;  如果p1.1按下停止
         jnb p1.2,rev2          ;  如果p1.2按下反转
         call delay            ;转动的速度
         inc r0                 ;取下一个码
         jmp rev1               ;继续反转
stop1:call delay                ;  按p1.1的消除抖动
           jnb p1.1,$           ; p1.1放开否?
           call delay           ;放开消除抖动
           jmp stop

for2:call delay                 ;  按p3.2的消除抖动
          jnb p3.2,$            ; p3.2放开否?
          call delay            ;放开消除抖动
          jmp for

rev2:call delay                 ;  按p1.2的消除抖动
          jnb p1.2,$           ; p1.2放开否?
          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 + =
减小字号Ctrl + -
显示快捷键?