📄 motorstem.asm
字号:
;File Name :Exp-29.asm
;learn how to operate the I/O ports
;get some knowledge of the rts.lib file
.mmregs
.global _main
.text
_main:
stm 100h,sp ;init pointer to 3000h
;***********************************************
;***********init pause data*********************
;***********************************************
stm 1000h,ar1 ;define the address
stm 03h,ar2 ;4 phase
stm 10h,ar5 ;sum rotate number
;st 0004h,*ar1+
st 000ch,*ar1+
;st 0008h,*ar1+
st 0009h,*ar1+
;st 0001h,*ar1+
st 0003h,*ar1+
;st 0002h,*ar1+
st 0006h,*ar1+
;***********************************************
;***********positive rotate*********************
;***********************************************
loopa3:
stm 10h,ar5 ;sum positive rotate number
loopa1:
stm 1000h,ar1
stm 03h,ar2
;********************************************
loopa2:
portw *ar1+,800bh
nop
nop
call delay
banz loopa2,*ar2-
;call delayb
banz loopa1,*ar5-
call delayb
;***********************************************
;***********reverse rotate**********************
;***********************************************
loopb3:
stm 20h,ar5;;sum reverse rotate number
loopb1:
stm 1003h,ar1
stm 03h,ar2
********************************************
loopb2:
portw *ar1-,800bh
nop
nop
call delay
banz loopb2,*ar2-
; call delayb
banz loopb1,*ar5-
*************************************************
call delayb
b _main
nop
nop
;*************************************************
**************pulse interval**********************
**************************************************
delay: ;delay延时控制正转或反转的转速
stm 500h,ar3
loop1:
stm 100h,ar4 ;(ar4中的值范围(50h--2000h))
loop2:
banz loop2,*ar4-
banz loop1,*ar3-
ret
nop
nop
**************************************************
************rotate interval***********************
**************************************************
delayb:
stm 400h,ar3 ;delayb延时控制正转与反转之间要停顿的时间
loop3:
stm 160h,ar4
loop4:
banz loop4,*ar4-
banz loop3,*ar3-
ret
nop
nop
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -