1、分类号:学校代码:11460学 号:10090304南京晓庄学院本科毕业生毕业设计交通灯控制系统设计Design of traffic light control system学位论文独创性声明本人郑重声明:1坚持以“求实、创新”的科学精神从事研究工作。2本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3本论文中除引文外,所有实验、数据和有关材料均是真实的。4本论文中除引文和致谢的内容外,不包含其他人或其它机构已经发表或撰写过的研究成果。5其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名:何 源日 期:2014年 5月18日中文摘要本次课题主要介绍了基于AT89S
2、52单片机的交通灯控制系统。此次设计由硬件和软件两部分组成。硬件部分主要是由单片机的最小系统模块、红黄绿灯的显示模块、数码管的倒计时显示模块以及夜间显示模块组成。软件部用则主要由C语言进行程序的编写,通过数码管显示出红灯、黄灯、绿灯的计时时间。 本次设计中在白天模式和夜间模式的交换时,在控制电路里加入了光敏电阻器,利用光敏电阻的入射光强,电阻减小;入射光弱,电阻增大的特性。使得控制电路中光敏电阻随着光强的改变而改变其电阻,以此来控制白天模式与夜间模式的交替。关键词:交通灯;AT89S52;数码管;光敏电阻器AbstractThis topic mainly introduces the tra
3、ffic light control system based on AT89S52 .The design consists of two parts, hardware and software .The hardware part by single chip microcomputer minimum system module ,red yellow green display module at night .Software is mainly written in C language ,through digital tube display the red light ,y
4、ellow light ,green light timing time .During the day and night mode in the design of the exchange .joined the photosensitive resistor in control circuit ,using photosensitive resistance of the incident light intensity ,resistance decreased ;The characteristics of incident light is weak ,the resistan
5、ce increase .Makes the control circuit of photosensitive resistance with change of the light intensity and changes its resistance ,in order to control pattern of alternating pattern during the day and night .Key words: Traffic lights ; AT89S52; Digital tube ;Photosensitive resistor目 录1 绪 论11.1 交通灯控制
6、系统的简介11.2 交通灯系统的发展现状及趋势11.3 交通灯系统的研究意义12 交通灯系统的硬件电路设计12.1 系统的构成22.2 复位电路22.3时钟电路32.4 白天工作模式设计32.5 夜间模式设计42.6 数码管显示部分设计52.6.1 LED数码管62.6.2 数码管显示原理63 交通灯系统的软件部分设计73.1 设计的总流程图73.2 白天模式程序的设计83.3 夜间模式程序的设计93.4 数码管显示程序的设计104 系统调试12总 结14参考文献14致 谢15附录1:硬件电路图15附录2:软件部分设计16I南京晓庄学院2014届本科毕业设计1 绪 论单片微型计算机,简称单片机
7、,是将微处理器、存储器和输入输出接口电路集成在一块集成芯片上。自20世纪70年代问世以来,单片机以其极高的性价比,受到人们的重视。更是因其具有体积小、重量轻、抗干扰能力强、工作环境要求不高、价格低廉、可靠性高、开发较为容易等一系列优点,使其广泛应用于智能生产和工业自动化上。1.1 交通灯控制系统的简介本次的课题设计,就是通过利用AT89S52单片机来设计模拟交通灯的控制系统,利用C语言进行程序的编写,控制交通灯的亮灭:在白天时,接通电源后,红灯、黄灯、绿灯有序的进行一定时间的亮暗,其亮暗的时间由数码管显示,由C语言所编写的程序控制,以此引导车辆的通行;其次,在夜间到来时,由于车辆较少,所以交通
8、灯控制系统进入夜间的工作模式,红灯和绿灯熄灭,黄灯亮灭亮灭的闪烁状态,且数码管显示数字为00。在本次设计中,为了方便模拟白天与夜晚的显示情况,在控制电路中使用了光敏电阻器,利用了光敏电阻的入射光强,电阻减小;入射光弱,电阻增大的特性。使得控制电路中光敏电阻随着光强的改变而改变其电阻,以此来控制白天模式与夜间模式的交替。1.2 交通灯系统的发展现状及趋势随着社会经济的发展,城市交通问题越来越被人们的所关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的
9、组成部分。所以,如何采用合适的控制方法,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。1.3 交通灯系统的研究意义随着科技的不断进步,信息化程度的不断提高,人们生活发生翻天覆地的变化,对于代步工具的要求也是随之攀升。路上的车流量不断的增加。交通灯系统控制着道路上车子的通行,在传统的交通灯控制系统中,白天工作之后,夜间的工作须用人工来进行操作,而不能自动的进入夜间的工作模式。而在本设计中,利用光敏电阻器的特性控制电路的工作,从而达到智能判别白天和黑夜的目的。2 交通灯系统的硬件电路设
10、计2.1 系统的构成本次课题设计中,主要是由单片机最小系统、数码管显示模块和红黄绿灯显示模块组成。在本设计中,数码管的显示时间反应了其相应红黄绿灯的亮灭时间,其次,在夜间显示模块时,数码管显示00,系统结构框图如2-1所示:图2-1:整体的系统框图2.2 复位电路单片机中的复位电路如图2-2所示:图2-2:上电复位电路在单片机中,复位电路有两种方式:上电自动复位和按钮复位。在本次设计中,采用的是上电自动复位方式。其工作原理就是通过外部复位电路给电容C3充电加至RST引脚一个短的高电平信号,此信号随着Vcc对电容C3的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C3的充电时间。2
11、.3时钟电路单片机时钟电路如图2-3所示:图2-3:时钟电路AT89C51芯片中的引脚XTAL1和XTAL2是芯片内部震荡电路的输入端和输出端,这两个引脚连接石英晶体和微调电容,构成一个稳定的自激振荡器。因此,在本设计中XTAL1,XTAL2的引脚上外接石英晶体和电容,构成一自激振荡电路。构成晶体可以在1.212MHz之间任选,电容可以在2060pF之间选择,其中,电容的大小会影响振荡器频率的高低以及振荡器的稳定性。在本设计中选用的电容为33pF,晶振为12MHz。2.4 白天工作模式设计在白天工作模式中,交通灯系统的工作状态是:在接通电源后,南北方向的红灯亮,东西方向的绿灯亮,同时数码管开始
12、进行倒计时显示,时间为30秒;30秒时间结束后,南北、东西方向的黄灯开始1秒间隔的进行亮灭,呈闪烁状,时间持续5秒;之后,南北方向的绿灯亮,东西方向的红灯亮,这样的循环下去。其中,交通灯的分布情况如图2-4所示:图2-4:交通灯的分布情况在此电路中,红黄绿三灯使用的是LED发光二极管,在普通的发光二极管内注入不同的稀有气体,接通点亮后,从外观看上去就是不同颜色的光。 2.5 夜间模式设计本次课题设计中,夜间模式是为了模拟在夜间时的交通状态,由于夜晚车辆较少,深夜甚至无车通行,所以在夜间时交通灯控制系统的工作状态状态也与白天的工作状态有所不同。进入夜间工作模式后,所有的灯的工作状态是相同,以此达
13、到闪烁的效果,同时LED数码管的显示时间为00。利用白天与黑夜光强弱的变换,使得交通灯控制系统能够完成白天与黑夜的工作状态的转变,电路如图2-5所示:图2-5:模式转换电路在本次设计中,为了模拟智能判别白天与黑夜,利用光敏电阻进行控制。此电路中,运用了电压比较器进行电压的输出。R14与R16的阻值不变,因此,两个电阻之间的电位不会发生改变,而光敏电阻器LDR随着光照强度的改变,其电阻值也随着改变,即LDR1与R15之间的电位变化。在此电路中,利用LM358N组成一个电压比较器,即LM358N中3脚电位高于2脚电位,输出高电平;若3脚电位低于2脚电位,输出低电位。而电路中,光敏电阻器是由半导体的
14、光电效应制成的电阻,其电阻值是随着入射光的强弱的改变而改变的,所以光敏电阻器又被称为光电导探测器,在本设计中采用的是负温度系数的光敏电阻器,即入射光强,电阻值减小,入射光弱,电阻值增大。2.6 数码管显示部分设计本次的课题设计是交通灯控制系统。其设计目的就是利用三种颜色的灯,模拟道路的交通状况,以便能提高十字路口交通灯的工作效率和保持道路的畅通。因为十字路口分为两个干道,一个为主干道,一个为次干道,在每个干道的两侧,每侧都有红黄绿三色的灯。其中,红灯亮的时候,代表的是车辆禁止通行;黄灯亮的时候,代表的是车辆等待;绿灯亮的时候,代表的是车辆可以通行。在本次课题设计时,要保证主干道、次干道两侧分别
15、显示相同颜色的灯,而显示灯亮的时间,则由数码管进行显示。在这里,由数码管来提示各个颜色灯所亮的时间,不过,这里采用的是倒计时,各个灯亮的时间由C语言所编写的程序进行控制。2.6.1 LED数码管LED数码管是由发光二极管作为显示字段的数码型显示器件。图2-6:LED数码管a)外形和引脚 b)共阴极结构 c)共阳极结构 LED数码管因电路的连接方式不同分为共阴极型和共阳极型两种。其中,共阴极型数码管就是将各段发光二极管的负极连接在一起,作为公共端并接地,其余各段接控制端,其余段的某段接高电平时发光,接低电平时不发光,控制某几个笔段发光情况,以此显示数字,如图2-6b所示。共阳极型数码管就是将各段
16、发光二极管的正极连接在一起,作为公共端,某笔段接低电平时发光,高电平时不发光,如图2-6c所示。2.6.2 数码管显示原理在此电路当中,选用的是共阴极LED数码管,其中定义数码管显示时,运用了LED数码管的编码方式,其中按小数点的是否计算在内可分为七段码和八段码;按公共端的连接方式可分为共阴字段码和共阳字段码,其中,计小数点的共阴字段码和共阳字段码互为反码。而在电路中的数码管,则选用的是,其编码方式为共阳极段码,09段选码为:0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90。所用数码管如图2-7所示:图2-7:数码管数码管的显示有分为静态显示和
17、动态显示。静态显示就是无论有多少个数码管都在同一时间点亮;动态显示就是无论在任何时刻只有一个数码管处于点亮状态,即单片机采用“扫描”方式控制着数码管的点亮。本次设计中数码管显示主要采用动态显示方式。其中,动态显示就是将所有位数码的段选线并联在一起,由位选线控制哪个数码管有效从而显示。而在此设计中,利用单片机中的P3.0和P3.1对数码管进行位选控制。两位同时显示是利用发光二极管的余辉和人眼的视觉暂留作用,使人视觉感到各位同时显示。3 交通灯系统的软件部分设计本设计主要是以AT89C51为核心的交通灯系统设计。其中,数码管显示模块主要是显示红黄绿灯亮起的时间,而红灯、黄灯和绿灯的亮暗则指引人们有
18、序的通行;夜间模式后,则只有黄灯呈亮灭亮灭状态,且数码管显示00。3.1 设计的总流程图系统程序设计的总流程框图如3-1所示:图3-1:总流程框图本设计中,在白天时,交通灯处于正常的工作状态,接通电源后,先是南北方向的红灯亮,相应的东西方向的则是绿灯亮,在亮起30秒后,东西南北方向都进入黄灯亮灭亮灭的闪烁状态,在持续5秒的时间以后,东西方向的红灯亮,而南北方向的则是绿灯亮。在进入夜间以后,电路进入夜间工作模式,红灯和绿灯都处于不亮的状态,只有黄灯处于亮灭亮灭的闪烁状态。而白天模式与夜间模式的转换,则是利用了光敏电阻的特性,入射光强,则电阻值小;入射光弱,则电阻值大,以此来控制两种状态的转换。3
19、.2 白天模式程序的设计白天工作模式的工作流程框图如图3-2所示:图3-2:白天工作模式的流程图在白天时,道路上的车流量增大,交通灯系统处于白天工作模式,接通电源后,首先是南北方向的红灯亮,相应的东西方向的则是绿灯亮,即南北方向的车辆禁止通行,东西方向的车辆允许通行;而在亮起30秒后,东西南北方向都进入黄灯亮灭亮灭的闪烁状态,两个道路的车辆都禁止通行;在持续5秒的时间之后,东西方向的红灯亮,而南北方向的则是绿灯亮,即东西方向的车辆禁止通行,南北方向的车辆允许通行。在程序设计中,利用了while语句对工作模式流程进行了选择,即while(guangqiang = 0)时,此时程序执行白天工作模式
20、的流程。其中,在宏定义时,已对各端口的控制进行了定义:VD10指代的是东西方向的红灯,VD11指代的是东西方向的黄灯,VD12指代的是东西方向的绿灯,VD13指代的是南北方向的红灯,VD14指代的南北方向的黄灯,VD15指代的是南北方向的绿灯。取其中白天模式中,南北红灯亮,东西绿灯亮的程序如下所示:VD13 = 0;/南北红VD12 = 0;/东西绿VD10=VD11=VD14=VD15 =1;/其余灯强制灭number = 30;for (i=30;i0;i-) /30秒delay_1ms(800); number -;在白天模式中,黄灯呈亮灭亮灭的闪烁状态,且其时间为5秒,其程序设计如下:
21、 VD14 = 0; /南北黄VD11 = 0; /东西黄VD10=VD12=VD13=VD15 =1;/其余灯强制灭number =5;for ( i =5;i0;i-) /5秒delay_1ms(800); VD14=VD14;VD11=VD11;number -; 3.3 夜间模式程序的设计夜间工作模式的工作流程框图如图3-4所示:图3-4:夜间工作模式的流程图在进入夜间后,由于电路中光敏电阻器的特性影响,夜间模式的电路接通,因程序的设定,即while(guangqiang=1),开启了夜间模式的工作状态。红灯和绿灯都处于熄灭的状态,只有黄灯一直处于亮灭亮灭的闪烁状态。其程序设定如下所示
22、:void flash_led () /闪烁LED灯number = 0;VD10=VD11=VD12=VD13=VD14=VD15 =1; /红灯、黄灯和绿灯强制熄灭delay_1ms(800); VD11=VD14 =0; /黄灯强制亮delay_1ms(800);3.4 数码管显示程序的设计数码管显示的流程框图如图3-5所示:图3-5:数码管显示流程图在白天模式与夜间模式两种工作状态下,数码管的显示与其工作状态相对应。在白天模式中,红灯亮的时间为30秒,黄灯亮的时间为5秒,绿灯亮的时间也为30秒;在进入夜间模式后,红黄绿三色灯中,红灯和绿灯熄灭,只有黄灯处于亮灭亮灭的闪烁状态。首先,在程
23、序设计中,先对数码管的数字显示进行定义,即unsigned char code tab_shumaguan= /0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/19段选码0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x7F;/0,1,2,3,4,5,6,7,8,9,点而在灯亮灭的时间设定上,应先对定时器进行设定,其程序如下:void timer0() interrupt 1 /10ms延时(12.0MHz)TR0=0; /关 定时器 T0ET0=0; /关 定时器 T0 中断TH0=0
24、xf0; /重装初值:定时器T0的高8位赋初值TL0=0x60; /重装初值:定时器T0的低8位赋初值display (number);TR0=1; /开 定时器 T0ET0=1; /开 定时器 T0 中断在正常的时间计数时,即30秒时间显示的程序如下所示:number = 30;for (i=30;i0;i-) /30秒delay_1ms(800); number -;其中,delay_1ms(800)的程序设定如下所示:void delay_1ms (unsigned int s)unsigned int a,b;/16位数据a,b for(a=0;as;a+)/for(b=0;b120;
25、b+);/1204 系统调试图4-1:交通灯显示交通灯显示模块:在白天模式时,接通电源后,先是南北方向的红灯亮,相应的东西方向的则是绿灯亮,在亮起30秒后,东西南北方向都进入黄灯亮灭亮灭的闪烁状态,在持续5秒的时间以后,东西方向的红灯亮,而南北方向的则是绿灯亮。在进入夜间以后,电路进入夜间工作模式,红灯和绿灯都处于不亮的状态,只有黄灯处于亮灭亮灭的闪烁状态。此模块显示了白天和夜间模式情况下,交通灯和数码管的工作状态。图4-2:夜间模式模块此电路利用了负温度系数光敏电阻器的工作特点:入射光强,电阻值减小,入射光弱,电阻值增大。在白天时,光照强度大,光敏电阻由其特性,此电路中,运用了电压比较器进行
26、电压的输出。R14与R16的阻值不变,因此,两个电阻之间的电位不会发生改变,而光敏电阻器LDR随着光照强度的改变,其电阻值也随着改变,即LDR1与R15之间的电位变化。在此电路中,利用LM358N组成一个电压比较器,即LM358N中3脚电位高于2脚电位,输出高电平;若3脚电位低于2脚电位,输出低电位。总 结本次设计基于最典型的51单片机技术的交通灯控制系统的设计与实现,介绍了基于AT89C51单片机微处理芯片与LED数码管的显示模块和交通灯控制系统的昼夜模式,由C语言程序控制的软硬件结合的设计。在对此次设计的程序进行修改时,要把程序下载实际运行后,发现时间的不准或电路中的元器件的无法工作,能够
27、提供合理的方案解决,同时能够在实际中合理的找出交通灯中各色的亮起时间。这次毕业论文的设计,从开始准备资料到最后的定稿,我学到了很多不曾了解的知识,了解了80C51芯片和数码管等各类所需器件的更多的相关内容,巩固和加深对单片机知识的理解。锻炼了分析、解决电子电路问题的实际本领。参考文献1 孙宇尖. 基于MSC-51单片机交通灯控制系统的J. 科技信息. 2009(15). 2 陈延奎. 基于单片机的交通灯控制系统J. 重庆科技学院学报(自然科学版). 2007(04). 3 李琳. 用单片机实现交通灯的控制J. 科技创业月刊. 2008(11). 4 郑建光,李永. 基于AT89C51单片机的交
28、通灯控制系统J. 自动化与仪器仪表. 2008(06). 5 肖传清. 基于单片机控制交通灯的设计J.赤峰学院学报.2013(22).6 吕宁. 具有倒计时功能的单片机交通灯模拟控制系统设计J. 职业. 2010(29). 7 温欣玲,张玉叶. 基于单片机及交通灯智能控制系统研究J. 微计算机信息. 2007(29). 8 宋海永. 单片机在智能交通灯控制系统中的应用J. 电脑知识与技术. 2010(15). 9 V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and T
29、hermoelectric Modules Based on the Peltier EffectJ ,2002.10 Yeager Brent.How to troubleshoot your electronic scaleJ. Powder and Bulk Engineering. 1995.致 谢光阴似箭,没有谁能阻止时间的悄然流逝,我的大学生活也在这不知不觉间即将画上句号。在这即将毕业之际,经过我的一段时间的努力,我的毕业论文也随之完成。本次论文的完成,对我而言是一种锻炼,在安排事情进度的把握方面有了很大提高,同时能更好的对自己进行约束。本次课题设计是在指导老师的指导和支持下完成的
30、。感谢老师从论文的题目的选定、资料的搜集以及在论文资料的修改上所提的宝贵的意见和无私的帮助。同时,在此次毕业设计过程中我对单片机的一些知识又有了重新的认识,实验技能有了很大的提高。 另外,我还要特别感谢一些同学对我论文修改上所提的一些意见,为我论文的完成提供了巨大的帮助。 最后,对此次帮助我的老师和同学表示真诚的谢意。附录1:硬件电路图附录2:软件部分设计#include sbit VD10 = P10; /西红=东红sbit VD11 = P11; /西黄=东黄sbit VD12 = P12; /西绿=东绿sbit VD13 = P13; /南红=北红sbit VD14 = P14; /南黄
31、=北黄sbit VD15 = P15; /南绿=北绿sbit P30 = P30;sbit P31 = P31;sbit guangqiang = P33; /光强度unsigned int number; /用于计时函数 ,记录秒数unsigned char code tab_shumaguan= /0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/19段选码0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x7F;/0,1,2,3,4,5,6,7,8,9,点unsigned char s
32、humaguan_Select=0xFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F;/0x01,0x02,0x04,0x08,0x10,0x20;/分别点亮第6,5,4,3,2,1号灯./*函数名:delay *延时函数 1MS*/void delay_1ms (unsigned int s)unsigned int a,b; /16位数据a,b for(a=0;as;a+) /for(b=0;b120;b+); /120/延时,用于提供视觉暂留,很小void delay(unsigned char delaytime)unsigned char i;while(d
33、elaytime-)for(i=0;i0;i-) /30秒delay_1ms(800); number -;VD14 = 0; /南北黄VD11 = 0; /东西黄VD10=VD12=VD13=VD15 =1;/其余灯强制灭number =5;for (i=5;i0;i-) /5秒delay_1ms(800); VD14=VD14;VD11=VD11;number -; VD15 = 0; /南北绿VD10 = 0; /东西红VD11=VD12=VD13=VD14 =1;/其余灯强制灭number =30;for (i=30;i0;i-) /30秒delay_1ms(800); number -; number = 0;while (guangqiang = 1) /光强很弱flash_led (); /闪烁LED灯,并将数码管记为00/* 定时器T0,模式1,定时时间10毫秒 * */void timer0() interrupt 1 /10ms延时(12.0MHz)TR0=0; /关 定时器 T0ET0=0; /关 定时器 T0 中断TH0=0xf0; /重装初值: 定时器T0的高8位赋初值TL0=0x60; /重装初值: 定时器T0的低8位赋初值display (number);TR0=1; /开 定时器 T0ET0=1; /开 定时器 T0 中断20