基于单片机的车辆闯红灯监控系统_第1页
基于单片机的车辆闯红灯监控系统_第2页
基于单片机的车辆闯红灯监控系统_第3页
基于单片机的车辆闯红灯监控系统_第4页
基于单片机的车辆闯红灯监控系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的车辆闯红灯监控系统基于单片机的车辆闯红灯监控系统 摘要 基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用 智能,集成,且功能强大的单片机芯片为控制中心,设计出一套十字路口的交 通控制系统,以指挥该路口的实时通行状态。 本设计主要做了如下几方面的工作: 一是确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案 设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实 现基本的交通功能,还有倒计时显示提示,基于题目要求,又要求了具有智能 调度功能,当侦测某一通道繁忙另一通道空闲时,能自动调整红绿灯时间。紧 急状况处理:当有紧急通行车辆(如消防车、救护车、警车)要求通过时,能 自动开通该通道而关闭另一通道。违规检测及处理,遥控可设置等强大功能。 二是进行软件系统的设计,对于本系统,本团队采用单片机 C 语言编写, 对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原 理,总体上完成了软件的编写。 关键词:交通灯,遥控器,led 显示,中断 1.1. 系统方案论证系统方案论证 方案一: 在十字路口四个干道处50米处安装红外对管,检测车辆堵车时间,当红外对管 的信号屏蔽较长时间时,即判断此路口为繁忙,自动切换为绿灯,以保障通行, 同时红外对管也可以用来作为车辆计数器。在四个干道的黄线外地下设置地感 线圈,当该干道为红灯状态时,启动地感线圈,如果有车闯红灯时,由于车的 金属材质引起线圈的振荡频率改变,送出一个电平变化给单片机的判断口,从 而进入报警程序,发出声光警报。 方案二: 设在十字路口,分为东西直行、东西左拐和南北直行、南北左拐,在任一时刻 只有一个方向通行,另外三个方向禁行,持续一定时间,经过短暂的过渡时间, 依次进行通行禁行方向轮流转换。其具体状态如下所示。交通状态从状态 1 开 始变换,直至状态 8 然后循环至状态 1,周而复始,闯红灯用微动开关的电平 变化来模拟,设置二个按键,按键 1 为繁忙检测,当按下为 3 秒时,启动状态 转换,该干道变为绿灯,按键 2 为闯红灯检测,用下降沿触发给单片机的中断 口一个中断信号,触发送出声光警报,而设置加减倒计时则用遥控器实现。 综合比较方案,认为方案二更方便可行,方便功能实现。 2 单片机交通控制系统的功能要求单片机交通控制系统的功能要求 本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的 信号发生,还能进行倒计时显示,自动检测繁忙,交通违规处理和紧急处理等 功能。 (1)倒计时显示和状态显示 倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和 “通过”两者间作出合适的选择。倒计时显示是用来减少驾驶员在信号灯色改 变的关键时刻做出复杂判断的 1 种方法,它可以提醒驾驶员灯色发生改变的时 间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。 (2)闯红灯检测 现阶段,车辆检测器检测方式有很多,各有其优缺点,如红外线检测器、 地磁检测器、机械压电检测器,磁频检测器、波频检测器、视频检测器等。一 状态 1状态 2状态 3状态 4状态 5状态 6状态 7状态 8 东西直 行 通行 等待变 换 禁行 等待变 换 禁行 等待变 换 禁行 等待变 换 南北直 行 禁行 等待变 换 通行 等待变 换 禁行 等待变 换 禁行 等待变 换 东西左 拐 禁行 等待变 换 禁行 等待变 换 通行 等待变 换 禁行 等待变 换 南北左 拐 禁行 等待变 换 禁行 等待变 换 禁行 等待变 换 通行 等待变 换 信息学院单片机设计 2011-12-3 般闯红灯采用传感器+单片机+外围器件来实现。 因为闯红灯的速度快,所以用 下降沿触发的中断信号。 (3)时间手动设置 除系统根据车流量自动控制调整,也可以通过遥控进行手动设置,增加了 人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变 为红灯。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列 式两种。前者软件编写简单,但在按键数量较多时特别浪费 I0 口资源,一般 用于按键数量少的系统。后者适用于按键数量较多的场合,但是在单片机 I0 口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。本系统创造 性的用了遥控器来控制,省掉了按键的烦恼。 (4)紧急处理 交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等, 我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻 关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停遥控,就 可达到当有紧急通行车辆(如消防车、救护车、警车)要求通过时,能自动开 通该通道而关闭另一通道。 (5)违规检测 如闯红灯等,也时有发生,交警等交通管理人员虽然可以进行实时监管,但 是耗费精力,在路口设置检测传感器就可以进行自动的警报提示。除了红灯警 报,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒 作用。 据此,本设计系统以单片机为控制核心,由车流量检测模块,违规检测模块, 和遥控设置模块等产生输入,信号灯状态模块,LED 倒计时模块和蜂鸣器状态 模块接收输出。 单片机 车流量传感器 最小系统 外围接口电路 8段LED数码管显示 红黄绿信号灯 蜂鸣器 按键控制 系统的总体框图如上所示。 遥控设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常 工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到 LED 数码 管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对 异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。 在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测 统计,到达一定时间将修正通行时间以满足不同路况的需要。 3 3 系统硬件电路的设计系统硬件电路的设计 3.1 系统硬件总电路图 原理图设计 信息学院单片机设计 2011-12-3 PCB 设计 3.23.2 系统硬件总电路构成及原理系统硬件总电路构成及原理 实现本设计要求的具体功能,可以选用 AT89C52 单片机及外围器件构成最小控 制系统,16 个发光二极管分成 4 组红绿黄蓝四色灯构成信号灯指示模块,两位 数码管构成倒计时显示模块,堵车繁忙检测,闯红灯信号检测,采用遥控控制 时间设置和紧急情况调控等,以及用 1 个蜂鸣器和 1 个红灯进行报警,因时间紧 迫,传感器和光敏接收器用按键触动来模拟。 3.2.1 系统硬件电路构成 本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭 环控制系统。系统硬件电路由车流量检测电路、单片机、违规检测电路,状态 灯,LED 显示,按键,遥控器,蜂鸣器组成。其中 P0,P2,用于送显两片 LED 数码管,组成动态扫描电路,P0 用于控制红绿黄蓝发光二极管,XTAL1 和 XTAL2 接入晶振时钟电路,REST 引脚接上复位电路,P3.2 即 INT1 接违规检测 电路和紧停东西时间设置键 J,P3.3 即 INT0 接车流量检测电路,P2.6 接警 示灯,P2.7 接蜂鸣器。 3.2.2 系统工作原理 系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:红绿 灯时间自动和红绿灯时间设置。首先显示 00,接着由遥控器进行加计数,接着 按遥控器的确认键,开始倒计时,同时状态灯开始按规律进行显示。时间到达 一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应 状态码值以及时间值, 当然,还要开启两个外部中断,其一为违规信号或禁停信号输入,一旦主干道 红灯信号有效,中断开始,进入中断服务子程序,开启蜂鸣器禁止全部通行, 当断开按键,中断结束返回。其二为车流量检测信号输入,若检测到车辆经过, 进入相应的中断子程序,将存储车流量的寄存器加 1,然后中断结束返回。 每满一个状态循环周期,若为自动模式,则须将检测到的车流量数据处理一次, 判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达 到自动控制的目的。 3.33.3 其它硬件介绍及连接其它硬件介绍及连接 3.3.1 车辆繁忙检测电路及模拟 为了达到对红绿灯的时间控制,需要对道路上的车流量进行检测。当前比较流 行的车流量检测器件,是一种自感式的车辆传感器。其工作原理是当车辆经过 传感器时,引起其自感的变化,考虑到单片机系统的便利性,本次设计用一种 手动的操作方式,即车流量的检测电路用微动开关代替。其基本思路为:当车 流量大时,由微动开关送出一个高低电平变化,引起状态灯进行切换。 3.3.2 违规检测电路及模拟 在红灯和黄灯期间,车辆是禁行的,为了对那些违反规则的车辆进行检测,可 使用超声波车辆传感器。但是,用于受到条件的限制,本系统设计中只是使用 了微动开关模拟。 因为时间有限制,我们团队用开关模拟闯红灯的操作,即在主干道红灯时,开关给个电平 变化给单片机的中断入口,进行判断,从而进行相应操作。 3.3.3两位两位 LED 数码管数码管 我们采用的是两位的共阳 LED 数码管,一个 LED 数码管就有两根位选线和 8 根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制,用动态 扫描显示两位数字。 显示数值 g,f,e,d,c,b,a,dp 驱动代码 01000000181H 111110011F3H 20100100149H 30110000161H 40011001133H 50010010125H 60000010105H 711110001F1H 80000000101H 90010000121H 表 3.1 驱动编码表 信息学院单片机设计 2011-12-3 3.3.43.3.4 其它器件其它器件 (1)发光二极管 根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极 管。每个方向上设置红绿黄蓝灯,总共 4 组。如果东西红灯亮,那南北方向就 是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如下图 3.8 所 示。 2)蜂鸣器 本设计采用一般蜂鸣器,蜂鸣器使用 PNP 三极管进行驱动控制,当 P2.7 引脚输 出为低电平,PNP 导通,蜂鸣器蜂鸣;当 P2.7 引脚输出高电平时,PNP 截止, 蜂鸣器停止蜂鸣。如下图 3.9 所示 (3)按键控制 独立按键一端接地,另一端接上拉电阻。低电平有效,当按键按下端口接地, 单片机捕获到低电平,从而知道相应的输入信息。 4 4 系统软件程序的设计系统软件程序的设计 4.1 程序主体设计流程 全部控制程序实际上分为若干模块:遥控设置处理程序,状态灯控制程序,LED 显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序, 中断服务子程序,车流量计数程序,红绿灯时间调整程序等。 首先是初始化处理程序,89C51 通过对遥控器扫描,进行初始值的加减,按遥 控器的确认键后,状态灯按规定状态进行亮灭显示,想重新设置则要按下复位 键。 扫描程序开始后,先刷新显示模块,然后扫描紧停信号和违规信号,若捕获则 调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。50ms 已到则重 新扫描。扫描 20 次之后计时到达 1s 则时间数据减 1,在显示模块中修改显示 图 3.9 蜂鸣器连接 缓冲区内容。接着进入红绿灯时间调整程序,更新红绿灯时间。当前状态时间 已到,则判断次状态装入相应数据,然后进入下一状态。 4.2 理论基础知识 (1)定时器原理 定时器工作的基本原理其实就是给初值,让它不断加 1 直至减完为模值,这个 初值是送到 TH0 和 TL0 中的。它是以加法记数的,并能从全 1 到全 0 时自动产 生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求 的计数值设定为 C,把计数初值设定为 TC 可得到如下计算通式: 式中,M 为计数器模值。计数值并不是目的,目的是时间值,设计 1 次的时间, 即定时器计数脉冲的周期为 T0,它是单片机系统主频周期的 12 倍,设要求的 时间值为 T,则有 C=TT0。计算通式变为: T=(MTC)T0 模值和计数器工作方式有关。在方式 0 时 M 为 8192;在方式 1 时 M 的值为 65536;在方式 2 和 3 为 256。就此可以算出各种方式的最大延时。如单片机的 主脉冲频率为 12MHZ,经过 12 分频后,若采用方式最大延时只有 8.129 毫秒, 采用方式最大延时也只有 65.536 毫秒。这就是为什么扫描周期为 50ms 的原 因, 若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只 用计数器,因为显然秒钟已经超过了计数器的最大定时间,所以我们还必须 采用定时器和软件相结合的办法才能解决这个问题。具体程序中: 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 先使软件计数器减,然后判断它是否为零。为零表示秒已 到。设定定时器需要定时 50 毫秒,故 T0 必须工作于方式。要求初值: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 灯初始值设定 通过对遥控器的按键输出进行编码,在单片机内部用程序解码,实现用遥控器 进行加减显示设置,以及确定键。 信息学院单片机设计 2011-12-3 (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 捕获到一个低电平,则 进入相应的中断服务子程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论