定时器控制流水灯的速度,但流水灯到边缘的时候,自动调整方向,先反方向继续流动
ORG 0000H
LJMP MIAN
ORG 000BH
LJMP T0_break
ORG 0200H
INIT:
MOV TMOD,#01H ;定时器0为方式1
;定时器0计时100us
MOV TL0,#0B0H
MOV TH0,#3CH
SETB ET0
;开启总中断
SETB EA
RET
MIAN:
LCALL INIT
ACALL PS0
LOOP:
JMP LOOP
PS0:
MOV R5,#0EFH
MOV R4,#0AH
MOV P2,#0FFH
CPL TR0
RET
T0_1:
RETI
Inv_C:
CPL C
LJMP D2
RET
T0_L:
RR A
MOV R5,A
CPL P1.5
RETI
T0_break:
;重新装载初始值
MOV TL0,#0B0H
MOV TH0,#3CH
;每10次流动一次
DJNZ R4,T0_1;
MOV R4,#0AH
MOV P2,R5;
MOV A,R5
;判断是否反向
JNB P2.7, Inv_C
JNB P2.0, InV_C
D2: JC T0_L
RL A
MOV R5,A
CPL P1.5
RETI
end
Thank for your reading!!!!