设计一交通灯控制系统,控制东西方向的红、黄、绿灯和南北方向的红、黄、绿灯,可手动控制和自动控制,设置两个输入控制开关(可用P1.0、P1.1做输入控制),控制过程如下:
东西方向 南北方向
P1.0 P1.1 红 黄 绿 红 黄 绿
1 0 亮 亮 3S后亮
0 1 亮 3S后亮 亮
0 0 亮 亮
1 1 闪(亮1S灭1S) 闪(亮1S灭1S)
ORG 0000HAJMP MAINORG 000BHAJMP T0 ORG 0030HMAIN:MOV P1,#03H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 MOV R2,#30 MOV R3,#30 MOV R4,#50 MOV R5,#50 MOV R6,#10 MOV R7,#10 SETB TR0 SJMP $ ORG 0200H;进入定时器,首先判断情况T0:SETB P1.0 SETB P1.1 JB P1.0,AA ;每100ms判断一次情况 JNB P1.0,BBAA:JB P1.1,SHAN ;11 JNB P1.1,ZD2 ;01BB:JB P1.1,ZD1 ;10 JNB P1.1,HONG;00 SHAN:MOV TH0,#3CH;黄灯闪烁情况 MOV TL0,#0B0H CJNE R6,#00H,LOOP1 MOV P1,#01001011B;亮一秒 DJNZ R7,GORET1 MOV R6,#0AH GORETI:RETI LOOP1:MOV P1,#00000011B;灭一秒 DJNZ R6,GORET1 MOV R7,#0AH GORET1:RETI HONG:MOV TH0,#3CH ;红灯一直亮 MOV TL0,#0B0H MOV P1,#10010000B RETI ZD1:JB P1.4,ZD11 MOV TH0,#3CH;自动情况 MOV TL0,#0B0H CJNE R4,#00H,LOOP2 MOV P1,#10001001B;黄灯亮3秒 DJNZ R2,GORET2 MOV R4,#50 LJMP ZD11 LOOP2:MOV P1,#10000101B;红灯亮5秒 DJNZ R4,GORET2 MOV R2,#1EH GORET2:RETI ZD11:MOV TH0,#3CH ;自动情况11 MOV TL0,#0B0H CJNE R4,#00H,LOOP5 MOV P1,#01010001B;黄灯亮3秒 DJNZ R2,GORET3 MOV R4,#32H MOV P1,#10000110B AJMP ZD1 LOOP5:MOV P1,#00110001B;绿灯亮5秒 DJNZ R4,GORET3 MOV R2,#1EH GORET3:RETI ZD2:JB P1.7,ZD21 MOV TH0,#3CH ;自动情况2 MOV TL0,#0B0H CJNE R5,#00H,LOOP3 MOV P1,#01010010B;黄灯亮3秒 DJNZ R3,GORET4 MOV R5,#32H AJMP ZD21 LOOP3:MOV P1,#00110010B;绿灯亮5秒 DJNZ R5,GORET4 MOV R3,#1EH GORET4:RETI ZD21:MOV TH0,#3CH;自动情况 MOV TL0,#0B0H CJNE R5,#00H,LOOP6 MOV P1,#10001010B;黄灯亮3秒 DJNZ R3,GORET5 MOV R5,#32H MOV P1,#00110010B AJMP ZD2 LOOP6:MOV P1,#10000110B;红灯亮5秒 DJNZ R5,GORET5 MOV R3,#1EH GORET5:RETI