您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 十字路口交通信号灯控制系统-(2)
单片机课程上设计报告一、课题名称:十字路口交通信号灯控制系统二、选题背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。三、单片机简介3.1单片机的发展历程单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。在MCS-51系列单片机中,有两个子系列:51子系列和52子系列。每个子系列有诺干中型号。51系列有8051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。改进后的型号更加省电。52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。Inter公司停止生产MCS-51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是AT89C51/AT89s51等。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗3.2单片机的特点:(1)性价比高,开发周期短,易于产品化,(2)集成度高,可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗、低电压一般电源供电电压在5~3V范围内单片机都能正常工作,供电的下限可达1~2V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了I2C及SPI等串行总线方式,可根据需要进行并行或者串行扩展。四、设计基本要求和步骤十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。4.1基本要求本系统需要采用MSC-51系列单片机STC89C51作为中心器件来设计交通灯控制器,实现以下功能:1.数码管显示倒计时时间,2.初始南北绿灯亮,东西红灯亮,南北方向通车。3.延时25s,当数码管第一次显示五秒时南北路口绿灯熄灭,接下来,数码管每减一秒,南北路口黄灯闪烁一次,共五次。4.数码管显示零秒时,南北路口红灯亮同时东西路口绿灯亮,东西方向开始通车。5.延时25s,数码管第二次显示五秒时东西路口绿灯熄灭,接下来,数码管每减一秒,东西黄灯闪烁一次,共五次。6.数码管显示零秒时,南北绿灯亮,东西红灯亮,南北方向通车。如此依次循环。7.当发生交通意外按下1号键,各个路口全亮红灯,进行交通事故的处理。当事故处理完毕(再次按1号键),重新按上述方式工作。8.当南北路口的流量大时,按2号键可以增加南北路口亮绿灯的时间,当东西路口的流量大时,按4号键可以增加东西路口亮绿灯的时间,结束后调回正常状态。(3号,5号键分别可以减小南北东西方向的通行(绿灯亮)的时间)4.2设计步骤1.方案用两个共阴极LED数码管的分别显示东西、南北两个方向路口的倒计时间,用红绿黄三种颜色的发光二级管分别代表红、黄、绿灯P0口输出红绿黄灯的亮灭状态。锁存器分时控制数码管的段选跟位选P2^0~~~P2^4接扩展口的五个按键key1~key5,进行相应的功能控制。蜂鸣器接P2.5在紧急情况发生时响直到紧急情况结束。下面我们可以用图表表示灯状态和行止状态的关系如下:状态持续时间南北方向东西方向红黄绿红黄绿自动125s00110025s010010325s10000145s010010手动按键1/100100按键2/每按一次南北绿灯亮的时间加5s/按键3/每按一次南北绿灯亮的时间减5s/按键4//每按一次东西绿灯亮的时间加5s按键5/每按一次东西绿灯亮的时间减5s注意:0表示灭,1表示亮。五.硬件及软件设计:总硬件图硬件图如下5.1交通灯部分:5.1.1原理:P1口输出控制红绿黄灯的亮灭状态。P1.0,P1.2,P1.3,P1.4,P1.5分别接东西方向的绿灯(ewg),东西方向的黄灯(ewy),东西方向的红灯(ewr),南北方向的绿灯(sng),南北方向的黄灯(sny),南北方向的红灯(snr)。六个发光二极管共阳极接法,由于单片机的工作电压为5v,当将此电压直接加在发光二极管上会烧坏二极管,所以阳极接1k的限流电阻,限制二极管的电流。此时,只要给I/o口输出为低电平,二极管就会点亮。所以用P0口的输出就可以控制发光二级管的亮灭状态。比如P0=1EH,则南北方向绿灯亮,东西方向红灯亮。5.1.2:P0口状态:P0编码状态P0^5P0^4P0^3P0^2P0^1P0^001111001EHSn绿灯,Ew红灯01110101DHSn黄灯,Ew红1100110F3HEw绿灯,sn红灯10101102BHEw黄灯,sn红灯01101101BHEw红灯,sn红灯5.2数码管显示部分5.2.1原理:将两个数码管的abcdefg引脚全部连在一起,然后与下面的U1原件74ls373锁存器的数据输出端连在一起,锁存器的数据输入端与单片机的P0口相连,,数码管中we1,we2,分别与U2元件74hc373锁存器的输出端相连,每个数码管对应一个位选,U2的数据输入端也与P0口相连。两个锁存器的锁存端分别与单片机的P2.6和P2.7相连。单片机通过控制锁存器的锁存端进而锁存器的数据输出,这种分时控制的方法可方便的控制任意数码管的任意数字。数码管上每段其实就是一个发光二级管,所以用输入端输入高低点评就可以点亮数码管的相应段,因此根据显示的内容点亮数码管的相应段就可以显示字符。P0口的输出的段选数据与数码管显示的字符对应的关系5.2.2软件实现:voidDisplay(ucharnum)//显示子程序{shi=num/10;//十位用两位数码管的第一位显示ge=num%10;//个位用两位数码管的第一位显示dula=1;//打开段选锁存器P0=table[shi];//送段选信息显示字符012345678910P03f065b4f666d7d077f6f77dula=0;//关闭段选锁存器,锁存段选信息P0=0xff;//P0口清零,防止影响位选信息wela=1;//打开位选锁存器P0=0xfe;//送位选信息wela=0;//关闭位选锁存器,锁存位选信息delay(5);//显示延时5ms//个位与十位的显示原理相同}5.3按键部分:5.3.1原理:1.按钮key_bussy连接P2^0端口实现红灯全亮,蜂鸣器报警,处理交通意外,意外处理完时再次按下此键,倒计时恢复2.按钮ns_add连接P2^1端口,按下此键,实现南北方向亮灯时间+5s3.按钮ns_red连接P2^2端口,按下此键,实现南北方向亮灯时间-5s4.按钮ew_add连接P2^3端口,按下此键,实现东西方向亮灯时间+5s5.按钮ew-red连接P2^4端口,按下此键,实现东西方向亮灯时间-5s6.蜂鸣器接P2.5口在处理交通意外时,响起警报。蜂鸣器驱动电路上图所示,所以只要P2^5=0,就能控制蜂鸣器响。因为P2的驱动能力不能够驱动蜂鸣器,所以在P2^5口上加三极管,放大输出电流,驱动蜂鸣器。5.3.2软件实现:注意:程序编程的思想是用一个计数器,初始值为交通灯整个循环一个周期的时间time1,东西方向黄灯加绿灯亮的时间为time2,则南北方向黄灯加绿灯亮的时间就为time1-time2;voidkeyscan()//键盘扫描{uchartemp;if(key1==0)//扫描是否按键按下{delay(10);//延时再次检验按键是否按下if(key1==0){TR0=~TR0;//倒计时停止P1=0x1b;//意外按钮按下全显示红灯p25=0;//蜂鸣器响延时0.2s后关掉delay(2000);p25=1;while(!key1);//按键释放for(;key1!=1;)//再次按下时恢复倒计时TR0=~TR0;num++;while(!key1);}}if(key2==0){delay(10);if(key2==0){TR0=~TR0;time1+=5;//sn通行时间加5sif(time1-time260)//总时间减去东西方向的通行时间等于南北方向的通行时间time1=time2+60;通行时间最大为60stemp=time1-time2;Display(temp);显示南北总的通行时间delay(2000);TR0=~TR0;while(!key2);}}}//下面初始时间减少的原理与其类似//六、程序流程图设置中断工作方式、触发方式、初始化按键扫描,是否有按键按下执行按键功能YN执行完毕,返回继续运行开始6.2运行过程process()6.1主程序6.3显示程序Display()获取要显示的数tempTemp/10=shi;temp%10=geTable[shi]=p1或者table[ge]=p1打开段选延时5ms打开位选延时5ms位选送p11进入1返回进入Numtime2+5Numtime2Num0Num5P1=0x1eDisplay(num-time2)P1=0x1dDisplay(num-time2)P1=0xf3Display(num)P1=0xebDisplay(num)返回YYYYNNNN七、总结:通过这次交通灯的课程设计,使我们得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我们在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能得以提高。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼。日后我们将充实自己的知识,尽量更加完善这次课设的内容,争取做出更加合理,实用性更好,更有创新性的东西。八、参考文献;【1】郭天祥;《单片机c语言教程》【2】柴钰.单片机原理和应用[M].西安电子科技大学出版社.【3】胡汉才:《单片机原理及接口技术》,清华大学出版社,2000【4】蔡伟智:《LED道路交通灯的研制》,液晶与显示,【5】张友德:《单片机原理与应用》,复旦大学出版社,2002【6】张大明:《单片机控制实训》,机械工业出版社,2007附:源程序代码;#includereg52.h#defineucharunsignedchar#defineuintunsignedintuchartime1=60,time2=30;ucharnum=60;ucharcount;ucharshi,ge;uchartemp;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};sbitkey1=P2^0;//交通意外控制位sbitkey2=P2^1;//SN通行时间加按钮sbitkey3=P2^2;//SN通行时间减按钮sbitkey4=P2^3;//ew通行时间加按钮sbitkey5=P2^4;//ew通行时间减按钮sbitp25=P2^5;
本文标题:十字路口交通信号灯控制系统-(2)
链接地址:https://www.777doc.com/doc-4570429 .html