精品文献智能交通灯控制系统设计论文.docx
- 文档编号:11035903
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:37
- 大小:389.48KB
精品文献智能交通灯控制系统设计论文.docx
《精品文献智能交通灯控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《精品文献智能交通灯控制系统设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
精品文献智能交通灯控制系统设计论文
小结18
致谢词18
参考文献18
摘要
本文介绍的是一个基于PROTEUS的智能交通灯控制系统的设计与仿真,系统根据交通十字路口双车道车流量的情况控制交通信号灯按特定的规律变化。
本文首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析,指出了现状交通灯存在的缺点,并提出了改进方法。
智能交通灯控制系统通常要实现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。
本文还对AT89C51单片机的结构特点和重要引脚功能进行了介绍,同时对智能交通灯控制系统的设计进行了详细的分析。
最后利用PROTEUS软件,通过其平台对交通灯控制系统进行了仿真,仿真结果表明系统工作性能良好。
关键词:
PROTEUS、AT89C51单片机、智能交通灯;
第一章概述
1.1交通灯的发展及现状
中国车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进行高效交通管理是必然的发展趋势,而让计算机控制的交通灯拥有类似人类的感知智能,具有很强的现实意义,比如通过摄像机让交通灯控制系统获得视觉感知功能,就可以代替人类的眼睛,使系统根据所“看到”交通情况自适应改变管制策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。
目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。
目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。
2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
1.2单片机说明
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:
4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
1.2.1AT89C51单片机硬件结构
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的单片机芯片,它采用静态CMOS工艺制造8位微处理器,最高工作频率位24MHZ。
AT89C5外形及引脚排列如图1所示:
图1
1.2.2管脚说明
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
XTAL1和XTAL2:
反向振荡放大器的输入及内部时钟工作电路的输入。
第二章智能交通灯的设计原理
2.1智能交通灯的设计框图
2.2智能交通灯的设计方案及改进措施
交通灯系统由四部分组成:
车检测电路,信号灯电路,时间显示电路,紧急转换开关。
针对道路交通拥挤,交叉路口经常出现拥堵的情况利用单片机控制技术提出了软件和硬件设计方案及两点改进措施。
1、根据各道路路口车流量的大小自动调节通行时间。
2、考虑特殊车辆通行情况,设计紧急切换开关。
AT89S51单片机有2计数器,6个中断源,能满足系统的设计要求。
用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。
第三章智能交通灯电路设计
根据设计任务和要求,可画出该控制器的原理框图,为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。
其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。
3.1控制器的系统框图如图3所示
图3
3.2智能交通灯控制系统电路图
智能交通灯电路图如图4所示:
图4
交通灯系统由四部分组成:
车检测电路,信号灯电路,时间显示电路,紧急转换开关。
3.3工作原理
绿灯的放行时间与车辆通过数量不成正比。
比如说20秒内每车道可以通过20辆车,40秒内每车道却可以通过45辆车。
因为这有一个起步的问题,还有一个黄灯等待问题。
也就是说,绿灯放行时间越长,单位时间通过车辆的数量就越多。
我们来计算一下,每车道通行20秒内可以通过20辆车,一个红绿灯循环是40秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要50秒,即50秒内通行的车辆为40辆。
通过一辆车的平均时间是1.25秒。
如果每次车辆通行的时间改为40秒,40秒内每车道可以通过45辆,一个红绿灯循环是80秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要90秒,即90秒内通行的车辆为90辆。
通过一辆车的平均时间只需1秒。
显然在车辆拥挤的情况下绿灯的通行时间越长,单位时间内通行的车辆越多,可以有效缓解车辆拥堵问题。
我设定了绿灯通行时间的上限为40秒。
在非拥挤时段绿灯的通行时间的下限为20秒,当交叉路口双方车辆较少时通行时间设为20秒,这样可以大大缩短车辆在红灯面前的等待时间。
当交叉路口双方车辆较多时通行时间设为40秒。
3.3.1车检测电路
用来判断各方向车辆状况,比如:
20秒内可以通过的车辆为20辆,当20秒内南往北方向车辆通过车辆达不到20辆时,判断该方向为少车,当20秒内北往南方向车辆通过车辆也达不到20辆时,判断该方向也为少车,下一次通行仍为20秒,当20秒时间内南往北或北往南任意一个方向通过的车辆达20辆时证明该状态车辆较多,下一次该方向绿灯放行时间改为40秒,当40秒内通过的车辆数达45辆时车辆判断为拥挤,下一次绿灯放行时间改仍为40秒,当40秒车辆上通过车辆达不到45辆时,判断为少车,下次绿灯放行时间改为20秒,依此类推。
绿灯下限时间为20秒,上限值为40秒,初始时间为20秒。
这样检测,某次可能不准确,但下次肯定能弥补回来,累积计算是很准确的,这就是人们常说的“模糊控制”。
因为路上的车不可能突然增多,塞车都有一个累积过程。
这样控制可以把不断增多的车辆一步一步消化,虽然最后由于每个路口的绿灯放行时间延长而使等候的时间变长,但比塞车等候的时间短得多。
本系统的特点是成本低,控制准确。
十字路口车辆通行顺序如图5所示:
图5十字路口车辆通行顺序
由于南往北,北往南时间显示相同,所以只要一个方向多车,下次时间就要加长东往西,西往东也一样,显示时间选择如表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秒
3.3.2信号灯电路
信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图6。
每个路口的信号的的转换顺序为:
绿—>黄—>红绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。
红灯表示禁止通行。
绿灯的最短时间为20秒,最长时间为40秒,红红最短时间为25秒,最长时间为45秒,黄灯时间为5秒。
图6交通信号灯运行状态
3.3.3时间显示电路
在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。
由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图7所示。
图7数码管连接方法
下面我们用这种方法显示交通灯的时间,南北方向要显示20秒,东西方向要显示25秒,那么我们先给P0口送2的共阴极码即5BH,让第一位2要显示的位码GND段为低电平,其它三位的控制端都接高电平,那么第一位就显示2,其它三位不亮。
让其显示1MS后再给P0口送0的共阴极码即3FH,让第二位要显示0的位码GND段为低电平,其它三位的控制端都接高电平,那么第二位就显示0,其它三位不亮。
依此类推分别送完第一位2,第二位0,第三位2,第四位5,每一位点亮1MS一个扫描周期为4MS,一秒时间就要扫描250次其程序如下:
MOVR6,#250;显扫描次数
LOOP:
MOVP0,#5BH;送2的共阴极码
CLRP2.0;第一位显示2
ACALLD1MS;延时1MS
SETBP2.0;灭第一位
MOVP0,#3FH;送0的共阴极码
CLRP2.1;第二位显示0
ACALLD1MS;延时1MS
SETBP2.1;灭第二位
MOVP0,#5BH;送2的共阴极码
CLRP2.2;第三位显示2
ACALLD1MS;延时1MS
SETBP2.2;灭第三位
MOVP0,#6DH;送5的共阴极码
CLRP2.3;第四位显示5
ACALLD1MS;延时1MS
SETBP2.3;灭第四位
DJNZR7,LOOP;不够一秒,继续扫描
NEXTNUMBER;到一秒显示下一个数
D1MS:
;1MS延时程序
STAT1:
MOVR4,#2
MOVR3,#250
DJNZR3,$
DJNZR4,STAT1
RET
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智能交通灯的软件设计流程图
智能交通灯的软件设计流程图如图8所示:
图8交通灯的软件设计流程图
4.2程序源代码
见附录
第五章智能交通灯方案的仿真
PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil,Wave6000等编译模拟软件结合使用。
由于Wave6000使用方便,具备强大的软件仿真和硬件仿真功能。
把Proteus和Wave6000结合起来调试硬件就方便多了,这里就是采用“Proteus+Wave6000”的仿真方法,具体步骤如下:
1)首先运行PROTEUSVSM的ISIS,选择Source→DefineCodeGenerationTool菜单项,将出现如图8所示定义代码生成工具对话框。
图9定义代码生成工具对话框
在Tool下拉列表框中选择代码生成工具,在这一示例中,电路中的微处理器为8051系列单片机,因此选择ASEM51,单击Browse按钮,选取Wave6000的安装路径。
单击OK按钮,结束代码生成工具的定义。
选择Source→Add/RemoveSourceFile菜单项,将出现Add/RemoveSourceCodeFiles对话框,如图10所示:
图10添加/删除源文件对话框
2)在CodeGenerationTool选项区,单击下三角按钮,选择ASEM51工具
单击New按钮,将出现如图11所示对话框。
图11创建源代码对话框
选择用Wave6000创建好的AA.ASM文件,即完成了文件的创建。
就这样当用Wave6000对AA.ASM文件进行更改时每一次运行PROTEUSVSM的ISIS对电路进行仿真时Wave6000都会对AA.ASM进行编译,AA.HEX文件也会随时更新。
电路图绘制完成后,再添加AT89C51的应用程序。
将鼠标移至AT89C51上,单击鼠标右键使之处于选中状态,在该器件上单击左键,打开如图12所示的对话框。
在ProgramFile栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3种格式的文件),给AT89C51输入晶振频率,此处默认为12MHZ,单击OK按钮完成程序添加工作,下面就可以进行系统仿真了。
单击主界面下方的按钮开始系统仿真。
PROTEUSVSM所进行的是一种交互式仿真,在仿真进行中可以对各控制按钮、开关等进行操作,系统对输入的响应会被真实的反映出来如图13。
图12AT89C51添加程序文件
图13交通灯仿真界面
小结
在毕业设计的整个过程中,我深切地体会到:
实践是理论运用的最好检验。
毕业设计是对我们3年所学知识的一次综合性测试和考验,无论是在动手能力方面还是理论知识的运用能力方面,都使得我有了很大的提高。
经过总结和分析,我意识到在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
本次毕业设计为我的大学生活画上了圆满的句号,为我即将的工作和生活奠定了坚实的基础。
致谢词
在整个毕业设计中,我得到了学校电子实验室的大力支持,为我提供了各种所需的仪器设备。
感谢学校为我们安排了本次毕业设计,让我们的理论知识和实际操作经验更加紧密的结合了在一起;同时又拓展了我们的知识面。
同时十分感激夏老师对我的悉心指导和帮助,使我能够顺利的完成此次毕业设计。
此次毕业设计让我从中受益匪浅,最后再次感谢老师对我的培养和教育!
参考文献
[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;东西通行,南北禁止通行
CLRP1.5
JNBP3.3,$;判断是否还在中断状态
POPACC
MOVP2,A;返回中断前状态
POPACC
MOVP1,A
RETI;中断返回
MAIN:
ORG0100H;初始情况
MOVP1,#0FFH
MOVP2,#0FFH;灭所有灯
MOVTMOD,#55H;计数方式方式1
MOVIE,#85H;开中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 文献 智能 交通灯 控制系统 设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)