您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 基于单片机的多功能智能交通灯控制系统的设计与仿真
绪论交通灯是城市经济活动的命脉,对城市经济的发展、人民的生活水平的提高起着十分重要的作用。城市交通问题是困扰城市发展、制约城市经济将设的重要因素。城市道路增长的有限与车辆增加的无限这一对矛盾事故导致城市交通拥挤的根本原因、城市街道网络上的交通容量的不断增加,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际发展,交通控制领域的控制逻辑方面始终没能取得重大突破。可以肯定的说,对于减轻交通拥挤及其副作用特别是对于大的交通网络而言,仍然缺乏一种真正的交通响应控制策略。计算机硬件能力与控制软件能力很不相符,由此造成的影响是很多交通控制策略根本不能实现。在少数几个例子中,一些新的控制策略确实能得以实现,但是他们却没能对早期的控制策略进行改进。由于缺乏能提高交通状况、特别是缺乏拥塞网络交通状况的实时控制的策略,几乎可以说真正成熟的控制策略仍然不存在。智能化和集成化是城市交通信号控制系统系的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通灯控制优化管理的关键和突破口。因此,研究基于智能交通灯控制系统具有相当的学术价值和实用价值。把控制引入到城市交通控制系统中,未来的城市交通灯控制系统能适应城市交通的发展。从长远来看,该研究具有巨大的现实意义。随着我国经济的高速发展,人们对各种交通车辆的需求量不断增大,城市的交通用拥护问题日益严重,目前,大部分城市的十字路口的交通控制灯,通常的做法是:事先经过车辆流量的调查,利用传统的方法设计好红绿灯的延时,然而,实际上的车流量是不断变化的,有的路口在不同的时间段车流量的大小甚至有很大的差异,所以说,传统的方法已不能适应迅速发展的交通现状。目录1、设计思路与结构选择1.1、设计思路:本次设计要求:运用所学单片机原理、模拟和数字电路等方面的知识,设计出一台交通信号灯,模拟路口交通信号。交通信号灯能够控制东西、南北两个方向的交通,红绿黄灯用对应颜色的发光二极管代替;东西南北各三盏灯,每三盏分别为红、黄、绿三种颜色,总共十二盏灯,而实际情况下,东西方向灯亮灭一致,南北方向灯亮灭一致,故只需要按东西为一组,南北为一组,两组交错亮灭来设计控制系统,即可达到交通灯系统的控制目的。根据以上分析那么只需要控制南北或者东西六盏灯亮灭规律就能实现控制,另外两组对应一致就行了。根据设计要求,要求东西或者南北通行30秒,红绿灯切换中间黄灯闪烁3秒。那么要求绿灯亮放行,放行线,绿灯持续亮(通行时间)30秒,黄灯亮(警告提醒时间)3秒,红灯亮禁止通行,禁止线,为了简化设计,也为30秒。切换过程东西南北均为黄灯闪烁。目前,我们接触到的交通灯都位于十字路口,假设实际情况为东西南北走向的十字路口,如下图:1.2、结构选择目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。1.3、结构设计基于完成以上分析,结合所学有关知识,尤其是本学期所学关于单片机的中断系统和定时/计数器的相关知识及应用,我们知道对于红、绿、黄两组各三盏灯的控制,可以通过把这六盏灯分别接到单片机的六个输出引脚,若用P1口进行输出,则分配如下:通过对P1口P0~P5编程从而实现控制。而时间的各盏灯的熄灭时间的延时情况,则用定时/计数和中断结合应用实现控制。而输出的时间显示则每个方向分别用两个发光二极管显示,十位接在P0口,个位接在P2口,对P0口P2口编程即可实现控制。2、控制系统的硬件设计2.1AT89C51单片机简介AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.2AT89C51单片机的主要性能参数AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用2.3单片机的内部结构2.4显示模块传统的共阳极或共阴极的数码管其显示输入需要为段码,这里我们用软件编译,虽然这样使得程序麻烦一点,但是这样可使线路简化,让人感觉清晰明了。这里我们选用共阴极的数码显示管,根据字型码,用程序得以实现,显示模块的连接如图所示:图中的总线接至单片机的p0.1-p0.7,p1.0-p1.7端口。2.5按键模块在此系统中,按键模块是实现各项功能的关键,按键通过电阻与单片机相连接,可以对单片机进行控制,低电平信号对相应的单片机引脚有效,可使按键的另一端接地。本设计中有夜间模式按键﹑正常模式按键﹑紧急模式按键五个按键,分别对应着相应的子模式。如图3所示:2.6程序设计根据前面的要求以及硬件的设置情况,本系统的软件部分需要进行中断设置。上述要求,软件部分应包括正常模式﹑夜间模式﹑紧急模式强制通行等子程序,程序流程图如下:。开机上电处于正常模式下,交通灯每30秒改变一次通行方向,使得南北和东西交替通行。而显示系统则显示到下一次改变所剩的时间,利于司机调整车辆状况。每到同行方向转换时,绿灯闪烁,变为黄灯。提醒司机注意通行方向的改变,避免不必要的危险。在设计运用了单片机的外部中断,系统的紧急和夜间模式的切换采用中断系统完成。这样在任何通行情况下都可进入以上两种模式。在设计中,设置外部中断1为夜间模式触发按钮,由电平触发完成,设置为低优先级,设置外部中断0为紧急模式触发按钮,由电平触发完成,设置为高优先级。此时无论紧急状况(如车祸等)发生在何时都可以直接进入紧急模式以便于交通管理人员处理问题调用正常通行子程序INT1中断?调用紧急模式子程序INT0中断?调用夜间模式子程序外部中断初始化开始NN2.7正常工作模式子程序正常模式下,交通灯每30秒改变一次通行方向,使得南北和东西交替通行,其流程图如图所示其主要程序:MOVR7,#19H;;延时秒数MAIN3:MOVP1,R3;;控制信号灯的变化LCALLDEL1DJNZR7,MAIN3MOVR3,#0AH;;南北方向警告东西方向禁止MOVR7,#06H;;延时时间MAIN4:MOVP1,R3;;南北方向黄灯亮开始外部中断初始化东西30秒倒计时显示南北30秒倒计时显示进入正常工作状态LCALLDEL1CLRP1.1;;南北黄灯灭LCALLdel1;;延时并显示DECR7DJNZR7,MAIN4AJMPMAIN2.8延时子程序设计中通过对指令运行的次数进行循环来实现软件延时。当晶振频率为12MHz时每个机器周期是1微秒,一条NOP指令是一个机器周期,一条DJNZ指令是两个机器周期,所以可写出如下的1秒延时子程序:DELAY:MOV3AH,#20LOOP1:MOV3BH,#80LOOP2:MOV3CH,#75LOOP3:NOPNOPDJNZ3CH,LOOP3DJNZ3BH,LOOP2DJNZ3AH,LOOP1RET其流程图如图所示:2.9夜间模式子程序系统在主程序中已经完成中断初始化,在正常模式下,其随时开始R2-33R3-100R4-75DJNZR4DJNZR3DJNZR2r返回NOPNOP可通过中断1进入夜间模式,不受当时通行方向的影响。夜间模式中,不管是南北方向还是东西方向的交通灯的黄灯闪烁,红灯和绿灯都不亮,其流程如2.9所示。其程序为:URZD:MOVP1,#12H;;南北东西方向都是黄灯亮。ACALLDELAY;;延时一秒。MOVP1,#00H;;南北东西方向黄灯灭。ACALLDELAY;;延时一秒。AJMPURZD;;跳回URZD2.9图夜间工作模式2.9.1紧急情况子程序DSZD:MOVP1,#00H;;信号灯全灭开始外部中断1初始化东西南北黄灯灭倒计时显示南北东西黄灯亮倒计时显示进入夜间工作状态CC:SETBP1.0SETBP1.3;;东西南北方向红灯亮JNBP3.6,NB;;判断是否有南北强制通行需求JNBP3.7,DX;;判断是否有东西强制通行需求AJMPCCNB:CLRP1.0SETBP1.2SETBP1.3;;南北绿灯,东西红灯MOV2AH,#61T1:ACALLDEL1MOVA,2AHJNZT1;;;数码显示AJMPMAINDX:CLRP1.3;;同上SETBP1.0SETBP1.5MOV2AH,#60T2:ACALLDEL1MOVA,2AHDJNZT2AJMPMAIN紧急流程图:YY开始东西南北红灯亮P3.6=0?南北强制通行P3.7=0?东西强制通行3、软件设计3.1、PROTEUS的介绍PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和KEIL,WAVE6000等编译模拟软件结合使用。由于WAVE600使用方便,具备强大的软件仿真和硬件仿真功能。把PROEUS和WAVE600结合起来调试硬件就方便多了,这里就是采用PROREUS+WAVE600的仿真方法。3.2、PROTEUS的运用首先运行PROTEUSWSM的ISIS,选择SOURCE—DEFNECODEGENERATIONTOOL菜单项,将出现如图所示定义代码生成工具对话框。定义代码生成工具对话框在TOOL下拉列表中选择ASEM51,单机BROWSE按钮,选取WAE6000的安装路径。单机OK按钮,结束代码生成工具的定义。选择SOURCE---ADD/REMOVESOUREFIELE菜单项,将出现ADD/REMOVSOURCECODEFILES对话框,如下图所示添加/删除原文件对话框在CODEGERATIONTOOQ选项区,单击下三角按钮,选择ASEM51工具。接着单击NEW按钮,将出现如图所示对话框。创建代码对话框选择WAE6000创建好的0000.ASM文件,即完成了文件的创建。就这样当用WAVE6000对0000.ASM文件进行更改是每一次运行PROTEUSVSM的ISIS对电路进行仿真时WAVE6000都会对0000.ASM进行编译,0000.HEX文件也会随时更新。电路图绘制完成后,再添加AT89C51的应用程序。将鼠标移至AT89C51上,单击鼠标右键使之处于选中状态,在该器件上单击左键,打开如图所示的对话框。在PROGRAMFILE栏添加编译好的十六进制格式的程序文件0000.HEX,给AT89C51输入晶振频率,此处默认为12MHZ,单击OK按钮完成程序添加工作,下面就可以进行系统仿真了。单击主界面下方的按钮开始系统仿真。PROTEUSVSM所进行是一种交互式仿真,在仿真进行中可对各种控制按钮、开关灯进行操作,系统对输入的响应会被真实的放映出来。仿真结果下图。在这个例子里,开始仿真后,开关按钮通过鼠标单击来改变状态,所改变状态会在LED和数码管显示出来。4、仿真分析4.1结束语这次单片机课程设计给我的
本文标题:基于单片机的多功能智能交通灯控制系统的设计与仿真
链接地址:https://www.777doc.com/doc-5112285 .html