📄 h22.asm
字号:
; step motor control
; ASM for MCS51
mode equ 082h
contrl equ 08003h
ctl equ 08000h
Astep equ 01h
Bstep equ 02h
Cstep equ 04h
Dstep equ 08h
dly_c equ 60h
org 0h
step:
mov a,#mode
mov dptr,#contrl
movx @dptr,a
mov dptr,#8002h
mov a,#0
movx @dptr,a
mov dly_c,#10h
jmp loop1
; 单/双八拍工作方式
loop:
mov dptr, #ctl
mov a,#Astep
movx @dptr,a
call delay
mov a,#Astep+Bstep
movx @dptr,a
call delay
mov a,#Bstep
movx @dptr,a
call delay
mov a,#Bstep+Cstep
movx @dptr,a
call delay
mov a,#Cstep
movx @dptr,a
call delay
mov a,#Cstep+Dstep
movx @dptr,a
call delay
mov a,#Dstep
movx @dptr,a
call delay
mov a,#Dstep+Astep
movx @dptr,a
call delay
mov a, dly_c
dec a ; 提高转速
cjne a,#1, nn1 ; 最快速度
inc a
nn1: mov dly_c,a
ljmp Loop
; 双四拍工作方式
loop1:
mov dptr,#ctl
mov a, #Astep+Bstep
movx @dptr,a
call delay
mov a, #Bstep+Cstep
movx @dptr,a
call delay
mov a, #Cstep+Dstep
movx @dptr,a
call delay
mov a, #Dstep+Astep
movx @dptr,a
call delay
mov a, dly_c
dec a
cjne a,#2, nn2
inc a
nn2: mov dly_c,a
jmp loop1
; 单四拍工作方式
loop2:
mov dptr,#ctl
mov a,#Dstep
movx @dptr,a
call delay
mov a,#Cstep
movx @dptr,a
call delay
mov a,#Bstep
movx @dptr,a
call delay
mov a,#Astep
movx @dptr,a
call delay
mov a, dly_c
dec a
cjne a,#3, nn3
inc a
nn3: mov dly_c,a
jmp loop2
delay:
mov r6,dly_c
dd1:
mov r7,#0
djnz r7,$
djnz r6,dd1
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -