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