ORG 00H
AJMP START
ORG 100H
START: MOV DPTR,#TAB1
MOV R0,#03H
MOV R4,#0
WAIT: MOV P1,R0 ;初始角度为0度
MOV P2,#0FFH
JNB P2.0,POS ;判断键盘
JNB P2.1,NEG
SJMP WAIT
POS: MOV A,R4 ;正转45度
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
AJMP KEY
NEG: MOV R4,#6 ;反转45度
MOV A,R4
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
AJMP KEY
KEY: MOV P2,#3H ;读键盘
JB P2.0,FZ1
CJNE R4,#7,LOOPZ ;是结束标志
MOV R4,#0FFH
LOOPZ: INC R4 ;地址加1
MOV A,R4
MOVC A,@A+DPTR
MOV P1,A ;输出控制脉冲
ACALL DELAY ;程序延时
AJMP KEY
FZ1: JB P2.1,KEY
CJNE R4,#0H,LOOPF ;是结束标志
MOV R4,#08H
LOOPF: DEC R4
MOV A,R4
MOVC A,@A+DPTR ;输出控制脉冲
MOV P1,A
ACALL DELAY ;程序延时
AJMP KEY
DELAY: MOV R6,#5
DD1: MOV R5,#80H
DD2: MOV R7,#0
DD3: DJNZ R7,DD3
DJNZ R5,DD2
DJNZ R6,DD1
RET
TAB1: DB 02H,06H,04H,0CH
DB 08H,09H,01H,03H ;正转模型
END