;程序功能:步进电机转速控制
MAIN: ; 主程序
ACALL Z_M ;调用正转子程序
ACALL F_M ;调用反转子程序
MOV R5,#250 ;将R5赋值250
ACALL DELAY ;调延时子程序
JMP MAIN ;跳至MAIN形成循环
Z_M: ;正转子程序
MOV R0, #20 ;重复20次
MOV A, #11001100B ;左移初始值
LOOP:MOV P0,A ;输出
MOV R5,#50 ;将延时计数器R5赋值50
ACALL DELAY ;调用延时子程序延时1秒
RL A ;左移
DJNZ R0, LOOP ;判断是否循环20次
RET ;子程序返回
F_M: ;反转子程序
MOV R1, #200 ;重复200次
MOV A, #00110011B ;右移初始值
LOOP1: MOV P0, A ; 输出
MOV R5, #5 ;将延时计数器R5赋值5
ACALL DELAY ;调用延时子程序延时0.1秒
RR A ;右移
DJNZ R1, LOOP1 ;判断是否循环200次
RET ;子程序返回
DELAY: ; 延时子程序
DLY1: MOV R6,#100
DLY2: MOV R7,#100
DJNZ R7,$
DJNZ R6, DLY2
DJNZ R5, DLY1
RET
END