基于单片机的交通灯控制系统设计 联系客服

发布时间 : 星期二 文章基于单片机的交通灯控制系统设计更新完毕开始阅读1019dcb453ea551810a6f524ccbff121dd36c593

开始 R2<-33 R3<-100

R4<-75 NOPNOP DJNZ R4 DJNZ R3 DJNZ R2 返回 图6 1秒延时子程序流程图

2.2.3 夜间模式子程序

系统在主程序中已经完成中断初始化,在正常模式下,其随时可通过中断0进入夜间模式,不受当时通行方向的影响。夜间模式中,交通灯每45秒改变一次通行方向,使得南北和东西交替通行。其流程图如图7。其程序为: YEJIAN: MOV R0,#00H ;夜间模式 MOV P2,R0 ;灯全灭

- 9 -

SETB P2.7 ; 南北绿灯亮 SETB P2.1 ;东西红灯亮 ACALL DISPLAY1 ;显示倒计时 ACALL FLASHN ;南北方向绿灯闪烁 CLR P2.7 ;南北绿灯灭 SETB P2.6 ;南北黄灯亮 ACALL DELAY2 ;短延时2 CLR P2.6 ;南北黄灯灭 CLR P2.1 ;东西红灯灭 SETB P2.3 ;东西绿灯亮 SETB P2.5 ;南北红灯亮 ACALL DISPLAY1 ;显示倒计时 ACALL FLASHS ;东西方向绿灯闪烁 CLR P2.3 ;东西绿灯灭 SETB P2.2 ;东西黄灯亮 ACALL DELAY2 ;短延时2 CLR P2.2 ;东西黄灯灭

LJMP YEJIAN

开始 外部中断0初始化 进入夜间工作状态 南北10秒倒计时显示 东西10秒倒计时显示

- 10 -

图7 夜间工作模式

2.2.4 绿灯闪烁子程序

每到同行方向转换时,绿灯闪烁,提醒司机注意通行方向的改变,避免不必要的危险。绿灯闪烁的程序分南北方向和东西方向,以南北方向为例,流程图如图8所示,其程序为: SETB P2.7

;南北方向绿灯闪烁子程序

;短延时1 ;灭南北方向绿灯 ;短延时1 ;循环3次 ;重装循环次数

ACALL DELAY1 CLR

P2.7

ACALL DELAY1 DJNZ MOV RET

R6,FLASHN R6,#3

开始 亮绿灯 延时 灭绿灯 R6<-R6-1 R6=0? 返回 图8 绿灯闪烁子程序流程图

2.2.5 显示倒计时子程序

通过LED显示器显示距离换向时间还剩多少,利于司机调整车辆状况,其程

- 11 -

序为:

DISPLAY:MOV R0,#44

MOV

R7,#45

;显示子程序

;循环次数 ;表地址送DPTR ;秒数送A ;查表

;查表得BCD送P1 ;秒数减一 ;延时一秒 ;循环 ;返回

L1: MOV

MOV MOVC MOV DEC

DPTR,#TABLE A,R0

A,@A+DPTR P1,A R0

ACALL DELAY DJNZ RET

R7,L1

此程序是通过循环查表来实现倒计时显示的,其流程图如图9所示:

开始 R0<-44 R7<-45 DPTR<-#TABLE 查表,把BCD码送P1 R0<-R0-1 延时1秒 R7<-R7-1 R7=0? 返回

- 12 -