1、长沙航空职业技术学院毕业设计(论文)题目: 基于单片机的十字路口 交通灯控制系统设计 学生姓名系 别 航空电子电气工程系专 业 应用电子技术专业 学 号指导教师职 称目录摘要2前 言4第一章 绪论51。1背景51.2 设计的目的及意义51。3 交通灯控制系统设计的任务与要求51。4 设计实现的主要功能6第二章 交通灯的总体方案设计与论证72.1 显示界面方案72.2 输入方案7第三章 交通灯原理分析83。1 交通灯显示时序的理论分析83.2 交通灯显示的理论分析93.2。1倒计时显示的理论分析93.2。2状态灯显示的理论分析10第四章 交通灯系统硬件设计114.1 交通灯系统设计芯片选择114
2、.2。1系统构成:124.2。2七段数码管介绍:12第五章 交通灯系统软件设计145.1程序设计流程图145。2 交通灯系统编程信息16第六章 交通灯的仿真及调试176。1 Proteus软件仿真176.2功能调试186。3 交通灯实物调试19结论21致 谢22参考文献23附录 A(源程序)24附录 B(电路原理图)27附录 C(PCB图)28摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善.十字路口车辆穿梭,行人
3、熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿、黄灯燃亮时间的功能;红绿灯循环点亮,倒计时剩3秒时黄灯警示,显示时间通过P2口输出至双位数码管。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。关键词:单片机;交通灯;AT89C51AbstractIn recent years, with the rapid development of science and tec
4、hnology, the application of SCM is going deep, driving the traditional detection techniques to renew day by day。 In the real-time examination and in the automatic control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses.The monolithic in
5、tegrated circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and hardware union, to be improved。The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depend
6、ing on what to realizes this orderly order? the traffic lights on the automatic control system。 There are great number kinds of modes to control the traffic lights。 The system uses a series of MCS51 as the center AT89C51 single-chip device designed to control the traffic lights,so as to realize the
7、function of setting red, green light time by 8051 chips P1 port according to the actual traffic flows, lighting the red-light , green-light and yellowlight by turn and lighting the yellowlight to show while 3 seconds left,outpuing the time by P2 and showing the time on doubledigitsnixie tube。 Short
8、of the design cycle, high reliability, practical, simple operation, easy maintenance, the expansion of powerful is this system.Key words: SCM; MCU; traffic light; AT89C51前 言不同的城市有不同城市的问题,但共性就是混合交通流问题。在交叉口如何解决混合交通流中的互相影响或彼此的互相影响,就是解决问题的关键!随着我国城市化建设的发展,越来越多的新兴城市的出现,使得城市的交通成为了一个主要的问题.同时随着我国经济的稳步发展,人民的生
9、活水平日渐提高,越来越多的汽车进入寻常百姓的家庭,再加上政府大力发展的公交、出租车,车辆越来越多了.这不仅要求道路越来越宽阔,而且要求有新的交通管理模式的出台。旧有的交通控制系统的弊病和人们越来越高的要求激化了矛盾,使原来不太突出的交通问题被提上了日程。现有关部门愈来愈多的注重在交通管理中引进自动化、智能化技术,比如“电子警察”、自适应交通信号灯以及耗资巨大的交通指挥控制系统等。随着经济的发展和社会的进步,道路交通愈来愈成为社会活动的重要组成部分。对交通的管控能力,也就从一个侧面体现了这个国家对整个社会的管理控制能力,因此各国都是很重视用各种高科技手段来清华对交通的管控能力.现在次提出用单片机
10、空盒子的简易交通红绿灯系统,借以解决单主干道的常规交通问题。第一章 绪论1。1背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。1.2 设计
11、的目的及意义单片机具有性价比高、集成度高、可靠性好、抗干扰性强等特点,广泛运用于各种智能仪器中。基于新型规则的可编程交通控制系统,可以实现对车辆、行人的控制,使的交通便于管理。所以,采用单片机自动控制交通灯有现实的社会意义。1.3 交通灯控制系统设计的任务与要求1。以单片机为核心芯片,通过控制三色LED的亮灭来控制各干道的通行。2。 电源:220VAC10,50Hz10%,用数码管显示时间。3。 每次绿灯变红灯时,要求黄灯先亮3秒钟。 主干道每次放行45秒;支干道每次放行30秒。4。 用计算机辅助设计软件Protel设计电路原理图及PCB图1.4 设计实现的主要功能本系统需要采用MSC51系列
12、单片机AT89C51作为中心器件来设计交通灯控制器,实现以下功能:1。初始东西(支干道)绿灯亮,南北(主干道)红灯亮,东西方向通车。2。延时27s,东西路口绿灯熄灭,黄灯延时3秒.(支干道放行30s)3.黄灯闪烁后,东西路口红灯亮同时南北路口绿灯亮,南北方向开始通车。4.延时42s,南北方向绿灯灭,黄灯延时3秒,(主干道放行45s)然后又切换成东西方向通车,如此重复。18第二章交通灯的总体方案设计与论证2。1 显示界面方案倒计时显示:该系统要求完成倒计时的功能.因只需显示数字,基于上述原因,完全采用数码管显示,四个路口分别采用一个二位阴极数码管即可。状态灯显示:按照要求,各个路口都只有一种直行
13、通行方式,这是最简单的交通路口通行方式.所以,一个路口3种灯都只有一种显示方式。状态灯在绿灯变红灯前,先亮3秒。2。2 输入方案8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。本设计将P1口设置红、绿、黄灯的燃亮;红绿灯循环点亮,倒计时剩3秒时黄灯警示,显示时间通过P2口输出至双位数码管。该方案的优点是:使用灵活,并且可提供较多I/O口,节省了AT89C51的中断口资源。第三章 交通灯原理分析3.1 交通灯显示时序的理论分析NSWENSWE下图所示为一种红绿灯规则的状态图.图3.1 状态S1东西直行通行图3.2 状态S2南北直接通行共两种状态,分别设定为S1、S
14、2,交通灯以这两种状态为一个周期,循环执行如下图所示:开始S2S1图3.3 交通灯状态循环图依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如下表所示(其中逻辑值“1”代表直行通行,逻辑值“0代表禁止通行):S1的状态ESWN逻辑值1010显示时间延时30SS2的状态ESWN逻辑值0101显示时间延时45S图3.4 东西支干道通行图3.5 南北主干道通行程序就是在上述两种状态下循环转化的。一个周期两个状态,整个周期下共花费75s.3。2 交通灯显示的理论分析3。2。1倒计时显示的理论分析 利用定时器中断,设置TH0=(6553650000)/256,TL0=(65536-50000)%25
15、6,即每0.05秒中断一次。每到第20次中断即过了20*0。05秒1秒时,使时间的计数值减1,便实现了倒计时的功能。3。2。2状态灯显示的理论分析AT89C51芯片的P1口分配:P10南北方向红灯, P11南北方向绿灯P12南北方向黄灯, P15东西方向红灯P16东西方向绿灯, P17东西方向黄灯这里黄灯只要求亮,所以更为简单。如果要求将黄灯设置为闪烁,则同样可以利用定时器中断,只要将黄灯标志位反置,每到第10次中断即过了100。05秒0.5秒时,即可让黄灯1秒闪烁一次。第四章 交通灯系统硬件设计4.1 交通灯系统设计芯片选择图4.1 89C51引脚图AT89C51是美国ATMEL公司生产的低
16、电压,高性能CMOS 8位单片机,有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,可以按照常规方法对其进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。4。
17、2交通灯显示电路设计整体连接电路图4。2.1系统构成:电路板一块,AT89C51单片机一片,七段数码管两个,发光二极管13个(12个用于交通控制,一个用于标识电源),一个按键,一个数据下载线.4.2。2七段数码管介绍:在单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等.LED段显示器结构与原理LED显示器是由发光二极管显示字段组成的显示块,有7段和“米字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管(在图中以dP表示)用于显示小
18、数点。通过发光二极管亮、暗的不同组,可以显示多中数字、字母以及其他符号.LED显示块中的发光二极管共有两种连接方法:(1)共阳极接法发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;而输入高电平的段则不点亮。(2)共阴极接法图4.2 数码管引脚图发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划
19、段dP、g、f、e、d、c、b、a对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极dP、g、f、e、d、c、b、a各段为0111011时,显示器显示P”字符,即对于共阴极LED显示器,“P字符的字形码是73H.如果是共阳LED显示器,公共阳极接高电平,显示“P字符的字形代码应为10001100(8CH)。用LED显示器显示十进制转换成十六进制数的字形代码在表4。3中列出。表 4。3LED十六进制的数字代码表字形共阳极代码共阴极代码字形共阳极代码共阴极代码0C0
20、H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH第五章交通灯系统软件设计5。1程序设计流程图开始AT89C51 初始化东西直行通行南北禁止通行30s南北黄灯亮3s南北直行通行东西禁止通行45s东西黄灯亮3sYNYN图5.1 主程序流程图T0响应到0.05s中断一次第20次计数值减1返回YN图5.2 中断程序中断程序实现定时与计数的功能,上面已经分析过,TH0=(6553650000)/256,TL0=(65536
21、50000)256,即每0。05秒中断一次。每到第20次中断即过了20*0。05秒1秒时,使时间的计数值减1,即实现了倒计时功能。5。2 交通灯系统编程信息定时器的中断设置在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。相应中断服务子程序void T0_init()TMOD=0x01;/定时器0设置为16位定时器TH0=(65536-50000)/256;/定时器0赋
22、初值TL0=(65536-50000)256;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /定时器打开if(aa = 20)aa = 0;value +;/value单位为秒,nbnum ;dxnum -;void time_t0() interrupt 1TH0=(6553650000)/256;TL0=(6553650000)256;aa+;/aa等于20,20*50000大概是1秒第六章 交通灯的仿真及调试6。1Proteus软件仿真根据系统设计要求,进行Keil和Proteus系统仿真,不断调试程序,直到符合功能要求.Proteus总体仿真图如下。图6.1 Pro
23、teus仿真图6.2功能调试调试步骤1. 在Proteus仿真软件中打开目标电路图。2. 将在Keil编程软件中生成的hex文件导入到电路图中。3. 点击开始按钮进行仿真测试.图6.2 东西支干道通行 图6.3 东西支干道黄灯警示图6.4 南北主干道通行测试结果: 发光二极管,数码管都能按要求显示,符合要求.6。3 交通灯实物调试调试步骤1. 对照电路图连接实物板,再接上电源。2. 打开电源开关,电路板的发光二极管,数码管开始运作,进行多次循环调试,确认无误后得出结论。图6.5 东西支干道通行图6.6 东西支干道黄灯警示图6.7 南北主干道通行调试结果:发光二极管,数码管都能按要求显示,各功能
24、都能实现,符合要求.结论本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,芯片的P1口设置红、绿、黄灯燃亮,P2口输出至数码管实现倒计时的功能。经过仿真和实物调试,发光二极管正常显示,数码管能按要求实现倒计时且能够和二极管同步。基本功能都能实现,符合设计要求。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。致 谢我在指导老师老师的精心指导和严格要求下,经过自己的努力,终于完
25、成了这次毕业设计。同时获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,尤其在单片机及其接口技术方面,这对我今后进一步学习应用电子方面的知识有极大的帮助.通过大量阅读资料,我拓宽了自己的知识面,并懂得将所学知识融会贯通到实践中去。在获得知识的同时,我也认识到了自己还需要学习的东西很多,理论需要很好的结合实践,全面分析并解决问题的能力有待提高.另外,此次毕业设计还获得了各位领导和老师的大力支持。在此,我衷心感谢各位老师的指导和支持.在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师,同时,在毕业设计过程中,同宿舍的舍友和同学给了我很多的帮助,
26、我非常的感谢他们给我的帮助。谢谢你们!参考文献1 清源计算机工作室。Protel 99 SE原理图与PCB 及仿真M。北京:机械工业出版社。2 赵晶。电路设计与制版Protel 99高级应用M。北京:人民邮电出版社。3 曾峰.印刷电路板(PCB)设计与制作M。北京:电子工业出版社。4 王俊峰,薛鸿德。理工科学生怎样搞毕业设计M。北京:电子工业出版社.5 6 陈学平等.Protel2004电路设计与电路仿真M。北京:清华大学出版社.7 李建中.单片机原理及应用M。西安:西安电子科技大学出版社。8 朱定华。单片机原理及接口技术实验M。北京:北方交通大学出版社。9 王松武,于鑫,武思军。电子创新设计
27、与实践M。北京:国防工业出版社。10马忠梅.单片机的C语言应用程序设计M。北京:北京航空航天大学出版社.附录 A(源程序)#includereg52。hsbit Nred = P10; /南北方向红灯sbit Ngre = P11; /南北方向绿灯sbit Nyer = P12; /南北方向黄灯sbit Ered = P15; /东西方向红灯sbit Egre = P16; /东西方向绿灯sbit Eyer = P17; /东西方向黄灯sbit zuo1 =P20;/十位,sbit zuo2 =P21;/左边四位数码管,左两位灯亮,个位sbit you1 =P26;/十位sbit you2 =
28、P27;/右边四位数码管,右两位灯亮,个位sbit P22=P22;sbit P23=P23;sbit P24=P24;sbit P25=P25;unsigned char aa;/aa表示中断次数,20次unsigned char value;/value单位为秒,后面将用做定时值unsigned char nbnum;/nbnum表示南北干道的时间值unsigned char dxnum;/dxnum表示东西干道的时间值/*段码*/unsigned char code led_duan=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;/
29、共阴段码/*函数功能:简单延时*/*入口参数:z*/*出口参数:无*/void delay(unsigned int z)while(z);/*函数名称:T0_init*/*函数功能:T0初始化*/*入口参数:无*/*出口参数:无*/ void T0_init()TMOD=0x01;/定时器0设置为16位定时器TH0=(65536-50000)/256;/定时器0赋初值TL0=(6553650000)256;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /定时器打开/*函数名称:display*/*函数功能:显示程序*/*入口参数:无*/*出口参数:无*/ void dis
30、play()zuo1=0;P22=1;P23=1;P24=1;P25=1; P0=led_duandxnum/10;/数码管右边的表示东西干道的时间值,显示十位delay(500);P2=0xff;zuo2=0;P22=1;P23=1;P24=1;P25=1; P0=led_duandxnum%10;/显示个位delay(500);P2=0xff;you1=0;P22=1;P23=1;P24=1;P25=1;P0=led_duannbnum/10;/数码管左边的表示南北干道的时间值,显示十位delay(500);P2=0xff;you2=0;P22=1;P23=1;P24=1;P25=1; P
31、0=led_duannbnum10;/显示个位delay(500);P2=0xff;void main() P1 = 0xff;/清显 T0_init();/定时初始化 while(1) if(aa = 20)aa = 0;value +;/value单位为秒,nbnum -;dxnum -;if(value = 0)Nyer = 1;Ered = 1;Nred = 0;/低电平,灯才亮Egre = 0;/一开始东西支干道绿灯将亮27秒nbnum = 30;/开始30秒倒计时dxnum = 30;if(value = 27)Egre = 1;/第27秒东西干道的绿灯开始关闭Eyer = 0;/
32、第27秒东西干道的黄灯开始亮if(value = 30)Nred = 1;/第30秒南北主干道的红灯关闭,开始通行Ngre = 0;/第30秒南北主干道的绿灯将开始亮,绿灯显示42秒Eyer = 1;/第30秒东西支干道的黄灯关闭Ered = 0;/第30秒东西干道的红灯将亮,禁止通行nbnum = 45;/东西和南北干道开始重新45秒计数dxnum = 45;if(value = 72)Ngre = 1;/南北主干道的绿灯又开始关闭Nyer = 0;/南北主干道的黄灯将要亮起3秒if(value = 75) value = 0;/开始循环/*黄灯延时*/if(((value=27)(valu
33、e=27)(value30))&(aa = 6)) Eyer = 0;if((value=27)&(value30)&(aa = 9)) Eyer = 0;if(((value=27)(value30)(aa = 12) Eyer =0;if(((value=27)&(value30)(aa = 15)) Eyer = 0;if(value=72)&(value=72)(value=72)&(value75)&(aa = 6) Nyer = 0;if(((value=72)&(value75)&(aa = 9)) Nyer = 0;if((value=72)(value=72)&(value75))&(aa = 15)) Nyer = 0;display();/引用显示程序 /*定时器中断*/void time_t0() interrupt 1TH0=(65536-50000)/256;TL0=(6553650000)256;aa+;/aa等于20,,2050000大概是1秒附录 B(电路原理图)附录 C(PCB图)