還可以調速, 希望對妳有幫助.
REP:MOV R0,#0
;;;;;;按鍵判斷;;;;;;;;
LOOP:CALL ZHFA ;正反DPTR
CALL SPEED ;速度R1
JBC F0,OFFL ;無效/有效操作
MOV P0,P2 ;開提示燈
JMP NEXT
OFFL:MOV P0,#0FFH ;關閉指示燈
JMP LOOP
;;;;;;電機輸出;;;;;;;;
NEXT:CALL DELAY
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
CJNE R0,#4,LOOP
JMP REP
;;;;;;正反轉;;;;;;;;;;;
ZHFA:MOV A,P2
ORL A,#3FH
ZHE:CJNE A,#0BFH,FAN
MOV DPTR,#TAB1
JMP ZFOK
FAN:CJNE A,#7FH,STOP1
MOV DPTR,#TAB2
JMP ZFOK
STOP1:SETB F0
ZFOK:RET
;;;;;;;速度設置;;;;;;;;
SPEED:MOV A,P2
ORL A,#0C0H
SD1:CJNE A,#0FEH,SD2
MOV R1,#5
JMP SDOK
SD2:CJNE A,#0FDH,SD3
MOV R1,#45
JMP SDOK
SD3:CJNE A,#0FBH,SD4
MOV R1,#90
JMP SDOK
SD4:CJNE A,#0F7H,SD5
MOV R1,#135
JMP SDOK
SD5:CJNE A,#0EFH,SD6
MOV R1,#180
JMP SDOK
SD6:CJNE A,#0DFH,STOP2
MOV R1,#225
JMP SDOK
STOP2:SETB F0
SDOK:RET
;;;;;;延時子程序;;;;;;;
DELAY:MOV R4,#249
DL: NOP
NOP
DJNZ R4,DL
DJNZ R1,DELAY
RET
;;;;;;轉序表;;;;;;;;;;;;
TAB1:DB 03H,06H,0CH,09H
TAB2:DB 09H,0CH,06H,03H
END