📄 model.asm
字号:
;50步正转后反转50步[500ms],快速正转200步后中速反转80步循环回到50步正转
;****************************
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP DIANJI
ORG 0100H
MAIN: MOV TMOD,#001H ;选择1模式
MOV R2,#04CH ;为TH0高位 50ms溢出一次
MOV R3,#000H ;为低位TL0
MOV TH0,R2
MOV TL0,R3
SETB EA ;启动全局中断
SETB ET0 ;启动定时器0中断
SETB TR0 ;启动定时器0
MOV A,#00H
MOV R4,#00AH
MOV R5,#00H
MOV R6,#032H
MOV R7,#00H
MOV DPTR,#TAB1
AJMP $
;--------------------------------
;定时器0中断执行子程序
DIANJI:CLR ET0
CLR TR0
MOV TH0,R2
MOV TL0,R3
DJNZ R4,RETI_
MOV R4,#0AH
MOV A,R5
MOVC A,@A+DPTR
MOV P0,A
CPL P1.0
DJNZ R6,E4
CJNE R7,#00H,E0
MOV R6,#032H
MOV DPTR,#TAB2
INC R7
CJNE R7,#0FH,E4
E0: CJNE R7,#01H,E1
MOV R6,#0FFH
MOV DPTR,#TAB1 ;快速正转
MOV R2,#0FCH
MOV R3,#00AH
INC R7
CJNE R7,#0FH,E4
E1: CJNE R7,#02H,E2
MOV R6,#064H
MOV DPTR,#TAB2 ;中速反转
MOV R2,#0AFH
MOV R3,#000H
INC R7
CJNE R7,#0FH,E4
E2: MOV DPTR,#TAB1
MOV R6,#032H
MOV R2,#04CH
MOV R3,#000H ;正常正转
MOV R7,#00H
E4: INC R5
CJNE R5,#004H,RETI_
MOV R5,#00H
RETI_: SETB ET0
SETB TR0
RETI
;-------------------------------
;步进方向表
TAB1: DB 0F7H,0FDH,0FBH,0FEH ;正转
TAB2: DB 0FEH,0FBH,0FDH,0F7H ;反转
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -