基于单片机AT89C51的交通灯控制器的设计.doc
《基于单片机AT89C51的交通灯控制器的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机AT89C51的交通灯控制器的设计.doc(19页珍藏版)》请在咨信网上搜索。
2014届本科生毕业设计分类号:TP368。1 题目:基于单片机AT89C51的交通灯控制器的设计 姓名:张建猛 学号:2010080870 学院:机械与电子工程学院 专业:自动化 指导教师职称:胡波刘明 指导教师职称:助教(硕士) 工程师 2014—05—11 摘 要 本文采用AT89C51单片机芯片为核心控制器件设计的交通灯控制器,该系统主要包括单片机最小系统,按键,数码管显示,交通灯演示系统.系统主要具有有人行道,交通灯的基本功能,倒计时,紧急情况处理,根据具体情况手动控制等功能。通过AT89C51并接数码管和发光二极管来实现交通灯的变化规律,P1口设置红,绿灯点亮时间功能的实现;红绿灯循环点亮,倒计时剩余10秒时黄灯闪烁警示.本系统的研发周期短,可靠性高,实用性,操作简单,维护方便,扩展功能强大。本系统软硬件相结合,通过Proteus软件仿真,基本实现了交通信号灯的模拟。 关键词:AT89C51;数码管;交通灯控制器 ABSTRACT In this paper, AT89C51 chip as the core control device design traffic light controller, the system includes smallest single-chip system, keyboard, digital display, traffic lights demonstration system。 System mainly has a sidewalk, the basic functions of traffic lights, countdown, emergency treatment, according to the specific circumstances of manual control and other functions. And connected via AT89C51 LED digital tube and realized traffic lights change, P1 port settings of red, green lighting time function is implemented; traffic light cycle light, countdown 10 seconds remaining yellow flashing warning. The system development cycle is short, high reliability, practicality, simple operation, easy maintenance, expansion and powerful。 This system combines hardware and software, Through the Proteus Software Simulation,the basic realization of traffic lights simulation。 Keywords: AT89C51; System; Digital pipe; Traffic light controller 目 录 绪 论1 1.整体方案设计2 1。1 方案分析2 1.2 方案确立3 2。系统的硬件设计3 2.1设计原理及方法3 2.2AT89C51单片机最小系统4 2。2。1 复位电路4 2.2。2 时钟电路4 2.2。2 EA脚的功能及接法5 2。3其它硬件模块介绍及连接7 2。3.1 倒计时显示模块7 2。3。2 交通灯显示模块 8 2.3.3 按键控制模块9 2。3。4 电源模块10 3.系统的软件设计10 3.1系统相关参数计算10 3。1。1T0的计数初值10 3.1。2 倒计时显示的理论分析10 3。1.2 交通灯状态显示的理论分析11 3。2系统主程序设计11 4.系统的Proteus软件仿真12 4.1Proteus仿真图12 4.2Proteus仿真的结果分析12 结束语14 参考文献14 致 谢15 附录:程序源代码16 宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计 绪 论 随着人口的迅速增长,道路资源的有限性和交通工具爆炸性的发展,城市交通正面临着严峻考验,因此造成日益严重的交通问题,每天的交通拥堵成了家常便饭但又不得不忍受。在这种情况下,与我国城市道路交通的实际情况相结合,开发出适合我们自身特点的智能信号灯控制系统已成为一个主要的任务.一个好的交通灯控制系统,将给道路拥堵,违章行驶等方面给予技术创新。随着电子技术的发展,采用单片机技术,能够智能管理交通灯,已成为目前广泛使用的方法. 在人类的生活,工作环境中,交通扮演着极其重要的角色,人们的出行与交通时时刻刻打着交道。城市交通控制系统是基于城市交通信号控制技术为主导的发展,与汽车行业的发展并行。在其发展的不同阶段,由于交通出现的各种矛盾,人们总是试图把各个历史阶段的最新科技成果应用到交通自动控制中,从而促进交通自动控制技术不断发展。 早在1850年,城市交叉路口处安全和拥堵问题引起人们的关注,全球第一个自动交通灯诞生,打开城市交通控制的序幕。在1868年,英国工程师娜奕特在伦敦西部威斯敏斯特街口安装一个红色和绿色煤气照明灯,用来控制交叉路口的马车通行,但一次煤气爆炸事故致使交通信号灯消失了近半个世纪. 1914年,美国克利夫兰,纽约和芝加哥重新出现的交通信号灯,他们使用电动驱动,与现在意义的交通信号灯几乎是一样的。随着时代的发展,各种运输方式和交通管制的需要,第一光名副其实的三色灯(红,黄,绿)出生于1918年。它的周围是三色圆形投影机被安装在纽约市五号街一座高塔上,由于它的诞生,城市交通大大改善。 在近一个世纪的发展,道路交通信号控制系统经历了一个手动到自动,从固定到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长期过程。 交通网络是城市的动脉,是一个城市的生活经济水平,工业文明的象征.交通关系到人民对财产,安全和时间相关的利益。凭借优良科学的交通控制技术对资源物流和人们出行是非常有价值的,确保交通安全线的畅通,才能确保舒适的出行,物流按时到位,甚至是生命通道延伸。为了确保安全,高效的交通秩序,除了制定一系列的交通规则,而且还必须通过一定的技术手段来实现。随着单片机和传感器技术的迅速发展,自动检测领域发生了翻天覆地的变化,交通自动检测控制研究已经取得了显着的进步,必将以其优良的性能价格比,逐步取代传统的交通控制措施。 1。整体方案设计 1.1方案分析 交通灯一般设在城市道路的十字路口,可以分为东西方向(主干道)和南北方向(次干道),东西南北四个路口均设有有红绿黄3种灯和1个二位数码显示管.在某一时刻规定只有一个方向可以通行,另一方向被禁行,状态经过一定的过渡时间,将通行方向和禁行方向相互对换.其具体状态如下图所示.(白色表示灭).通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如图1: 图1 交通灯状态图 ·东西方向(主干道)红灯灭,同时绿灯亮,南北方向(次干道)黄灯灭,同时红灯亮,倒计时显示60秒。在此种状态下,东西方向(主干道)允许通行,南北方向(次干道)禁止通行. ·东西方向(主干道)绿灯灭,同时黄灯闪烁,南北方向(次干道)红灯亮,倒计时显示10秒。在此种状态下,除了正在通行中的车辆外,其他所有的车辆都应该等待状态转换。 ·南北方向(次干道)红灯灭,同时绿灯亮,东西方向(主干道)黄灯灭,同时红灯亮,倒计时50秒。在此种状态下,东西方向(主干道)禁止通行,南北向允许通行。 ·南北方向(次干道)绿灯灭,同时黄灯闪烁,东西方向(主干道)红灯亮,倒计时10秒。在此种状态下,除了正在通行中的车辆外,其他所有车辆都应该等待状态转换。 1。2 方案确立 本设计系统以AT89C51单片机为控制核心,连接成最小系统,由倒计时显示模块、交通灯显示模块、按键开关控制模块组成。软件部分使用的是C 语言编程,由软件设置交通灯的初始时间,东西方向(主干道)通行60秒,南北方向(支干道)通行50秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的点亮与熄灭,采用中断方式实现各按键的功能。 2。系统的硬件设计 2。1设计原理及方法 本设计采用模块化的分层次设计方法,以单片机AT 89C 51为控制核心,连接成最小系统,由倒计时显示模块、交通灯显示模块、按键开关控制模块等组成。系统的总体框图如下所示。 图2 交通灯控制器框图 本系统采用AT89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,4个数码管东西南北方向各一个构成倒计时显示模块,通过四个按键K0、K1、K2、K3模拟控制交通灯东西通行,南北通行,返回,紧急情况各个交通灯工作情况之间相互转化。 2.2AT89C51单片机最小系统 单片机最小系统一般有晶振、复位、电源、系统的输入控制、输出显示,以及其他外围模块(如通信、数据采集等)等模块组成。 2。2.1复位电路 单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由手动复位和上电复位两部分组成。 (1)上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。 (2)手动复位:手动复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这表明单片机复位期间不会有任何取指操作。 图3 单片机手动复位电路 2。2。2时钟电路 单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机的一切指令的执行都是建立在单片机晶振提供的时钟频率。单片机晶振的作用是为系统提供基本的时钟信号.单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降. 单片机的时钟电路设计有两种方式,一种是内部时钟方式,一种是外部时钟方式。 在内部时钟方式下单片机内部的高增益、反相放大器通过XTAL1、XTAL2外接作为反馈元件的外部晶体管振荡器与电容组成的并联谐振回路构成一个稳定的自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率.外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片单片机同时工作,以便于各单片机的同步.一般要求外部信号高电平的持续时间大于20μs,且为频率低于12MHz的方波.本设计采用内部时钟方式,单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz、本系统采用11.0592MHz晶振,电容选22pF或30pF均可. 图4 单片机时钟电路 2.2。2EA脚的功能及接法 AT89C51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。由于现在单片机内部的flash容量都很大,因此基本都是从内部的存储器读取程序,即不需要外接ROM来存储程序,因此,EA脚必须接高电平。 图5 单片机最小系统 2。3其它硬件模块介绍及连接 2.3。1倒计时显示模块 系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间。7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点.当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符。本设计采用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。 图6 数码管显示模块 2。3。2交通灯显示模块 本系统利用单片机的P1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管。发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED.发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。 图7 交通灯模块 2。3.3按键控制模块 本系统设置了有4个键:K0键,K1键,K2键,K3键。每个按键一端接地,另一端接上二极管.低电平有效,当按键按下端口接地,单片机捕获到低电平,从而得到相应的输入信息。本系统采用了二极管做开关,是为了防止有一按键被按下3根线同时被低,中断无效。二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。利用二极管的开关特性,可以组成各种逻辑电路。 程序开始运行先东西段通行、南北段禁止60s,后南北段通行、东西段禁止50s,依此循环。系统分三种工作模式:南北通行模式、东西通行模式、返回模式、紧急情况模式,并且通过四个按键K0、K1、K2、K3实现之间的相互转化。 图8 按键控制模块 2.3.4电源模块 单片机工作时需要的+5V电压,所以在设计电源电路时,需要一个电子元件能提供+5V电压,由于78L05能够提供5V电压的三端稳压电源,78L05一脚为电源输入端,二脚为公共接地端,三脚即为我们所需要的+5V电压输出端.本系统采用典型的78L05提供电压的电路,即在78L05的1脚和公共接地端(即2脚)之间接入0.3μF的电容,在公共接地端和三脚+5V电压输出端之间接入0.1μF的电容。 图9 电源模块 3。系统的软件设计 3。1系统相关参数计算 3。1。1T0的计数初值 T0的计数初值:X=216-12*50*1000/12=15536=3CB0H 3。1。2倒计时显示的理论分析 倒计时显示的理论分析:利用定时器中断,设TH0=TH1=(65536—50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0。05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。 3。1.2交通灯状态显示的理论分析 状态灯显示的理论分析:黄灯闪烁同样可以利用定时器中断.每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。 3.2系统主程序设计 本系统采用AT89C51单片机实现交通灯的控制,程序的编写用C语言来完成。系统控制程序可以分为若干模块:初始化程序,按键开关控制程序,交通灯转换控制程序,LED数码管显示程序,按键消抖动程序,延时程序,中断服务子程序等。系统相应的程序流程如图所示。 图10 程序流程图 4.系统的Proteus软件仿真 4.1Proteus仿真图 交通灯控制系统的仿真是通过 proteus 软件实现的交通灯控制系统仿真效果,仿真如下图9所示: 图11 仿真图 4。2Proteus仿真的结果分析 Proteus仿真实现东西方向和南北方向的十字路口的车辆相互交替通过,东西方向(主干道)每次通行时间设置为60秒、南北方向(次干道)通行时间设置为50秒.同时可以实现红灯、黄灯、绿灯各状态之间的相互转换,黄灯闪烁时间设置为10秒,数码管可以准确进行倒计时显示。按下东西放行键K0,东西方向(主干道)绿灯亮,南北方向(次干道)红灯亮;按下南北放行键K1,南北方向(次干道)绿灯亮,东西方向(主干道)红灯亮;无论在任何时候按下返回键K2,该控制系统都将返回到初始状态;若遇紧急情况,按下紧急情况按键K3,东西南北方向都亮红灯,实现主干道和支干道全部禁止通行;模拟了控制交通灯东西方向(主干道)通行,南北方向(次干道)通行,返回,紧急情况各个交通灯工作情况之间相互转化,实现了课程设计的要求。 结束语 通过这次毕业设计,使我受益匪浅。使我在软硬件结合的综合运用能力上有了进一步的提升,对课堂上所学的单片机知识有了进一步的加深和巩固,在C语言的掌握方面也向前迈了一大步,在老师和同学的帮助下,提高了个人分析解决实际问题的综合能力以及协同合作的能力,同时还锻炼了我查阅资料的能力、动手能力、发现问题、解决问题的能力.面对电脑搜索资料,一点点,一块块的电路慢慢拼成完整的电路经过一次次的反复修改终于设计出了属于自己的程序和电路,虽然还有诸多不足之处,不过使自己真正的体会到了探索事物的奥秘的快乐,同时自己也更深入的了解到了单片机的巨大的潜力,虽然有的时候可能遇到了一些困难,但是我最终解决了,我也会感觉到成功给我带来的喜悦,我知道我在专业知识上的掌握还是远远不够的,我还要更加努力的去学习,提高自己了实践能力。 参考文献 [1] 杨素行.模拟电子技术[M].北京:高等教育出版社.2006 [2] 余孟尝.数字电子技术[M].北京:高等教育出版社. 2006 [3] 邱关源,罗先觉.电路[M].北京:高等教育出版社.2011 [4] 张毅刚.单片机原理及应用[M].北京:高等教育出版社.2011 [5] 凌志浩.AT89C52单片机原理与接口技术[M].北京:高等教育出版社.2011 [6] 郭循钊,邝帆.基于单片机的多功能交通灯控制系统设计与仿真实现[J].公路交通技术.2010 [7]刘日华,宋海.基于单片机的交通灯设计[J].科技致富向导.2012 [9]高文庆,吕英英. 基于AT89C51单片机的数字秒表设计[J]. 电脑知识与技术.2012 [10] 谭浩强著,C程序设计 第三版[M].清华大学出版社.2006 [11] 彭虎,周佩玲. 微机原理与接口技术[M].电子工业出版社.2011 [12] GUO Haili.Design of Traffic Light Control System Based on Proteus and Single—chip Computer.Journal of Hengshui University[J].2012 [13] Tang Jing—nan, Qin Shen .Development and Examples of 51 Microcontroller’s C Language [M].Posts & Telecom Press.2008 致谢 本毕业设计在胡波和刘明老师的亲切关怀和悉心指导以及同学们的热心帮助下完成的。感谢他们在此次毕业设计过程中给予我的悉心指导与各方面的帮助,他们给了我许多非常有益的建议和意见,使我在思路上得到了很大的启发,从中认识到了自己存在的不足,并且学到了很多非常宝贵的知识。同时也要感谢系里其它同学和我的朋友在设计中给我提供的帮助和支持。总的来说,这次设计给了我一个很好的锻炼机会,让我学到了很多东西,让我将自己所掌握的理论知识切实运用于工作和生活实践中,这不仅有利于加深对书本知识的理解和巩固,而且在很大程度上提高了我们在理论知识的指导下观察、分析和解决问题的能力。最后,再次向所有帮助过我的老师、同学表示衷心的感谢!谢谢你们! 附录:程序源代码 /*#include〈REG51.H>*/ #include〈AT89X51.H〉 #define uchar unsigned char uchar code duanma[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; uchar code weima[4]={0x0D,0x0E,0x07,0x0B}; uchar code deng[4]={0xDE,0xDD,0xF3,0xEB}; char SN=50,WE=60; char SN_G=50,WE_G=40,Y=10; uchar i,k=0,count=0; void delayms(uchar ms); void light(); void led(); sbit K0=P3^7; sbit K1=P3^6; sbit K2=P3^3; sbit K3=P3^5; /*程序初始化*/ void init(void) { /*12MHz */ TMOD=0x01; TH1=(65536—50000)/256; /*0x3C*/ TL1=(65536—50000)%256; /*0xB0*//*计50000个数,用时50ms*/ IT0=1;/*外部中断0为边沿触发方式*/ ET0=1;/*允许T0中断*/ TR0=1;/*启动计数器*/ EA=1;/*CPU开放总中断*/ EX0=1;/*允许外部中断0中断,即允许响应端口P3^2(K4)中断*/ EX1=1;/*允许外部中断1中断,即允许响应端口P3^3(K2)中断*/ } /*延时ms毫秒*/ void delayms(uchar ms) { uchar i; while(ms--) { for(i=0;i〈200;i++) {} } } /*中断0处理程序*/ void int0(void) interrupt 0 { EA=0;/*CPU禁止响应一切中断*/ P1=0xF6,P0=duanma[0];/*东西南北方向均红灯亮,P0口输出0*/ while(1)/*无条件循环*/ { P2=weima[0],P0=duanma[(SN_G+Y)%10];/*南北方向数码管显示可通行时间的个位*/ delayms(10); /*延时*/ P2=weima[1],P0=duanma[(SN_G+Y)/10];/*南北方向数码管显示可通行时间的十位*/ delayms(10); /*延时*/ P2=weima[2],P0=duanma[(WE_G+Y)%10];/*东西方向数码管显示可通行时间的个位*/ delayms(10); /*延时*/ P2=weima[3],P0=duanma[(WE_G+Y)/10];/*东西方向数码管显示可通行时间的十位*/ delayms(10); /*延时*/ /*设置南北方向通行时间*/ if(K0==0) /*P3^7=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K0==0) { while(K0==0)/*当松开K0开关时,跳出空循环,执行后面的程序*/ { } SN_G++;/*南北方向绿灯时间+1*/ if(SN_G==100) SN_G=0;/*由于使用的是两位数码管,当南北方向绿灯时间加到100后清零*/ } } /*设置东西方向通行时间*/ if(K1==0) /*P3^6=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K1==0) { while(K1==0)/*当松开K1开关时,跳出空循环,执行后面的程序*/ { } WE_G++;/*东西方向绿灯时间+1*/ if(WE_G==100) WE_G=0;/*由于使用的是两位数码管,当东西方向绿灯时间加到100后清零*/ } } /*返回*/ if(K3==0) /*P3^5=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K3==0) { while(K3==0)/*当松开K3开关时,跳出空循环,执行后面的程序*/ { } count=0;/*清零*/ k=0;/*南北方向通车,东西方向不通车*/ SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ EA=1; /*CPU开放总中断*/ break;/*跳出*/ } } } } /*中断1处理程序*/ void int1(void) interrupt 2 { P1=0xF6,P0=duanma[0];/*东西南北方向均红灯亮,P0口输出0*/ EA=0;/*CPU禁止响应一切中断*/ TR0=!TR0;/*计数器停止工作*/ while(1)/*无条件循环*/ {/*数码管扫描程序,*/ P2=weima[0];/*显示南北方向个位*/ delayms(10);/*延时*/ P2=weima[1];/*显示南北方向十位*/ delayms(10);/*延时*/ P2=weima[2];/*显示东西方向个位*/ delayms(10);/*延时*/ P2=weima[3];/*显示东西方向十位*/ delayms(10);/*延时*/ /*返回*/ if(K3==0) /*P3^5=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K3==0) { while(K3==0)/*当松开K3开关时,跳出空循环,执行后面的程序*/ { } EA=1;/*CPU开放总中断*/ TR0=!TR0;/*启动计数器*/ break;/*跳出*/ } } } } /*键盘程序*/ void key() { /*南北有车而东西无车*/ if(K0==0) /*K0=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K0==0) { while(K0==0)/*当松开K0开关时,跳出循环,执行后面的程序*/ { light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } count=0;/*清零*/ k=0;/*南北方向通车,东西方向不通车*/ SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } } /*南北无车而东西有车*/ if(K1==0) /*K1=0*/ { delayms(20);/*延时,把抖动的时间抛掉*/ if(K1==0) { while(K1==0)/*当松开K1开关时,跳出循环,执行后面的程序*/ { light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } count=0;/*清零*/ k=1;/*南北方向不通车,东西方向通车*/ SN=WE_G+Y,WE=WE_G;/*南北方向显示时间为东西方向绿灯通行时间加黄灯闪亮时间,东西方向显示时间为东西方向绿灯通行时间*/ light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } } } /*定时函数*/ void time1(void) interrupt 1 { TH0=0x3c; TL0=0xb0;/*计50000个数,用时50ms*/ count++; /*自增运算*/ if(count〉=20)/*当count大于或等于20时,历时1s,执行程序*/ { SN-—;/*自减运算*/ WE-—;/*自减运算*/ count=0;/*清零*/ if(SN==0||WE==0)/*当SN=0或者WE=0时,执行程序*/ { k++;/*自增运算*/ if(k〉3)/*当k〉3时,执行程序*/ k=0;/*清零*/ switch(k)/*switch语句*/ { case 0:SN=SN_G,WE=SN_G+Y;break;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ case 1:SN=Y,WE=Y;break; /*东西南北方向显示时间均为黄灯闪亮时间*/ case 2:SN=WE_G+Y,WE=WE_G;break;/*南北方向显示时间为东西方向绿灯通行时间加黄灯闪亮时间,东西方向显示时间为东西方向绿灯通行时间*/ case 3:SN=Y,WE=Y;break; /*东西南北方向显示时间均为黄灯闪亮时间*/ } } } } /*交通灯函数*/ void light() { P1=deng[k];/*交通灯对应着k的值变化*/ if(P1==deng[1]&&count==0)/*当南北方向亮黄灯且count=0时,执行程序*/ { TH1=(65536—50000)/256; TL1=(65536—50000)%256;/*延时50ms*/ P1=0xDF;/*南北方向黄灯熄灭,东西方向亮红灯*/ } else if(P1==deng[3]&&count==0)/*当东西方向亮黄灯且count=0时,执行程序*/ { TH1=(65536—300000)/256; TL1=(65536-300000)%256;/*延时50ms*/ P1=0xFB;/*南北方向亮红灯,东西方向黄灯熄灭*/ } } /*数码管函数*/ void led() { P2=weima[0],P0=duanma[SN%10];/*显示南北方向个位*/ delayms(10);/*延时*/ P2=weima[1],P0=duanma[SN/10];/*显示南北方向十位*/ delayms(10);/*延时*/ P2=weima[2],P0=duanma[WE%10];/*显示东西方向个位*/ delayms(10);/*延时*/ P2=weima[3],P0=duanma[WE/10];/*显示东西方向十位*/ delayms(10); /*延时*/ } /*主函数*/ void main(void) { init();/*调用程序初始化函数*/ while(1)/*无条件循环*/ { key();/*调用键盘程序*/ light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } } 15- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 AT89C51 交通灯 控制器 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文