ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R4,#04H ;设置步进电动机运行方式为单四拍设置步进电动机运行方式为单四拍设置步进电动机运行方式为单四拍设置步进电动机运行方式为单四拍 LOOP: JNB P1.4,LOOP ;启动按钮是否按下启动按钮是否按下启动按钮是否按下启动按钮是否按下 JB P1.5,LOOP ;停止按钮是否按下停止按钮是否按下停止按钮是否按下停止按钮是否按下 JB P1.6,POS ;是否为正转是否为正转是否为正转是否为正转 AJMP NEG ;否则为反转否则为反转否则为反转否则为反转 POS: MOV DPTR,#TABLE1;正转正转正转正转 LOOP1:CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR JB P1.7,LOOP2 ;是否提速是否提速是否提速是否提速 MOV R5,#10 ACALL DELAY LOOP2:MOV R5,#1 ACALL DELAY DJNZ R4,LOOP1 AJMP MAIN NEG: MOV DPTR,#TABLE2;反转反转反转反转 LOOP3:CLR A MOVC A,@A+DPTR MOV P1,A INC DPTR JB P1.7,LOOP4 ;是否提速是否提速是否提速是否提速 MOV R5,#10 ACALL DELAY LOOP4:MOV R5,#1 ACALL DELAY DJNZ R4,LOOP3 AJMP MAIN TABLE1:DB 0FEH,0FDH,0FBH,0F7H TABLE2:DB 0FEH,0F7H,0FBH,0FDH DELAY:MOV R7,#200 NOP DEL1: MOV R6,#123 DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 ;延时延时延时延时[(123*2+1+1+2)*200+1+2]*4=50.001ms DJNZ R5,DELAY ;延时延时延时延时50*R4MS RET END