MOV R2,#20 置100ms计数初值 DEC SECOND1 东西路口显示时间减1 DEC SECOND2 南北路口显示时间减1 LCALL DISPLAY
DJNZ R3,WAIT3 状态3维持2s MOV R2,#20 置50ms计数初值 MOV R3,#20 MOV SECOND1,#25 MOV SECOND2,#25 LCALL DISPLAY
WAIT4:LCALL STATE4 JNB TF0,WAIT4 CLR TF0
MOV TH0,#3CH MOV TL0,#0B0H
DJNZ R2,WAIT4 MOV R2,#20 DEC SECOND1 DEC SECOND2 LCALL DISPLAY
DJNZ R3,WAIT4 MOV R2,#5 MOV R3,#4 MOV R3,#3 MOV SECOND1,#25 MOV SECOND2,#25 LCALL DISPLAY
WAIT5:LCALL STATE5 JNB TF0,WAIT5 CLR TF0
红灯闪烁20s
东西路口计时显示初值25s 南北路口计时显示初值25s 调用状态4
查询100ms到否 恢复T0定时初值100ms 判断1s到否?未到继续状态4 置100ms计数初值 东西路口显示时间减1 南北路口显示时间减1 状态4维持2s 置50ms计数初值 红灯闪烁20s 绿灯闪烁3s
东西路口计时显示初值5s 南北路口计时显示初值25s 调用状态5
查询100ms到否 16
MOV TH0,#3CH 恢复T0定时初值100ms MOV TL0,#0B0H
DJNZ R4,WAIT5 判断200ms到否?未到继续状态5 CPLLED_G2 南北绿灯闪烁 MOV R4,#4 闪烁200ms
DJNZ R2,WAIT5 判断1s到否?未到继续状态5 MOV R2,#5 WAIT6:LCALL STATE6 JNB TF0,WAIT6 CLR TF0
MOV TH0,#3CH MOV TL0,#0B0H
DJNZ R2,WAIT6 MOV R2,#20 置100ms计数初值 东西路口显示时间减1 南北路口显示时间减1 状态5维持3s 置50ms计数初值 红灯闪烁2s
东西路口计时显示初值5s 南北路口计时显示初值5s 调用状态4
查询100ms到否 恢复T0定时初值100ms 判断1s到否?未到继续状态6 置100ms计数初值 东西路口显示时间减1 南北路口显示时间减1 状态6维持3s 状态1 东西路口路灯亮
DEC SECOND1 DEC SECOND2 LCALL DISPLAY
DJNZ R3,WAIT5 MOV R2,#20 MOV R3,#20 MOV SECOND1,#25 MOV SECOND2,#25 LCALL DISPLAY
DEC SECOND1 DEC SECOND2 LCALL DISPLAY
DJNZ R3,WAIT6 LJMP LOOP
STATE1: SETB LED_G1
17
CLR LED_Y1 CLR LED_R1 CLR LED_G2 CLR LED_Y2
SETB LED_R2 南北路口红灯亮 RET
STATE2: CLR LED_Y1 CLR LED_R1 CLR LED_G2 CLR LED_Y2
SETBLED_R2 RET
STATE3: CLR LED_G1 CLR LED_R1 CLR LED_G2 CLR LED_Y2
SETB LED_R2 SETB LED_Y1 RET
STATE4: CLR LED_G1 CLR LED_Y1
SETB LED_R1 SETB LED_G2 CLR LED_Y2 CLR LED_R2 RET
STATE5:
状态2 南北路口红灯亮 状态3 南北路口红灯亮 东西路口黄灯亮 状态4 东西路口红灯亮 南北路口绿灯亮
状态5
18
CLR LED_G1 CLR LED_R1
SETB LED_R1 东西路口红灯亮 CLR LED_Y2 CLR LED_R2 RET
STATE6: CLR LED_G1 CLR LED_Y1
SETB LED_R1 CLR LED_G2 CLR LED_R2
SETB LED_Y2 RET
DISPLAY: MOV A,SECOND1 MOV B,#10 DIV AB MOV DBUF+3,A MOV A,B MOV DBUF+2,A
MOV SECOND2 MOV B,#10 DIY AB MOV DBUF+1,A MOV A,B MOV DBUF,A MOV R0,#DBUF MOV R1,#TEMP MOV R7,#4
状态6 东西路口红灯亮 南北路口黄灯亮 数码显示 东西路口计时寄存器南北路口计时寄存器 19
DP10:MOV DPOTR,#LEDMAP MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC R0 INC R1 DJNZ R7,DP10 MOV R0,#TEMP MOV R1,#4 DP12:MOV R7,#8 MOV A,@R0 DP13:RLC A MOV P3.0,C CLR P3.1 SETB P3.1 DJNZ R7,DP13 INC R0 DJNZ R1,DP12 RET
LENMAP:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH ORG 0200H
INTO0:PUSH PSW PUSH ACC SETB LED_R1 SETB LED_R2 CLR LED_G1 CLR LED_Y1 CLR LED_G2 CLR LED_Y2
20
POP PSW POP ACC RETI END
21