我想问的是在26列“CPL 7”和32列“JB 7,STPSC”的7是什么意思?
还有延时程序DEL那里R5的赋值为#0,能实现1ms的延时吗?我总觉得那里是错的
以下是程序
ORG 0000H STRT: MOV SP,#6FH ;初始化 MOV 20H,#0 ;状态寄存器清零 MOV P1,#0F1H ;正转A相通电 MLP: MOV R7,#64H ;R7为步计数器,正转100步 MOV 42H,#0C8H ;42H为延时计数器 MLP0: MOV R6,42H ;调用延时200MS子程序 MLP9: LCALL DEL DJNZ R6,MLP9 DEC 42H LCALL STEPS ;调用步进子程序 DJNZ R7,MLP0 ;以上为加速程序 MOV R7,#64H ;以下为恒速程序 MLP1: MOV R6,42H MLPX: LCALL DEL DJNZ R6,MLPX LCALL STEPS DJNZ R7,MLP1 MOV R7,#64H ;以下为减速程序 MLP2: MOV R6,42H MLPY: LCALL DEL DJNZ R6,MLPY LCALL STEPS INC 42H DJNZ R7,MLP2 CPL 7 LJMP MLP STEPS:INC 20H ;正反转步进子程序 ANL 20H,#83H MOV A,20H ANL A,#3 JB 7,STPSC MOV DPTR,#FTAB SJMP STPW STPSC:MOV DPTR,#CTAB STPW: MOVC A,@A+DPTR MOV P1,A RET FTAB: DB 0F3H,0F6H,0FCH,0F9H CTAB: DB 79H,7cH,76H,73H DEL: MOV R5,#0 ;延时子程序 DEL0: DJNZ R5,DEL0 RET END |