📄 abdain.asm
字号:
;步进电机正反快慢程序
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -