1、13电信一班李中主01030134湖南信息学院毕业论文基于单机片的智能交通系统设计 学生姓名:李中主学 号:201301030134 年级专业:13级电子信息技术 指导老师:王湘琳 湖南长沙提交日期: 2014 年 4 月 目 录摘 要 1第一章 概述 11.1交通灯的发展及现状 11.2 单片机说明 1第二章 智能交通灯的设计原理 62.1 智能交通灯的设计框图 62.2智能交通灯的设计方案及改进措施 7第三章 智能交通灯电路设计 73.1控制器的系统框图 73.2智能交通灯控制系统电路图 83.3工作原理 8第四章 智能交通灯软件系统设计 144.1 智能交通灯的软件设计流程图 144.2
2、 程序源代码 14第五章 智能交通灯方案的仿真 15小结 18致谢词 19参考文献 20附 录 21附录A:智能交通灯控制程序: 21基于单片机的智能交通系统设计作者:李中主指导老师:王湘琳湖南信息学院13级电子信息专业,长沙摘要本文主要介绍的是基于PROTEUS的智能交通灯控制系统的设计与仿真。随着经济的快速的发展,世界人口呈现了爆炸式的增长,于此而来的伴生现象便是交通工具的爆炸式发展,从而引发了一系列问题,如交通拥堵、交通安全等。智能交通灯控制系统是解决这一问题的发展趋向。还介绍了AT89S51,并为其管脚进行说明,最后会利用PROTEUS软件,并通过其他平台对交通灯控制系统进行仿真。关键
3、词:PROTEUS,AT89S51,PROTEUS软件,智能交通灯控制系统;第一章1.1当前智能交通灯控制系统运用现状 随着经济的发展,车辆的数目不断增加,道路堵车现象日益严重,智能交通灯就应运而生了。目前世界上的智能交通系统存在的问题是:系统结构庞大、管理困难、维护投入大等。智能交通灯是一项综合运用网络通讯计算机技术、感应技术来管理交通灯具的自动控制系统。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的
4、设计;有应用单片机实现对交通信号灯设计的方法。目前,国内的交通灯一般在十字路设用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,以此达到安全行车,车辆分流的作用。但根据实际情况,还存在以下缺点:1两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。1.2智能交通灯控制系统发展的意义时代在进步,科技在发展,人们的生活也在不断的更新,如今在生活中更是随处可见科技的身影。随着近年来经
5、济的快速发展,城市内的车辆也随之增多,城市道路交通情况日益严重,人车冲突也日渐增多,这给人们生活和工作带来很大的不便。信号灯的出现是交通得以有效管制,对于疏导交通流量、提高道路通行能力、减少交通事故有明显的效果。使人们的出行更加便捷顺畅。提高了人们的生活指数。1.2单片机说明AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微处理器与单片芯片。1.21 主要性能参数u19982X MC
6、S-51 产品指令系统完全兼容4k 字节在系统编程(ISP)Flash 闪速存储器1000 次擦写周期4.05.5V 的工作电压范围u20840X静态工作模式:0Hz33MHzu19977X级程序加密锁1288 字节内部 RAM32 个可编程 IO 口线2 个 16 位定时计数器6 个中断源u20840X双工串行 UART 通道低功耗空闲和掉电模式中断可从空闲模唤醒系统 图1u30475X门狗(WDT)及双数据指针u25481X电标识和快速编程特性灵活的在系统编程(ISP 字节或页写模式) 图1 图2 图3 1.2。2功能特性概述 AT89S51 提供以下标准功能:4k 字节 Flash 闪速
7、存储器,128 字节内部 RAM,32 个 IO 口线,看门狗(WDT),两个数据指针,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 图41.23引脚说明Vcc:电源电压GND:地 P0 口:P0 口是一组 8 位漏极开路型双向 I0 口,也即地址数据总线复用口。作为输出口用时,
8、每位能驱动 8 个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 F1ash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口:p1是一个带内部上拉电阻的8为双向I/O 口,p1的输出数冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash 编程和程序校验期间,Pl
9、 接收低 8 位地址。端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器 0外部输入)P3.5T1(定时/计数器 1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P2 口:P2 是一个带有内部上拉电阻的 8 位双向 IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入
10、口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVXRi 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中 P2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL逻辑门电路。对 P3 口写入“l”
11、时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的 I0 口线外,更重要的用途是它的第二功能,如下表所示:P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 DISRT0 位(地址 8EH)可打开或关闭该功能。DISRT0 位缺省为 RESET 输出高电平打开状态。ALEPROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲
12、用于锁存地址的低 8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的 16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 F1ash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 M0VX 和 M0VC 指令 ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89
13、S51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EAVPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器中的指令。F1ash 存储器编程时,该引脚加上+12V 的编程电压 Vpp。XTALl:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。第二章 智能交通灯的设计原
14、理2.1 智能交通灯的设计框图图52.2智能交通灯的设计方案及改进措施交通灯系统由四部分组成:车检测电路,信号灯电路,时间显示电路,紧急转换开关。 针对道路交通拥挤,交叉路口经常出现拥堵的情况利用单片机控制技术提出了软件和硬件设计方案及两点改进措施。1、根据各道路路口车流量的大小自动调节通行时间。2、考虑特殊车辆通行情况,设计紧急切换开关。AT89S51单片机有2计数器,6个中断源,能满足系统的设计要求。用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。第三章 智能交通灯电路设计根据设计任务和要求,以下为控制器的原理框图, 为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制
15、交通信号。其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。3.1控制器的系统框图如图6所示3.2智能交通灯控制系统电路图智能交通灯电路图如图7所示:交通灯系统由四部分组成:车检测电路,信号灯电路,时间显示电路,紧急转换开关。3.3工作原理绿灯的放行时间与车辆通过数量不成正比。我们来计算一下,每车道通行20秒内可以通过20辆车,一个红绿灯循环是40秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要50秒,即50秒内通行的车辆为40辆。通过一辆车的平均时间是1.25秒。如果每次车辆通行的时间改为40秒,40秒内每车道可以通过45
16、辆,一个红绿灯循环是80秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要90秒,即90秒内通行的车辆为90辆。通过一辆车的平均时间只需1秒。显然在车辆拥挤的情况下绿灯的通行时间越长,单位时间内通行的车辆越多,可以有效缓解车辆拥堵问题。在非拥挤时段绿灯的通行时间的下限为20秒,当交叉路口双方车辆较少时通行时间设为20秒,这样可以大大缩短车辆在红灯面前的等待时间;当交叉路口双方车辆较多时通行时间设为40秒。3.3.1车流量检测及调整因为路上的车不可能突然增多,塞车都有一个累积过程。这样控制可以把不断增多的车辆一步一步消化,虽然最后由于每个路口的绿灯放行时间延
17、长而使等候的时间变长,但比塞车等候的时间短得多。 图3手动设置:除系统根据车流量自动控制调整,也可以通过键盘进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。本系统要求的按键控制不多,且I/O口足够,可直接采用独立式。及前者软件编写简单。交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停按键,就可达到想此目的。也就是紧急开关 图8 顺序如
18、图9所示 图10交通灯的软件设计流程图3.3.2信号灯电路信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图6。每个路口的信号的的转换顺序为:绿黄红 绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为20秒,最长时间为40秒,红红最短时间为25秒,最长时间为45秒,黄灯时间为5秒。 两方向车道的交通灯的运行状态共有4种(因人行道的交通灯和车道的交通灯是同步的,所以不考虑),如图11所示3.3.4紧急转换开关电路一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车
19、通行车况,设计紧急通行开关,下面简述单片机的中断原理。1、Mcs51的中断源8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如表2所示:表2 中断源程序入口中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器0001BH串行口中断0023H2、中断的处理流程CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求可能有不
20、同的中断处理方法,但它们的处理流程一般都如下所述:1)现场保护和现场恢复:中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份即保护现场。中断开始前需将有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢复。如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,单片机不能正常工作。2)中断打开和中
21、断关闭:在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。3)中断服务程序:既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。4)中断返回:执行完中断服务程序后,必然要返回,中断返回就是被程序运行从中断服务程序转回到原工作程序上来。在MCS-51单片机中,中断返回是通过一条专门的指
22、令实现的,自然这条指令是中断服务程序的最后一条指令。5) 交通灯中的中断处理流程:(1)现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。(2)中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。(3)中断服务程序:有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。(4)中断返回:执行完中断服
23、务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。第四章 智能交通灯软件系统设计4.1 智能交通灯的软件设计流程图智能交通灯的软件设计流程图如图12所示:4.2 程序源代码见附录 第五章 智能交通灯方案的仿真PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil ,Wave6000等编译模拟软件结合使用。由于Wave6000使用方便,具备强大的软件仿真和硬件仿真功能。把Proteus和Wave6000结合起来调试硬件就方便多了,这里就是采用“Proteus+Wave6000”的仿真方法,具体步骤如下:1)首先运行PROTEU
24、S VSM 的ISIS,选择SourceDefine Code Generation Tool 菜单项,将出现如图8所示定义代码生成工具对话框。图13定义代码生成工具对话框在Tool下拉列表框中选择代码生成工具,在这一示例中,电路中的微处理器为8051系列单片机,因此选择ASEM51, 单击Browse按钮,选取Wave6000的安装路径。单击OK按钮,结束代码生成工具的定义。选择SourceAdd/Remove Source File 菜单项,将出现Add/Remove Source Code Files对话框,如图10所示:图14 添加/删除源文件对话框2)在Code Generation
25、 Tool 选项区,单击下三角按钮,选择ASEM51工具单击New按钮,将出现如图11所示对话框。图15 创建源代码对话框选择用Wave6000创建好的AA.ASM文件,即完成了文件的创建。就这样当用Wave6000对AA.ASM 文件进行更改时每一次运行PROTEUS VSM 的ISIS对电路进行仿真时Wave6000都会对AA.ASM进行编译,AA.HEX文件也会随时更新。电路图绘制完成后, 再添加AT89C51 的应用程序。将鼠标移至AT89C51 上, 单击鼠标右键使之处于选中状态, 在该器件上单击左键, 打开如图12所示的对话框。在 Program File 栏添加编译好的十六进制格
26、式的程序文件AA.hex(可以接受3 种格式的文件) ,给AT89C51输入晶振频率,此处默认为12MHZ, 单击OK 按钮完成程序添加工作, 下面就可以进行系统仿真了。单击主界面下方的按钮开始系统仿真。PROTEUS VSM 所进行的是一种交互式仿真, 在仿真进行中可以对各控制按钮、开关等进行操作, 系统对输入的响应会被真实的反映出来如图16。 图17 AT89C51添加程序文件小 结在毕业设计的整个过程中,我深切地体会到:理论是实践的基础,实践是理论运用的最好检验。毕业设计是对我们几年所学知识的一次综合性测试和考验,不论是在动手能力方面还是理论知识的运用能力方面,都使得我有了很大的提高。
27、经过总结分析,当我们在做一件事情的时候,我们首先要做的是计划,将整个流程确定好,事前将资料准备好,做好充分的准备,俗话说,机会是留给有准备的人。做事要细心,须知,细节决定成败。要善于发现问题,不懂就要问。养成随身携带纸笔的习惯,不论是灵感,还是问题,都方便我们抄写记忆,更好的学习。本次的毕业设计为我的大学生活画上了一个圆满的句号,为我即将的工作和生活奠定了坚实的基础。致谢词在整个毕业设计中,我得到了学校的大力支持,感谢学校为我们安排了本次毕业设计,让我们的理论知识和实际操作经验更加紧密的结合了在一起;同时又拓展了我们的知识面。同时十分感激王老师对我的悉心指导和帮助,使我能够顺利的完成此次毕业设
28、计。此次毕业设计让我从中受益匪浅,最后再次感谢老师对我的培养和教育!参考文献1 徐爱钧 智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004年;2 吴金戌、沈庆阳、郭庭吉 8051单片机实践与应用M.北京:清华大学出版社,2002年;3 谢自美 电子线路设计实验测试(第三版)M.武汉:华中科技大学出版社,2006年;4 谢维成、杨加国 主编 单片机原理与应用及C51程序设计M.北京:清华大学出版社,2006年;5 杨立、邓振杰、荆淑霞 微型计算机原理与接口技术M.中国铁道出版社,2006年;6 黄智伟 全国大学生电子设计竞赛技能训练 M.北京:北京航空航天大学出版社
29、,2007年7 高峰,单片微型计算机与接口技术M.北京:科学出版社,2003;8 华成英、童诗白 主编,模拟电子技术基础(第四版)M.高等教育出版社,2006年.9 黄海萍、陈用昌 编 微机原理与接口技术实验指导M.北京:国防工业出版社,2004年10 黄智伟: 凌阳单片机设计指导 ,北京: 北京航空航天大学出版社,2007年附 录附录A:智能交通灯控制程序:ORG 0000HA_BIT EQU 20H ;用于存放南北十位数B_BIT EQU 21H ;用于存放南北十位数C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ; 用于存放东西位数TEMP1 EQU 24H
30、;用于存放第一二南北状态要显示的时间TEMP2 EQU 25H ;用于存放第一二东西状态要显示的时间TEMP3 EQU 26H ;用于存放第三第四南北状态要显示的时间TEMP4 EQU 27H;用于存放第三第四南北状态要显示的时间LJMP MAINORG 0003H ;外部中断0入口LJMP INT0 ;跳转到外部0中断ORG 0013H ;外部中断1入口LJMP INT1 ;跳转到外部1中断INT0: MOV A,P1 ;外部0中断 PUSH ACC MOV A,P2 ;中断保护 PUSH ACCMOV P1,#0FFH ;清除先前状态MOV P2,#0FFHCLR P1.0CLR P1.4 ;南北通行,东西禁止通行CLR P1.6CLR P2.3JNB P3.2 ,$ ;判断是否还在中断状态POP ACCMOV P2,A ;返回中断前状态POP ACCMOV P1,ACCRETI ;中断返回INT1:MOV A,P1 ;外部1中断 PUSH ACC ;中断保护 MOV A,P2 PUSH ACCMOV P1,#0FFH ;清除先前状态MOV P2,#0FFHCLR P1.2CLR P2.1CLR P1.3 ;东西通行,南北
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1