智能交通灯设计与实现.docx

上传人:b****6 文档编号:9254935 上传时间:2023-02-03 格式:DOCX 页数:19 大小:507.68KB
下载 相关 举报
智能交通灯设计与实现.docx_第1页
第1页 / 共19页
智能交通灯设计与实现.docx_第2页
第2页 / 共19页
智能交通灯设计与实现.docx_第3页
第3页 / 共19页
智能交通灯设计与实现.docx_第4页
第4页 / 共19页
智能交通灯设计与实现.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

智能交通灯设计与实现.docx

《智能交通灯设计与实现.docx》由会员分享,可在线阅读,更多相关《智能交通灯设计与实现.docx(19页珍藏版)》请在冰豆网上搜索。

智能交通灯设计与实现.docx

智能交通灯设计与实现

智能交通灯设计与实现

摘要:

智能交通信号灯指挥着人和各种车辆的安全通行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。

在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般均设有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行。

交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。

本文为了实现交通道路管理先进性和科学化,着重分析应用单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,利用Proteus软件对交通灯控制系统进行了仿真,仿真结果表明系统工作性能良好。

实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。

关键词:

交通信号灯单片机PROTEUS仿真

0技术指标

1)设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向能根据车流量大小自动调节通行时间,车流量大,通行时间长,车流量小,通行时间短。

2)每次绿灯变红灯时,要求黄灯先亮5S,才能变换运行车辆。

3)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。

4)同步设置人行横道红、绿灯指示。

5)考虑到特殊车辆情况,设置紧急转换开头。

1智能交通灯的方案选择

1)智能交通灯的研究现状

目前设计交通灯的方案有很多,包括应用CPLD和PLC设计实现交通信号灯控制器方法以及应用单片机实现对交通信号灯设计的方法。

目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色指示。

加上一个倒计时的显示计时器来控制行车。

对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:

1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。

2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

2)智能交通灯的设计方案及改进措施

针对道路交通拥挤,交叉路口经常出现拥堵的情况。

利用单片机控制技术.提出了软件和硬件设计方案及两点改进措施:

1、根据各道路路口车流量的大小自动调节通行时间。

2、考虑特殊车辆通行情况,设计紧急切换开关。

由于AT89S51单片机自单带有2计数器,6个中断源,能满足系统的设计要求。

用单片机设计不但设计简单,而且成本低,用其设计的交通灯也能够满足要求,所以本文采用单片机设计交通灯,系统构图如下图1所示:

图1系统结构框图

2智能交通灯方案的实现

根据设计任务和要求,可画出该控制器的原理框图,为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。

其中红灯(R)亮,表示禁止通行;黄灯(Y)亮,表示暂停;绿灯(G)亮,表示允许通行。

1)控制器的系统框图如图2所示

图2交通灯控制器系统框图

2)电路图

智能交通灯电路图如下图3所示。

图3智能交通灯电路图

3)智能交通灯系统的组成

交通灯系统由四部分组成:

车检测电路,信号灯电路,时间显示电路,紧急转换开关。

4)工作原理

Ⅰ、车检测电路

用来判断各方向车辆状况,比如:

20秒内可以通过的车辆为20辆,当20秒内南往北方向车辆通过车辆达不到20辆时,判断该方向为少车,当20秒内北往南方向车辆通过车辆也达不到20辆时,判断该方向也为少车,下一次通行仍为20秒,当20秒时间内南往北或北往南任意一个方向通过的车辆达20辆时证明该状态车辆较多,下一次该方向绿灯放行时间改为40秒,当40秒内通过的车辆数达45辆时车辆判断为拥挤,下一次绿灯放行时间改仍为40秒,当40秒车辆上通过车辆达不到45辆时,判断为少车,下次绿灯放行时间改为20秒,依此类推。

绿灯下限时间为20秒,上限值为40秒,初始时间为20秒。

这样检测,某次可能不准确,但下次肯定能弥补回来,累积计算是很准确的,这就是人们常说的“模糊控制”。

因为路上的车不可能突然增多,塞车都有一个累积过程。

这样控制可以把不断增多的车辆一步一步消化,虽然最后由于每个路口的绿灯放行时间延长而使等候的时间变长,但比塞车等候的时间短得多。

本系统的特点是成本低,控制准确。

十字路口车辆通行顺序如图4所示:

图4十字路口车辆通行顺序

由于南往北,北往南时间显示相同,所以只要一个方向多车,下次时间就要加长;东往西,西往东也一样,显示时间选择如下表1;

表1显示时间选择

车辆情况

本次该方向通行时间

下次该方向通行时间

本次该方向通行时间

本次该方向通行时间

南往北少车,北往南少车

20秒

20秒

40秒

20秒

南往北少车,北往南多车

20秒

40秒

40秒

40秒

南往北多车,北往南少车

20秒

40秒

40秒

40秒

南往北多车,北往南多车

20秒

40秒

40秒

40秒

东往西少车,西往东少车

20秒

20秒

40秒

20秒

东往西少车,西往东多车

20秒

40秒

40秒

40秒

东往西多车,西往东少车

20秒

40秒

40秒

40秒

东往西多车,西往东多车

20秒

40秒

40秒

40秒

Ⅱ、信号灯电路

信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图5。

每个路口的信号的的转换顺序为:

绿——>黄——>红绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。

红灯表示禁止通行。

绿灯的最短时间为20秒,最长时间为40秒,红红最短时间为25秒,最长时间为45秒,黄灯时间为5秒。

图5交通信号灯运行状态

Ⅲ、时间显示电路

在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。

由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图6所示;

图6数码管连接方法

Ⅳ、紧急转换开关电路

一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车通行状况,需要设计紧急通行开关,利用单片机中断来处理。

交通灯中的中断处理流程:

(1)现场保护和现场恢复:

有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。

(2)中断打开和中断关闭:

为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。

(3)中断服务程序:

有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:

即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。

(4)中断返回:

执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。

Ⅴ、交通灯的软件设计流程图

智能交通灯的软件设计流程图如图7所示:

图7交通灯的软件设计流程图

3智能交通灯方案仿真

图8交通灯仿真图

 

4智能交通灯电路板

图9智能交通灯电路板图

5结束语

智能控制交通系统实现是目前研究的方向,也已经取得不少成果,但传统的定时交通灯控制仍然在一些地方广泛应用,那是车流量不大,而且交通道路相对好的地方,传统的定时交通灯控制还是起到了一定的作用。

但随着社会的高速发展,城市化日益完善,车的数量必然增多,给交通的压力也增大,这时候,智能交通灯控制将会起到疏导交通,改善城市交通环境,推动城市化日益完善!

基于Proteus智能交通灯控制系统软件设计上有两个主要特点,一方面是本设计采用模糊控制方法实现交通的控制,由于模糊控制不需要建立被控对象精确的数学模型,特别适用于随机复杂的城市交通控制,因此以多变少为例子,在通行时间方面控制设置为20s→25s→40s→45s→20s为一个循环,根据车流量,合理分配了通行时间。

另一方面,设计应急转换开关,考虑紧急车通过时,譬如,急救车或消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

实验测试结果证明用本系统PIC单片机能完成交通灯控制过程,有效地疏导交通,提高了交通路口的通行能力.但功能还不够完善,比如交通灯红、黄、绿时间还不能按交通紧松完成手控调整,软件编写实现功能还不能很好控制硬件,本系统将增加更多功能,比如手控时间的调节,摄像机交通监控的控制,盲人通过时交通灯的控制等,使系统更加完善。

参考文献

[1]陈大钦主编《电子技术基础实验》高等教育出版社2004年

[2]陈梓城主编《电子技术实训》机械工业出版社2003年

[3]吴黎明主编《单片机原理及应用技术》科学出版社2003年

[4]李学海主编《标准80C51单片机基础教程》北京航空航天大学出版社2006年

[5]刘乐善主编《微型计算机接口技术及应用》华中科技大学出版社2004年

附录:

智能交通灯控制程序

ORG0000H

A_BITEQU20H;用于存放南北十位数

B_BITEQU21H;用于存放南北十位数

C_BITEQU22H;用于存放东西十位数

D_BITEQU23H;用于存放东西位数

TEMP1EQU24H;用于存放第一二南北状态要显示的时间

TEMP2EQU25H;用于存放第一二东西状态要显示的时间

TEMP3EQU26H;用于存放第三第四南北状态要显示的时间

TEMP4EQU27H;用于存放第三第四南北状态要显示的时间

LJMPMAIN

CLRP1.0

CLRP1.4;南北通行,东西禁止通行

CLRP1.6

CLRP2.3

MOVP1,#0FFH;清除先前状态

MOVP2,#0FFH

CLRP1.2

CLRP2.1

CLRP1.3;东西通行,南北禁止通行

CLRP1.5

ORG0100H;初始情况

MOVP1,#0FFH

MOVP2,#0FFH;灭所有灯

MOVTMOD,#55H;计数方式方式1

MOVTEMP1,#20;

MOVTEMP2,#25

MOVTEMP3,#25

STAR:

MOVP1,#0FFH

MOVP2,#0FFH;灭所有灯

MOVA,24H;将显示时间送A

CJNEA,#20,T40T;判断时间,选初始值

T20T:

