




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机的智能交通灯控制系统的设计与实现摘要本设计设计了一种基于单片机的带车流量检测的智能交通灯控制系统。比较具体的描述了系统的控制方案、硬件选择以及单片机程序的设计等。该系统由两片stc98c52单片机作为控制芯片。电路由晶振电路、复位电路、按键电路、车辆检测电路、主和从控制器、数码管倒计时显示电路、车道红黄绿灯电路、人行道红绿灯电路等组成。系统可以根据检测到的车流量的大小来自动设定绿灯的时间长短。并且本系统设计了紧急模式和夜间模式。当启动紧急模式,所有路口都变为红灯。当启动夜间模式,所有路口都变为黄灯闪烁。关键词:光电传感器;车流量检测;stc89c82单片机;交通灯abstract本设计设计了一种基于单片机的带车流量检测的智能交通灯控制系统。比较具体的描述了系统的控制方案、硬件选择以及单片机程序的设计等。该系统由两片stc98c52单片机作为控制芯片。电路由晶振电路、复位电路、按键电路、车辆检测电路、主和从控制器、数码管倒计时显示电路、车道红黄绿灯电路、人行道红绿灯电路等组成。系统可以根据检测到的车流量的大小来自动设定绿灯的时间长短。并且本系统设计了紧急模式和夜间模式。当启动紧急模式,所有路口都变为红灯。当启动夜间模式,所有路口都变为黄灯闪烁。the design of a control system with vehicle flow detection of intelligent traffic lights based on single chip microcomputer. more specific description of the selection of control scheme, the systems hardware and the mcu program design. the system consists of two stc98c52 single chip microcomputer as control chip. the circuit consists of a crystal oscillator circuit, reset circuit, key circuit, the vehicle detection circuit, master and slave controller, digital countdown display circuit, che daohong yellow light circuit, the sidewalk traffic light circuit etc. automatically set the length of time the green light traffic system can according to the size of the detected. and the system design of emergency mode and night mode. when start the emergency mode, all junctions are turned red. when starting the night mode, all junctions are flashing yellow light is variable.关键词:光电传感器;车流量检测;stc89c82单片机;交通灯keywords: photoelectric sensor; vehicle flow detection; stc89c82 mcu; traffic lights1 绪论在当代,红绿灯基本都已安装在各个路口上,已成为指挥、疏导交通的最常见并且是最有效的手段了。但是这一技术早在19世纪就已经出现了。1858年,英国伦敦的主要街头就安装了以燃气为光源的红、蓝两色机械扳手式的信号灯,用来指挥过往马车的通行。这就是世界上最早的交通灯了。到1868年英国的工程师纳伊特在伦敦的威斯敏斯特区的议会大厦前广场上,安装了世界上最早的煤气式红绿信号灯。信号灯由红绿两块以旋转方式的方形玻璃的提灯组成,红色的表示“停止”信号,绿色的表示“注意”信号。在1869年1月2日,该煤气灯突然爆炸,致使警察受伤,才被取消。1914年,以电气启动的红绿灯在美国出现。这种红绿信号灯由红色、绿色、黄色三种圆形的投光器组成,被安装在纽约市的5号大街的一座塔上。红灯亮代表“停止”,绿灯亮代表“通行”。 1918年,出现的带控制功能的红绿灯和红外线式红绿灯。带控制功能的红绿灯,一种是将压力探测器安装在地底下,当有车辆接近时,红就便变为绿灯;另一种是使用扩音器启动红绿灯,当司机遇到红灯时只需要按一下喇叭,就能使红灯变换为绿灯。红外线式的红绿灯是当行人踏上对压力敏感的路面上时,它就能检测到有人要过马路。红外光束能把信号灯的红灯延长一小段时间,使汽车放行延时,避免发生交通事故。交通信号灯的出现,改善了交通混乱的现象,对于疏导交通以及提高道路的通行能力和减少交通事故有了明显的效果。1968年,联合国的道路交通和道路标志信号协定对各种交通信号灯的含义作出了规定。绿灯是代表通行信号,只有面对绿灯的车辆菜可以直行、左转弯和右转弯,除非有另一种标志禁止了某一种转向。左右转弯的车辆都必须先让合法的正在路口内行驶的车辆以及过人行横道的行人优先通行。红灯是代表禁行信号,车辆面对红灯时必须在交叉路口的停车线之后停车。黄灯代表警告信号,车辆面对黄灯时不能越过停车线,但时车辆已经十分接近停车线而又不能安全停车的可以进入交叉的路口。伴随着经济的快速发展,道路交通运输出现了一些以往的方法难以解决的问题。道路拥挤的现象日益严重,所造成的经济损失也越来越大,并且一直保持着大比例的增长。现在一般的交通系统已经不能满足高速的经济发展的需求。由于人们生活水平的大幅提高,人们对交通的安全性以及可靠性都提出了更高的要求。在交通管理中引入单片机控制交通灯来代替交管人员在交叉路口的指挥,有助于提高交通运输的安全可靠性。还能在一定程度上减小工作人员的劳动强度。此交通信号灯控制系统的主要技术在于利用51单片机的特性,每片单片机有四个基本的i/o口,此交通信号灯控制系统采用红、黄、绿三种颜色灯工作,设计了每个路口带有直行和左转单独控制。红灯亮代表该方向禁行,绿灯亮代表放行,而黄灯亮则采用闪烁的工作方式起到由绿灯向红灯变化过程中的提示作用。用两片stc89c52作为控制芯片。本设计的目的在于提高车辆在十字路口疏散能力,尽量减少交通事故的发生。其应用范围包括一般的大、中型十字路口。其实际意义在于代替交管人员在交叉路口的服务。减少劳动成本。实验证明该系统能够简单并且有效地疏导交通,大大提高了交叉路口的通行能力,并在一定程度上尽可能的降低由道路拥挤所造成的经济损失,减小了工作人员的劳动强度,创造一个更加美好、和谐的社会。2 交通信号灯管理方案论证2.1 设计任务东西、南北两干道交于一个十字路口,主干道各有一组直行红、黄、绿灯和左转红、黄、绿六个指示灯,人行道有红、绿两个指示灯,指挥车辆以及行人安全通行。红灯亮禁止车辆或者行人通行,绿灯亮允许车辆或者行人通行。车道的直行和左转绿灯的默认设计时间都为30秒,黄灯为3秒闪烁。交通信号灯控制系统在正常运行状态下由八个状态组成,可以通过单片机用程序编程设计实现。因为本设计需要用到较多i/o使用一片单片机显然是不够用的,因此,可以用扩展芯片或者用多片单片机通信的方式来实现扩展。下面就2个方案做了比较择优选取。本设计中,因为南和北、东和西的信号灯是一致的因此需要设计的i/o有以下这些:1. 南北倒计时的两位数码管需要9个i/o;2. 东西倒计时的两位数码管需要9个i/o;3. 设置时间按键需要4个i/o;4. 南北人行道的红绿灯需要2个i/o;5. 东西人行道的红绿灯需要2个i/o;6. 紧急模式与夜间模式按键需要2个i/o;7. 南北直行和左转红、绿、黄信号灯需要6个i/o;8. 东西直行和左转红、绿、黄信号灯需要6个i/o;9. 车流量检测分为东、南、西、北以及左转共需要8个i/o;以上必须用到的i/o数量一共为48个因此需要扩展i/o,一片stc89c52单片机共有i/o 32个,所以需要再扩展16个i/o口,才能保障系统有足够的i/o使用。2.2 方案的分析以及比较选择1.方案一采用74ls595扩展的方法,每一片74ls595最多只能扩展8个i/o口,本设计中的扩展16个i/o口至少需要3片74ls595芯片。因为扩展74ls595芯片需要占用几个的单片机的i/o,因此扩展两片74ls595是不够用的。采用此种扩展方法不但需要读单片机进行比较复杂的编程。另外,三片74ls595的价格和再用一片stc89c52单片机的价格也差不多了。2.方案二采用两片同样的stc89c52单片机作为控制芯片,价格不高并且编程容易。两片单片机之间通过uart通信接口连接,利用串口通信中断,可以实时的进行双向通信,为系统的稳定运行打下了坚实的基础。本设计选择stc89c52单片机作为主控芯片的原因也是显而易见的,此款单片机完全兼容51单片机的内核是台湾的宏晶科技生产的一款芯片,此芯片的一大优点就是支持usb烧写程序,不需要专用的编程器,极大地方便了程序的后期调试。选用51内核的单片机是因为现在51单片机的发展已经成熟,而且去网上搜集资料很方便,这就为本设计能最终得以实现提供了有利条件。而且本单片机现在的市场售价也很低廉。从各个角度的综合考虑才选择的此种用两片stc89c52单片机作为控制芯片的方案。3 系统硬件电路设计本系统硬件原理图如图3-1所示。系统共用两片stc89c52单片机,一片作为主机,另一片作为从机。主机与从机之间通过单片机的uart通信模块通信。每个单片机都设计了单独的复位系统。本设计包括电源电路,单片机最小系统,数码管倒计时显示电路,按键电路,车道指示灯电路,人行道指示灯电路,车流量检测电路等七个部分。以下将介绍这些部分电路的工作原理。图3-1智能交通灯控制系统硬件原理图单片机各管脚功能定义如表3-1和表3-2所示。表3-1主单片机管脚功能主单片机单片机管脚功能p0.0南北数码管gp0.1南北数码管fp0.2南北数码管ep0.3南北数码管dp0.4南北数码管cp0.5南北数码管bp0.6南北数码管ap0.7南北数码管2p1.0东西数码管gp1.1东西数码管fp1.2东西数码管ep1.3东西数码管dp1.4东西数码管cp1.5东西数码管bp1.6东西数码管ap1.7东西数码管2p2.0菜单键p2.1增加键p2.2减小键p2.3确定键p2.4p2.5南北人行红灯p2.6南北人行绿灯p2.7南北数码管1p3.0通信p3.1通信p3.2东西数码管1p3.3东西人行绿灯p3.4东西人行红灯p3.5紧急按键,全部红灯亮p3.6夜间模式按键,全部黄灯p3.7表3-2从单片机管脚功能从单片机单片机管脚功能p0.0南北左转红灯p0.1南北左转黄灯p0.2南北左转绿灯p0.3南北红灯p0.4南北黄灯p0.5南北绿灯p0.6p0.7p1.0车流量检测南p1.1车流量检测北p1.2车流量检测东p1.3车流量检测西p1.4车流量检测南左转p1.5车流量检测北左转p1.6车流量检测东左转p1.7车流量检测西左转p2.0p2.1p2.2东西绿灯p2.3东西黄灯p2.4东西红灯p2.5东西左转绿灯p2.6东西左转黄灯p2.7东西左转红灯p3.0通信p3.1通信p3.2p3.3p3.4p3.5p3.6p3.73.1电源部分电源部分电路如图3-2所示。图中j1为电源接口,c3,c4为滤波电容;r13为d1的限流电阻。d1为电源led指示灯。工作时,当有电源接入后,经c3、c4滤去纹波后点亮d1。因为led的工作电流一般不超过20ma,r13起到限制电流在20ma以下。3-2电源电路3.2单片机最小系统单片机最小系统电路如图3-3所示。图纸中u1为stc89c52rc单片机,u1为主机,这里只介绍主机,从机和主机的原理是一样的。rp1为单片机的p0口的上拉电阻。根据查阅单片机的数据手册,我们知道此单片机的p0口是准双向i/o口,需要接上拉电阻。c1,s1,r1构成了单片机的复位系统,当单片机正常工作时单片机的rst引脚电压被r1电阻拉低;当s1按下时单片机的rst引脚接到vcc被拉高,此时单片机复位,直到松开s1单片机的rst引脚又被r1拉低,单片机才继续工作。电容c1起到的作用是按键s1动作时防止电压抖动的,也是滤波电容。图3-3单片机最小系统电流图3.3数码管倒计时显示电路数码管倒计时显示电路如图3-4所示。本设计选用的是共阳极两位数码管,q1a,q2a为南北倒计时数码管的驱动管;q3a,q4a为东西倒计时数码管的驱动管。三极管q1a,q2a,q3a,q4a选用的是常用的8550三极管。图中右侧的r9.r10,r11,r12为三极管的基极电阻,其余的最右侧的连接p0口和p1口的电阻都为数码管的限流电阻。图3-4数码管倒计时显示电路以q1a控制的数码管为例,此部分的工作原理是当q1a为高电平那么数码管共阳极为高电平,此时当a1为低电平那么数码管a段被点亮,当a1为高电平,a段熄灭;当q1a为低电平时,无论a1是高或者低电平,数码管a段都熄灭。其余的b1,c1,d1,e1,f1,g1亮灭原理都是如此,用单片机动态执行起来就可以看到数码管的数据变化了。3.4按键电路按键电路如图3-5所示。图中r3,r4,r5,r6都为上拉电阻,s3,s4,s5,s6分别为菜单键,增加键,减小键,确定键。以r3和s3部分举例说明。当菜单键s3按下后单片机的p20引脚被拉成低电平,当s3放开后单片机的p20引脚被拉成高电平。,单片机程序通过检测这些引脚的电平状态来判断是否有按键按下,以及是哪个按键按下。系统设计的紧急模式按键与夜间模式按键硬件工作原理和此同样。图3-5按键电路原理图3.5车道指示灯电路图3-6车道指示灯电路车道指示灯电路如图3-6所示。d51、d52分别为南北左转红灯,d53、d54分别为南北左转黄灯,d55、d56分别为南北左转绿灯,d57、d58分别为南北直行红灯,d62、d63分别为南北直行黄灯,d67、d68分别为南北直行绿灯;d59、d60分别为东西左转红灯,d64、d65分别为东西左转黄灯,d69、d70分别为东西左转绿灯,d61、d80分别为东西直行红灯,d66、d81分别为东西直行黄灯,d71、d82分别为东西直行绿灯。以d51电路部分为例,当p200为高电平时,d51熄灭,当p200为低电平时,d51点亮。r22为限流电阻。其余电路和此同样。3.6人行道指示灯电路人行道红绿灯部分的电路如图3-7所示。图中d2,d3为南北人行道红灯,d4,d5为南北人行道绿灯,d6,d7为东西人行道红灯,d8,d9为东西人行道绿灯。r14,r15,r16,r17,r18,r19,r20,r21为限流电阻,d2-d9为图3-7人行道红绿灯电路图3.7车流量检测电路车流量检测电路如图3-8所示。图中d72-d79为发光器件,电阻r119-r126为限流电阻,rp13-rp20为光敏电阻,r143-r150为分压电阻。正常工作时发光器件发光,对应的受光部分光敏电阻。当没有车经过时光敏电阻受光内阻减小,经过分压电阻分压,对应的单片机引脚检测到高电平;当有车经过时,发光器件发出的光被车辆遮挡,对应的光敏电阻不受光内阻变大,对应的单片机引脚检测到低电平。这样单片机就知道是否有车经过了。图3-8车流量检测电路4 系统软件设计系统程序包括两部分,主单片机程序和从单片机程序,主单片机与从单片机通过单片机的uart模块实现相互通信。4.1系统流程图4.1.1系统主程序流程图系统主程序流程图,如图4-1所示。图4-1系统主程序流程图系统上电后首先初始化,其次判断紧急按键是否按下,如果按下则进入紧急模式,系统工作在紧急模式下实时判断是否再次有紧急按键按下如果紧急按键再次按下则退出紧急模式,若紧急按键未再次按下,则继续判断;如果在主程序中紧急按键未按下,则判断夜间模式按键是否按下。若夜间模式按键按下则进入夜间模式,在夜间模式下,循环判断夜间模式按键是否再次被按下,如果夜间模式按键未再次按下则系统一直判断夜间模式按键是否再次被按下,若夜间模式按键再次被按下则退出夜间模式。主程序检测设置菜单键是否按下,如果菜单键未按下则工作在正常模式。如果菜单键按下则系统进入设置模式。进入设置模式后,通过数码管我们首先看到的是南北直行绿灯的时间,通过增加键或者减小键来调节南北直行绿灯的时间,调整好后按下确定键保存南北直行的绿灯时间。接下来看到的是南北左转绿灯的时间,通过增加键或者减小键来调节南北左转绿灯的时间,调整好后按下确定键保存南北左转的绿灯时间。这时看到的是东西直行绿灯的时间,通过增加键或者减小键来调节东西直行绿灯的时间,调整好后按下确定键保存东西直行的绿灯时间。最后看到的是东西左转绿灯的时间,通过增加键或者减小键来调节东西左转绿灯的时间,调整好后按下确定键保存东西左转的绿灯时间。这时就退出了设置模式。设置模式流程图如图4-2所示。图4-2设置模式流程图系统工作在正常模式时,首先是南北直行绿灯30秒,其余车道均为红灯,南北直行绿灯30秒过后是南北直行黄灯闪烁3秒,再之后是南北左转绿灯30秒,再是南北左转黄灯3秒;在以上的四种工作模式下东西人行道都是绿灯,南北人行道是红灯;其次是东西直行绿灯30秒,其余车道均为红灯,东西直行绿灯30秒过后是东西直行黄灯闪烁3秒,再之后是东西左转绿灯30秒,再是东西左转黄灯3秒;在以上的四种工作模式下东西人行道都是红灯,南北人行道是绿灯。再之后是工作到系统第一种模式。如此循环往复。当系统工作在正常模式时,有紧急模式或者夜间模式请求,则系统进入紧急模式或者夜间模式。系统工作在正常模式时的流程图如图4-3所示。图4-3正常模式时流程图系统进入紧急模式后,所有路口的红灯亮起,其余灯都熄灭,此时禁止通行。当系统进入夜间模式后,所有路口的黄灯开始闪烁,此时各个路口进入提示模式。4.1.2系统车检测流程图系统车检测流程图如图4-4所示。当系统工作在正常模式时,南北直行绿灯时,检测南北直行车流量,当检测到的车流量数大于默认的30秒数据时,则自动设置下次南北直行的绿灯时间为此次的车流量数据,当小于或者等于30时则下次南北直行的绿灯时间不变依然为默认的30秒。比如当检测到的车流量为45,那么设置下次的南北直行绿灯时间为45秒,假如检测到的车流量为29,那么设置下次的南北直行绿灯时间为30秒。南北左转,东西直行,东西左转的车辆检测都是如此。图4-4系统车检测流程图4.2程序部分4.2.1主单片机程序主单片机程序部分包括主程序,初始化程序,显示程序,通信中断程序,定时中断程序,设置程序等部分。1.主程序部分程序如下:void main() /主函数init(); /初始化程序set_time(); /设置时间while(1) key_read(); /按键读取函数key_set(); /按键设置程序key_read1(); /按键读取函数key_set1(); /按键设置程序 while (status20)/记时一秒 switch(status) case 0: if (s_car_sl_g_time=s_car_sl_g_time_set) putc_to_serialport(a);e_car_sl_r_time=s_car_sl_g_time+6+s_car_l_g_time;/东西方向,红灯时间data_b(s_car_sl_g_time,e_car_sl_r_time); s_car_sl_g_time-; sg=er=1; /灭灯 sr=eg=0; /南红,东绿 if (s_car_sl_g_time=0) s_car_sl_g_time=s_car_sl_g_time_set; status=1; /e_footway_time-; /if (e_footway_time30) s_car_sl_g_time=s_sl_car_check_time; s_car_sl_g_time_set=s_sl_car_check_time; s_sl_car_check_time=0; else s_car_sl_g_time=30; s_car_sl_g_time_set=30; e_car_sl_r_time=y_time+s_car_l_g_time+3;/东西方向,红灯时间data_b(y_time,e_car_sl_r_time);y_time-; sg=er=1; /灭灯 sr=eg=0; /南红,东绿 if (y_time=0) y_time=3; status=2; /e_footway_time-; /if (e_footway_time=0) / /e_footway_time=s_car_l_g_time+s_car_sl_g_time+2*y_time; / urgent_bit=0; night_bit=0; break;/南黄灯亮 case 2: if (s_car_l_g_time=s_car_l_g_time_set) putc_to_serialport(c);e_car_sl_r_time=s_car_l_g_time+3;/东西方向,红灯时间data_b(s_car_l_g_time,e_car_sl_r_time);s_car_l_g_time-; sg=er=1; /灭灯 sr=eg=0; /南红,东绿 if (s_car_l_g_time=0) s_car_l_g_time=s_car_l_g_time_set; status=3; /e_footway_time-; /if (e_footway_time30) s_car_l_g_time=s_l_car_check_time; s_car_l_g_time_set=s_l_car_check_time; s_l_car_check_time=0; else s_car_l_g_time=30; s_car_l_g_time_set=30; e_car_sl_r_time=y_time;/东西方向,红灯时间data_b(y_time,e_car_sl_r_time);y_time-; sg=er=1; /灭灯 sr=eg=0; /南红,东绿 if (y_time=0) y_time=3; status=4; /e_footway_time-; /if (e_footway_time=0) / /e_footway_time=s_car_l_g_time+s_car_sl_g_time+2*y_time; / urgent_bit=0; night_bit=0; break;/南左转黄灯亮 case 4: if (e_car_sl_g_time=e_car_sl_g_time_set) putc_to_serialport(e);s_car_sl_r_time=e_car_l_g_time+e_car_sl_g_time+6;/南北方向,红灯时间data_b(s_car_sl_r_time,e_car_sl_g_time);e_car_sl_g_time-; sg=er=0; /南绿,东红 sr=eg=1; /灭灯 if (e_car_sl_g_time=0) e_car_sl_g_time=e_car_sl_g_time_set; status=5; /s_footway_time-; /if (s_footway_time30) e_car_sl_g_time=e_sl_car_check_time; e_car_sl_g_time_set=e_sl_car_check_time; e_sl_car_check_time=0; else e_car_sl_g_time=30; e_car_sl_g_time_set=30; s_car_sl_r_time=e_car_l_g_time+3+y_time;/南北方向,红灯时间data_b(s_car_sl_r_time,y_time);y_time-; sg=er=0; /南绿,东红 sr=eg=1; /灭灯 if (y_time=0) y_time=3; status=6; /s_footway_time-; /if (s_footway_time=0) / /s_footway_time=e_car_l_g_time+e_car_sl_g_time+2*y_time; / urgent_bit=0; night_bit=0; break;/东黄灯亮 case 6: if (e_car_l_g_time=e_car_l_g_time_set) putc_to_serialport(g);s_car_sl_r_time=e_car_l_g_time+3;/南北方向,红灯时间data_b(s_car_sl_r_time,e_car_l_g_time);e_car_l_g_time-; sg=er=0; /南绿,东红 sr=eg=1; /灭灯 if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北中考化学实验
- 核心素养导向的教育评价应
- 正面管教教育读书分享
- 学前教育论文选题简单的
- 肿瘤科病例分享会
- 航司安全教育培训体系
- 幼儿园园务培训
- 机电工程项目管理培训
- 肿瘤的个体化治疗
- 物业前台服务礼仪培训
- 2024年玉溪市事业单位招考及易考易错模拟试题(共500题)试卷后附参考答案
- GB/T 44679-2024叉车禁用与报废技术规范
- 江西省九江市2023-2024学年高二下学期7月期末考试物理试题(解析版)
- 肺结核防治知识讲座课件
- 汽车维修行业的法规和政策
- 科学种植活动促进小学生实践能力提升的探究
- 变电站-配电房挂轨巡检机器人技术方案
- 【高校环艺】室内外手绘效果图表现教案
- DB50-T 548.4-2024城市道路交通管理设施设置规范第4部分:道路交通安全设施
- 项目股份买断合同范本
- 青岛版数学八年级下册-《平方根》教学课件
评论
0/150
提交评论