智能交通灯控制系统软件部分Word文档下载推荐.docx
- 文档编号:19898661
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:31
- 大小:412.84KB
智能交通灯控制系统软件部分Word文档下载推荐.docx
《智能交通灯控制系统软件部分Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能交通灯控制系统软件部分Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
STC89C52;
Trafficvolume;
Intelligenttrafficlight
1引言1
1.1交通灯的由来与发展1
1.2交通灯的功能与作用2
2总体设计方案2
2.1课题要求2
2.2硬件及软件方案3
2.2.1硬件方案3
2.2.2软件方案5
2.3基本原理7
3系统的程序设计8
3.1程序设计的工具8
3.2整体系统分析9
3.3总程序流程图11
3.4中断程序设计13
4、软件仿真结果分析及总结13
4.1仿真结果分析13
4.2仿真总结17
总结18
致谢19
附录120
附录228
智能交通灯控制系统
—软件部分
0813084******指导教师:
******教授
1引言
1.1交通灯的由来与发展
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;
另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
1.2交通灯的功能与作用
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
由于右转不需要跨路转弯,所以本设计的交通灯只设置左转通行灯,即在非紧急状态下所有车辆右行都不受限制。
2总体设计方案
2.1课题要求
由于现今阶段交通问题已经成为城市的重要问题,传统的交通灯控制系统僵化简单已不适用于今天城市的发展,所以一种带有车流量控制和多种特殊中断的智能交通灯系统的设计制作尤其重要。
智能交通灯控制系统模型采用单片机作为主控制器,用于双车道十字路口的车辆的交通管理,每个方向具有通行、等待禁行三种通行指示灯计时牌显示路口转换剩余时间,在出现紧急情况时可由交警手动实现全路口车辆禁行的状态,并且可对通行时间做出调整,可随时切换东西通行、南北通行两种状态。
最为重要的是改变传统的交通灯控制系统单调、简单的缺点,实现信号指示灯通行和禁行显示时间根据车流量的变化而变化,有效的解决传统交通灯的车流不平衡的问题。
2.2硬件及软件方案
2.2.1硬件方案
本设计采用标准STC89C52单片机作为控制器;
通行和禁行倒计时显示采用4位LED数码管,仿真时为了更形象地观察通行和禁行时间采用了4个2位LED数码管,其中南北两个并联,东西两个并联;
信号指示灯采用单色发光二极管;
LED显示采用动态扫描,以节省端口数;
特殊中断(紧急情况中断、时间设定中断)和南北通行状态、东西通行状态互换手动完成;
电源端口为USB,可连接至稳定的电源,方便快捷,适用范围广。
按以上系统框架设计,单片机端口资源刚好满足要求。
该系统具有电路简单,设计方便,显示亮度高,可靠性高等特点。
整个电路组成框图如图1所示。
图1采用LED动态扫描的交通灯控制系统
STC89C52的引脚图
图2单片机引脚图
2.2.2软件方案
本设计设计了时间设定、紧急状态、南北通行与东西通行选择三种特殊功能和南北车流量监测和东西车流量监测两种重要创意功能。
1、时间设定功能
时间设定功能是为自由设定通行时间设计的,使用外部中断0实现,当INT0(P3.2)端口输入低电平时中断程序执行,进入中断后,先关闭全局中断,此时可根据P3.6和P3.7调整绿灯通行时间,其中P3.6可以增加东西绿灯发亮时间,P3.7可以增加南北绿灯发亮时间。
当时间调节完毕时可按返回键(P3.0)开启全局中断并跳出时间设定。
2、紧急状态功能
紧急状态功能是为交通路口出现紧急状况时能及时停止交通运行,让特殊车辆通过设计的,由外部中断1控制来实现,当INT1(P3.3)端口输入低电平时中断程序执行,进入中断后,各路禁止通行,通行时间显示为0并关闭全局中断,计数器停止计数,按下返回键时,开启全局中断并返回到断点。
3、南北通行与东西通行选择功能
此功能为能自由切换南北与东西通行设计的,由按键扫描程序来实现,当P3.7口为低电平时从南北通行开始循环,当P3.6口为低电平时从东西通行开始循环。
4、南北车流量监测和东西车流量监测功能
此功能是本设计最为重要的功能,体现了交通控制的智能性,使得交通灯的通行时间能根据车流的大小进行自动变换,方案有三:
方案一:
空气管道检测技术
空气管道检测是接触式的检测方法,在高速公路主线的检测点拉一条空心的塑料管道并作固定,一端封闭,另一端连接计数器,当车辆经过塑料管道时,车轮压到空气管道,管内空气被挤压而触动计数器进行计算车流量的方法。
显然,该方法只能获取单一的车辆信息,且方法繁琐,寿命短,已经被磁感应检测等技术所取代
方案二:
超声波检测技术
超声波检测器是基于声波的传播和反射原理,通过对发射波和反射波的时差测量实现位移测量的设备。
由超声波发生器发射一束超声波,再接收从车辆或地面的反射波,根据反射波返回时间的差别,来判断有无车辆通过。
方案三:
红外检测技术
红外检测器是顶置式或路侧式的交通流检测器,一般采用反射式检测技术。
反射式检测探头由一个红外发光管和一个红外接收管组成。
由调制脉冲发生器产生调制脉冲,经红外探头向道路上辐射,当有车辆通过时,红外脉冲从车体反射回来,被接收管接收后经过解调、放大、整流滤波后输出一个检测信号送入单片机。
方案四:
设法直接使用闯红灯的红色警戒线
显然,方案一有方法繁琐、寿命短的缺点;
方案二和方案三由于信号衰减,以及马路噪声源较多的缘故稳定性和抗干扰性不好;
方案四最好,因为方案四不必安装多余的车辆检测硬件,从而减少开支,经济实用,而且当前技术已经非常成熟,因此本设计采用方案四。
2.3基本原理
由于本设计采用单片机STC89C52设计交通灯控制系统,用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输
出。
系统的总体框图如图3所示。
图3系统的总体框图
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中随时调用急停按键和时间调节中断。
车流量大小的判断方法为:
本次设计设定30秒内南往北通过车辆达不到15量时,判断该方向为少车,设定通行为30秒,当30秒时间内南往北或者北往南任意一个方向通过的车辆达到15辆及以上时证明该状态车辆较多,下一次该方向绿灯方形时间延长10秒,改为40秒,当40秒内通过车辆达到25辆时判断为拥挤,下一次绿灯放行时间仍为40秒,当40秒内通过车辆达不到25辆时判断为少车,下次绿灯放行时间改为30秒,依次类推。
这样检测,某次可能不准确,但下次肯定能补回来,累积计算是很准确的。
由于南往北、北往南显示时间相同,所以只要一个方向多车,下次时间就要加长。
东往西、西往东也一样,如图4所示。
3系统的程序设计
3.1程序设计的工具
硬件平台结构一旦确定,大的功能框架基本形成。
软件在硬件平台上构筑,完成各部分硬件的控制和协调。
系统功能是由软硬件共同实现的,因为软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。
因此,软件是本系统的灵魂。
软件采用模块化设计方法,不但易于编程和调试,也可减小软件故障率和提高软件的可靠性。
同时,对软件进行全面测试也是检验错误排除故障的重要手段。
这里我采用了常用的C语言编程来实现的。
1、编写及调试软件
用keil软件环境编写和修改程序,keil里面带有单片机89C52运行大多的库程序,方面快捷,通过编译可以生成后缀名为.hex的文件,此文件用于仿真和实物程序下载。
2、仿真软件
用proteus做模拟仿真,该软件是多功能的EDA软件,真正实现了虚拟物理原型的功能,在目标板没有制作或投产前,就可以对硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件的情况下,进行相应的程序设计和调试,也可由仿真电路图直接导出绘制成印制电路板(PCB)。
在本程序仿真的过程中使用的就是keil生成的.hex文件,将其导入单片机即可仿真。
3硬件电路程序下载软件
本设计使用的是STC-ISP-V4.80(串口)下载的程序(此处指的是上述.Hex文件),下载到硬件上后就可以演示软件控制下的硬件功能。
3.2整体系统分析
1、信号指示灯的真值表
交通信号灯的状态的变换是P1口赋值的不同表现出来的,指示灯不同状态的真值如表1所示。
表1信号指示灯真值表
灯类别
状态
SN-R
SN-Y
SN-G
WE-R
WE-Y
WE-G
LSN
LWE
SN直行
1
SN黄灯闪烁
SN左行
WE直行
WE黄灯闪烁
WE左行
2、共阳极数码管显示P0口赋值
表2共阳极数码管显示P0口赋值
数字
2
3
4
5
6
7
8
9
P1值
0xC0
0xF9
0xA4
0xB0
0x99
0x92
0x82
0xF8
0x80
0x90
2、交通灯基本功能的状态转换:
由于交通灯包含直行、左拐和黄灯闪烁,所以基本状态可以分为六种S1∽S6,状态之间的转换及条件如图5所示,其中车流量大小判断条件见工作原理。
3.3总程序流程图
智能交通灯控制系统要求车流量检测及倒计时的显示,程序包含了外部中断、定时器中断、按键扫描、车流量按键模拟等部分,在程序编写中中南北车流量检测计数使用的是计数器T1按键模拟,而东西车流量使用的是普通按键模拟。
笔者把主状态绘成流程图以便理解,流程图如图6所示。
图6总程序流程图
3.4中断程序设计
中断是分优先级的,本程序的紧急中断和时间设定中断优先级是最高的,当响应这两个中断程序的时候CPU关闭全局中断EA=0,当中断程序执行完毕时开启全局中断令EA=1;
而定时器中断优先级列在紧急中断和时间设定中断之后,所以在紧急中断和时间设定中断程序执行时数码管是不计时的,中断执行过程如图7所示;
键盘扫描是实时刷新的,而且每个按键都写有去抖动程序以免产生不必要的仿真和实物演示结果紊乱。
图7中断执行过程
4、软件仿真结果分析及总结
4.1仿真结果分析
1、初始状态南设定北通行30s,初始状态南北设定通行30s,因为
东西禁行时间=南北通行时间+黄灯闪烁时间5s+南北左行时间10s
所以东西禁行时间为45s,在没有其他操作的情况下仿真效果图就如图8所示.
图8初始状态/车流量较小显示仿真效果图
2、在没有任何操作的情况下,南北绿灯通行时间显示完毕后南北黄灯闪烁五秒,东西禁行时间=南北左行时间10s+黄灯闪烁时间5s,
所以东西禁行的时间为15s,仿真效果图就如图9所示.
图9黄灯闪烁效果图
3、在没有其他操作的情况下南北黄灯闪烁后南北左转绿灯亮且通行时间为10s,东西禁行时间和南北左行时间相同,仿真图如图10所示。
图10南北左行10s
4、当南北左行结束后,程序就进入了东西直行的状态,然后是东西黄灯闪烁5s,再者是东西左行10s,最后又转到了南北直行,这种情况与南北状况类似此处不再赘述。
5、如果在前一次南北绿灯通行时间为30s,手动按下开关,频率小于15次/分(说明车流量基本无变化)或者前一次通行时间为40s,手动按下开关,频率小于25次/分(说明车流量在减少),则执行状态如图7所示。
如果在前一次南北绿灯通行时间为30s,手动按下开关,频率小于15次/分(说明车流量在增大)或者前一次通行时间为40s,手动按下开关,频率大于25次/分(说明车流量在增大),则执行状态如图11所示。
图11车流量较大仿真效果图
6、当系统处在东西通行的状态时仿真结果与南北仿真结果类似,此处不再赘述。
4.2仿真总结
这次仿真很好的实现了课题任务的要求,通过这次仿真发现和解决了很多问题,例如,在调试过程中还是遇到了硬件电路图布局不合理,按键抖动的现象,不过通过调整布局电路图趋于规范合理,通过增加去抖动函数显示也稳定了很多。
总结
本系统以STC89C52单片机为核心,程序是有C语言实现,用keil软件进行编译,可大大加快调试进度。
设计的交通灯可用于十字路口的车流量控制车辆的交通管理,显示采用8数码管,可以直观的显示红绿灯的开放和关闭的时间;
交通灯的通行时间可根据大中小城市进行更改。
南北通行时间相同,东西通行时间相同,不能单独控制。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
通过这次毕业设计,我不仅将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
在整个毕业设计过程中,我花费了大量的时间和精力,更重要的是,我在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。
我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。
在此,忠心感谢老师以及许多同学的指导和支持。
我会继续努力的学习,大胆创新,使自己得到更大的提升。
※※※※※
致谢
四年的学习生活即将结束,回顾这四年来的学习生活,感受颇深,最重要的是收获丰厚。
在论文的写作过程中,有很多困难,无论是在开始的理论学习阶段,还是在论文的选题、资料查询、开题、研究和撰写的每一个环节,都没有离开过老师的指导和同学的帮助。
借此机会我向导师和授课老师表示衷心的感谢!
同时,我要感谢各位帮助我的同学,感谢他们给予我的帮助,他们为我撰写论文提供了不少建议和帮助。
再次感谢我的指导老师,谢谢您的教诲,我将终生不忘。
四年的大学生活,也感谢我的家人和那些永远也不能忘记的朋友,他们的支持与情感,是我永远的财富。
参考文献
1、单片机原理及接口技术梅丽凤、王艳秋等著清华大学出版社、北京交通大学出版社
2、8051单片机C语言程序设计与实例解析刘海涛等著清华大学出版社
3、C51单片机及应用系统系统设计徐煜明著电子工业出版社
4、单片机语言C51典型应用设计刘文涛著人民邮电出版社
5、C程序设计谭浩强著清华大学出版社
6、基于Proteus单片机设计与仿真侯玉宝等著电子工业出版社
附录1
交通控制系统的程序如下:
#include<
REG52.H>
#defineucharunsignedchar/*定义字符串类型为无符号型*/
ucharcodea[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/*数码管显示单位*/
ucharcodeb[4]={0xF4,0xF8,0xF1,0xF2};
/*P2口,低有效,数码管选通*/
ucharcodec[6]={0xF3,0xF5,0xB6,0xDE,0xEE,0x76};
/*P1口,低有效*/
charSN2=45,WE2=30,SN=30,WE=45,SN1=30,WE1=45;
//定义变量
charSN_G=30,WE_G=30,Y=5;
charLSN=0,LWE=0,m=0,n=0;
uchari,k=0,count=0;
voiddelay(uchart);
/*定义延时函数*/
voidlight();
/*定义交通灯闪烁函数*/
voidled();
/*定义数码管显示函数*/
voidcount1();
//计算下次南北车流量
voidcount2();
//计算下次东西车流量
voidflow1();
//监测南北车流量
voidflow2();
//监测东西车流量
//定义按键
sbitK0=P3^7;
/*开关K0接P3^7管脚*/
sbitK1=P3^6;
/*开关K1接P3^6管脚*/
sbitK2=P3^3;
/*开关K2接P3^3管脚*/
sbitK3=P3^5;
/*开关K3接P3^5管脚*/
sbitK4=P3^2;
/*开关K4接P3^2管脚*/
sbitK5=P3^4;
/*开关K5接P3^4管脚*
sbitK6=P3^1;
/*开关K5接P3^1管脚*/
sbitK7=P3^0;
sbitK8=P2^7;
/*开关K5接P2^7管脚*/
/*程序初始化*/
voidinit(void)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 交通灯 控制系统 软件 部分