写出来了。写得不好,请高手修改、简化下,
TIME0:
PUSH ACC ;保护现场
PUSH PSW
PUSH DPH
PUSH DPL
MOV TH0,#00H ;定时器常数可以设置
ORL TL0,#0H
MOV 34H,#1000000B
MOV A,33H
CJNE A,#8,T1_13
AJMP T1_04
T1_13:
MOV A,34H
RR A
MOV ACC.7,20H.2
MOV 34H,A
MOV A,33H
CJNE A,#7,T1_12
AJMP T1_04
T1_12:
MOV A,34H
RR A
MOV ACC.7,20H.1
MOV 34H,A
MOV A,33H
CJNE A,#6,T1_11
AJMP T1_04
T1_11:
MOV A,34H
RR A
MOV 34H,A
MOV A,33H
CJNE A,#5,T1_10
AJMP T1_04
T1_10:
MOV A,34H
RR A
MOV 34H,A
MOV A,33H
CJNE A,#4,T1_09
AJMP T1_04
T1_09:
MOV A,34H
RR A
MOV 34H,A
MOV A,33H
CJNE A,#3,T1_08
AJMP T1_04
T1_08:
MOV A,34H
RR A
MOV 34H,A
MOV A,33H
CJNE A,#2,T1_07
AJMP T1_04
T1_07:
MOV A,34H
RR A
MOV 34H,A
MOV A,33H
CJNE A,#1,T1_06
AJMP T1_04
T1_06:
MOV A,34H
MOV A,#00000001B
MOV ACC.1,20H.1
MOV 34H,A
T1_04:
JB 20H.3,T1_03 ;确定正反
MOV A,34H
MOV 23H.7,ACC.0
MOV 23H.6,ACC.1
MOV 23H.5,ACC.2
MOV 23H.4,ACC.3
MOV 23H.3,ACC.4
MOV 23H.2,ACC.5
MOV 23H.1,ACC.6
MOV 23H.0,ACC.7
MOV A,23H
T1_03:
MOV A,34H
CPL A
MOV P1,A
DJNZ 30h,T1_02 ;移动时间可以设置
MOV 30H,#200
DJNZ 33H,T1_02 ;移动位
MOV 33H,#7
CPL 20H.3
T1_02:
DJNZ 31h,T1_01 ;浅红时间可以设置
MOV 31H,#2
CPL 20H.1
T1_01:
DJNZ 32h,ESCC ;暗红时间可以设置
MOV 32H,#4
CPL 20H.2
ESCC:
POP DPL
POP DPH
POP PSW
POP ACC
RETI ;中断退出 |