基于单片机的车辆闯红灯监控系统.docx
- 文档编号:5966001
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:10
- 大小:193.66KB
基于单片机的车辆闯红灯监控系统.docx
《基于单片机的车辆闯红灯监控系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的车辆闯红灯监控系统.docx(10页珍藏版)》请在冰豆网上搜索。
基于单片机的车辆闯红灯监控系统
基于单片机的车辆闯红灯监控系统
摘要
基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:
用智能,集成,且功能强大的单片机芯片为控制中心,设计出一套十字路口的交通控制系统,以指挥该路口的实时通行状态。
本设计主要做了如下几方面的工作:
一是确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还有倒计时显示提示,基于题目要求,又要求了具有智能调度功能,当侦测某一通道繁忙另一通道空闲时,能自动调整红绿灯时间。
紧急状况处理:
当有紧急通行车辆(如消防车、救护车、警车)要求通过时,能自动开通该通道而关闭另一通道。
违规检测及处理,遥控可设置等强大功能。
二是进行软件系统的设计,对于本系统,本团队采用单片机C语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
关键词:
交通灯,遥控器,led显示,中断
1.系统方案论证
方案一:
在十字路口四个干道处50米处安装红外对管,检测车辆堵车时间,当红外对管的信号屏蔽较长时间时,即判断此路口为繁忙,自动切换为绿灯,以保障通行,同时红外对管也可以用来作为车辆计数器。
在四个干道的黄线外地下设置地感线圈,当该干道为红灯状态时,启动地感线圈,如果有车闯红灯时,由于车的金属材质引起线圈的振荡频率改变,送出一个电平变化给单片机的判断口,从而进入报警程序,发出声光警报。
方案二:
设在十字路口,分为东西直行、东西左拐和南北直行、南北左拐,在任一时刻只有一个方向通行,另外三个方向禁行,持续一定时间,经过短暂的过渡时间,依次进行通行禁行方向轮流转换。
其具体状态如下所示。
交通状态从状态1开始变换,直至状态8然后循环至状态1,周而复始,闯红灯用微动开关的电平变化来模拟,设置二个按键,按键1为繁忙检测,当按下为3秒时,启动状态转换,该干道变为绿灯,按键2为闯红灯检测,用下降沿触发给单片机的中断口一个中断信号,触发送出声光警报,而设置加减倒计时则用遥控器实现。
综合比较方案,认为方案二更方便可行,方便功能实现。
2单片机交通控制系统的功能要求
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,自动检测繁忙,交通违规处理和紧急处理等功能。
(1)倒计时显示和状态显示
倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。
倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。
状态1
状态2
状态3
状态4
状态5
状态6
状态7
状态8
东西直行
通行
等待变换
禁行
等待变换
禁行
等待变换
禁行
等待变换
南北直行
禁行
等待变换
通行
等待变换
禁行
等待变换
禁行
等待变换
东西左拐
禁行
等待变换
禁行
等待变换
通行
等待变换
禁行
等待变换
南北左拐
禁行
等待变换
禁行
等待变换
禁行
等待变换
通行
等待变换
(2)闯红灯检测
现阶段,车辆检测器检测方式有很多,各有其优缺点,如红外线检测器、地磁检测器、机械压电检测器,磁频检测器、波频检测器、视频检测器等。
一般闯红灯采用传感器+单片机+外围器件来实现。
因为闯红灯的速度快,所以用下降沿触发的中断信号。
(3)时间手动设置
除系统根据车流量自动控制调整,也可以通过遥控进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。
键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。
前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。
后者适用于按键数量较多的场合,但是在单片机I/0口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。
本系统创造性的用了遥控器来控制,省掉了按键的烦恼。
(4)紧急处理
交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。
由此在交通控制中增设禁停遥控,就可达到当有紧急通行车辆(如消防车、救护车、警车)要求通过时,能自动开通该通道而关闭另一通道。
(5)违规检测
如闯红灯等,也时有发生,交警等交通管理人员虽然可以进行实时监管,但是耗费精力,在路口设置检测传感器就可以进行自动的警报提示。
除了红灯警报,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。
据此,本设计系统以单片机为控制核心,由车流量检测模块,违规检测模块,和遥控设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接收输出。
系统的总体框图如上所示。
遥控设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。
急停按键和违规检测随时调用中断。
在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间以满足不同路况的需要。
3系统硬件电路的设计
3.1系统硬件总电路图
原理图设计
PCB设计
3.2系统硬件总电路构成及原理
实现本设计要求的具体功能,可以选用AT89C52单片机及外围器件构成最小控制系统,16个发光二极管分成4组红绿黄蓝四色灯构成信号灯指示模块,两位数码管构成倒计时显示模块,堵车繁忙检测,闯红灯信号检测,采用遥控控制时间设置和紧急情况调控等,以及用1个蜂鸣器和1个红灯进行报警,因时间紧迫,传感器和光敏接收器用按键触动来模拟。
本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。
系统硬件电路由车流量检测电路、单片机、违规检测电路,状态灯,LED显示,按键,遥控器,蜂鸣器组成。
其中P0,P2,用于送显两片LED数码管,组成动态扫描电路,P0用于控制红绿黄蓝发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3.2即INT1接违规检测电路和紧停/东西时间设置键J,P3.3即INT0接车流量检测电路,P2.6接警示灯,P2.7接蜂鸣器。
系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:
红绿灯时间自动和红绿灯时间设置。
首先显示00,接着由遥控器进行加计数,接着按遥控器的确认键,开始倒计时,同时状态灯开始按规律进行显示。
时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,
当然,还要开启两个外部中断,其一为违规信号或禁停信号输入,一旦主干道红灯信号有效,中断开始,进入中断服务子程序,开启蜂鸣器禁止全部通行,当断开按键,中断结束返回。
其二为车流量检测信号输入,若检测到车辆经过,进入相应的中断子程序,将存储车流量的寄存器加1,然后中断结束返回。
每满一个状态循环周期,若为自动模式,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。
3.3其它硬件介绍及连接
为了达到对红绿灯的时间控制,需要对道路上的车流量进行检测。
当前比较流行的车流量检测器件,是一种自感式的车辆传感器。
其工作原理是当车辆经过传感器时,引起其自感的变化,考虑到单片机系统的便利性,本次设计用一种手动的操作方式,即车流量的检测电路用微动开关代替。
其基本思路为:
当车流量大时,由微动开关送出一个高低电平变化,引起状态灯进行切换。
在红灯和黄灯期间,车辆是禁行的,为了对那些违反规则的车辆进行检测,可使用超声波车辆传感器。
但是,用于受到条件的限制,本系统设计中只是使用了微动开关模拟。
因为时间有限制,我们团队用开关模拟闯红灯的操作,即在主干道红灯时,开关给个电平变化给单片机的中断入口,进行判断,从而进行相应操作。
我们采用的是两位的共阳LED数码管,一个LED数码管就有两根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制,用动态扫描显示两位数字。
显示数值
g,f,e,d,c,b,a,dp
驱动代码
0
81H
1
F3H
2
01001001
49H
3
01100001
61H
4
00110011
33H
5
00100101
25H
6
00000101
05H
7
F1H
8
00000001
01H
9
00100001
21H
表3.1驱动编码表
(1)发光二极管
根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。
每个方向上设置红绿黄蓝灯,总共4组。
如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如下图3.8所示。
2)蜂鸣器
本设计采用一般蜂鸣器,蜂鸣器使用PNP三极管进行驱动控制,当P2.7引脚输出为低电平,PNP导通,蜂鸣器蜂鸣;当P2.7引脚输出高电平时,PNP截止,蜂鸣器停止蜂鸣。
如下图3.9所示
图3.9蜂鸣器连接
(3)按键控制
独立按键一端接地,另一端接上拉电阻。
低电平有效,当按键按下端口接地,单片机捕获到低电平,从而知道相应的输入信息。
4系统软件程序的设计
4.1程序主体设计流程
全部控制程序实际上分为若干模块:
遥控设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。
首先是初始化处理程序,89C51通过对遥控器扫描,进行初始值的加减,按遥控器的确认键后,状态灯按规定状态进行亮灭显示,想重新设置则要按下复位键。
扫描程序开始后,先刷新显示模块,然后扫描紧停信号和违规信号,若捕获则调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。
50ms已到则重新扫描。
扫描20次之后计时到达1s则时间数据减1,在显示模块中修改显示缓冲区内容。
接着进入红绿灯时间调整程序,更新红绿灯时间。
当前状态时间已到,则判断次状态装入相应数据,然后进入下一状态。
4.2理论基础知识
(1)定时器原理
定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH0和TL0中的。
它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC可得到如下计算通式:
式中,M为计数器模值。
计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。
计算通式变为:
T=(M-TC)T0
模值和计数器工作方式有关。
在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。
就此可以算出各种方式的最大延时。
如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。
这就是为什么扫描周期为50ms的原因,
若使用软件则会耽搁程序流程,显然不可行。
相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。
具体程序中:
TH0=(65536-50000)/256
TL0=(65536-50000)%256这样大概计时50ms
(2)软件延时原理
MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
我们设定一个初值为20的软件计数器和使T0定时50毫秒。
这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到。
设定定时器需要定时50毫秒,故T0必须工作于方式1。
要求初值:
TC=M-T*T0=216-50ms/1us=15536=3CBOH,
(3)中断原理
本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,8051允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设置TCON中IT0和IT1位的状态来实现。
在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。
4.3子程序模块设计
(1)led灯初始值设定
通过对遥控器的按键输出进行编码,在单片机内部用程序解码,实现用遥控器进行加减显示设置,以及确定键。
(2)状态灯显示及判断
在本设计中,实际控制的灯只有8个,即:
东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。
定义IO端口如下,其中均是低电平有效。
共有8种状态:
东西红灯亮,南北绿灯亮;东西红灯亮,南北黄灯亮;东西绿灯亮,南北红灯亮;东西黄灯亮,南北红灯亮。
P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及对应的十六进制码。
在用于显示发光二极管时,直接将编码寻址送入P2口。
刚才的8个状态是依次变换的,这就要涉及到状态的判断和衔接了。
先把P2端口的值与所有的8个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P2即可。
(3)LED倒计时显示
LED计时每1秒都要刷新1次,那么计时满1秒时就要将存储时间的工作寄存器R4减1,然后送入LED显示程序中显示。
下面要将时间数据R4的十位,个位分开送显P1,P0端口,首先将R4除以10,整数即十位放在A中,余数即个位放在B中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。
(4)车辆繁忙检测中断服务子程序
车辆繁忙检测检测是用外部中断引脚P3.2即INT1捕获到一个低电平,则进入相应的中断服务子程序,控制状态灯进行相应状态切换。
(5)紧停及违规中断服务子程序
紧停按键和违规信号传感器均连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断,中断程序中先把蜂鸣器P2.7和P2.6端口置0,启动蜂鸣和警报灯。
当按键弹开后,然后关闭蜂鸣和警报灯返回。
(6)红绿灯时间调整程序
当复位后,可以用遥控器设置倒计时的初始值,当东西向交通严重,应将时间调长;当两向相当,可设置一样的时间,当南北向交通严重,应将该向时间调长。
本设计只是模拟大致的调整过程。
(7)消抖动程序
另外,在按键计数的过程中,还存在机械抖动与软件方面的矛盾,即当程序检测到了有按键按下,则会计一次数,但是实际上,按键闭合后在微观上还会弹起,然后闭合,一直到达稳定,显然后面的弹落是无效的,为了使程序避免这个问题,可以在检测到首次闭合时,调用一定时间的延时程序。
此处延时程序完全用软件完成。
1.结论
交通灯控制在交通运输领域有着非常重要的作用。
本文完成了基于单片机的交通灯控制系统的设计与模拟。
包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。
在论文完成过程中,主要做的工作有:
(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的实现。
(2)以ATMEL公司的AT89C52单片机为核心进行系统硬件设计,输入量包括:
车流量,按键状态和违规检测传感信号;输出控制交通信号灯亮灭状态及时间,以及LED数码管倒计时显示。
(3)采用C语言对系统的软件编程,在开发过程中可使用了开发板,这些都大大缩短了软件的开发周期。
为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。
仅供个人用于学习、研究;不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse.
NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 车辆 闯红灯 监控 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)