版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的红绿灯控制系统设计摘要在我们日常生活中,交通灯作为交通管理、协助车辆通行的一种方式和手段,起着非常重要的作用。各种交通工具、行人都需要根据十字路口交通灯的变化情况来判断自己是否继续前行。通行时间的规定,极大的减少了因为交通混乱而导致各种事故的发生。因此,本设计根据不同时间的车流量来改变红绿灯的时间,利用语音播报来提示行人过道,使车辆和行人的行进变得更流畅。本设计采用51单片机为主控制器,通过按键模块、LED显示模块、数码管显示模块、语音模块等来实现红绿灯的控制。该系统通过对车流量的控制来改变红绿灯的时间,并通过数码管进行倒计时。在东西和南北方向绿灯时,通过语音播报来提示行人过道。当有特殊车辆通行时,系统设置了紧急按钮,通过信号灯的控制提示前方车辆让行。经过proteus仿真和实物调试,本设计符合系统设计要求。在实际生产和生活中具有一定的实用价值和意义。关键词:交通灯;单片机;车流量;语言播报目录TOC\o"1-3"\h\u48821绪论 [20]。通过查阅对比上述各种红绿灯控制系统,本次设计的红绿灯控制系统是以单片机作为核心,用红外线来检测车流量,提高了系统的可靠性和稳定性,并且系统的调试和维护方便。本系统于采用了车流量检测系统,自动调节红绿灯的显示时间,使十字路口更加畅通,避免了现有的交通灯系统的红绿灯显示时间固定所带来的不便,缓解交通堵塞,缩短了行人和驾驶员的等待时间,节约了疏解交通压力、解决交通问题而付出的人力物力,大大提高了道路的利用效率。而且本系统结构比较简单、可靠性高、成本低。1.3主要研究内容及章节安排本文的主要研究内容是以单片机为控制核心,完成对红绿灯控制系统的总设计方案。根据红外检测装置对车流量进行统计,当车流量大于设定值时,改变红绿灯控制系统倒计时的时间。通过搭建Proteus仿真模型和制作实物完成对其功能进行测试。本论文的章节安排如下:绪论:介绍红绿灯控制系统的研究目的和意义,然后对红绿灯控制系统的国内外现状做出详细描述,最后进行了研究内容和章节分配的说明。系统设计方案:根据红绿灯控制系统设计要求,确立红绿灯系统的总方案,最后对元器件具体选型做出详细介绍。系统硬件电路的设计:首先介绍了红绿灯单片机最小系统,然后对系统的各个模块做出具体介绍。系统的软件设计:根据红绿灯控制系统各模块实现原理,设计出各模块流程图。系统调试:通过系统原理图,搭建Proteus仿真模型和实物各模块接线。然后对红绿灯控制系统进行功能测试。总结与展望:对论文进行总结,针对设计中出现的问题与不足,在后续的研究进行展望。1.4本章小结 本章主要介绍了本设计的研究目的和设计意义、国内外研究现状。本设计的总体设计方案将会在下章中做出介绍。
2系统的方案设计2.1系统设计要求在具体设计红绿灯控制系统前,对系统的设计要求进行相关了解,下面是具体的功能:(1)根据东西和南北方向设置两个红外检测装置,计算出东西和南北干道车流量。(2)当东西和南北干道的车流量大于设定值时,自动调节红绿灯配时。(3)当某方向显示绿灯的时候,语音播报来提示行人过道。(4)考虑到特殊车辆通行情况,设计了紧急按钮。当有特殊情况发生时,数码管停止倒计时,东西南北方向的红绿灯保持不变,当特殊车辆通行后,交通灯通过复位按键恢复到初始状态。2.2系统的总方案确定根据本次设计的要求,本论文设计的红绿灯控制系统包括以下这几部分,按键模块、LED灯显示模块、数码管显示模块、语音模块。在东西和南北方向设置两个红外检测装置,当检测到车流量较多时,来改变东西和南北两干道红绿灯倒计时时间,减少了交通拥挤。除此之外,针对紧急特殊情况,系统还安装了紧急处理按钮,通过按钮可以让一些如警车、救护车等车辆快速通过,提高对特殊紧急状况的应变能力。
通过51单片机来控制交通灯的运行,基本能满足一般情况下的车辆通行,当然,通过数码管显示倒计时,语音播报来提示行人过道,能更好的完善红绿灯控制系统体系。根据上述总方案的确定,系统总体框图如图2-1所示。图2-1系统总体框图2.3元器件选型2.3.1主控制器选型方案一:ATC89C51单片机是美国Atmel公司生产的。它具有通用型的特点。ATC89C51单片机内部含有有4KbytesEPROM和128bytesRAM,2个16位可编程定时/计数器中断。但是ATC89C51单片机的缺点也很明显,它的数据存储空间较小,而且需要专门的编程器、特定的烧录软件和驱动,所以操作比较复杂。方案二:STC89C52RC单片机是宏晶科技公司研发的,它是增强型51单片机。STC89C52RC单片机内部含有8KFlashROM和256*8bitRAM,3个16位可编程定时/计数器中断。相比ATC89C51单片机而言,它的数据存储空间较小,可以在线编写程序,操作简单。根据以上二种方案,选择方案二作为本系统中的主控制器。2.3.2电源选型单片机的供电方案有很多种。如图2-2所示。各种供电方法的优缺点。供电方法优点缺点变压器供电供电稳定,输出功率可以选择,功耗可以不考虑需要整流稳压USB接口供电供电稳定其外部电源有其他设备提供电池供电供电稳定功耗太大,随着供电时间增长,电池电阻增加,电压变小,对系统的运行产生很大影响图2-2供电方案选择根据上面比较,所以选择5V的USB接口供电。2.3.3复位电路选型复位的方式有两种方式:一个是硬件复位,另一个是软件复位。硬件复位有两种:系统上电复位和按键复位。系统上电复位在上电瞬间,电容两端短路,传输给51单片机电压是不稳定的,为单片机工作的稳定性带来严重的影响。按键复位在按下按键时,51单片机的引脚RST和+5V的VCC直接相连,此时51单片机为高电平,达到复位目的。软件复位就是利用单片机内部的看门狗来让单片机复位。考虑到程序编程简捷,操作简单。所以本设计选择按键复位。2.3.4传感器选型检查车流量的传感器有多种.各种传感器的优缺点。如图2-3所示。采集方法优点缺点感应线圈检测器稳定性好、技术成熟、寿命长、精确度高检测安装和维护比较复杂,需要动用大量人力和物力超声波检测器体积小、易于安装、寿命长、可多车道检测受温度和气流影响而使性能降低红外线检测器技术成熟、功耗小、灵敏度高、价格便宜受灰尘和冰雾的影响而使性能降低微波检测器在恶劣的天气下性能出色,可多车道检测检测安装精度要求高;道路有铁制分割带时,检测精度下降视频检测器可为事故管理提供可视图像,可提供大量交通管理信息;单台摄像机可可多车道检测大型车辆能遮挡小型车辆;阴影和昼夜转换可造成检测误差图2-3车流量传感器选择根据上面对比,本设计的红外线检测器探测距离远、功耗小、受可见光干扰小、价格便宜,所以选用红外线检测器。2.3.5显示界面选型方案一:采用数码管和LED灯相结合显示,数码管用于设定值的倒计时,LED灯显示红绿灯状态。
方案二:采用LCD点阵液晶显示和LED灯相结合显示,LCD点阵液晶显示倒计时,LED灯显示交通灯状态。根据上面比较,虽然数码管消耗电力比LCD液晶显示较多,但是数码管抗干扰能力更强。尤其是在白天等强光显示下,数码管显示更加清晰。所以选用方案一。2.4本章小结本章主要介绍了本设计的要求、系统设计原理、系统结构总体设计和元器件选型。
3硬件设计3.1系统的总原理图本设计的硬件电路包括STC89C52RC单片机及其最小系统、按键模块、12只二极管组成的模拟交通灯、数码管显示模块、语音模块。系统总原理图如图3-1所示。图3-1系统总原理图3.2单片机最小系统单片机最小系统包括单片机、电源电路、晶振电路和复位电路。单片机最小系统如图3-2所示。图3-2单片机最小系统3.2.1STC89C52RC芯片简介本设计选取51单片机STC89C52RC作为主控制器,STC89C52RC是宏晶科技公司研发的一种高性能、低功耗、抗干扰能力强的8位微控制器,指令的代码和传统的8051完全兼容。STC89C52RC工作电压有两种模式,一种是5V单片机,另一种是3V单片机。时钟周期也有两种模式,一种是6时钟周期/机器周期,另一种是12时钟周期/机器周期。在本设计中选取工作电压5V、12时钟周期/机器周期的STC89C52RC单片机。图3-3STC89C52RC引脚图3.2.2电源电路电源电路是为整个系统供电最基础的模块,任何电路都需要电源来供电,51单片机系统也一样。有些时候其他模块接线都没问题,我们往往忽视电源电路的接线。所以在本设计中,我们必须重视电源部分。与其他电源供电相比较,采用+5V稳定运行的USB供电。电源电路如图3-5所示。图3.5电源电路3.2.3复位电路本设计采用的是按键复位,一端接STC89C52RC单片机的RST引脚,另一端接VCC端。在接通电源之后,按下复位按键,STC89C52RC单片机在RST引脚产生一个由高电平到低电平的转换变化,用来初始化状态。按键复位电路如下图3-6所示。图3-6复位电路3.2.4晶振电路晶振电路是单片机最小系统中的时钟电路,它的作用是给单片机提供基准作用的。C2、C3接着单片机芯片引脚XTAL1、XTAL2。在实际应用中,电容起着调节时钟频率和稳定的作用。电容选择的范围是30PF±10PF,C2和C3的电容尽可能相同。所以在本设计中,电容选取20PF,晶振频率为11.0592MHz。晶振电路如图3-7所示。图3-7晶振电路3.3车流量检测模块本设计基于单片机的红绿灯控制系统的检测装置需要检测十字路口车流量,通过2个红外检测器E18-D80NK来实现。红外检测器E18-D80NK是一种集发射与接收为一体的光电传感器。它的工作原理为:红外检测器E18-D80NK在接收电流后,在其发射器上转换为红外光信号射出,红外检测器前端的接收器再根据被检测车辆对光信号的遮挡或反射,从而检测前方是否有车辆通过。红外检测器E18-D80NK检测车流量的距离可以根据其尾部的电位器旋钮进行调节,探测距离最近可以探测3cm,最远可以探测80cm。在本设计中,为了能更好的探测车流量,调节红外检测器尾部的电位器旋钮使其可以探测4cm左右的距离。车流量检测模块如图3-8所示。红外检测装置P1,P2接P3口的引脚P3.3,P3.4。图3-8车流量检测模块3.4语音模块在本设计中,语音播报模块采用的SYN6288模块,由于购买的SYN6288模块,商家自带语音播报模块程序。所以在编写代码时,将商家提供的程序先嵌入主程序中,然后根据红绿灯系统的控制要求进行修改,使其满足要求。SYN6288芯片支持异步串行通讯接口通讯方式,它的优点是硬件接口简单,性价比高。SYN6288语音模块与51单片机使用串口通信,其中RXD接P3口的引脚P3.0,TXD接P3口的引脚P3.1,电源引脚一个接地,另一个接+5V。SYN6288芯片语音播报模块如图3-9所示。图3-9语音播报模块3.5按键模块STC89C52单片机按键有独立式按键和矩阵式按键两种,独立式按键较简单而且系统更加稳定,一边接I/O口的P0口,另一端接地。矩阵式按键较复杂,占用的I/O口较少。由于本设计按键较少,所以选用了系统较为稳定的独立式按键。在本设计中,按键s1、s2分别用来控制紧急情况和语音播报,一端接STC89C52单片机P1口的引脚P1.0、P1.1,另外一端并联接地。当紧急按键按下后,数码管停止计时,东西和南北方向的红绿灯保持不变。直到复位按健按下后,恢复初始状态,交通正常计时。按键模块如图3-10所示。图3-10按键输入模块3.6LED灯显示LED灯是发光二极管,它是一种固态的半导体器件,可以直接高效把电能转变为光能,具有单向导电性。在本设计中,十二个发光二极管用来显示南北和东西方向红黄绿三种颜色的信号指示灯,LED灯被点亮的原理是南北和东西方向的黄色二极管、绿色二极管、红色二极管分别接单片机的P2口引脚P2.2~P2.7,通过编写的代码提供低电平,另外一段接电源提供高电平,构成一个回路,就能点亮LED灯。在实物连接时,也要注意LED灯的单向导电性,接反将会导致LED灯无法正常点亮。LED显示电路如图3-11所示。
图3-11LED灯显示电路3.7数码管显示模块数码管是一种半导体发光器件,通过点亮不同段来显示不同的数字。按段数分为七段LED数码管和八段LED数码管,七段LED数码管右下角没有数字的小数点,八段LED数码管右下角作为数字的小数点。在本设计中采用的是八段LED数码管结构。数码管按结构还可分为共阴极数码管和共阳极数码管。共阴极数码管将八个LED小灯的阴极连接在一起,也就是阴极是公共端,由阳极来控制小灯是否亮灭。共阳极数码管将八个LED小灯的阳极连接在一起,也就是阳极是公共端,由阴极来控制小灯是否亮灭。在本设计中采用的是八段共阳极数码管结构。LED数码管的显示方式可以分为静、动态显示两种,静态显示相对于动态显示,用较小的电流就能使数码管的亮度加强、CPU运算时间少,编程也更加简捷,节省CPU存储空间。但需要接入更多的I/O口,只适合数量较少的数码管使用。不适合此系统,所以选用动态显示,下面介绍数码管的动态显示。系统用动态显示方式点亮4个2位数码管,各个共阳极数码管相应的段选控制段并联在一起由P0口控制。各位数码管的公共端,也称为“位选端”,由STC89C52单片机的P2口控制。数码管如图3-12所示。图3-12数码管显示图3.8本章小结本章主要介绍了单片机最小系统、按键模块、电源电路、12只二极管组成的模拟交通灯、数码管显示模块、语音模块的设计。系统的软件设计将在下一章具体介绍。
4系统的软件设计4.1系统程序设计4.1.1系统主程序设计系统的主程序主要完成各个模块的初始化状态、通过复位开关并语音播报、数码管倒计时、语音提示、车流量统计、紧急情况。主程序开始时先进入系统初始化状态,对各个模块进行初始化,然后通过复位开关进行语音播报,数码管倒计时开始,然后进行语音提示行人过道,车流量进行统计,当大于2辆车时,数码管倒计时加5s,如果遇见紧急情况,东西和南北方向的红绿灯和倒计时都停止,然后断电结束。系统主程序的设计流程图如图4-1所示。图4-1主程序流程图4.1.2系统子程序设计东西、南北两条主干道相交于十字路口,每个路口都有红、黄、蓝三个指示灯。在本设计中,绿灯时间是30s,红灯时间是25s,黄灯时间是5s。子程序流程图如4-2所示。图4-2子程序流程图4.2红外检测模块设计本设计基于单片机的红绿灯控制系统需要利用2个红检测器来检测车流量。在南北方向放置一个红外检测装置,当没有车通过的时候,红外发射器发射的红外光信号没有使感光元件导通。当有车辆通过的时候,光信号被车辆遮住,感光元件断开,红外检测器前端的接收器接收一个低电平信号,计数器加1,这样就可以计算出南北车流量。同样在东西方向也放置一个红外检测装置,计算出东西方向车流量。红外检测流程图如图4-3所示。图4-3红外检测流程图4.3语音播报模块设计在本次设计中,语音播报模块采用的SYN6288模块,在编写语音提示代码后,将语音指令编写到SYN6288芯片中。语音播报流程图如图4-4所示。图4-4语音播报流程图4.4数码管显示模块在本设计中,数码管显示模块采用动态显示模块,先将数码管初始化,在通过P0口引脚P0.0到P0.6初始化之后,把需要显示的数字传输给数码管,但是在传输之前需要设置好数码管倒计时的时间。然后通过I/O口通信把数据传给数码管显示。图4-5数码管倒计时流程图4.6本章小结本章主要介绍了本设计的系统软件设计,本设计的主要程序设计包括系统程序流程图、红外检测模块流程图、语音播报模块流程图和数码管显示模块流程图。5系统的仿真与调试5.1系统软件调试根据系统的设计要求,编写源程序。将VisualC++编写的源程序生成.hex文件,下面是具体的操作步骤。首先打开Keil软件,点击NewuVisionproject创建项目的名称,再选择单片机芯片为AT89C51。然后点击创建新文件,保存.c文件。右键点击project中的SourceGroup1,选择增添.c文件。点击Output,将勾上CreateHEXFile,再点击编译按钮,就可以在打开项目所在的文件夹可以发现.hex文件。根据系统的总原理图搭建仿真模型。点击PickDevices搜索相应的元器件,然后进行各个模块接线。当接线工作完成后,将生成的.hex文件加载到proteus仿真软件中的51单片机内,再点击proteus仿真软件中的运行按钮,就可以看到设计的红绿灯控制系统的仿真结果。在搭建过程中,发现车流量检测模块GP2D12模块是测量车距的,不能检测车流量。所以在单片机P3口的I/O口接入RESPACK-7排阻模块,通过对GP2D12模块加减,控制RESPACK-7模块的阻值来实现对车流量模拟。当南北和东西方向车流量小于设定的两辆车时,数码管正常进行倒计时,如图5-1、5-2所示。图5-1南北方向红灯,东西方向绿灯图5-2南北方向绿灯,东西方向红灯通过对当GP2D12模块加2次以上,来模拟南北和东西方向车流量大于等于设定的两辆车时,数码管在下次绿灯通过的时间增加5s,如图5-3所示。图5-3南北方向绿灯数码管+5s图5-4东西方向绿灯数码管+5s5.2系统硬件调试基于单片机的红绿灯控制系统的硬件调试,首先需要通过Altiumdesigner软件将该系统的整体原理图绘画出来,然后根据原理图来购买所有的元器件,单片机及其最小系统、按键模块、12个普通的LED灯、数码管显示模块、语音模块、若干根导线等。然后根据原理图来焊接,在各元器件的焊接特别注意正负极引脚,如果正负极接反了容易烧坏器件。整体实物制作好后,一一检查代码,代码没有错误之后,然后烧入单片机。基于单片机的红绿灯控制系统实物如图5-5所示。图5-5基于单片机的红绿灯控制系统实物5.3系统测试将单片机的红绿灯控制系统实物接入电源后,按下复位按键,红绿灯开始从设定值倒计时,南北方向是红灯,东西方向是绿灯。然后语音播报模块提示行人过道。当红外线检测器检测到车辆数小于设定的两辆车时,红绿灯系统正常工作。如图5-6所示。当红外线检测器检测到车辆数大于等于设定的两辆车时,南北方向绿灯的数码管倒计时多加5s。如图5-7所示。图5-6红绿灯系统正常工作图5-7南北方向绿灯数码管+5s当南北方向是绿灯,东西方向是红灯。然后语音播报模块提示行人过道。红外线检测器检测到车辆数小于设定的两辆车时,红绿灯系统正常工作。如图5-8所示。当红外线检测器检测到车辆数大于等于设定的两辆车时,东西方向绿灯的数码管倒计时多加5s。如图5-9所示。图5-8红绿灯系统正常工作图5-8红绿灯系统正常工作5.4本章小结红绿灯控制系统的功能测试基本完成,红外线传感器的距离调节和灵敏度调节在测试过程中,全部调节到了合理的位置,各模块功能都能准确实现,本章测试成功。6总结和展望6.1总结基于单片机的红绿灯控制系统是国内研究热点问题之一,车辆检测作为红绿灯控制系统的分支领域,具有广阔的应用前景和潜在的研究价值。本次毕业设计是以车流量来改变红绿灯的时间为研究目的,并结合语音播报模块实现人行道通行控制的灯绿灯相同步。本文主要完成了以下内容:通过阅读期刊文献,完成本设计的基于红绿灯控制系统的研究背景和国内外现状。熟悉了红绿灯系统的工作流程并提出系统的总设计方案;确定红绿灯的基本硬件构成并购买相应的元器件对其性能进行检测,初步完成红绿灯系统的合理布局图。利用Altium
designer软件设计出红绿灯系统的总原理图,完成了系统硬件电路的设计,编写实现红绿灯控制系统功能的程序,并对各模块的进行焊接工作。完成了红绿灯控制系统的各个模块的系统流程图设计。通过Proteus仿真软件和实物演示对系统进行调试与校正,实现了根据车流量来改变红绿灯的时间的功能。6.2展望由于时间和个人能力原因,本设计完成的红绿灯系统只是一种简单的模型,下面有许多不足的地方仍需进一步展开:红绿灯控制系统通过红外检测器来检测车流量,很容易出现漏检现象。如果条件允许的情况下,采用视频检测器能更好的检测车流量。在紧急情况下,本设计通过按键按钮使特殊车辆通过。如果可以的话,通过特殊车辆的闪烁灯光,红绿灯控制系统自动为特殊车辆让行。本设计没有采用车流量检测算法,希望后期能进一步研究红绿灯系统的车流量检测算法。
参考文献欧玉荣.视频图像与交通灯智能控制的分析与设计[D].昆明理工大学,2012.李全利.单片机原理及接口技术[M].2版.北京:2019,35(01):126-127.MirehandaniP.B.,andHeadK.L.AReal-timeTrafficSignalControlSystem:Architecturealgorithmandanalysis.TransportationResearch,PartC9,2001:415~432.赖捷.红绿灯:不只是一部技术史.Invention&Innovation.2014,(5):44.欧玉荣.视频图像与交通灯智能控制的分析与设计[D].昆明理工大学,2012.吴夏旭.基于神经网络的城市交通信号灯的智能控制系统设计[D].苏州大学,2014.张朝鑫.基于单片机的中、小城市交通灯控制系统研究[D].昆明理工大学,2010.陈兰萍.智能交通信号控制系统设计[D].哈尔滨理工大学,2018.郭继孚,刘莹,余柳.对中国大城市交通拥堵问题的认识[J].城市交通,2011,9(02):8-14+6.许彦,小泉刚康.中国城市交通问题的对策[J].苏南科技开发,2007(09):71-73.费杰,王媛媛,王亦欣,季梦雅.车流量检测技术在交通灯控制中的现状与发展[J].科技风,2018(07):88+90.周干峙.中国城市交通的问题和对策[J].城市规划,1995(01):5-6+64.姚琪琛.基于流量监测的智能交通灯控系统[D].湖南大学,2015.王浩然.基于西门子S7-200PLC的智能交通灯系统设计[J].农家参谋,2020(24):255.王学亮.基于单片机的多功能交通灯控制器的设计[A].天津市电视技术研究会.天津市电视技术研究会2016年年会论文集[C].天津市电视技术研究会:天津市电视技术研究会,2016:4.刘卫华,毛玉星,刘翔宇.基于单片机与PLC联合控制实验平台的设计[J].电气电子教学学报,2011,33(03):79-80+83.沈晟.基于FPGA的交通灯控制系统的设计与实现[D].昆明理工大学,2010.许雪梅,刘娇娇,李涛,赵铭,刘奕岐,李明泽,逯玉兰.基于单片机的交通灯控制系统设计[J].电子测试,2018(23):33-34+133.金解云,邹继军.智能交通灯控制系统的设计[J].东华理工大学学报(自然科学版),2011,34(03):293-296.吴振英,金薇.基于MSP430F149的红绿灯自动显示装置的设计[J].山西电子技术,2014(04):28-29+61.附录1C语言程序#include"config.h"#defineucharunsignedchar#defineuintunsignedint#defineON0#defineOFF1sbitDX_G=P2^6;//南北绿灯sbitDX_Y=P2^5;//南北黄灯sbitDX_R=P2^7;//南北红灯sbitNB_G=P2^3;//东西绿灯sbitNB_Y=P2^2;//东西黄灯sbitNB_R=P2^4;//东西红灯sbitLED_D1=P1^5;//南北方向数码管位控制sbitLED_C1=P1^4;//南北方向数码管位控制sbitLED_B1=P2^1;//东西方向数码管位控制sbitLED_A1=P2^0;//东西方向数码管位控制sbitdxhw=P3^3;sbitnbhw=P3^4;sbitkey1=P1^0; //开关位定义sbitkey2=P1^1;sbitkey3=P3^0;/*********倒计时赋初值*************/intEWF=30,NSF=25,X=30,Y=25,Z=30,SHU=30;ucharcount,flagdx=0,flagnb=0;voiddisplay1(ucharnum1,ucharnum2);voidMCU_init();externvoidSYN_FrameInfo(uint8_tMusic,uint8_t*HZdata);//voiddelay(unsignedlonguldata);/******************延时**********************/voiddelay(ucharz){ ucharx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voidinit(void) { TMOD|=0x01; TH0=(65536-40000)/256; TL0=(65536-40000)%256; EA=1; ET0=1; TR0=1; }voidtimer1(void)interrupt1 { TH0=(65536-40000)/256; TL0=(65536-40000)%256; count++; if(count>29) { EWF--; NSF--; X--; Y--; Z--; SHU--; count=0; } } /******************led控制*******************/unsignedchartable[]={0xc0,0xf5,0x8c,0x94,0xb1,0x92,0x82,0xf4,0x80,0x90};//共阳极数码管赋值//0123456789voiddisplay1(ucharnum1,ucharnum2)//控制东西方向led显示{ P0=table[num2]; LED_A1=ON; delay(1); LED_A1=OFF; P0=table[num1]; LED_B1=ON; delay(1); LED_B1=OFF;}voiddisplay2(ucharnum3,ucharnum4)//控制南北方向led显示{ P0=table[num4]; LED_C1=ON; delay(1); LED_C1=OFF; P0=table[num3]; LED_D1=ON; delay(1); LED_D1=OFF;}voidmain(){ inti,j=0,k; MCU_init(); UartIni();/*串口初始化*/ init();//初始化计时器 delay(500); delay(500); SYN_FrameInfo(0,"欢迎使用智能交通灯");/************初始状态东西南北禁止通行************/ for(k=0;k<=20;k++) { DX_R=ON;//东西方向红灯打开 NB_R=ON;//南北方向红灯打开 delay(1000); DX_R=OFF;//东西方向红灯打开 NB_R=OFF;//南北方向红灯打开 delay(1000); } for(i=0;i<210;i++) { delay(10); } DX_R=OFF;//东西方向红灯关闭 NB_R=OFF;//南北方向红灯关闭 TR0=1; //keyscan1();while(1){ /**************状态1:东西红灯(30s),南北绿灯(25s)************/ /****************状态2:东西红灯(30s),南北黄灯(5s)***************/ SYN_FrameInfo(0,"东西行人通行"); init();//初始化计时器 DX_G=ON;//东西方向的绿灯打开 NB_R=ON;//南北方向的红灯打开 while(EWF!=0) { display1(EWF/10,EWF%10);//东西方向绿灯(30s) display2(NSF/10,NSF%10);//南北方向红灯(25s)// if(key1==0) { delay(10); if(key1==0) { SYN_FrameInfo(0,"紧急情况,前方车辆请让行"); while(1) { DX_G=ON;//东西方向的绿灯打开 NB_R=ON;TR0=0; display1(EWF/10,EWF%10);//东西方向绿灯(30s) display2(NSF/10,NSF%10);//南北方向红灯(25s) } } } if(key2==0) { delay(10); if(key2==0) { SYN_FrameInfo(0,"紧急情况,前方车辆请让行"); while(1) {// EWF=0; display1(0,0);//东西方向绿灯(30s) display2(0,0);//南北方向红灯(25s) DX_R=ON;//东西方向的绿灯打开 NB_G=ON; DX_G=OFF;//东西方向的绿灯打开 NB_R=OFF; }// break; } } if(nbhw==0) { flagnb++; } while(EWF<=5&&EWF>=0) { if(EWF==5) { NSF=5; } display1(EWF/10,EWF%10);//东西方向黄灯(5s)display2(NSF/10,NSF%10);//南北方向红灯(25s) DX_G=OFF;//东西方向的绿灯关闭 DX_Y=ON;//东西方向的黄灯打开 if(NSF==0)break; } if(EWF==0) break; } if(flagnb>=2) { EWF=35,NSF=30,X=30,Y=30,Z=35,SHU=30;//重新赋值 } else { EWF=30,NSF=25,X=30,Y=25,Z=30,SHU=30;//重新赋值 } NB_R=OFF;//南北方向的红灯关闭 DX_G=OFF;//东西方向的绿灯关闭 DX_Y=OFF;//东西方向的黄灯关闭 /****************状态3:东西绿灯(25s),南北红灯(30s)**************//***************状态4:东西黄灯(5s),南北红灯(30s)******
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年)保定市徐水区辅警招聘《公安基础知识》真题及答案解析
- (2025年)漯河市辅警考试公安基础知识考试真题库及答案
- 《电力工程造价指标与参数体系构建指南》编制说明
- 忻州市河曲县2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 山南地区桑日县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 运城市平陆县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 石家庄市无极县2025-2026学年第二学期二年级语文期中考试卷(部编版含答案)
- 永州市祁阳县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 桂林市阳朔县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 2026初中新学期新进步课件
- 2026年商丘学院单招综合素质考试题库及答案详解(历年真题)
- 2025年大连职业技术学院单招职业技能考试试题及答案解析
- 既有线路基帮宽施工方案范本
- 追悼会主持稿及悼词范文集
- 2026年电工专业技能实操测试题目
- 天然气压缩机组培训课件
- 敦煌藻井教学课件
- 老年护理质量控制与改进
- 护理不良事件识别、上报与根本原因分析
- 95-1轻机枪射击课件
- 低压电容补偿柜
评论
0/150
提交评论