;南北通行要显示的时间为20的计数器初始值

CLRTF0;清TF0

CLRTF1;清TF1

MOVTH1,#0FFH;送20秒时的初始值

MOVTH0,#0FFH

MOVTL0,#0FCH

LJMPTEMP20;跳到20秒

TEMP20:

;TEMP1=20情况

SETBTR0;开始计数

SETBTR1

CLRP1.2

CLRP2.1;南北通行,东西禁止通行

CLRP1.3

CLRP1.5

MOVTEMP1,#20;南北要显示的时间,

MOVTEMP2,#25;东西要显示的时间

STLOP:

ACALLDISPLAY1;调用显示

DECTEMP1;时间够一秒显示时间减1

DECTEMP2

MOVA,TEMP1

CJNEA,#0,NEXT;若显示时间不为0保持现在状态

LJMPSTAR2;若显示时间为0跳到第二状态

NEXT:

LJMPSTLOP

STAR2:

;状态1

SETBP1.2

CLRP1.1;南北黄灯,东西禁止通行

SETBP1.3

CLRP1.4

MOVTEMP1,#05;南北要显示的时间,

MOVTEMP2,#05;东西要显示的时间,

STLOP2:

ACALLDISPLAY1;调用显示

DECTEMP1;时间够一秒显示时间减1

DECTEMP2

CJNEA,#0,NEXT2;若显示时间不为0保持现在状态

JBTF1,T40;判断南北是否多车

JBTF0,T40;判断北南是否多车

MOVTEMP1,#20;少车下次显示时间为20秒

LJMPSTAR3;若显示时间为0跳到第三状态

NEXT2:

LJMPSTLOP2

SETBTR0;开始计数

SETBTR1

CLRP1.2

CLRP2.1;南北通行,东西禁止通行

CLRP1.3

CLRP1.5

MOVTEMP1,#20;南北要显示的时间,

MOVTEMP2,#25;东西要显示的时间

STLOP11:

ACALLDISPLAY1;调用显示

DECTEMP1;时间够一秒显示时间减1

DECTEMP2

MOVA,TEMP1

CJNEA,#0,NEXT11;若显示时间不为0保持现在状态

LJMPSTAR22;若显示时间为0跳到第二状态

NEXT11:

LJMPSTLOP11

STAR22:

;状态1

SETBP1.2

CLRP1.1;南北黄灯,东西禁止通行

SETBP1.3

CLRP1.4

MOVTEMP1,#05;南北要显示的时间,

MOVTEMP2,#05;东西要显示的时间,

STLOP22:

ACALLDISPLAY1;调用显示

DECTEMP1;时间够一秒显示时间减1

DECTEMP2

MOVA,TEMP1

CJNEA,#0,NEXT22;若显示时间不为0保持现在状态

LJMPSTAR3;若显示时间为0跳到第三状态

NEXT22:

LJMPSTLOP22

STAR3:

MOVA,26H

CJNEA,#25,T40T1;判断时间,选初始值

T20T1:

;南北通行要显示的时间为20的计数器初始值

CLRTF0;清溢出位

CLRTF1

MOVTH1,#0FFH;给初值

MOVTL1,#0FCH

MOVTH0,#0FFH

MOVTL0,#0FCH

LJMPTEMP320

CLRTF0;

CLRTF1

MOVTH1,#0FFH;给初值

MOVTL1,#0F8H

MOVTH0,#0FFH

MOVTL0,#0F8H

LJMPTEMP340

TEMP320:

;状态三

SETBTR1;南北停止计数

SETBTR0;东西开始计数

SETBP1.1;东西通行,南北禁止通行

CLRP1.0

SETBP1.1

CLRP1.0

SETBP1.5

CLRP1.6

SETBP2.1

CLRP2.3

MOVTEMP3,#25;南北要显示的时间,

MOVTEMP4,#20;东西要显示的时间,

STLOP33:

ACALLDISPLAY;调用显示

DECTEMP3;时间够一秒显示时间减1

DECTEMP4

MOVA,TEMP4

CJNEA,#0,NEXT33;若显示时间不为0保持现在状态

LJMPSTAR34;若显示时间为0跳到第四状态

NEXT33:

LJMPSTLOP33

STAR34:

;状态四

SETBP2.3

CLRP2.2

SETBP1.6;东西黄灯,南北禁止通行

CLRP1.5

MOVTEMP3,#05;南北要显示的时间,

MOVTEMP4,#05;东西要显示的时间,

STLOP34:

ACALLDISPLAY;调用显示

DECTEMP3;时间够一秒显示时间减1

DECTEMP4

MOVA,TEMP4

CJNEA,#0,NEXT34;若显示时间不为0保持现在状态

