版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片微型计算机与接口技术专周第页题目交通信号灯控制系统班级学号姓名指导老师完成时间`目录一、项目名称 1二、选题背景 12.1课题背景 12.2交通灯的历史 1三、单片机简介 23.1单片机的发展历程 23.2单片机的特点: 33.3AT89C51单片机简介 4四、设计基本要求和步骤 54.1基本要求 54.2设计步骤 6五、硬件和软件设计 65.1硬件电路图 65.2程序流程图 8主程序 1运行过程 1LED显示程序 1T0中断 1INT0中断 15.3P0、P1口显示状态编码表 125.4程序源代码 125.5程序运行效果图 17六、心得体会 19七、参考文献 20一、项目名称十字路口交通信号灯控制系统二、选题背景2.1课题背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。2.2交通灯的历史1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。中国最早的马路红绿灯,是于1928年出现在上海的英租界。三、单片机简介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等串行总线方式,可根据需要进行并行或者串行扩展。3.3AT89C51单片机简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路四、设计基本要求和步骤十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。4.1基本要求本系统需要采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器,实现以下功能:初始东西绿灯亮,南北红灯亮,东西方向通车。延时27s,东西路口绿灯熄灭,黄灯闪烁3次。黄灯闪烁后,东西路口红灯亮同时南北路口绿灯亮,南北方向开始通车。延时27s,南北方向绿灯灭,黄灯闪烁3次,然后又切换成东西方向通车,如此重复。当发生交通意外(中断产生)时,全部亮红灯,进行交通事故的处理。当事故处理完毕(再次按中断键),重新按上述方式工作。当南北路口的流量大时,可以增加南北路口亮绿灯的时间,当东西路口的流量大时,可以增加东西路口亮绿灯的时间,结束后调回正常状态。4.2设计步骤1.利用Proteus7.5SP3仿真软件按下列要求绘制仿真实例用4个共阳极LED数码管的分别表示东、西、南、北四个方向路口,以数码管的上、中、下3个横段分别代表红、黄、绿3盏灯用P0、P1口分别输出控制模拟交通灯的状态显示的数码管和倒计时显示数码管的状态码P3^1、P3^2、P3^4~~~P3^7控制数码管的位选P2^0~~~P2^4接收中断信号并反馈给INT0接口进行中断处理2.按照基本要求编制程序实现相应功能。五、硬件和软件设计5.1硬件电路图硬件电路图通过Proteus7.5SP3仿真之后如图1所示,其中:按钮K0连接P2^0端口实现红灯全亮,处理交通意外按钮K1连接P2^1端口实现南北方向亮灯时间+1s按钮K2连接P2^2端口实现南北方向亮灯时间-1s按钮K3连接P2^3端口实现东西方向亮灯时间+1s按钮K4连接P2^4端口实现东西方向亮灯时间-1s整体连接电路图图1整体连接电路图5.2程序流程图主程序主程序开始设置中断工作方式、触发方式、初始化是否有中断运行过程执行中断YN中断结束,退出中断,返回运行过程运行过程SN:绿灯(27),EW:红灯是否到3秒SN:黄灯亮,EW:红灯Count<10?SN:黄灯灭,EW:红灯是否到0秒NYYNNEW:绿灯(27),SN:红灯是否到3秒EW:黄灯亮,SN:红灯Count<10?EW:黄灯灭,EW:红灯是否到0秒YYYNNNLED显示缓冲区DISPYLED显示程序LED显示程序Display获取当前通行剩余时间送h、lE/S/W/N状态送P0口位选码送P3口倒计时个/十位送P1口调用Delay延时i++;j++四位显示完?YN返回主程序T0中断T0中断定时计数初值50ms计数(count)加1判断1S(count=20?)到否count清0Time_SN--;Time_EW--恢复现场中断返回NYEW1=20中断返回恢复现场Busy_Button==0所有路口全红灯Busy_Button==1SN_Add==0SN1+=1SN1>99NSN1=99YSN_Red==0SN1-=1SN1<20NSN1=20YEW_Add==0EW1+=1EW1>99NEW1=99YEW_Red==0EW1-=1EW1<20NYINT0中断获取中断信息EW1=20中断返回恢复现场Busy_Button==0所有路口全红灯Busy_Button==1SN_Add==0SN1+=1SN1>99NSN1=99YSN_Red==0SN1-=1SN1<20NSN1=20YEW_Add==0EW1+=1EW1>99NEW1=99YEW_Red==0EW1-=1EW1<20NYINT0中断获取中断信息5.3P0、P1口显示状态编码表P0编码备注P0^7P0^6P0^5P0^4P0^3P0^2P0^1P0^0111111100FEH红灯101111110BFH黄灯111101110F7H绿灯P1编码备注P1^7P1^6P1^5P1^4P1^3P1^2P1^1P1^0111100000C0H0111110010F9H1101001000A4H2101100000B0H31001100199H41001001092H51000001082H611111000F8H71000000080H81001000090H95.4程序源代码#defineucharunsignedchar#include<reg51.h>/**************************变量、控制位定义**************************/uchar codetable[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~~9段选码ucharcodetable1[28]={0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFE,0xF7,0xFE,0xF7,0xFE,0xBF,0xFE,0xBF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFE,0xFE,0xFE};/*各种状态下红绿灯段选码,状态(0-3):EW绿灯,SN红灯;状态(4-7):EW黄灯亮,SN红灯;状态(8-11):EW黄灯灭,SN红灯;状态(12-15):EW红灯,SN绿灯;状态(16-19):EW红灯,SN黄灯亮;状态(20-23):EW红灯,SN黄灯灭;状态(24-27):EWSN全红灯*/ucharcodetab[4]={0x1E,0x2D,0x4E,0x8D};//数码管显示位选码uchar EW=30,SN=30,EW1=30,SN1=30;//初始化交通灯时间uchar count;//计时中断次数uchar i,j;//循环控制变量sbit Busy_Button=P2^0;//交通意外控制位sbit SN_Add=P2^1;//SN通行时间加按钮sbit SN_Red=P2^2;//SN通行时间减按钮sbitEW_Add=P2^3;//EW通行时间加按钮sbitEW_Red=P2^4;//EW通行时间减按钮char Time_EW;//EW方向计时char Time_SN;//SN方向计时/**************************延时子程序**************************/voidDelay(uchara)//循环a次{ ucharx; x=a; while(x--){;}}/*************************数码管显示子程序*************************/voidDisplay(ucharj)//j控制显示table中连续位的起始点{ charh,l; if(j<11)//根据状态判定时间 { h=Time_EW/10;//EW通行时间十位 l=Time_EW%10;//EW通行时间个位 } elseif(j<23) { h=Time_SN/10;//SN通行时间十位 l=Time_SN%10;//SN通行时间个位 } for(i=0;i<4;)//按位显示通行状况及时间 { P0=table1[j];//通行状况显示 P3=tab[i];//位选显示 i++; j++; if(i%2)//两位计时显示 { P1=table[l]; Delay(400); } else { P1=table[h]; Delay(400); } } Delay(5);}/***********************INT0外部中断服务程序***********************/voidEXINT0(void)interrupt0//INT0外部中断{ EX0=0;//关中断 if(Busy_Button==0) { P0=0xFE;//意外按钮按下全显示红灯 for(;Busy_Button!=1;)//意外按钮弹起时恢复之前状态 Display(24); } /*四个时间控制按钮分别控制SN、EW方向初始通行时间加减, 最长不超过s,最少不低于s*/ if(SN_Add==0)//SN+1 { SN1+=1; if(SN1>99) SN1=99; } if(SN_Red==0)//SN-1 { SN1-=1; if(SN1<20) SN1=20; } if(EW_Add==0)//EW+1 { EW1+=1; if(EW1>99) EW1=99; } if(EW_Red==0)//EW-1 { EW1-=1; if(EW1<20) EW1=20; } EX0=1;//开中断}/************************TO计时中断服务程序************************/voidtimer0(void)interrupt1using1//T0中断{ TH0=0x3C; TL0=0xB0;//定时计数初值 count++;//中断溢出一次count+1 if(count==20) { Time_EW--; Time_SN--; count=0;//中断次计数s,count回,倒计时时间-1 }}/**************************亮灯控制**************************/voidProcess(){ Time_EW=EW;//初始化东西方向通行时间 while(Time_EW>3)//状态:EW绿灯,SN红灯 { j=0; Display(j);//调用显示函数 } while(Time_EW>0)//状态-3:EW黄灯闪烁 { if(count<10)//状态:EW黄灯亮 { j=4; Display(j); } else//状态:EW黄灯灭 { j=8; Display(j); } } SN=SN1;//重置SN方向时间 Time_SN=SN;//初始化南北方向通行时间 while(Time_SN>3)//状态:EW红灯,SN绿灯 { j=12; Display(j); } while(Time_SN>0)//状态-6:SN黄灯闪烁 { j=16; if(count<10)//状态:SN黄灯亮 { Display(j); } else//状态:SN黄灯灭 { j=20; Display(j);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年襄阳市高三第二次联考物理试卷(含答案解析)
- 小学教学教研组长2026年上半年全科教学提质工作总结
- 电商售后质检专员2026年上半年售后服务质量核查总结
- 2026 年秋季开学 重视体育锻炼 塑造强健身体素质
- 2026年秋季金融学专业开学第一课 学科交叉与创新发展教学设计
- 2026年北师大版小学三年级数学上册《百分数的应用》完整教案
- 新生儿护理急救流程图
- 健康教育教材分析
- 根管治疗标准流程
- LED户外显示屏项目
- 存储器芯片项目商业计划书
- 中心静脉导管相关性血栓栓塞的研究进展
- 《统计学》课程教案
- GB/T 34924-2024低压电气设备安全风险评估和风险降低指南
- 2024年航天科技集团一院18所招聘21人高频考题难、易错点模拟试题(共500题)附带答案详解
- 基药培训会议记录(5篇)
- 新人工影响天气三七高炮
- 感染性疾病课件:新发传染病
- 项目部生产驻地地质灾害应对方案
- GB 18580-2001室内装饰装修材料人造板及其制品中甲醛释放限量
- 蔬菜的贮藏方式与方法课件
评论
0/150
提交评论