51单片机红绿灯课程设计报告书
基于51单片机控制交通灯课程设计报告

基于51单片机控制交通灯课程设计报告本设计课程使用STC89c52型号的芯片及相关元器件自己组装单片机最小系统,并编写程序用于控制交通信号灯。
1.STC89c52的芯片元器件的说明:STC89c52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,STC89c52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能,STC89c52在众多嵌入式控制应用系统中得到广泛应用。
2.STC89c52的功能是:·标准MCS-51内核和指令系统·片内8kROM(可扩充64kB外部存储器)· 32个双向I/O口· 256x8bit内部RAM(可扩充64kB外部存储器)· 3个16位可编程定时/计数器·时钟频率3.5-12/24/33MHz·向上或向下定时计数器·改进型快速编程脉冲算法· 6个中断源· 5.0V工作电压·全双工串行通信口·布尔处理器—帧错误侦测· 4层优先级中断结构—自动地址识别·兼容TTL和CMOS逻辑电平·空闲和掉电节省模式· PDIP(40)和PLCC(44)封装形式3.管脚说明VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
基于51单片机设计的交通灯报告书

报告书干路—支路口交通信号灯控制器项目目的:通过对模拟交通灯控制系统的操作,让我们掌握定时器和中断系统的综合应用,进一步熟练51单片机的应用.项目要求:本项目主要通过感应开关控制交通灯的切换显示,实现主干路与支路车辆的分流。
(1)在正常情况下,主干道交通灯绿灯一直亮着。
(2)当支路检测到有车辆,60秒后,主干道禁止通行,支路放行。
(3)支路放行30 秒后,恢复正常情况。
项目电路如图:按键S1、S2模拟支路的车辆检测,当S1、S2为高电平(不按下按键)时,表示正常情况。
当S1或S2为低电平(按下按键)时,表示支路上有车辆,将S1、S2接到P3.0、P3.1把信号送入到单片机。
程序设计:源程序代码:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar time,second,n,m;sbit k1=P3^0;sbit k2=P3^1;Uchar code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};//数码管显示0~9的段码表void delay(uint t){uchar i;while(t--)for(i=0;i<255;i++);}void shumaguan(uchar s){P2=0xfd;P0=Tab[s/10];delay(1);P2=0xfe;P0=Tab[s%10];delay(1);}void main(){IE=0x82;TMOD=0x01;TH0=(65536-50000)/16;TL0=(65536-50000)%16;while(1){ uchar j;P1=0xde;if(k1==0||k2==0){delay(500);if(k1==0||k2==0){time=40;TR0=1;for(second=60;second>0;)shumaguan(second);TR0=0;P2=0x00;P1=0xf3;delay(3000);for(j=0;j<2;j++){P1=0xfb;delay(200);P1=0xf3;delay(200);}P1=0xeb;delay(500);}}}}void ld() interrupt 1{TR0=0;time--;if(time==0){time=40;second--;if(second==5)P1=0xdf;if(second==4)P1=0xde;if(second==3)P1=0xdf;if(second==2)P1=0xdd;if(second==1)P1=0xdd;}TH0=(65536-50000)/16;TL0=(65536-50000)%16;TR0=1;}项目小结:本项目程序主要包括四部分:主函数、延时函数、数码管显示函数、中断函数。
基于51单片机交通灯工程实践方案报告书

《工程实践》设计方案报告基于单片机的交通灯控制系统设计题目主要研究思路和方法:一,研究方案本项目计划实现的基本目标是:利用单片机作为主要控制系统,模拟出东西方向为主干道十字路口交通灯控制系统。
二,重点解决问题1. 本项目要求可实现可手动设定交通灯亮灭交换所需时长,并且该灯亮时间倒计时用数码管显示。
2. 模拟遭遇突发情况的时候,可手动实现红灯全亮,禁行任何方向的车辆。
3. 由于本项目是模拟东西主干道的十字路口交通灯系统,故要求须包含左转灯,并且可实现右转灯长绿灯。
三. 技术路线1. 本项目由于是单片机作为主控系统,故要求我们熟练掌握单片机编程知识。
2. 本系统由显示电路(包含LED灯倒计时及发光二极管模拟交通灯),单片机主控制电路,按键和电源电路组成,需熟悉自动控制原理。
3. 将紧急情况红灯全亮写成程序编入单片机。
4. 该系统采用+5V直流稳压电源供电工作。
5.显示界面4个路口采用8个共阴极数码管,采用74LS48芯片驱动电路驱动LED晶体管显示部分。
系统原理框图和工作原理:具体:先东西双向直行和左转都是红灯,直行红灯长亮45秒,红灯亮时开始倒计时,剩5秒时开始闪烁(共计红灯亮50秒);接着左转还是红灯,东西双向直行灯长亮绿灯57秒,绿灯亮时倒计时,剩3秒时闪烁(共计绿灯亮60秒,在此期间其余全部红灯);然后5秒黄灯倒计时(不闪烁);然后东西左转绿灯亮时开始倒计时,剩3秒时闪烁(共计13秒),接着黄灯5秒倒计时(不闪烁),直行灯亮红色。
然后东西双向直行与左转又是红灯依次循环(灯亮情况南北直行方向与东西直行方向相反)。
具体对应情况如下主干道亮灭情况及时长:东西 南北左转灯 直行灯 左转灯 直行灯1.红 红(35) 1.红 绿(27)2. 红 绿闪(3)红 黄(5)3.红 红(7) 3.绿(7) 红4.红 红(3) 4.绿闪(3) 红5.红 红(5) 5.黄(5) 红6.红 绿(57) 6.红 红(65)7.红 绿闪(3)8.红 黄(5)9.绿(7) 红 9.红 红(10)10.绿闪(3)红 10.红 红(5)11.黄(5) 红12.红 红(35) 12.红 绿(32)东西方向为主干道;南北为辅干道。
51单片机红绿灯设计报告

1.1 课程设计制作题目及要求
51单片机红绿灯课程设计报告书

51单⽚机红绿灯课程设计报告书1 电源提供⽅案为使模块稳定⼯作,须有可靠电源。
因此考虑了两种电源⽅案:⽅案⼀:采⽤独⽴的稳压电源。
此⽅案的优点是稳定可靠,且有各种成熟电路可供选⽤;缺点是各模块都采⽤独⽴电源,会使系统复杂,且可能影响电路电平。
⽅案⼆:采⽤单⽚机控制模块提供电源。
改⽅案的优点是系统简明扼要,节约成本;缺点是输出功率不⾼。
综上所述,选择⽅案⼆。
2 显⽰界⾯⽅案该系统要求完成倒计时功能。
基于上述原因,我考虑了⼆种⽅案:⽅案⼀:采⽤数码管显⽰。
这种⽅案只显⽰有限的符号和数码字符,简单,⽅便。
⽅案⼆:采⽤点阵式LED 显⽰。
这种⽅案虽然功能强⼤,并可⽅便的显⽰各种英⽂字符,汉字,图形等,但实现复杂,成本较⾼。
综上所述,选择⽅案⼀。
3 输⼊⽅案:设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种⽅案:⽅案⼀:采⽤8155扩展I/O ⼝及键盘,显⽰等。
该⽅案的优点是:使⽤灵活可编程,并且有RAM,及计数器。
若⽤该⽅案,可提供较多I/O ⼝,但操作起来稍显复杂。
⽅案⼆:直接在I/O⼝线上接上按键开关。
由于该系统对于交通灯及数码管的控制,只⽤单⽚机本⾝的I/O ⼝就可实现,且本⾝的计数器及RAM已经够⽤。
综上所述,选择⽅案⼆。
3.1单⽚机交通控制系统的通⾏⽅案设计设在⼗字路⼝,分为东西向和南北向,在任⼀时刻只有⼀个⽅向通⾏,另⼀⽅向禁⾏,持续⼀定时间,经过短暂的过渡时间,将通⾏禁⾏⽅向对换。
其具体状态如下图所⽰。
说明:⿊⾊表⽰亮,⽩⾊表⽰灭。
交通状态从状态1开始变换,直⾄状态6然后循环⾄状态1,周⽽复始,即如图2.1所⽰:图1 交通状态本系统采⽤MSC-51系列单⽚机AT89C51作为中⼼器件来设计交通灯控制器。
实现以下功能:初始东西绿灯亮,南北红灯亮,东西路⼝车通⾏,时隔24s,黄灯闪烁6次。
之后,南北绿灯亮,东西红灯亮,⽅向开始通车,时隔24s,南北黄灯闪烁6次,然后⼜切换成东西⽅向通车,如此重复。
51单片机红绿灯设计报告

51单片机红绿灯设计报告一、设计目的在交通管理中,红绿灯是一种重要的交通设施,能够有效地控制交通流量,保证道路交通的安全和顺畅。
本设计旨在使用51单片机实现一个红绿灯控制系统,通过控制红绿灯的状态来实现交通信号控制。
二、系统设计1.设计原理红绿灯控制系统分为两种模式:定时模式和交通流量感应模式。
在定时模式下,红绿灯会按照预设的时间间隔循环切换;在交通流量感应模式下,通过传感器检测车辆的流量来实现智能控制。
2.硬件设计本设计采用51单片机作为控制核心,配合电路部件包括红绿灯LED 灯、传感器等。
51单片机通过IO口控制LED灯的状态,同时接收传感器信号用于交通流量感应模式。
3.软件设计软件设计主要包含控制程序和交通流量感应算法。
控制程序通过定时器产生中断来实现定时模式下红绿灯的切换;交通流量感应算法通过读取传感器信号来判断是否有车辆通过,进而控制红绿灯的切换。
三、系统实现1.控制程序控制程序主要实现红绿灯状态的切换,包括定时模式和交通流量感应模式的切换逻辑。
在定时模式下,通过定时器中断来实现红绿灯的周期性切换;在交通流量感应模式下,通过传感器信号来判断车辆的流量,并根据流量大小来调整红绿灯的状态。
2.传感器接口传感器接口用于检测车辆的流量,根据传感器的信号来实现对红绿灯状态的控制。
在系统中,传感器可以是红外传感器、光电传感器等,通过检测车辆通过时的信号变化来判断车辆的流量。
3.LED灯控制LED灯控制通过51单片机的IO口来实现,控制红绿灯的状态。
根据控制程序的逻辑,51单片机可以实现红绿灯的亮灭控制,从而实现交通信号的控制。
四、系统优化1.系统稳定性优化为了提高系统的稳定性,在设计中可以加入硬件看门狗等机制来监测系统的运行状态,确保系统正常运行。
2.智能交通流量控制在交通流量感应模式下,可以通过进一步算法优化,实现更加智能的交通流量控制,提高红绿灯的切换效率。
3.软硬件结合优化软硬件结合优化可以进一步提高系统的性能和稳定性,减少系统的延迟,提高交通信号的控制效率。
51单片机红绿灯设计报告

51单片机红绿灯设计报告一、引言红绿灯是城市道路交通管理中非常重要的设备,它能够有效地控制车辆和行人的通行,维护交通秩序,提高交通效率。
本报告将介绍一种基于51单片机的红绿灯设计,利用单片机的强大功能,实现了智能化、自动化的红绿灯控制系统。
二、设计原理1.硬件设计本设计使用了51单片机,通过其IO口控制LED灯的亮灭。
红绿灯的控制通过三个IO口分别连接到红、黄、绿三个LED灯,通过控制这三个IO口的电平,实现红绿灯的切换。
2.软件设计设计中使用了C语言进行程序开发。
程序通过设置IO口的状态和延时函数,控制红绿灯的切换和延时时间。
三、电路设计1.电路图电路图给出了51单片机、LED灯和电流限制电阻之间的连接关系。
单片机的P1口连接到红、黄、绿三个LED灯上,通过改变P1口的电平,控制LED的亮灭。
2.电路元件说明-51单片机:中央处理器,负责控制整个系统的运行和信号的处理。
-LED灯:用于显示红、黄、绿三种不同的状态。
-电流限制电阻:用于限制电流大小,保护51单片机和LED灯。
四、程序设计程序设计中,通过无限循环实现红绿灯系统的连续运行,程序中设置了红绿灯切换的时间间隔和黄灯亮灭的时间间隔。
五、实验结果经过测试,本设计能够正常地实现红绿灯的切换,各种状态都能够正确显示。
红灯亮10秒,黄灯亮3秒,绿灯亮15秒,然后循环重复。
六、总结本设计利用51单片机的强大功能,实现了红绿灯的自动切换。
通过控制IO口的电平和延时函数,能够实现红绿灯的各种状态的切换。
该设计简单、实用、可靠,适用于城市交通管理中的红绿灯设备。
51单片机交通灯设计报告

