单片机交通灯控制-电子元器件调研与系统设计报告.doc_第1页
单片机交通灯控制-电子元器件调研与系统设计报告.doc_第2页
单片机交通灯控制-电子元器件调研与系统设计报告.doc_第3页
单片机交通灯控制-电子元器件调研与系统设计报告.doc_第4页
单片机交通灯控制-电子元器件调研与系统设计报告.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新能源与动力工程学院电子元器件调研与系统设计报告交通信号灯的制作 专业电力工程与管理 班级电力1201班 姓名 学号 指导教师陆兴旺 2015年 12 月 指导教师评语及成绩评定表指导教师评语成绩实习过程(40)实习报告(50)平时成绩(10)总成绩(100)指导教师签字: 年 月 日兰州交通大学新能源与动力工程学院课程设计任务书课程名称: 电子元器件调研与系统设计报告 指导教师(签名): 班级: 姓名: 学号: 201211352 一、课程设计题目 交通信号灯的制作2、 课程设计设计技术要求: (1)用单片机stc89C51 设计一个交通灯系统,并用数码管显示时间,LED指示通行。 (2)用protel 99se设计电路图,pcb图等 (3)数码管用三极管驱动。三、课程设计的目的 通过课程设计,主要达到以下目的:1使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等; 3使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设 计和实现单片机应用系统打下良好基础。四、课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。按键可以控制禁行、复位、东西通行、南北通行、时间加、时间减、切换等功能。五、工作进度安排 1.熟悉题目、查阅资料,拟定设计方案按要求制定出切实可行的方案 2.设计硬件电路及软件程序完成硬件设计及程序设计 3.仿真调试及产品焊接先进行计算机仿真再完成实际焊接 4.产品整理调试并完成设计报告实现设计要求,报告按要求装订成册 5.答辩展示产品,并简明扼要自述五分钟六、主要参考文献l边海龙,孙永奎. 单片机开发与典型工程项目实例详解J.电子工业出版社,2008(10). 2王为青,邱文勋. 51单片机开发案例精选J.人民邮电出版社,2001.3张鑫,华臻,陈书谦. 单片机原理及应用J.电子工业出版社,2008 审核批准意见系主任(签字) 年月日 目录一、系统方案设计与要求11.1单片机交通灯控制系统通行方案设计11.2单片机交通控制系统的功能要求21.2.1显示模块功能21.2.2 按键模块功能21.3单片机交通控制系统的基本构成及原理2二、系统硬件电路的设计32.1系统硬件总电路构成32.2单片机最小系统32.3显示系统42.3.1 LED显示42.3.2数码管显示42.4键盘输入电路5三、系统软件程序的设计53.1程序主体设计流程53.2子程序模块设计6四、小结8五、参考文献9附录A10附录B11附录C12一、系统方案设计与要求1.1单片机交通灯控制系统通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图1-1所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状1,周而复始,即如图(图2-1)所示:直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:图1-1交通状态东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行;东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换;南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行;南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。下面我们可以用图表表示灯状态和行止状态的关系如下:表1-1交通状态及红绿灯状态状态1状态3状态4状态6东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个路口均有红绿黄3灯和数码显示管4个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表2-1所示。说明:0表示灭,1表示亮。1.2单片机交通控制系统的功能要求本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。按键可以控制禁行、复位、东西通行、南北通行、时间加、时间减、切换等功能。1.2.1显示模块功能显示模块分数码管显示和LED显示,数码管倒计时显示可以提醒驾驶员在信号灯颜色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的一种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。通过两种显示结合,是本设计更合理可靠。1.2.2 按键模块功能本系统要求的按键控制不多,且I0口足够,可直接采用独立式。按键可以设置系统的运行状态,禁行状态为数码管均显示“00”,红灯全亮;复位按键可以将整个系统复位;东西通行是东西方向的绿灯亮,南北方向上的红灯亮;南北通行为南北方向上的绿灯亮,东西方向上的红灯亮;时间加减可以设置通行和等待通行的时间;切换按键可以切换加减的方向时间。通过安检模块的控制,使得整个系统具有灵活性,实用性。1.3单片机交通控制系统的基本构成及原理十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用STC89C52单片机以及单片机最小系统和三极管驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单、扩展功能强。在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时, 使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。本单片机控制交通灯系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,单片机对此进行具体处理,及时调整控制指挥。如图(图2-2)所示:键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。 单片机 红黄绿信号灯8段LED数码管复位电路最小系统外围接口按键控制驱动显示图1-2 系统的总体框图据此,本设计系统以单片机为控制核心,连接成最小系统,和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和接受输出。系统的总体框图如上所示。二、系统硬件电路的设计2.1系统硬件总电路构成实现本设计要求的具体功能,可以选用stc89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和模式选择按钮和紧急按钮等。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、按键等组成。其具体的硬件电路总图如图3-1所示。其中P0,P1,用于送显LED数码管的型和位,P2用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3用于口按键控制。2.2单片机最小系统STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。最小系统图如图2-1所示 图2-1 单片机最小系统原理图2.3显示系统2.3.1 LED显示LED交通灯利用发光二极管来显示不同颜色的信号指示灯。图2-2 LED灯2.3.2数码管显示数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛。图2-3 数码管显示2.4键盘输入电路单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般10200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10200 毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。硬件电路如图2-4所示:图2-4 键盘控制电路图三、系统软件程序的设计3.1程序主体设计流程全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图(图3-1)所示。 图3-1系统总的流程图3.2子程序模块设计按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。 图3-2中断子程序定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图3-2所示。 图3-3 定时中断流程图定时中断服务程序在系统中的函数如下:void int_t0( ) interrupt 1 using 1 TR0 = 0; time+; tc+; if(tc=3) tc=0; if(time=100) waittime-; else if(time=200) waittime-; sec-; time=0;shu0=sec%10; shu1 =sec/10; TH0 = 0xee; TL0 = 0x00; if(tc=0) smdis=mdshu0; weishuang0 = 0; weishuang1 = 1; weishuang2 = 1; else if(tc=1) smdis=mdshu1; weishuang0 = 1; weishuang1 = 0; weishuang2 = 1; else if(tc=2) smdis=mdshu2; weishuang0 = 1; weishuang1 = 1; weishuang2 = 0; /if(tc=3) tc=0; TR0 = 1; 我们由在主程序中设定的初值可知0定时毫秒这样每当0到5毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器加,然后判断它是否为200。为零表示秒已到可以返回到输出时间显示程序。并使计数器变量清0.四、小结经过这次课程设计,我觉得自己学到了不少东西。归纳起来,主要有以下几点:(1)通过这次课程业设计,我能将以前所学到的专业知识与实践相联系,将所学到的知识充分运用到本次设计中。同时,我也认识到自己知识上不足的地方,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。(2)进一步熟悉了单片机的知识。通过本次设计,我对单片机的基本原理、内部结构、各引脚功能、定时器和中断的应用都有了更深刻的理解。并且,能够以单片机为基础元件设计一个简单的系统。(3)通过本次设计,熟悉了设计一个项目所必经的几个阶段。本次设计从理论研究到硬件原理图设计,从元器件的选择到板的制作,从软件编程到最后的调试过程都由小组独立完成。这不仅锻炼了我们独立完成设计工作的能力,更重要的是了解了一个电子产品的设计流程,为将来投入工作增加了宝贵的经验,奠定了坚实的基础。(4)提高了自己查找资料的能力。在设计过程中,我碰到了一些暂时无法解决的问题,于是我通过上网查阅和图书馆借阅资料,或是通过与老师同学交流一步步地解决了。从中我懂得了我们这个专业的知识面相当广泛,我们需要不断通过各种途径更新自己的知识,不断充实自己,同时要懂得与他人交流意见,积极听取别人的建议,懂得不断学习的重要性。五、参考文献l边海龙, 孙永奎. 单片机开发与典型工程项目实例详解J. 电子工业出版社,2008. 2王为青,邱文勋. 51单片机开发案例精选J.人民邮电出版社,2001.3张鑫,华臻,陈书谦. 单片机原理及应用J.电子工业出版社,2008.4张洪润,张亚凡. 单片机原理及应用J. 清华大学出版社,2005,(4).5黄智伟 .凌阳单片机课程设计指导J. 北京航空航天大学出版社,2007.6蒋辉平,周国雄. 基于Proteus的单片机系统设计与仿真实例M.机械工业出版社.2009.附录A元件名称数量(个)元件名称数量9*15万用板1个0.36寸两位一体共阴数码管4个STC89C511个发光二极管 红 绿 黄各4个40P IC座1个DC座1个12M晶振1个按键5个30P瓷片电容2个自锁开关1个10k电阻1个导线若干102排阻2个USB电源线1根10uF电容1焊锡若干附录B实物显示图附录C#include /头文件#define uchar unsigned char#define uint unsigned int/宏定义uchar data buf4;/秒显示的变量uchar data sec_dx=20; /东西数默认uchar data sec_nb=30;/南北默认值uchar data set_timedx=20;/设置东西方向的时间uchar data set_timenb=30;/设置南北方向的时间int n;uchar data countt0,countt1;/定时器0中断次数/定义6组开关sbit k4=P37; /设置时间sbit k3=P36;/时间减sbit k2=P35;/时间加sbit k1=P34;/切换紧急和夜间sbit Red_nb=P26;/南北红灯标志sbit Yellow_nb=P25;/南北黄灯标志sbit Green_nb=P24; /南北绿灯标志sbit Red_dx=P23;/东西红灯标志sbit Yellow_dx=P22;/东西黄灯标志sbit Green_dx=P21;/东西绿灯标志uchar set=0;/调时方向切换键标志 =1时,南北,=0时,东西uchar mode=0;bit dx_nb=0;/东西南北控制位bit shanruo=0;/闪烁标志位bit yejian=0;/夜间黄灯闪烁标志位uchar code table11=/共阴极字型码0x3f, /-00x06, /-10x5b, /-20x4f, /-30x66, /-40x6d, /-50x7d, /-60x07, /-70x7f, /-80x6f, /-90x00 /-NULL;/函数的声明部分void delay(int ms);/延时子程序void key();/按键扫描子程序void key_to1();/键处理子程序void key_to2();void key_to3();void display();/显示子程序void logo(); /开机LOGOvoid Buzzer();/主程序void main()TMOD=0X11; /定时器设置TH1=0X3C;TL1=0XB0;TH0=0X3C;/定时器0置初值 0.05STL0=0XB0;EA=1;/开总中断ET0=1;/定时器0中断开启ET1=1; /定时器1中断开启TR0=1;/启动定时0TR1=0; /关闭定时1EX0=1;/开外部中断0EX1=1;/开外部中断1 logo();/开机初始化P2=0Xc3;/ 开始默认状态,东西绿灯,南北黄灯 sec_nb=sec_dx+5; /默认南北通行时间比东西多5秒while(1) /主循环 key(); /调用按键扫描程序display(); /调用显示程序/函数的定义部分void key(void)/按键扫描子程序 /*if(k1!=1)/当K1(时间加)按下时display(); /调用显示,用于延时消抖if(k1!=1)/如果确定按下 TR0=0; /关定时器shanruo=0;/闪烁标志位关P2=0x00;/灭显示TR1=0;/启动定时1if(set=0)/设置键按下set_timedx+; /南北加1Selseset_timenb+; /东西加1Sif(set_timenb=100)set_timenb=1;if(set_timedx=100)set_timedx=1; /加到100置1sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx; do display(); /调用显示,用于延时while(k1!=1); /等待按键释放if(k2!=1)/当K2(时间减)按键按下时display(); /调用显示,用于延时消抖 if(k2!=1)/如果确定按下 TR0=0; /关定时器0shanruo=0;/闪烁标志位关P2=0x00;/灭显示TR1=0;/关定时器1if(set=0)set_timedx-; /南北减1Selseset_timenb-; /东西减1Sif(set_timenb=0)set_timenb=99;if(set_timedx=0 )set_timedx=99; /减到1重置99sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx; do display(); /调用显示,用于延时while(k2!=1); /等待按键释放if(k3!=1)/当K3(确认)键按下时display(); /调用显示,用于延时消抖if(k3!=1)/如果确定按下TR0=1; /启动定时器0sec_nb=set_timenb;/从中断回复,仍显示设置过的数值sec_dx=set_timedx;/显示设置过的时间TR1=0;/关定时器1if(set=0)/时间倒时到0时 P2=0X00; /灭显示Green_dx=1;/东西绿灯亮Red_nb=1;/南北红灯亮sec_nb=sec_dx+5; /回到初值else P2=0x00;/南北绿灯,东西红灯Green_nb=1;Red_dx=1;sec_dx=sec_nb+5; if(k4!=1)/当K4(切换)键按下 display(); /调用显示,用于延时消抖if(k4!=1)/如果确定按下 TR0=0;/关定时器0set=!set;/取反set标志位,以切换调节方向TR1=0;/关定时器1dx_nb=set;dodisplay(); /调用显示,用于延时while(k4!=1); /等待按键释放if(k5!=1)/当K5(禁止)键按下时 display(); /调用显示,用于延时消抖 if(k5!=1)/如果确定按下 TR0=0;/关定时器P2=0x00;/灭显示Red_dx=1;Red_nb=1;/全部置红灯TR1=0;sec_dx=00;/四个方向的时间都为00sec_nb=00;dodisplay(); /调用显示,用于延时while(k5!=1);/等待按键释放 if(k6!=1)/当K6(夜间模式)按下 display(); /调用显示,用于延时消抖 if(k6!=1)/如果确定按下 TR0=0;/关定时器P2=0x00;TR1=1;sec_dx=00;/四个方向的时间都为00sec_nb=00;dodisplay(); /调用显示,用于延时while(k6!=1);/等待按键释放 */if(k2!=1&set!=0)/当K1(时间加)按下时display(); /调用显示,用于延时消抖if(k2!=1&set!=0)/如果确定按下 TR0=0; /关定时器shanruo=0;/闪烁标志位关P2=0x00;/灭显示TR1=0;/启动定时1if(set=1)/设置键按下set_timedx+; /南北加1Selse if(set=2)set_timenb+; /东西加1Sif(set_timenb=100)set_timenb=1;if(set_timedx=100)set_timedx=1; /加到100置1sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx; do display(); /调用显示,用于延时while(k2!=1); /等待按键释放if(k3!=1&set!=0)/当K2(时间减)按键按下时display(); /调用显示,用于延时消抖 if(k3!=1&set!=0)/如果确定按下 TR0=0; /关定时器0shanruo=0;/闪烁标志位关P2=0x00;/灭显示TR1=0;/关定时器1if(set=1)set_timedx-; /南北减1Selse if(set=2)set_timenb-; /东西减1Sif(set_timenb=0)set_timenb=99;if(set_timedx=0 )set_timedx=99; /减到1重置99sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx; do display(); /调用显示,用于延时while(k3!=1); /等待按键释放if(k4!=1&mode=0)/当K3(确认)键按下时display(); /调用显示,用于延时消抖if(k4!=1)/如果确定按下TR0=0; /启动定时器0P2=0x00;/灭显示sec_nb=set_timenb;/从中断回复,仍显示设置过的数值sec_dx=set_timedx;/显示设置过的时间TR1=0;/关定时器1set+;if(set2)set=0;TR0=1; /启动定时器0sec_nb=set_timenb;/从中断回复,仍显示设置过的数值sec_dx=set_timedx;/显示设置过的时间TR1=0;/关定时器1P2=0Xc3;sec_nb=sec_dx+5;do display(); /调用显示,用于延时while(k4!=1);if(k1!=1&set=0)/当K5(禁止)键按下时 display(); /调用显示,用于延时消抖 if(k1!=1)/如果确定按下 mode+;if(mode=1)TR0=0;/关定时器P2=0x00;/灭显示Red_dx=1;Red_nb=1;/全部置红灯TR1=0;sec_dx=00;/四个方向的时间都为00sec_nb=00;else if(mode=2)TR0=0;/关定时器P2=0x00;TR1=1;sec_dx=00;/四个方向的时间都为00sec_nb=00; if(mode2)mode=0;TR0=1; /启动定时器0sec_nb=set_timenb;/从中断回复,仍显示设置过的数值sec_dx=set_timedx;/显示设置过的时间TR1=0;P2=0Xc3;sec_nb=sec_dx+5;/关定时器1dodisplay(); /调用显示,用于延时while(k1!=1);/等待按键释放 void display(void) /显示子程序buf1=sec_nb/10; /第1位 东西秒十位buf2=sec_nb%10; /第2位 东西秒个位buf3=sec_dx/10; /第3位 南北秒十位buf0=sec_dx%10; /第4位 南北秒个位P1=0xff; / 初始灯为灭的P0=0x00; /灭显示P1=0xfe; /片选LED1P0=tablebuf1;/送东西时间十位的数码管编码delay(1);/延时P1=0xff;/关显示P0=0x00;/灭显示 P1=0xfd; /片选LED2P0=tablebuf2; /送东西时间个位的数码管编码delay(1); /延时P1=0xff;/关显示P0=0x00;/关显示P1=0Xfb; /片选LED3P0=tablebuf3;/送南北时间十位的数码管编码delay(1);/延时P1=0xff; /关显示P0=0x00; /关显示P1=0Xf7; /片选LED4P0=tablebuf0;/送南北时间个位的数码管编码delay(1);/延时void time0(void) interrupt 1 using 1 /定时中断子程序TH0=0X3C;/重赋初值TL0=0XB0;/12m晶振50ms/重赋初值TR0=1;/重新启动定时器countt0+;/软件计数加1if(countt0=10)/加到10也就是半秒if(sec_nb=5)&(dx_nb=0)&(shanruo=1) /东西黄灯闪 Green_dx=0;Yellow_dx=0; if(sec_dx=5)&(dx_nb=1)&(shanruo=1) /南北黄灯闪 Green_nb=0;Yellow_nb=0;if(countt0=20) / 定时器中断次数=20时(即1秒时)countt0=0;/清零计数器sec_dx-;/东西时间减1sec_nb-;/南北时间减1if(sec_nb=5)&(dx_nb=0)&(shanruo=1) /东西黄灯闪 Green_dx=0;Yellow_dx=1; if(sec_dx=5)&(dx_nb=1)&(shanruo=1) /南北黄灯闪 Green_nb=0;Yello

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论