版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--3--前言在各个交叉口设置交通信号灯已成为最常见、最有效的交通分流手段。但是这项技术从19世纪就已经出现了。1858年在英国伦敦安装了有红色和蓝色的两种颜色的信号灯,用机械扳手来切换信号,以燃烧煤气为光源,用以指导道路交通运输,这是世界上第一个真正意义上的交通信号灯。到1896年,英国铁路信号工程师从女性红绿两种着装受到启发,设计并改进了首次为红绿灯为交通灯,交通灯由此逐渐产生。该交通灯依旧用煤气作为光源,红色表示停止,绿色表示前进,通过它交通事故数量明显下降。随着第二次工业革命的完成,根据生产的需求,使各种交通运输工具飞速的发展,给道路交通压力急剧增加。单一靠交通警察手摇式的交通灯在实际使用过程中暴露出了不足,交警有可能不能准确判断道路情况,夜间不能使用简单的标牌指标,极大限制了它应用的推广和范围。20世纪初,在美国出现了最早的由电力点燃的红绿交通灯,形状由方形变为圆形,并增加了黄灯。红灯表示车辆停止通行,绿灯表示车辆看以通行,黄灯表示车辆谨慎通行。之后,由于技术方面的限制,在几十年内,交通信号灯的切换一直由人工控制。直到上世纪70年代微软公司的迅速崛起,交通灯才告别各种各样的处理系统,使用微软公司提供的处理系统进行红、绿、黄信号的逻辑切换控制,彻底进入了自动控制时代。交通信号对交通事故管理起到了很大的作用,大大减少了交通事故的发生。在1968年,联合国就制定并公布关于《道路交通和道路标志、信号的协议》作为各国制定交通标志的基础,协定了各种信号灯的含义。本系统使用红外传感器来检测车辆的流动。这可以通过硬件计算车的数量和时间,通过更好的逻辑处理程序来实现交通状况的智能分析,并借助调整算法来设置流量可以。交通管制系统的设计具有简单的结构,高可靠性,低成本,良好的实时性能,方便的安装和维护的优点,具有广泛的应用前景。特别是在高度集中的人口密度城市,智能交通光控系统的设计尤为重要。城市交通控制系统运用智能控制系统,满足城市快速发展的需要,最直接的作用是解决交通拥堵问题,改善干线道路畅通的通道,减少车辆等待时间,本研究具有实用意义。1绪论1.1智能交通灯的背景及意义随着社会经济的飞速发展,人口的大量流动,交通的便捷性,带动世界各地的城市和乡村地区车辆的流动急剧增加。这种增长导致了巨大的交通拥堵,给经济、人类健康和环境带来了巨大的后果。交通管理、监控和控制的经典方法在性能、成本、维护和支持方面变得低效。随着交通压力的逐渐增大,车辆也在逐年扩大,交通问题已经成为所有城市迫切需要解决的问题之一。当今的交通灯控制系统已经成为维护城市交通运行的重要工具。如果没有交通信号灯的支持,城市交通将变得混乱,影响人们的日常生活。基于交通流检测的智能交通灯控制系统是城市交通系统发展的重要支撑,需要大力推广和发展。由于传统的红绿灯都是定时分配时间,造成了以下主要缺点:一是交叉口同一方向的车流容易较多,定时分配容易,某一方向的车辆扎堆速度较快,从而影响下一个交叉口的交通状况。二是当某一方向无车或少量车流时,无法控制其他阶段车辆的优先权,造成交通指挥盲区,影响交通指挥效率。最后,由于无法确定大流量相位的释放时间,导致大流量车辆需要等待多个控制周期才能完全通过。本文提出了红外检测车流量的智能交通灯系统的设计。为了有效缓解交通堵塞,可以减少路口前面的车辆排队数,可以智能合理地设置交通信号的时间和相位切换。1.2课题主要研究内容本次课题主要研究的内容,有如下几个方面:1.红外检测车流量的智能交通灯系统的工作原理。2.红外检测模块的检测原理及其硬件电路设计。3.智能交通灯控制系统的硬件设计。4.对红外车检测流量的智能交通灯系统的程序设计。1.3课题研究方案随着现代电子技术的飞速发展,产生了一大批先进的电子产品。尤其是单片机的发展非常迅速。由于单片机的特殊结构,在某些应用领域,它承担着普通微机无法完成的任务。它是一种高性能、低价格的处理器。集成度高、体积小、可靠性高、控制功能强、电压低。由于这些特点,单片机在人类生活中得到了广泛的应用。本文设计了一种基于单片机和外围电路的高效、可用性强、可靠性高的智能交通信号灯电路。已知有东、西、南、北三个方向的红、黄、绿灯,东西方向两个数码管,南北方向两个数码管。信号灯要求按照下表定时显示和切换,要求在数码管上显示东西、南北方向各状态下的倒计时剩余时间。设置十字路口东西方向绿灯通行时间为20s时,南北红灯禁止通行时间为25s时,因为当东西绿灯倒计时结束后,要有5s秒的黄灯闪烁时间。表1.1交通灯亮灯状态表东西方向南北方向序号状态1序号状态11绿灯亮,红、黄灯灭1红灯亮,绿、黄灯灭2黄灯亮,红、绿灯灭2红灯亮,绿、黄灯灭3红灯亮,绿、黄灯灭3绿灯亮,红、黄灯灭4红灯亮,绿、黄灯灭4黄灯亮,红、绿灯灭回到状态1回到状态1对于智能交通灯控制系统尽可能增加一些拓展功能,以满足实际应用要求的需要。在一个交通灯路口,能尽可能地提高单位时间的车流量,就算达到了性能最优化。按照一个城市十字路口的规律,一个路口可以分为主干道和支干道,各干道的放行时间根据实际车流量来设定,主干道的放行时间大于支干道的时间,本文设定值时也应以此为参考。假设以下场景,在南北和东西两干道单交叉于一个十字路口,每个干道都有一组红、黄、绿的交通信号指示灯。红灯亮起时,禁止通行;绿灯亮起时,允许车辆通行,但转弯的车辆不得妨碍直行的车辆行驶。黄灯闪烁时,则提示人们注意红、绿灯的状态即将互相切换。同时,黄灯闪烁时间为两交叉干道的共用停车时间。在正常通行模式下,当黄灯闪烁时,没有超过停止线的车辆,禁止通行。设南北干道比东西干道的车流量大。十字路口的东西向、南北向各有一组红绿灯和一个时钟系统,时钟系统由两个LED数码管组成,用于显示红绿灯的时间。时钟系统以倒计时方式显示,即每盏灯亮时,时钟为点亮的最大时间,此后每1秒数据减少1,数据减少到0时,指示灯进行转换。阶段1:东西方向干道通车时,绿灯常亮。南北方向次干道禁止通行,红灯常亮;阶段2:东西方向干道通车时间截至后,东西方向干道由绿灯转为黄灯并闪烁5S,南北方向干道仍保持红灯常亮;阶段3:当南北方向红灯倒计时结束,即刻转换为绿灯常亮,此时东西方向由黄灯闪烁转为红灯常亮;阶段4:南北方向通行时间过了之后,南北方向由绿灯转为黄灯并闪烁,东西方向仍保持红灯常亮;阶段5:当东西红灯倒计时结束,即刻转为绿灯常亮,此时南北方向由黄灯闪烁转为红灯常亮,此时回到阶段1。阶段6:改变红绿灯倒计时的因素:车流量和特殊状况;1.车流量检测:设置东西方向绿灯通行时间为20s时,南北红灯禁止通行时间为25s时,我们用红外检测模块来模拟十字路口车流状况。当红灯禁止通行时,有车辆通过斑马线时,交通灯控制系统默认为闯红灯不计数,此时蜂鸣器发出鸣叫;当绿灯长亮时,车辆正常通行,红外检测模块自动对车辆进行计数,并把计数信息传递给单片机处理。此时由车流量改变红绿灯倒计时的因素又分两种情况:(1)在同一个计数周期内,通车数量小于前一次通行时间的一半时,下一个周期回来保持红绿灯通行时间减5s,直到绿灯通行时间到达15s时,停止递减,维持现状。(2)在同一个计数周期内,通车数量大于或等于前一次通行时间的一半时,下一个周期回来绿灯通行时间会+5秒,红灯禁止通行时间,也会在原来默认情况下+5秒,直到绿灯通行时间到达60s,南北干道通行时间达到为75s。2.特殊通行:(1)工作人员按下紧急模式按钮,时钟系统暂停运行,东西方向、南北方向干道都亮红灯,各个干道禁止通行,直至退出紧急模式。(2)东西干道通行模式,东西方向干道绿灯亮,南北方向禁止通行。南北干道通行模式,南北方向干道绿灯亮,东西方向禁止通行。(3)夜间通行,各个干道黄灯闪烁。
2系统设计及要求2.1单片机概述2.1.1单片机的发展单片机是采纳超大规模技术,将微处理器CPU、存储器、输入/输出口及其他部件电路集成在一块芯片上的微型计算机。在单片机开发系统等软件的指令控制下,这些硬件电路能够准确、快速、高效地实现预先制定的工作。单片机是一种微型计算计,与计算机以样都需要在软件系统、硬件电路等共同发挥作用下才能正常使用,它能通过对程序的控制设计来完成相关的功用。单片机的发展经历了单片机微型计算机阶段、单片机微控制器阶段、嵌入式系统与单片机应用系统阶段的三个阶段。单片机的应用也日益普遍,在仪器仪表、家用电器、医疗设施、航空航天、特种设备等领域的智能化管理和过程控制方面,都有不可或缺的作用。随着应用市场对单片机的要求越来越高,现在它正在以微型单片化,低功耗化,更高效、更复杂的性能发展。2.1.2主控制器选择主控制器采用SCT89C51单片机,它有3个16位定时器/计数器,即定时器T0、T1、T2。T0、T1外部脉冲计数实时操作,所以可以很容易的车流量检测信号输入。8个中断源,促进交通流定时器中断检测。32个通用I/O口,复位后为:P1、P2、P3、P4是准双向口/弱上拉,P0口是漏极开路输出,作为I/O口用时,需要加上拉电阻。STC89C51单片机掉电典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。图2.1单片机STC89C551引脚图如图2.1所示,STC89C51引脚功能说明:VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0~P0.7):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载。对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。P1端口~P3端口都有相同的功能引脚。都是一个带有内部上拉电阻的8位双向I/O端口。作为输出缓冲器可以驱动4个TTL输入。当一个端口被写入1时,该端口被内部上拉电阻拉到一个高电位,可以用作输入端口。当它作为输入口时,那些被外部信号拉低的引脚会由于内部上拉电阻而输入一个电流。P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:表2P3口引脚复用功能引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6外部数据存储器写选通P3.7外部数据存储器读选通RST(9脚):复位输入。当连续使用两个机器周期以上的高电平时,对单片机进行单片机的复位和初始化操作。ALE/PROG(30脚):地址锁存器在访问外部程序存储器时,通过输入电平信号的高低,锁存低8(29引脚):允许程序存储的信号端,作为外部程序存储器选通信号。EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。XTAL2(18引脚):振荡电路的反相放大器,要使振荡电路的周期和晶体固有的周期效用保持一致,必须使外部晶体和微调电容接到振荡引脚和时钟引脚。XTAL1(19引脚):这里的18引脚和19引脚一起,再加上外部时钟和外部晶体以及微调电容元件,共同构成反相振荡电路放大器的输入端。2.2芯片74HC245简介74HC2455译码器是双Р沟道增强型MOS管。如图2.2所示,该芯片是一种三态输出、八路信号收发器,它采用CMOS工艺,适用于显示屏以及其他数字电路的驱动。它在智能交通灯控制系统中主要用于完成数据总线的双向异步通信,保护脆弱的主控芯片,通常在主控芯片的并行接口与外部受控设备的作为双向的八路缓冲器。由于单片机的数据地址/控制总线端口都有一定的负载能力,如果负载能力超过的负载承受性能,应该增加驱动芯片,增大其驱动能力。74HC245芯片的管脚定义:A0~A7引脚数据输入/输出;B0~B7引脚数据输入/输出;OE引脚输出使能;DIR引脚方向控制;GND引脚逻辑地;VDD引脚逻辑电源。图2.2驱动芯片74HC2452.3电源电路通常单片机的供电电压为直流5V,本文设计采取的是USB转DIP转接板对单片机进行供电。如图2.3所示,POWER模块是DC电源接口,2、3引脚必须接地GND,1引脚实际是接电源VCC。自锁开关S1在供电电路中的功能是对电源VCC起到开关作用,3引脚起到常开功能,与POWER模块的1引脚相连,常开的4号引脚连接直流电源VCC。图2.3DC电源插口2.4红外检测方案2.4.1光电传感器的原理光电传感器又叫光电开关,它利用光的吸收或反射测试,通过同步对象没有循环检测。对象不限于金属,一切能够反射光线的物体都可以被检测到。光电传感器的输入电流通过发射端转换成光信号,接收端根据接收到的光信号强度来判断否检测到车辆,并转换成电信号进行车流量统计。如图2.4所示光电传感器的计数原理图。信号产生:由发射器中的发光二级管将电信号转化成稳定光信号。信号采集:由接受器中发光二极管的PN节处通过管壳的圆形玻璃窗口能够接受外部光源从而将光信号转变成电信号。信号处理:电信号通过放大器放大和调制器整形处理,进行时钟逻辑转换成数字信号传递给负载。数字显示:将数字信号传递给单片机判断处理,在通过数码管将电信号转变成可读的数字。图2.4光电传感器的计数原理2.4.2光电传感器的选择普通的光电开关在市面上种类繁多,而且价格便宜,基于本设计对于光电传感器的要求较高,要求光电传感器在抗干扰性强,不受恶劣气象条件或物体颜色的影响,并且使用寿命长,安装简便。在参考市面上各种光电计数器的性能指标以及相对经济性的情况下,本文选用红外光电传感器E18-D50NK这是一种集发射与接收于一体的光电传感器,检测距离可以根据要求进行调节。选用红外光电传感器E18-D50NK的检测最大距离是80厘米,可以安装在十字路口车辆停止线出,可以根据检测距离调控或者更换检测距离更远的传感器。如红外感应光电开关E3F-DS200C1,它的检测最大距离200厘米,这让检测距离更加长。它的内部原理图如下图2.5所示,是由发光二极管、整流稳压器、电源、放大器、解调器、时钟逻辑、负载共同组成。当传感器检测到物体时输出低电平状态,没有检测到物体时输出高电平状态。图2.5红外光电传感器E18-D50NK传感器内部原理图2.4.3流量检测的设置设置红外光电传感器只对绿灯通行车辆计数,当检测到有车辆闯红灯时,蜂鸣器发出鸣叫,但传感器不对其闯红灯车辆计数。红外检测模块对一个计数周期内进行计数,下一个周期自动清零。如图2.6所示。(1)在同一个计数周期内,通车数量小于前一次通行时间的一半时,下一个周期回来保持红绿灯通行时间减5s,直到绿灯通行时间到达15s时,停止递减,维持现状。(2)在同一个计数周期内,通车数量大于或等于前一次通行时间的一半时,下一个周期回来绿灯通行时间会+5秒,红灯禁止通行时间,也会在原来默认情况下+5秒,直到绿灯通行时间到达60s,南北干道通行时间达到为75s。图2.6流量检测的设置2.5信号灯显示方案信号灯显示方案要求实现数码管倒计时、状态灯变换等功能。显示模块分两个部分,数码管显示和LED灯显示。数码管倒计时提醒司机在路口注意信号灯变化的时间,提醒驾驶员灯色发生改变的时间,在“禁止”与“通行”作出合适的选择。LED灯显示是利用红、黄、绿不同颜色的灯来实现信号灯的变化。司机和行人通常希望选择带有倒计时显示的信号灯控制,他们认为有红绿灯的十字路口更安全。倒计时显示是一种在信号灯颜色变化的关键时刻减少驾驶员复杂判断的方法。这两个显示器结合在一起,使设计更加合理和可靠。2.5.1数码管显示数码管是一种半导体发光器件,是由多个发光二极管组成。发光二极管简称LED是一种常见的发光器件。它由一个PN结组成,具有单向导电性,它通过将电子与空穴结合释放能量来发光,通常用来表示机器的状态和其他信息。LED是工作电压低的元件,导电时的一般约为1.6V-2.4V即能导通发光,反相击穿电压大于5V。因为LED的正向伏安特性曲线较陡,工作电流小,典型值为10mA左右,在电路的应用中必须串联适当的限流电阻器,以避免电流过大发热而烧坏管子。如图2.7所示,数码管是由能显示多少位数字而命名,可分为1位、2位、4位等数码管;数码管按其发光二极管的连接方式分为共阴极数码管和共阳极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。如图2.8所示,共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴极数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。由于数码管的价钱便宜,使用简单在电器领域应用极为普遍。图2.7数码管显示图2.8共阴极数码管结构图2.4.2信号灯显示在十字路路口中的交通信号灯,是采用LED为光源做成的信号灯。由于采用LED灯作为光源,较之传统光源具寿命长,功耗低,发光效率高,可以有少量的损坏而不影响总体效果,色泽纯正方便在一个现实面上实现几种颜色和图形。LED灯寿命可以长达10万小时以上,由于它的驱动电压小,方便编程,消耗功率小于10W
,可以大幅降低信号灯的维护成本。如图2.9所示,信号灯由3个发红、黄、绿光LED灯组成。图2.9信号灯显示2.6蜂鸣器选择蜂鸣器为发声元件,在其两端施加直流电压或者方波电压就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、工作电流、驱动方式等。它是一种采用直流电压电源作为一体化结构的电子讯响器,广泛应用于计算机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。这些都可以根据需要来选择。本设计采用两端施加直流电压的有源蜂鸣器,通过红外光电传感器检测到的信号判断否有车辆闯红灯,如果有车辆闯红灯蜂鸣器鸣叫报警。2.7单元电路设计根据系统设计方案要求,连接各单元电路,得到系统电路原理图附件1。(1)系统描述:东西方向的红外光电传感器检测将车辆脉冲信号分别传入到单片机T1和WR的入口,T1和WR是输入脉冲计数,而单片机T0口的时机,在设定的时间内,通过单片机计时器T0溢出中断,将发回的统计值,单片机通过执行相应的项目,因此控制交通状态灯开关和数码管倒计时时间显示。单片机根据交通流量的变化在特定工作条件如下:当接通电源,单片机控制系统刚开始工作,将同时执行东西方向干道绿灯长亮20s和南北方向干道倒计时红灯长亮25s,然后东西方向由绿灯变为黄灯闪烁保持5s,南北方向保持红灯5秒。此后东西方向变为红灯长亮30s,南北方向为绿灯长亮25s后,南北方向保持黄灯5s,东西方向红灯状态5s后,再扫描。车流量相关的参数描述:车流量是指在某一时间内通过特定道路地点的车辆数量,车流量用公式表示:车流量=通过车辆数/时间。它是一个随机数的流量,在同一时间段、相同的地方检测到的数据也有差别。参考时间:选择合适的时间作为参考值,以更准确地表示十字路口的交通流量。
3系统硬件电路设计3.1系统设计实现本设计所需的特定功能,选用SCT89C51单片机及外围设备构成单片机最小系统,用发出红、绿、黄光的发光二极管构成4组信号灯指示模块,8个LED数码管东西南北各两个构成倒计时显示模块,若干按键组成模式选择按钮和紧急按钮等。如图3.1所示,该系统以单片机为中心,形成集处理和自动控制为一体的闭环控制系统。该系统的硬件电路由单片机、状态灯、LED显示器、驱动显示电路、按键控制电路等组成。其中P0,P1,用于连接LED数码管的型和位,P2用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,RST引脚接上复位电路,P3用于按键控制电路。图3.1系统的硬件总体框图3.2单片机最小系统如图3.2所示,SCT89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。4个I/O口都是8位双向口,其结构和特征基本相同,但又各具特点。单片机的时钟信号通常由内部时钟模式和外部时钟模式产生。振荡电路设置在单片机内,只有单片机的XTAL1、XTAL2针脚上的外部晶体(简称晶体振荡器)才能形成自激发振荡器,并能在单片机内产生时钟脉冲信号。复位电路通常采用自动复位和按钮复位两种方式。最简单的自动复位电路是对外部复位电路中的电容进行充电来实现自动复位。晶体振荡器为单片机提供工作信号脉冲,这个脉冲信号单片机的工作速度。如12M晶体振荡器单片机的工作速度为每秒12M,单片机的工作频率不能大于每秒24M稳定值。图中晶振振荡器Y1的振荡频率取12MHz,电容C2的作用是稳定频率,电容C3的作用快速起振,这里取值都为22pF。图3.2单片机最小系统3.3上拉电阻从电源到设备引脚上的电阻称为上拉电阻,作用使引脚平方平时为为高电平状态。上拉电阻就是通过一个电阻将不确定的信号钳位在高电平,同时起到限流作用。在交通灯控制系统中单片机SCT89C51接入上拉电阻RP1阻值10KΩ和RP2阻值为1KΩ,如图3.3所示。在实物制作中用阻值为10KΩ的排阻103代表上拉电阻RP1,用阻值为1KΩ的排阻102代表上拉电阻RP2。当端口P0作为I/O口输出时,输出低电平为0
,输出高电平为并非5V的高组态。由于单片机P0端口内部没有上拉电阻,是开漏的,不能真正的输出高电平,给所接的数码管显示提供电流。无论它的驱动能力多大,相当于它是没有电源的,无法给负载提供所需的电流,因此外部电路要对P0端口提供需要电源。P0端口连接上拉电阻,电阻的一端连接到直流电源VCC,电源通过上拉电阻器向负载提供电流。
在大多数情况下,P0端口都需要加上拉电阻的。附件1所示,上拉电阻RP1通过引脚与驱动芯片74HC245相连接图,对单片机提供一个驱动电流,比如单片机P0.0输入一个高电平,驱动芯片74HC245的A0端口输入一个高电平,与之对应的输出端口A输出一个高电平。单片机的驱动电流本身是很小的,它驱动数码管亮度是很暗的,加一个驱动芯片使电流可以达到几十毫安,给数码管电路提供更大的电流,使之变亮。
P2端口需要接一个上拉电阻RP2,电阻的一端连接直流电源VCC,是由于单片机驱动电流很小,没达到驱动信号灯亮的最小电流,上拉电阻RP2的作用是对直流电源VCC起到限流作用,增大了单片机对信号灯的驱动电流,使信号灯发光。图3.3上拉电阻3.4电源电路模块如图2.4所示,电源电路由DC电源插口和自锁开关组成,本系统采取的是用USB转DIP转接板直接对单片机进行供电。图3.4电源电路3.6显示驱动电路3.6.1信号显示驱动电路74HC245译码器接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC245两个低电平有效使能输入端(E1和E2)和一个高电平有效使能输入端(E3)。当E1和E2设置为低电平有效并且E3设置为高电平有效,则74HC245输出为低电平有效,否则它的所有输出端将输出为高电平有效。使用此复合使能功能特性,需要4片74HC245芯片和1个反相器,可以很容易地实现并行扩展,可以组合成为1-32(5-32线)的解码器。任意使用低电平有效使能输入端作为共同的信号数据输入,把其余未共同作为信号数据输入使用的端口作为选通端,则74HC245亦可同时担任一个8路输出的数据分配器,未共同使用的使能输入端必须始终保持固定在各自合适的高电平有效或低电平有效使能状态。74HC245解码器专为高性能的存储器解码或在数据从一个地方传输到另一个地方的传输系统中有较短的时间延迟,在高性能的存储器过程中,用这种解码器很容易的提升整个解码系统的效率。将高速性能的存储解码用在快速赋能电路中时,解码器数据传输系统的数据延迟时间和存储器的电路赋能时间一般要比存储器的一次数据存取所用的平均时间小,当肖特基钳位的系统解码器提高了晶体管的开关速度,由它引起的有效数据传输系统的延迟时间很小可以忽略不计。HC138解码器根据三位二进制输入码和电路赋能输入条件,从八个赋能输出端转换一个低电平输出。三个赋能输入端中有两个低电平有效和一个高电平有效,减少了线路扩展时所需要的外部栅极或逆变器,扩展至24线路形成24线路解码器不需外部栅极;扩展至32线路形成32线路解码器,这里通常外部需要接一个逆变器。在调制解码器的实际应用中,赋能输入端也可被拿来用作数据传输输入端。如图3.5所示,在本设计中,将74HC245芯片的引脚1、20接直流电源VCC并一起接单片机引脚40,引脚19、10接地。芯片引脚A0~A7接单片机P0.0~P0.7,芯片引脚B0~B7接数码管引脚A~G。如果整个芯片的输入端为高电平,则输出端为高电平;当输入端输入低电平时,输出端输出低电平,这里只是相当于增大了单片机的驱动能力。图3.5芯片74HC245电路图3.6.2数字显示电路数码管显示,要求十字路口同一干道方向上的信号灯显示的时间一样。用SCT89C51单片机的P0.0~P0.7口驱动数码管的段码,用上拉电阻RP1为数码管显示提供驱动电流并给单片机提供高电平,74HC25解码器对增大单片机P0端口的驱动能力,如图附件1所示。如图3.6所示,用单片机P1.0、P1.1口连接来控制东西方向数码管LEDD的显示,P1.2、P1.3口来控制南北方向数码管LEDB的显示。信号灯显示驱动电路采用单片机的P0口和P2来驱动和控制数码管的时间与各种信号灯的燃亮。在这里本文用上拉电阻RP2来给信号灯提供驱动电流,单片机P2.1~P2.3端口控制东西方向信号灯的燃灭,P2.4~P2.6端口控制南北方向信号灯的燃灭。东西方向和南北方向的位线可以公共来使用,可以节约单片机的口线。图3.6信号显示电路图3.6蜂鸣器驱动电路模块如图3.7所示,蜂鸣器驱动电路包含3个部分:三极管、蜂鸣器、限流电阻。单片机P3.0端口驱动蜂鸣器是否报警。三极管Q1起放大电流作用,使基极的低电平使三极管饱和导通,使蜂鸣器报警;而基极高电平则使三极管不导通,蜂鸣器不报警。蜂鸣器驱动电路中加一个限流电阻构成偏置电路。当通过预先向集电极提供恒定电流来减小输入基极电流时,可以减小集电极电流。当输入基极电流增加时,集电极电流增加。因此,减少的信号和增加的信号都可以被放大。图3.7蜂鸣器驱动电路3.7键盘输入电路模块单片机控制系统中分为两种功能键,分别是独立式结构按键盘和矩阵式结构键盘。在单片机按键控制设计中每个独立键盘一端单独占用一根I/O端口线,这就表示每个独立键盘单独工作互不影响,它的另一端通常接地GND或接电源VCC,这种接法顺序比其他接法更加简单并且增加了按键控制系统稳定性;矩阵键盘接法顺序相对来说较复杂,但是它占用的单片机I/O线较少,提高了I/O口的利用率。按照本设计控制系统的需求,在系统中采用独立式键盘接线方法。独立式键盘的功能实现,是使用单片机的I/O口来读取电平高低来判别按键是否有动作。独立式键盘是常开按键,它的一端可以公共接地,另一端连接单片机的I/O端口,程序设计中将启动此I/O口设置为高电平,平常按键无动作时此单片机I/O口保持高电平。当按键动作时,此I/O口接地发生短路,使它转变为低电平。按键释放后,I/O口与地发生分离,利用单片机内部的上拉电阻,使此I/O口保持在高电平。我们所要做的就是在程序中查寻此I/O口的电平状态,就能是判断按键是否有动作了。如图3.8所示,K0按键是夜间模式与单片机引脚P15相连;K1按键是紧急模式与单片机引脚P11相连;K2按键是东西干道通行模式与单片机引脚P12相连;K3按键是南北干道通行模式与单片机引脚P13相连;K4按键是查看时间车流量与单片机引脚P14相连;K7按键是确认键与单片机引脚P17相连。图3.8键盘控制原理图3.8红外检测模块红外检测模块是采用2个XH-3P直针座接线端子构成,直针座采用直流5V供电与单片机DX、NB引脚相连接。在实设计中采用红外光电传感器E18-D50NK用于检测计数,与接线端子连接构成红外检测器,用这种方式可以方便的更换光电开关。当车辆通过红外光电传感器时,接收器检测到光信号强弱的变化,并转换成电信号发送到单片机中。单片机执行相应程序自动计算输入的电信号,完成车流量统计。在仿真模型设计中采用按键代替红外检测模块,对车辆检测的模拟。图3.9红外接近传感器4系统软件程序的设计4.1编程语言环境控制系统的正常运作,不仅需要设备系统的支持,还需要软件支持。由于软件系统的可行性和灵活性,该系统的功能变化可以在不修改该系统现有设备的情况下进行。为了达到软件系统的运用效率,有必要选择操作效率高的编程语言。编译环境就是集成开发环境,是一系列用于提供软件开发环境的开发工具,通常包括:代码编辑器、编译器、调试器、图形用户界面等工具。4.1.1编程语言的选择红外检测车流量的智能交通灯控制系统的程序设计采用C语言编程,C语言是一种面向过程的语言,它在用户创建或运行的过程中执行自己的功能。而汇编语言是一种面向机器的编程语言,它的一条指令与一条机械语言直接对应。C语言与汇编语言编程的选用,在给硬件设施做初始化时应选择用汇编语言编程,在给硬件设施做复杂操作时应选择用C语言。面向过程的语言遵循执行你语言的算法,所以很容易学习。在C语言中使用关键词来表达意思并在日常生活中做出一些决定,所以它的语法是很容易理解。C语言的优点:(1)C语言编程具备很高的运行工作率。(2)C语言在编程实际应用上的语句使用具有简洁、紧凑、对语法应用有灵活的机制,可以直接对此硬件设备进行访问。(3)用C语言编程的程序具有极佳的可移植性,可以在不同的软件平台和硬件设备上使用。4.1.2系统语言开发环境随着单片机使用的增多,相关技术的日益成熟,单片机软件也在日益优化,版本不断的更新。本设计中使用的KeiluVision5是一款流行软件,主要用于对51系列单片机的开发,它的集成开发环境可以对ARM单片机进行使用。它的集成开发环境主要包含C语言编译器、宏汇编器、调试器、实时内核等组件。通过一个集成开发环境,我们的软件可以编译C语言源代码、编译汇编语言源代码。链接模块对象模块和库产生一个对象文件,生成十六进制文件进行程序调试。4.2程序主体设计全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图4.1所示。图4.1系统总的流程图4.3子程序设计4.3.1键盘扫描程序设计程序要对按键控制完成相关功能,它是调用中断程序来实现控制功能。独立式键盘的功能实现,是使用单片机的I/O口来读取电平高低来判别按键是否有动作。按键程序设计中将启动单片机此I/O口设置为高电平,按键动作时此I/O口接地,变为低电平。按键释放后,I/O口与地发生分离,变为高电平。要判断按键的动作,就要在循环程序中查寻此I/O口的电平状态。图4.2中断子程序流程图4.3.2中断程序本程序的核心是定时中断子程序,定时器被调用,它会在原始值上以加1计数,如果在程序启动运行时,没有对TH0和ITL0进行设置赋值,则TH0和TL0的默认值均为0。本文晶振振荡器Y1的振荡频率取12MHz,所以它的时钟工作频率为12MHz,一个机器周期有12个时钟。此时的一个机器周期时间为1us,要使TH0和TL0计满,它中共需要216-1个数,然后一个脉冲计数器溢出,并立即向应用处理器请求中断。因此一个脉冲计数器的溢出一次共需的时间为约为65.6ms。如果设置定时时间为50ms,就提前要给TH0和TL0进行赋值。在初始值的上记50000个数后,定时器将溢出,时间恰好是中断的50ms。设置定时器时间为1s时,中断程序就要产生中断20次,对中断进行计数,便可以精确控制它的时间,负责更新数码管输出数据和各个信号灯状态的切换状态。相应代码在附件4。中断程序的流程图如图4.2所示。 图4.3定时中断流程图
5系统仿真与实物5.1软件简介本文硬件设计是用AltiumDesigner19画出电路原理图,程序设计是用KeiluVision5进行C语言编程,仿真电路图是用Proteus7.6建立模型。5.1.1Keil5编程软件简介KeiluVision5编程软件又称Keil5,它的集成开发环境,主要是对51单片机内核的软件。Keil5软件用管理工程的相似方法,来进行对文件的管理。使用Keil5软件进行项目时,主要具有以下过程:(1)创建编程语言的源程序;(2)编译源文件;(3)纠正源文件中的错误;(4)编译器与目标文件连接;(5)测试连接的应用程序;5.2Protues仿真软件简介Proteus软件是一个的EDA工具。它可以对原理图进行布图、对PCB设计、对程序的调试到对单片机模型仿真,它完成了从一段思维到一个完整的产品过程。本文采用Proteus7.6软件,主要具有以下特点:(1)具备优越的原理图绘制性能;(2)实现了对单片机仿真和外围电路的仿真;(3)提供对市面上通用单片机系统进行仿真;(4)支持对仿真的调试;5.3AltiumDesigner软件简介AltiumDesigner19是一体化的电子产品开发系统,它主要包括以下部分:原理图设计部分、PCB绘制部分、信号完整性分析部分等。使用可以轻松的进行原理图设计,对电路原理图进行设计时,提高了画图的质量和效率。5.2系统仿真原理图本仿真设计采用的是,Proteus7.6和Keil5软件共同进行仿真。首先启动用Proteus7.6画好仿真电路图并设置相关器件的参数,用鼠标左键双击此单片机,添加Keil5软件编译程序生成的HEX文件。完成后按下仿真按钮,开始对整个系统进行仿真。在Proteus软件中没有单片机SCT89C5主控器件,在仿真时采用AT89C51代替,它们的功能引脚都是相同的,整个系统仿真如图附件3所示。5.4仿真结果分析经过对该系统进行仿真测试,发现红绿黄灯的切换状态不满足实际交通控制需要。因为从绿灯通行状态切换到红灯禁止状态时,或者反向从红灯状态切换到绿灯状态,没有中间黄灯闪烁的等待状态。通常,交通信号灯控系统中,绿灯通行状态切换到红灯禁止状态时,需要经过黄灯闪烁。综上所述,再次修改程序代码,一侧的黄灯闪烁时,另一侧维持红灯状态不变,即保持红灯静止5s后,再实现信号灯的变色,并与十字路口另一侧的状态切换时间保持一致。5.4.1智能交通信号灯正常工作启动仿真开始,东西干道绿灯长亮20s,南北干道红灯长亮25s。东西绿灯长亮20s后,立即切换黄灯闪烁5s,南北红灯保持不变。东西黄灯闪烁结束后,立即切换为红灯长亮30s,南北红灯立即切换为绿灯25s。图5.1东西方向干道绿灯,南北方向干道红灯图5.2南北方向干道绿灯,东西方向干道红灯5.4.2智能交通信号灯特殊情况显示1.发生紧急情况,要禁止全部车辆驶入路口时,工作人员则按下K1紧急模式按键,时钟系统暂停运行,数码管显示的时间是按下K1键的那一可的倒计时。此时东西方向和南北方向干道的信号灯全部显示为红灯,现在红外传感器只检测有无闯红灯的车辆,不对闯红灯车辆进行计数,如果有闯红灯车辆,蜂鸣器发出鸣叫,提示行人有车辆。在次按下K1键或K7确认键,时钟系统恢复运行,数码管从头开始倒记时。图5.3禁止通行交通信号灯显示2.发生紧急情况,需要一方向干道停止车辆进入路口,则工作人员按下K2东西通行按键或者K3南北通行按键。如果按下K2按键,东西方向干道进入绿灯长亮,南北方向禁止通行,时钟停止工作,各个干道上的数码管全部显示为0。现在红外传感器检测南北有无闯红灯的车辆,对东西方向干道车辆进行计数,不对闯红灯车辆进行计数,如果有闯红灯车辆,蜂鸣器发出鸣叫,提示有车辆从南北方向干道进入路口。在次K7确认键,时数码管从头开始时。图5.4仅东西方向干道通行交通信号灯显示图5.5仅南北方向干道通行交通信号灯显示3.按下夜间模式按钮K0键,东西方向与南北方向干道的信号灯全部变为黄灯闪烁,数码管全部显示为0,红外传检测模块停止工作。在次K7确认键,时钟系统恢复运行,数码管从头开始倒记时。图5.6是在夜间通行模式下的交通信号灯显示。图5.6夜间通行交通信号灯显示5.4.3车流量检测与查看当第一次按下K4查看时间车流量按键,功能是查看各个方向干道上的数码管总倒计时。查看完数码管总倒计时,第二次按下K4查看时间车流量按键,数码管显示为一段时间内的车流。用按键K5东西车流量和按键K6南北车流量来代替红外检测模块,按键闭合一下,代表检测到一辆车经过,并在绿灯亮的一方向干道对车辆计数。图5.7是东西方向干道上检测到的车辆显示图。图5.7东西方向干道上的车流量显示5.4.4智能交通灯自动调节通行时间1.在同一个方向计数周期内,通车数量小于南北西方向默认通行时间的一半(25÷2=12.5)时,下一个周期回来保持红绿灯通行时间减5s。图5.9是检测到哥哥方向上车辆为0的车流量显示图。图5.8是东西方向、南北方向的车流量均没达到默认通行时间的一半,东西方向和南北方向通行时间分别逐阶段递减5秒,直到绿灯通行时间到达15s时,停止递减,信号灯显示维持现状。图5.8车流量显示图5.9交通信号灯显示2.在同一个方向计数周期内,通车数量大于或等于默认通行时间的一半时,下一个周期回来绿灯通行时间会+5秒,红灯禁止通行时间,也会在原来默认情况下+5秒。图5.10是东西方向上的车流量大于通行时间的一半(20÷2=10)时,下个周期东西通行时间加5s的信号灯显示图。图5.10车流量显示5.5实物焊接根据附件2的PCB板图,采用飞线来对器件进行焊接,实现对实物的制作。焊接过程主要注意:1.在万用板上对零部件的焊接完,要注意零部件引脚是否松动;2.使用数字万用表对焊接好零部件的进行测量,查看是否出有损坏;3.烧录程序,对实物进行测试;测试的结果与仿真模型完全一样,证明智能交通灯实物运行良好。结论智能交通灯在交通运输领域有着非常重要的作用。使用光电开关的方法在一定程度上可以节约成本,方便部署。本文的研究设计采用SCT89C51单片机作为实验工具模拟交通灯控制系统,可以根据实际路况自动判断车流量情况,并将其反映到对交通灯的逻辑控制上,实现一定程度的智能交通控制功能。首先通过信息采集,主要是对路口各方向的车流量进行采集,利用红外线传感器检测对车流量进行计数。该系统可完成传统信号灯的控制功能,红绿黄灯按一定的规律依次循环显示,并采用LED显示器,以动态扫描的方式完成倒计时功能。在此基础上,通过传感器对车流量的情况进行数据采集。将采集的数据以脉冲信号的方式传送还给控制中心,进行与设定值比较,是否超过设定的车辆数量。根据比较的结果,将比值与红绿灯时长的关系输出时长控制信号,使交通信号灯可根据车流量改变,提高了十字路口的车辆通行。附件1总电路图附件2PCB板图附件3仿真原理图附件4源程序#include<reg51.h> //头文件#defineucharunsignedchar#defineuintunsignedint //宏定义ucharbuf[4]; //秒显示的变量ucharsec_dx=20; //东西数默认ucharsec_nb=30; //南北默认值floatset_timedx=20; //设置东西方向的时间floatset_timenb=30; //设置南北方向的时间intn;uchardatacountt0,countt1,flag,flag1,flag2,count2,flag3,flag5;//定时器0中断次数//定义6组开关sbitk3=P3^4; //确认sbitk5=P3^1; //禁止sbitk6=P1^5; //夜间模式sbitk7=P3^7; //车辆检测,模式键sbitk8=P3^5; //东西车辆检测sbitk9=P3^6; //南北车辆检测sbitBUZZ=P3^0;sbitRed_nb=P2^6; //南北红灯标志sbitYellow_nb=P2^5; //南北黄灯标志sbitGreen_nb=P2^4;//南北绿灯标志sbitRed_dx=P2^3; //东西红灯标志sbitYellow_dx=P2^2; //东西黄灯标志sbitGreen_dx=P2^1; //东西绿灯标志 bitset=0; //调时方向切换键标志=1时,南北,=0时,东西bitdx_nb=0; //东西南北控制位bitshanruo=0; //闪烁标志位bityejian=0; //夜间黄灯闪烁标志位bitflag_k8=0,flag_k9=0;ucharcodetable[11]={ //共阴极字型码 0x3f,//--0 0x06,//--1 0x5b,//--2 0x4f,//--3 0x66,//--4 0x6d,//--5 0x7d,//--6 0x07,//--7 0x7f,//--8 0x6f,//--9 0x00//--NULL};//函数的声明部分voiddelay(intms); //延时子程序voidkey(); //按键扫描子程序voidkey_to1(); //键处理子程序voidkey_to2();voidkey_to3();voiddisplay(); //显示子程序voidlogo(); //开机LOGOvoidBuzzer();//主程序voidmain(){ TMOD=0X11; //定时器设置 TH1=0X3C; TL1=0XB0; TH0=0X3C; //定时器0置初值0.05S TL0=0XB0; EA=1; //开总中断 ET0=1; //定时器0中断开启 ET1=1; //定时器1中断开启 TR0=1; //启动定时0 TR1=1; //关闭定时1 EX0=1; //开外部中断0 EX1=1; //开外部中断1logo(); //开机初始化 P2=0Xc3; //开始默认状态,东西绿灯,南北红灯sec_nb=sec_dx+5; //默认南北通行时间比东西多5秒 while(1) //主循环 { key(); //调用按键扫描程序 display(); //调用显示程序 } }//函数的定义部分voidkey(void) //按键扫描子程序{ if(k3!=1) //当K3(确认)键按下时 { display(); //调用显示,用于延时消抖 if(k3!=1) //如果确ò聪? { flag=0; TR0=1; //启动定时器0 flag3=0; TR1=1; sec_nb=set_timenb; //从中断回复,仍显示设置过的数值 sec_dx=set_timedx; //显示设置过的时间 //关定时器1 if(set==0) //时间倒时到0时 { P2=0X00; //灭显示 Green_dx=1; //东西绿灯亮 Red_nb=1; //南北红灯亮 sec_nb=sec_dx+5; //回到初值 } else { P2=0x00; //南北绿灯,东西红灯 Green_nb=1; Red_dx=1; sec_dx=sec_nb+5; } } } if(k5!=1) //当K5(禁止)键按下时 { display(); //调用显示,用于延时消抖 if(k5!=1) //如果确定按下 { flag3=0; flag5=1-flag5; if(flag5==1) { TR0=0; //关定时器 P2=0x00; //灭显示 Red_dx=1; Red_nb=1; } //全部置红灯 if(flag5==0){ TR0=1; P2=0X00; //灭显示 Green_dx=1; //东西绿灯亮 Red_nb=1; //南北红灯亮 sec_dx=set_timedx; sec_nb=sec_dx+5;} //回到初值 do { display(); //调用显示,用于延时 } while(k5!=1); //等待按键释放 } } if(k6!=1) //当K6(夜间模式)按下 { display(); //调用显示,用于延时消抖 if(k6!=1) //如果确定按下 { TR0=0; //关定时器 P2=0x00; flag3=1; sec_dx=00; //四个方向的时间都为00 sec_nb=00; do { display(); //调用显示,用于延时 } while(k6!=1); //等待按键释放 } } if(k7!=1) //当K6(夜间模式)按下 { display(); //调用显示,用于延时消抖 if(k7!=1) //如果确定按下 { flag++; if(flag>=3) flag=1; //模式超出范围重置 if(flag==1) { TR0=0;TR1=1; sec_dx=set_timedx; sec_nb=set_timenb; //显示设置的初始通行时间 do { display(); //调用显示,用于延时 } while(k7!=1); } if(flag==2) { TR0=0;TR1=1; sec_dx=flag2; sec_nb=flag1; //显示车辆计数 do { display(); //调用显示,用于延时 } while(k7!=1); } } } if(k8!=1&&flag_k8==0) // { display(); //调用显示,用于延时消抖 if(k8!=1&&flag_k8==0) //如果确定按下 { flag_k8=1; if(Green_dx==1) { flag2++; //东西车流量加 if(flag2>=99) flag2=0; } elseif(Red_dx==1) { BUZZ=0; countt1=0; } if(flag==0) {; } if(flag==1) { sec_dx=set_timedx; sec_nb=set_timenb; //显示设置的通行时间 } if(flag==2) { sec_nb=flag1; //显示车辆计数 sec_dx=flag2; } } } elseif(k8==1&&flag_k8==1) {flag_k8=0;} if(k9!=1&&flag_k9==0) { display(); //调用显示,用于延时消抖 if(k9!=1&&flag_k9==0) //如果确定按下 { flag_k9=1; if(Green_nb==1) { flag1++; //南北车流量加 if(flag1>=99) flag1=0; } elseif(Red_nb==1) { BUZZ=0; countt1=0; } //车辆最大计数99 if(flag==0) {; } if(flag==1) { sec_nb=set_timenb; //设置的数值赋给东西南北 sec_dx=set_timedx; } if(flag==2) { sec_nb=flag1; //计数的车辆赋给东西南北 sec_dx=flag2; } } } elseif(k9==1&&flag_k9==1) {flag_k9=0;}}voiddisplay(void)//显示子程序{ buf[1]=sec_nb/10; //第1位东西秒十位 buf[2]=sec_nb%10; //第2位东西秒个位 buf[3]=sec_dx/10; //第3位南北秒十位 buf[0]=sec_dx%10; //第4位南北秒个位 P1=0xff; //初始灯为灭的 P0=0x00; ////灭显示 P1=0xfe; //片选LED1 P0=table[buf[1]]; //送东西时间十位的数码管编码 delay(1); //延时 P1=0xff; //关显示 P0=0x00; //灭显示 P1=0xfd; //片选LED2 P0=table[buf[2]]; //送东西时间个位的数码管编码 delay(1); //延时 P1=0xff; //关显示 P0=0x00; //关显示 P1=0Xfb; //片选LED3 P0=table[buf[3]]; //送南北时间十位的数码管编码 delay(1); //延时 P1=0xff; //关显示 P0=0x00; //关显示 P1=0Xf7; //片选LED4 P0=table[buf[0]]; //送南北时间个位的数码管编码 delay(1); //延时}voidtime0(void)interrupt1using1 //定时中断子程序{ TH0=0X3C; //重赋初值 TL0=0XB0; //12m晶振50ms//重赋初值 TR0=1; //重新启动定时器 countt0++; //软件计数加1 if(countt0==10) //加到10也就是半秒 { if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //东西黄灯闪 { Green_dx=0; Yellow_dx=0; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黄灯闪 { Green_nb=0; Yellow_nb=0; } } if(countt0==20) //定时器中断次数=20时(即1秒时) { countt0=0; //清零计数器 sec_dx--; //东西时间减1 sec_nb--; //南北时间减1// BUZZ=1; if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //东西黄灯闪{ Green_dx=0; Yellow_dx=1; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黄灯闪{ Green_nb=0; Yellow_nb=1; } if(sec_dx==0&&sec_nb==5) //当东西倒计时到0时,重置5秒,用于黄灯闪烁时间 { sec_dx=5; shanruo=1; } if(sec_nb==0&&sec_dx==5) //当南北倒计时到0时,重置5秒,用于黄灯闪烁时间 { sec_nb=5; shanruo=1; } if(dx_nb==0&&sec_nb==0) //当黄灯闪烁时间倒计时到0时 { P2=0x00; //重置东西南背方向的红绿灯 Green_nb=1; Red_dx=1; dx_nb=!dx_nb; shanruo=0; if(flag1*10/set_timenb>=5) //比如现在通行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南劳动人事职业学院单招职业倾向性测试题库及答案1套
- 2026年哈尔滨应用职业技术学院单招职业适应性测试模拟测试卷及答案1套
- 2025广东省疾病预防控制中心招聘科研助理1人(公共基础知识)测试题附答案
- 2026宁波市江北区面向2026届高校毕业生招聘高层次和紧缺人才13人笔试参考题库及答案解析
- 2025年甘肃省定西市陇西县福星中心卫生院高塄分院招聘乡村医生(公共基础知识)综合能力测试题附答案
- 2026中国安能集团科工有限公司招聘6人笔试参考题库及答案解析
- 2025河南省人力资源开发中心有限公司招聘1人考试题库附答案
- 2025年甘肃省陇南师范学院第二批高层次人才和急需紧缺专业技术人才引进(20人)参考题库附答案
- 2025广东广州市天河区灵秀小学招聘英语教师1人(学校自筹经费)考试历年真题汇编附答案
- 2025年保山市部分医疗卫生事业单位招聘博士研究生(10人)笔试备考题库附答案
- 广东省大湾区2023-2024学年高一上学期期末生物试题【含答案解析】
- 第四单元地理信息技术的应用课件 【高效课堂+精研精讲】高中地理鲁教版(2019)必修第一册
- 鲁科版高中化学必修一教案全册
- 提高隧道初支平整度合格率
- 2023年版测量结果的计量溯源性要求
- 建筑能耗与碳排放研究报告
- GB 29415-2013耐火电缆槽盒
- 中国古代经济试题
- 软件定义汽车:产业生态创新白皮书
- 磷石膏抹灰专项施工方案
- 水电水利工程施工质量管理培训讲义
评论
0/150
提交评论