课程设计说明书课程名称:《单片机技术》设计题目:交通灯设计学院:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2017年4 月20日课程设计任务书交通灯设计摘要:近年来随着科技的发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应该根据具体硬件结构软硬结合,加以完善。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本系统采用51系列单片机ATMEL89C51为核心控制器件来设计交通信号灯控制器,实现亮绿灯通行,亮黄灯闪烁并发声警示,亮红灯禁止通行的功能,并显示通行或禁止通行倒计时,紧急按键信号灯加时和紧急按键南北、东西红绿灯跳变。
本系统使用性强,操作简单,容易实现,扩展功能强,可自行修改程序扩展自己想要实现的功能。
关键词:交通灯,单片机,复位电路目录1. 设计背景 (1)1.1设计原因 (1)1.2个人意义 (1)2.设计方案 (1)2.1总体方案提出 (1)2.2稳压电源方案设计与分析 (1)2.3复位电路方案设计与分析 (2)3. 方案实施 (2)3.1总体设计框图 (2)3.2硬件设计 (3)3.3软件设计 (6)3.4电路仿真 (10)3.5制板子与安装过程 (11)3.6软硬件调试 (11)4. 结果与结论 (12)5 收获与致谢 (12)6. 参考文献 (12)7. 附件 (13)7.1硬件电路图 (13)7.2元器件清单 (14)7.3作品实物图 (15)7.4源程序: (16)1. 设计背景1.1设计原因随着社会的进步,交通的高速发展,红绿灯已经成为了我们生活中不可或缺的一部分,如今,红绿灯已经安装在各个道路的交接口处,已经成为疏导交通车辆最常见和最有效的手段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 电源提供方案为使模块稳定工作,须有可靠电源。
因此考虑了两种电源方案:方案一:采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,选择方案二。
2 显示界面方案该系统要求完成倒计时功能。
基于上述原因,我考虑了二种方案:方案一:采用数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
方案二:采用点阵式LED 显示。
这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。
综上所述,选择方案一。
3 输入方案:设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。
该方案的优点是:使用灵活可编程,并且有RAM,及计数器。
若用该方案,可提供较多I/O 口,但操作起来稍显复杂。
方案二:直接在I/O口线上接上按键开关。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。
综上所述,选择方案二。
3.1单片机交通控制系统的通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。
其具体状态如下图所示。
说明:黑色表示亮,白色表示灭。
交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示:图1 交通状态本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。
实现以下功能:初始东西绿灯亮,南北红灯亮,东西路口车通行,时隔24s,黄灯闪烁6次。
之后,南北绿灯亮,东西红灯亮,方向开始通车,时隔24s,南北黄灯闪烁6次,然后又切换成东西方向通车,如此重复。
当发生交通意外(中断产生)时,全部亮红灯,进行交通事故的处理。
当事故处理完毕(再次按中断键),重新按上述方式工作。
当南北路口的流量大时,可以增加南北路口亮绿灯的时间,当东西路口的流量大时,可以增加东西路口亮绿灯的时间,结束后调回正常状态。
下面我们可以用图表表示灯状态和行止状态的关系如下东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。
状态及红绿灯状态如表1所示。
说明:0表示灭,1表示亮。
3.3单片机智能交通灯控制系统的基本构成及原理单片机设计智能交通灯控制系统,可用单片机直接控制交通信号灯的状态变化,实现倒计时、紧急情况处理与时间调整等功能。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块、LED倒计时模块接受输出。
系统的总体框图如上所示。
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中随时通过键盘调用急停按键和时间调节中断。
交通灯系统硬件设计此设计采用的是AT89C51单片机为部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。
信息职业技术学院毕业设计说明书(论文)第页 5第二章交通灯系统硬件设计此设计采用的是AT89C51单片机为部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。
2.1 系统框架图电路板一块,AT89S51单片机一片,八段LED数码管四个。
发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键开关。
(系统结构框图:图2.1)2.3.1 MSC-51芯片简介MCS-51单片机部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM)8051部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
2.3.2 LED显示数码管八段LED显示器由八个发光二极管组成。
其中7个长条形的发光管排列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。
LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器如图2-2所示;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器3.3 晶体振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。
我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。
附录原程序代码#include<reg51.h>#define uint unsigned int//宏定义#define uchar unsigned char//宏定义uchar aa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;//定义变量sbit NBR=P3^0;//南北红灯sbit NBY=P3^1;//南北黄灯sbit NBG=P3^4;//南北绿灯sbit DXY=P3^5;//东西黄灯sbit DXG=P3^6;//东西绿灯sbit DXR=P3^7;//东西红灯uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数字的代码从0-9//数字的代码从0-9void init();//初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);//显示子程序的申明void delay(uint z);//延时子程序的申明void fenjieNB();//南北数码管显示数字的分解函数void fenjieDX();//东西数码管显示数字的分解函数void main()void init();//初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);//显示子程序的申明void delay(uint z);//延时子程序的申明void fenjieNB();//南北数码管显示数字的分解函数void fenjieDX();//东西数码管显示数字的分解函数void main(){init();//初始化子程序while(1) {if(cc==82)//循环一次结束{ cc=0;//从新进行下一次循环}}void delay(uint z)//带参数的延时函数void delay(uint z)//带参数的延时函数{ uchar x,y;//定义两个变量for(x=z;x>0;x--)//循环延时for(y=110;y>0;y--);//循环延时}void init()//初始化子程序{ EA=1;//开总中断ET0=1;//允许定时器0中断EX0=1;//允许外部中断0中断TR0=1;//启动定时器0TMOD=0x01;//设置定时器0工作方式1TH0=(65536-50000)/256;//给定时器的高8为赋初值TL0=(65536-50000)%256;//给定时器的低8为赋初值}void fenjieNB()//南北数码管显示数字的分解函数{ NBshi=NBtemp/10;//将要显示的时间的十位赋给变量NBge=NBtemp%10;//将要显示的时间的个位赋给变量NBtemp--;}void fenjieDX()//东西数码管显示数字的分解函数{ DXshi=DXtemp/10; DXge=DXtemp%10; DXtemp--;}void displayNB(uchar NBshi,uchar NBge)//带参数的数码管显示函数{//显示南北十位P2=0xfe;P0=table[NBshi];delay(5);//显示南北个位P2=0xfd;P0=table[NBge];delay(15);}void displayDX(uchar DXshi,uchar DXge) {//东西十位P2=0xfb;P1=table[DXshi];delay(5);//东西个位P2=0xf7;P1=table[DXge];delay(5);}void timer0() interrupt 1//定时器0的中断函数{TH0=(65536-50000)/256;//重装计数初值TL0=(65536-50000)%256;//重装计数初值aa++;if(aa==20)//判断定时1分钟是否到{aa=0;//计数次数清0if(cc==0)//南北亮红灯40秒,东西亮黄灯5秒{DXY=0;//东西的黄灯亮DXG=1;//东西的绿灯不亮DXR=1;//东西的红灯不亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮DXtemp=5;//东西的黄灯亮5秒NBtemp=40;//南北的红灯亮40秒}else if(cc==6)//南北继续亮红灯40秒,东西亮绿灯34秒{DXG=0;//东西的绿灯亮DXR=1;//东西的红灯不亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮DXtemp=34;//东西的绿灯亮34秒}else if(cc==41)//南北亮黄灯5秒,东西亮红灯40秒{DXY=1;//东西的黄灯不亮DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=0;//南北的黄灯亮NBG=1;//南北的绿灯不亮NBR=1;//南北的红灯不亮NBtemp=5;//南北的黄灯亮5秒DXtemp=40;//东西的红灯亮40秒}else if(cc==47)//南北亮绿灯34秒,东西继续亮红灯40秒{DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=1;//南北的黄灯不亮NBG=0;//南北的绿灯亮NBR=1;//南北的红灯不亮NBtemp=34;//南北的绿灯亮34秒DXtemp=34;//东西的红灯亮40秒}fenjieNB();//调用南北分解函数fenjieDX();//调用东西分解函数cc++;//判断亮灯的变量自加1}displayNB(NBshi,NBge);//调用NB红灯40秒的显示程序displayDX(DXshi,DXge);//调用DX黄灯5秒的显示程序}void JJZD() interrupt 0 //紧急中断程序,南北东西都亮红灯{DXY=1;//东西的黄灯不亮DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮displayNB(0,0);//南北数码管都显示0 displayDX(0,0);//东西数码管都显示0 cc=0;//重最开始显示}。