abdain.asm

来自「我实验板带的实验程序」· 汇编 代码 · 共 73 行

ASM
73
字号
;步进电机正反快慢程序
org 00h
x1:mov r3,#48   ;一圈48步
start:mov r0,#00h   ;正转取码初值
start1:
mov p1,#0ffh    ;先停止
mov a,r0
mov dptr,#table
movc a,@a+dptr
jz start       ;是否到了结束码00?
cpl a
mov p1,a           ;输出运转
call delay          ;调用慢速的延时转动
inc r0              ;取码指针加1取下一个码
djnz r3,start1    ;是否走了48步?
mov r3,#48         ;是则重新设定48步
start2:
mov p1,#0ffh
 mov r0,#05       ;逆转的取码初值
start3:mov a,r0
mov dptr,#table
movc a,@a+dptr

jz start2
cpl a
mov p1,a
call delay2
inc r0
djnz r3,start3
jmp x1         ; 重复开始


  DELAY: ; 延时程序    (慢速)
MOV  R7,#255
D1:MOV R6,#50
D2: DJNZ R6,D2
DJNZ R7,D1
RET

 DELAY2: ; 延时程序   (快速)
MOV  R5,#255
D3:MOV R2,#25
D4: DJNZ R2,D4
DJNZ R5,D3
RET



table:
db 03h,09h,0ch,06h   ;正转表
db 00
db 06h,0ch,09h,03h   ;反转表
db 00
end


















⌨️ 快捷键说明

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