图1是一个十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用A、B、C、P分别表示各主车道的左行车道、直行车道、右行车道以及人行道。用a、b、c、p分别表示左转、直行、右转和人行道的交通信号灯,如图2所示。
交通灯闪亮的过程:
路口1的车直行时的所有指示灯情况为:
3a3b2p绿3c红+4a4b4c 3p全红+1c 绿1a1b4p红+2c绿2a2b1p红
路口2的车直行时的所有指示灯情况为:
4a4b3p绿4c红+ 1a1b1c 4p全红+ 2c绿2a2b1p红+3c绿3a3b2p红
故路口3的车直行时的所有指示灯情况为:
1a1b4p绿1c红+ 2a2b2c 1p全红+3c绿 3a3b2p红+4c 绿4a4b3p红
故路口4的车直行时的所有指示灯情况为:
2a2b1p绿2c红+3c3a3b2p全红+4c绿4a4b3p红+1c绿1a1b4p红
图1:十字路口交通示意图
图2:十字路口通行顺序示意图
图3:十字路口交通指示灯示意图
图4:交通灯控制系统硬件框图
3、硬件设计
本系统硬件上采用AT89C52单片机和可编程并行接口芯片8155,分别控制图2所示的四个组合。AT89C52单片机具有MCS-51内核,片内有8KB Flash、256字节RAM、6个中断源、1个串行口、最高工作频率可达24MHz,完全可以满足本系统的需要 ;与其他控制方法相比,所用器件可以说是比较简单经济的。硬件框图如下:
电路原理图 [PDF]
4、软件流程图
图5:交通灯控制系统流程图
5、交通灯控制系统软件
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV SP,#60H
; LCALL DIR ;调用日期、时间显示子程序
LOOP:
MOV P1,#0FFH
LJMP TEST
LCALL ROAD1 ;路口1的车直行时各路口灯亮情况
LCALL DLY30s ;延时30秒
MOV P1,#0FFH ;恢复P1口高电平
LCALL RESET ;恢复8155各口为高电平
LCALL YELLOW1 ;路口1的车直行-->路口2的车直行黄灯亮情况
LCALL DLY5s ;延时5秒
LCALL RESET ;恢复8155各口为高电平
MOV P1,#0FFH ;恢复P1口
LCALL ROAD2 ;路口2的车直行时各路口灯亮情况
LCALL DLY30s ;延时30秒
LCALL RESET ;恢复8155A 、B口为高电?
MOV P1,#0FFH ;恢复P1口高电平
LCALL YELLOW2 ;路口2的车直行-->路口3的车直行黄灯亮情况
LCALL DLY5s ;延时5秒
LCALL RESET ;恢复8155A 、B口为高电?
MOV P1,#0FFH ;恢复P1口高电平
LCALL ROAD3 ;路口3的车直行时各路口灯亮情况
LCALL DLY30s ;延时30秒
LCALL RESET ;恢复8155A 、B口为高电?
MOV P1,#0FFH ;恢复P1口高电平
LCALL YELLOW3 ;路口3的车直行-->路口4的车直行黄灯亮情况
LCALL DLY5s ;延时5秒
LCALL RESET ;恢复8155各口为高电平
MOV P1,#0FFH ;恢复P1口高电平
LJMP TEST
LCALL ROAD4 ;路口4的车直行时各路口灯亮情况
LCALL DLY30s ;延时30秒
SETB P1.5 ;恢复P1.5高电平
SETB P1.4 ;恢复P1.4高电平
MOV DPTR,#0FFFFH ;恢复8155各口为高电平
LCALL YELLOW4 ;路口4的车直行-->路口1的车直行黄灯亮情况
LCALL DLY5s ;延时5秒
SETB P1.6 ;恢复P1.6高电平
SETB P1.3 ;恢复P1.3高电平
MOV DPTR,#0FFFFH ;恢复8155各口为高电平
LJMP LOOP
;路口1的车直行时各路口灯亮情况3a3b2p绿3c红+4a4b4c3p全红+1c绿1a1b4p红+2c绿2a2b1p红
ROAD1:
MOV DPTR,#7F00H ;置8155命令口地址;无关位为1)
MOV A,#03H ;A口、B口输出,A口、B口为基本输入输出方式
MOVX @DPTR,A ;写入工作方式控制字
INC DPTR ;指向A口
MOV A,#79H ;1a1b4p红1c绿2a2b1p红
MOVX @DPTR,A
INC DPTR ;指向B口
MOV A,#0E6H ;3a3b2p绿3c红4a4b3p红
MOVX @DPTR,A
MOV P1,#0DEH ;4c红2c绿
RET
6、结语
本系统结构简单,操作方便;可现自动控制,具有一定的智能性;对优化城市交通具有一定的意义。
本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。