




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1目录摘要.3前言.4第一章设计交通管理方案.51.1设计思路.51.2方案介绍.5第二章交通灯硬件设计.62.1主程序模块的设计.62.2功能实现模块的设计.72.3制作单片机最小系统.92.4PCB板的制作.9第三章软件设计.103.1应用系统软件设计要求.103.2程序流程.113.3软件编程设计.12第四章课程设计体会.22第五章参考文献.232摘要近年来随着科技的飞速发展,一个以微电子技术,计算机技术和通信技术为先导的信息革命正在蓬勃发展。单片机作为计算机技术的一个分支,正在不断的应用到实际生活中,同时带动传统控制检测的更新。在实时检测和自动控制的应用系统中,单片机往往作为一个核心部件使用,针对具体应用对象的特点,配以其它器件加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机AT89C51设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1、P3口设置红、绿灯亮时间的功能;红绿灯循环点亮60秒,加3秒绿灯闪烁,再加2秒黄灯闪烁警示。交通灯信号通过P2口输出,显示时间直接通过89C51芯片的P2口输出至二极管。通过89C51芯片P0口控制人行道的通行。本系统实用性强、操作简单、扩展性好。关键字:单片机,交通灯,数码管,二极管3前言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示通行。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇到红灯按一下喇叭,就是红灯变为绿灯,红外线红绿当行人踏上对压力敏感的路面时,他就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。4第一章设计交通管理方案1.1设计思路1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为15秒、支干道每次通行时间为10秒,时间可设置修改。2)在绿灯转为红灯时,黄灯先亮3秒钟,才变换运行车道;3)黄灯亮时,每秒闪亮一次。4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。5)一道有车而另一道无车(实验时用开关K4和K6控制),交通灯控制系统能立即让有车道放行。主干道通行时间还是15秒,支干道通行时间还是10秒。6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K5开关模拟。时间为15秒。7)时间设定,按K3键进行设置正在通行干道的绿灯时间,按K4键增加时间值,按K6键减少时间值,按K3完成设置。51.2方案介绍该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,设计一个采用AT89C51单片机控制的交通灯控制电路。根据设计功能及要求,我们可得系统的原理框图如图所示。图1根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,设计体会与总结。上电复位电路AT89C51数据信号数码管倒计数显示段码调时电路振荡电路片选交通灯LED6第二章交通灯硬件设计2.1主程序模块的设计交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。该交通灯拟系统的硬件部分主要由键盘、显示和运算部分组成。按照题目的设计要求,本课题需要使用LED数码管显示和扩展键盘。在该交通灯系统的设计中采用AT89C51单片机。图272.2功能实现模块的设计功能实现模块主要由中断处理子程序,键盘处理子程序和显示子程序等组成。下面仅对INT0中断服务程序部分进行简单介绍。P3.4与K2连接,K2与地连接。按下K2,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这时可对南北的总时间进行调节。K1与AT89S52的p3.3管脚相连。在按下K2的前提下,按下K1,此时显示的是东西的总时间,并可对其调节。其中中断服务程序流程图下图所示:图3A道亮黄灯,B道亮红灯B道亮绿灯,A道亮红灯A道亮绿灯,B道亮红灯开始延时0.5秒A道亮黄灯,B道亮红灯B道亮黄灯,A道亮红灯紧急车通过A道放行返回YNYNN原道A放行82.3制作单片机最小系统P1.0/T2EX34567RS9xDINWALVCUYp图4C1C2与Y1构成单片机提供工作的时钟信号,R9电解电容C3S1构成单片机的复位系统,R1-R9使起P0实现I/O功能。40脚为单片机提供工作电压端,20脚为单片机接地保护端。2.4PCB板的制作9图5此图为交通灯pcb显示设计图,设定规则如下:信号线宽为0.8mm,焊盘孔径为1mm,焊盘外围孔径为2mm。过孔没做要求。10第三章软件设计3.1应用系统软件设计要求在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。当系统的电路设计定型以后,软件的任务也就明确了。一般来说,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织协调角色。我们设计时,应从以下几个方面考虑:1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。设计出合理的软件总体结构,使其清晰、简捷、流程合理。2)各功能程序实行模块化、子程序化。3)在编写应用软件之前,应绘制出程序流程图。4)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。本设计采用了模块化设计,主要由主程序模块、功能实现模块两大部分模块组成。113.2程序流程置A道放行标志0F0A到放行时间送R4A道有车?A道亮绿灯,B道亮红灯B道有车?YN开始允许/int0中断B道亮黄灯,A道亮红灯延时0.5秒A道亮黄灯,B道亮红灯R1-1=0?A道有车?B到放行时间送R3B道亮绿灯,A道亮红灯延时0.5秒延时0.5秒置B道放行标志0F0延时0.5秒B道有车?R3-1=0?YNYYYN交通灯控制流程图图6123.3软件编程设计根据原理图和老师给的资料,软件编程设计如下所#include#defineucharunsignedchar#defineuintunsignedintucharcodetaba=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6;/数码管的段码。ucharcodetabb=0x09,0x0c,0x24,0x21,0x09,0x09,0x09,0x0c,/状态一0x09,0x0a,0x12,0x11,0x12,0x0a,0x09,0x0a,/状态二0x09,0x0c,0x09,0x0c,0x24,0x21,0x09,0x09,/状态三0x09,0x0a,0x09,0x0a,0x12,0x11,0x12,0x0a,/状态四0x09,0x09,0x09,0x0c,0x09,0x0c,0x24,0x21,/状态五0x12,0x0a,0x09,0x0a,0x09,0x0a,0x12,0x11,/状态六0x24,0x21,0x09,0x09,0x09,0x0c,0x09,0x0c,/状态七0x12,0x11,0x12,0x0a,0x09,0x0a,0x09,0x0a/状态八;/led灯的段码。sbitG1=P30;sbitG2=P31;sbitG3=P32;sbitG4=P33;sbitG5=P34;sbitG6=P35;sbitG7=P36;sbitG8=P37;/LED灯的位控;sbitG9=P07;sbitG10=P06;sbitG11=P05;sbitG12=P04;sbitG13=P03;sbitG14=P02;sbitG15=P01;sbitG16=P00;/数码管的位控;ucharsecond1,second2,second3,second4;uchartcount;ucharsecond1_h,second1_l,second2_h,second2_l,second3_h,second3_l,second4_h,second4_l;uchara;/定义一个全局变量a,显示数码管的数字。13ucharoperation_type=1;/定义显示的状态;voiddelay(uintcount)uchari,j;for(i=0;i0;j-);voidinit()/初始化P3=0X00;P1=0X00;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;/定义50ms的计数。TR0=1;ET0=1;EA=1;second1=0;second2=0;second3=0;second4=0;tcount=0;a=74;voidt0()interrupt1using2tcount+;if(tcount=5)tcount=0;a-;voiddispcomp()switch(operation_type)case1:G9=1;P2=tabaa/10;/北面数码管74delay(4);G9=0;G10=1;P2=tabaa%10;delay(4);G10=0;G11=1;P2=taba(a-50)/10;/西面数码管24delay(4);G11=0;G12=1;P2=taba(a-50)%10;delay(4);G12=0;G13=1;P2=taba(a-50)/10;/南面数码管24delay(4);G13=0;G14=1;P2=taba(a-50)%10;delay(4);G14=0;G15=1;P2=taba(a-25)/10;/东面数码管49delay(4);G15=0;G16=1;P2=taba(a-25)%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb0;delay(4);G1=0;G2=1;P2=tabb1;delay(4);14G2=0;G3=1;/西面led灯;P2=tabb2;delay(4);G3=0;G4=1;P2=tabb3;delay(4);G4=0;G5=1;/南面led灯;P2=tabb4;delay(4);G5=0;G6=1;P2=tabb5;delay(4);G6=0;G7=1;/东面led灯;P2=tabb6;delay(4);G7=0;G8=1;P2=tabb7;delay(4);G8=0;if(a=53)operation_type=2;break;case2:G9=1;P2=tabaa/10;/北面数码管53delay(4);G9=0;G10=1;P2=tabaa%10;delay(4);G10=0;G11=1;P2=taba(a-50)/10;/西面数码管03delay(4);G11=0;G12=1;P2=taba(a-50)%10;delay(4);G12=0;G13=1;P2=taba(a-50)/10;/南面数码管03delay(4);G13=0;G14=1;P2=taba(a-50)%10;delay(4);G14=0;G15=1;P2=taba(a-25)/10;/东面数码管28delay(4);G15=0;G16=1;P2=taba(a-25)%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb8;delay(4);G1=0;G2=1;P2=tabb9;delay(4);G2=0;G3=1;/西面led灯;P2=tabb10;delay(4);G3=0;G4=1;P2=tabb11;delay(4);G4=0;G5=1;/南面led灯;P2=tabb12;15delay(4);G5=0;G6=1;P2=tabb13;delay(4);G6=0;G7=1;/东面led灯;P2=tabb14;delay(4);G7=0;G8=1;P2=tabb15;delay(4);G8=0;if(a=49)operation_type=3;break;case3:G9=1;P2=tabaa/10;/北面数码管49delay(4);G9=0;G10=1;P2=tabaa%10;delay(4);G10=0;G11=1;P2=taba(a+25)/10;/西面数码管74delay(4);G11=0;G12=1;P2=taba(a+25)%10;delay(4);G12=0;G13=1;P2=taba(a-25)/10;/南面数码管24delay(4);G13=0;G14=1;P2=taba(a-25)%10;delay(4);G14=0;G15=1;P2=taba(a-25)/10;/东面数码管24delay(4);G15=0;G16=1;P2=taba(a-25)%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb16;delay(4);G1=0;G2=1;P2=tabb17;delay(4);G2=0;G3=1;/西面led灯;P2=tabb18;delay(4);G3=0;G4=1;P2=tabb19;delay(4);G4=0;G5=1;/南面led灯;P2=tabb20;delay(4);G5=0;G6=1;P2=tabb21;delay(4);G6=0;G7=1;/东面led灯;P2=tabb22;delay(4);G7=0;G8=1;P2=tabb23;delay(4);G8=0;16if(a=27)operation_type=4;break;case4:G9=1;P2=tabaa/10;/北面数码管27delay(4);G9=0;G10=1;P2=taba(a-1)%10;delay(4);G10=0;G11=1;P2=taba(a+25)/10;/西面数码管52delay(4);G11=0;G12=1;P2=taba(a+25)%10;delay(4);G12=0;G13=1;P2=taba(a-25)/10;/南面数码管02delay(4);G13=0;G14=1;P2=taba(a-25)%10;delay(4);G14=0;G15=1;P2=taba(a-25)/10;/东面数码管02delay(4);G15=0;G16=1;P2=taba(a-25)%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb24;delay(4);G1=0;G2=1;P2=tabb25;delay(4);G2=0;G3=1;/西面led灯;P2=tabb26;delay(4);G3=0;G4=1;P2=tabb27;delay(4);G4=0;G5=1;/南面led灯;P2=tabb28;delay(4);G5=0;G6=1;P2=tabb29;delay(4);G6=0;G7=1;/东面led灯;P2=tabb30;delay(4);G7=0;G8=1;P2=tabb31;delay(4);G8=0;if(a=24)operation_type=5;break;case5:G9=1;P2=tabaa/10;/北面数码管24delay(4);G9=0;G10=1;P2=tabaa%10;delay(4);G10=0;17G11=1;P2=taba(a+25)/10;/西面数码管49delay(4);G11=0;G12=1;P2=taba(a+25)%10;delay(4);G12=0;G13=1;P2=taba(a+50)/10;/南面数码管74delay(4);G13=0;G14=1;P2=taba(a+50)%10;delay(4);G14=0;G15=1;P2=tabaa/10;/东面数码管24delay(4);G15=0;G16=1;P2=tabaa%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb32;delay(4);G1=0;G2=1;P2=tabb33;delay(4);G2=0;G3=1;/西面led灯;P2=tabb34;delay(4);G3=0;G4=1;P2=tabb35;delay(4);G4=0;G5=1;/南面led灯;P2=tabb36;delay(4);G5=0;G6=1;P2=tabb37;delay(4);G6=0;G7=1;/东面led灯;P2=tabb38;delay(4);G7=0;G8=1;P2=tabb39;delay(4);G8=0;if(a=2)operation_type=6;break;case6:G9=1;P2=tabaa/10;/北面数码管02delay(4);G9=0;G10=1;P2=tabaa%10;delay(4);G10=0;G11=1;P2=taba(a+25)/10;/西面数码管27delay(4);G11=0;G12=1;P2=taba(a+25)%10;delay(4);G12=0;G13=1;P2=taba(a+50)/10;/南面数码管52delay(4);G13=0;G14=1;18P2=taba(a+50)%10;delay(4);G14=0;G15=1;P2=tabaa/10;/东面数码管02delay(4);G15=0;G16=1;P2=tabaa%10;delay(4);G16=0;G1=1;/北面led灯;P2=tabb40;delay(4);G1=0;G2=1;P2=tabb41;delay(4);G2=0;G3=1;/西面led灯;P2=tabb42;delay(4);G3=0;G4=1;P2=tabb43;delay(4);G4=0;G5=1;/南面led灯;P2=tabb44;delay(4);G5=0;G6=1;P2=tabb45;delay(4);G6=0;G7=1;/东面led灯;P2=tabb46;delay(4);G7=0;G8=1;P2=tabb47;delay(4);G8=0;if(a=0)operation_type=7;a=74;break;case7:G9=1;P2=taba(a-50)/10;/北面数码管24delay(4);G9=0;G10=1;P2=taba(a-50)%10;delay(4);G10=0;G11=1;P2=taba(a-50)/10;/西面数码管24delay(4);G11=0;G12=1;P2=taba(a-50)%10;delay(4);G12=0;G13=1;P2=taba(a-25)/10;/南面数码管49delay(4);G13=0;G14=1;P2=taba(a-25)%10;delay(4);G14=0;G15=1;P2=tabaa/10;/东面数码管74delay(4);G15=0;G16=1;P2=tabaa%10;delay(4);19G16=0;G1=1;/北面led灯;P2=tabb48;delay(4);G1=0;G2=1;P2=tabb49;delay(4);G2=0;G3=1;/西面led灯;P2=tabb50;delay(4);G3=0;G4=1;P2=tabb51;delay(4);G4=0;G5=1;/南面led灯;P2=tabb52;delay(4);G5=0;G6=1;P2=tabb53;delay(4);G6=0;G7=1;/东面led灯;P2=tabb54;delay(4);G7=0;G8=1;P2=tabb55;delay(4);G8=0;if(a=52)20operation_type=8;break;case8:G9=1;P2=taba(a-50)/10;/北面数码管02delay(4);G9=0;G10=1;P2=taba(a-50)%10;delay(4);G10=0;G11=1;P2=taba(a-50)/10;/西面数码管02delay(4);G11=0;G12=1;P2=taba(a-50)%10;delay(4);G12=0;G13=1;P2=taba(a-25)/10;/南面数码管27delay(4);G13=0;G14=1;P2=taba(a-25)%10;delay(4);G14=0;G15=1;P2=tabaa/10;/东面数码管52delay(4);G15=0;G16=1;21P2=tabaa%10;delay(4);G16=0;G1=1;/北面led灯;P2=tab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一汉服活动方案
- 六一活动健步走活动方案
- 六一活动吹水球活动方案
- 六一活动延伸活动方案
- 六一活动赛龙舟活动方案
- 六一活动预热活动方案
- 六一游园互动活动方案
- 六一环保活动方案
- 六一端午社区活动方案
- 六一补发活动方案
- 玉溪市2025年事业单位公开招聘工作人员笔试历年典型考题及考点剖析附带答案详解
- 测绘类技术设计管理制度
- 中医艾灸盒课件下载
- 做账实操-医美公司的全盘账务处理怎么做
- 河南省TOP二十名校2024-2025学年高一下学期5月调研考试化学(A卷)试卷(图片版含答案)
- 安徽省合肥八中2025届高三最后一卷生物试题及答案
- 维持阻塞型D触发器逻辑功能分析32课件
- 2025-2030中国激光喷码机行业市场发展分析及发展趋势与投资前景研究报告
- 浙江省温州市名校2025届七下数学期末考试试题含解析
- 2024-2025学年上课趣味互动《太乙惩罚》课件
- 公司合同月结协议书
评论
0/150
提交评论