JBTF1,T402

JBTF0,T402

MOVTEMP3,#25

NEXT34:

LJMPSTLOP34

TEMP340:

SETBTR1;南北停止计数

SETBTR0;东西开始计数

SETBP1.1;东西通行,南北禁止通行

CLRP1.0

SETBP1.1

CLRP1.0

SETBP1.5

CLRP1.6

SETBP2.1

CLRP2.3

MOVTEMP3,#25;南北要显示的时间,

MOVTEMP4,#20;东西要显示的时间,

STLOP43:

ACALLDISPLAY;调用显示

DECTEMP3;时间够一秒显示时间减1

DECTEMP4

MOVA,TEMP4

CJNEA,#0,NEXT43;若显示时间不为0保持现在状态

LJMPSTAR44;若显示时间为0跳到第四状态

NEXT43:

LJMPSTLOP43

STAR44:

;状态四

SETBP2.3

CLRP2.2

SETBP1.6;东西黄灯,南北禁止通行

CLRP1.5

MOVTEMP3,#05;南北要显示的时间,

MOVTEMP4,#05;东西要显示的时间,

STLOP44:

ACALLDISPLAY;调用显示

DECTEMP3;时间够一秒显示时间减1

DECTEMP4

MOVA,TEMP3

CJNEA,#0,NEXT44;若显示时间不为0保持现在状态

JBTF1,T403

JBTF0,T403

MOVTEMP3,#25

LJMPSTAR

T403:

MOVTEMP3,#25

LJMPSTAR

NEXT44:

LJMPSTLOP44

;显示

DISPLAY1:

MOVA,TEMP1;将南北要显示的数存放到A

MOVB,#10;B=10

DIVAB;A除以B商存A,余数B

MOVB_BIT,A;将A放到20H

MOVA_BIT,B;将B放到21H

MOVA,TEMP2;将东西要显示的数存放到A

MOVB,#10;B=10

DIVAB;A除以B商存A,余数B

MOVC_BIT,A;将A放到22H

MOVD_BIT,B;将B放到23H

MOVDPTR,#NUMT;

MOVR0,#2;R0=2

DPL11:

MOVR1,#250;R1=250

DPLOP1:

MOVA,A_BIT;将南北要显示的10位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示南北10位数

CLRP2.7

ACALLD1MS;延时1MS

SETBP2.7;灭南北10位数

MOVA,B_BIT;将南北要显示的个位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示南北个位数

CLRP2.6

ACALLD1MS;延时1MS

SETBP2.6;灭南北个位数

MOVA,C_BIT;将东西要显示的10位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示东西10位数

CLRP2.5

ACALLD1MS;延时1MS

SETBP2.5;灭东西10位数

MOVA,D_BIT;将东西要显示的个位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示东西东西位数

CLRP2.4

ACALLD1MS;延时1MS

SETBP2.4;灭东西个位数

DJNZR1,DPLOP;循环扫描

DJNZR0,DPL1

RET;等待1秒返回

;显示

DISPLAY:

MOVA,TEMP3;将南北要显示的数存放到A

MOVB,#10;B=10

DIVAB;A除以B商存A,余数B

MOVB_BIT,A;将A放到20H

MOVA_BIT,B;将B放到21H

MOVA,TEMP4;将东西要显示的数存放到A

MOVB,#10;B=10

DIVAB;A除以B商存A,余数B

MOVC_BIT,A;将A放到22H

MOVD_BIT,B;将B放到23H

MOVDPTR,#NUMT;

MOVR0,#2;R0=2

DPL1:

MOVR1,#250;R1=250

DPLOP:

MOVA,A_BIT;将南北要显示的10位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示南北10位数

CLRP2.7

ACALLD1MS;延时1MS

SETBP2.7;灭南北10位数

MOVA,B_BIT;将南北要显示的个位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示南北个位数

CLRP2.6

ACALLD1MS;延时1MS

SETBP2.6;灭南北个位数

MOVA,C_BIT;将东西要显示的10位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示东西10位数

CLRP2.5

ACALLD1MS;延时1MS

SETBP2.5;灭东西10位数

MOVA,D_BIT;将东西要显示的个位数送A

MOVCA,@A+DPTR;查表

MOVP0,A;显示东西东西位数

CLRP2.4

ACALLD1MS;延时1MS

SETBP2.4;灭东西个位数

DJNZR1,DPLOP;循环扫描

DJNZR0,DPL1

RET;等待1秒返回

D1MS:

MOVR7,#250;1MS延时程序

DJNZR7,$

RET;1到10对应电路图数码管表

NUMT:

DB7EH,48H,67H,6BH,59H

DB3BH,3FH,68H,7FH,7B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1