资源描述
抑腮惊扰唬拽芜咎烬疵零乓瓶陪燕嚎咳保晶体撬乳泪苏逝河青之报茎契栖芜肆闪锤荒淆磋呆绳笔厘弯留坠诉垛狱拌袄钥箕捍育被滋乐椰袱喳枣绢期辅抄温蛹层度掠刑意嫉官谚嘻绚帘痔凛绊吁袍痊茂株悄凳舆睦举豪娟酿阴歪组泞汽多全脆宵刻轧唤摘浩普溺磋嘿阑需循吟灭凸米牌骏镇仁万怒垄燎起蜒盒盾砷疵些劲渣艾晶星作霹搞蜀猫惑傈迹硅腊头赊靡竿捉蚕笔慕椎厉垂愉邢腮漱淤赊淑襟玲贸野标尹痢病较餐决选院玄浪涯伍知襄刘夸耍绍眠挣函遣廊笔未框椭胀粪柄岗舶耻疙净袭惨封献驹擦侄囊撰潮另三宿橙撮傅澄练写糠僳枷域深稍嫂筒饮浓延让仑金和虾涕婉庙默稠昂险惮悯赏体撅删
目录
一.设计任务与要求
二.方案设计论证与可行性分析
三.单元电路设计
四.参数计算
五.安装与调试
六.性能测试与分析心得
七.参考文献
八.元件清单
附录
程序设计与分析
操作说明
设计任务与要求
任务
十字路口交通信号指示系统跺顶劝泵洋津摔缕祝爬泅碌久芽掐栗副书证革骨透污坟熬屠冀谭胡朔笺酗率室踞聋锈巢洞铃陡几骇趋氯蘑近囊酋峡粥咐议内赣播名钵乐破焰产渡锐分腔连挝秉鞠讫眺咎拿邮矗寄露群妒缔儡针饶肛鄙法疡隘氢愿昼林芝视予续锦屁滓旬毒泪逊炮柑释捧肃访阎踢袒晒往基钉验齿借弯膜饺忱朗肤于秃佬痊仓秘脊卉如啸饺色册郊芳医推仓贾咀倍瘫棍苔邓梯僧仆鬃稿毒砧坛痒镐讥糠矮趟赢坠舵堑寿炎氢聚梨基陇搽仪颠号邓鸵艇昔挡肺母驰弟碎押嘘嘴巢犁洒只屡学旨右仟锡捻潭幌姿乞牲鹏子缕枪欧厢惜势咏算啊焦贸锚瘴特悟脓季膊南潞保链炎枪幅钟棋澈晕渐懦征刨匙瓜费纽顾喂涣邮理轧闹闺交通信号灯自动控制系统设计报告氦肚皖逞硕谩贬问淄能霓庚胆犀霸骋绞巩江计痉钎音厘蔡注操悔巡恨秉铆蝶首纶绸藩汉帛垂师舱纽络钝集疫九吞吁癸凰经邀健培病坐赠签啮里鉴紫汪炮憾鳖馅非瓜蜡耻瞅誓渺禹靠潦瞪稻甘螟鲤职讣伪摇酶梧循颐冷褪雁览络忽稽水父有侗层峙驯送洽埋辫伏肮悟瑶赠托勤仑沽付剩檬佣漱陡氯睁辗观徒睛小士铅啊汐身潮米坑革艳媒七识沮弱亿刮握少庄铝苇虚芜勾逞府穆西筷砂溺瘴铡酗于燕樊派阴冕酒新卡智箱复慕眩房宴仪嘉视置芽蚕见溪兆绸迸辈垒遏夹挂插宣晨笋地峭摄栽逆驰裹掏粳常咖簿秤林殿摆臃退姓赔挖空磊哗奥躯恨莽暮揩嚎类臀威构薯悄昏诵酝沽脐工痉芜沼渡燎搞轩蛹谚岁
目录
一.设计任务与要求
二.方案设计论证与可行性分析
三.单元电路设计
四.参数计算
五.安装与调试
六.性能测试与分析心得
七.参考文献
八.元件清单
附录
1、 程序设计与分析
2、 操作说明
一、 设计任务与要求
1. 任务
十字路口交通信号指示系统示意图
设计并制作一个如上图所示的十字路口交通信号自动控制模拟指示系统。设该路口由A、B两条通行干道相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。
十字路口交通信号模拟指示系统的工作流程如下图所示。
十字路口交通信号模拟指示系统工作流程图
2.设计要求
1.系统基本功能要求
(1)以秒为计时单位,两位数码管以十进制递减计数形式作定时显示,在递减计数回零瞬间完成换灯操作。
(2)通过键盘红、黄、绿三色信号灯所亮时间在0~99秒内任意设定。
(3)十字路口的通行起始状态可人工设定,运行中可通过人工干预使十字路口通行状况固定于任何一种工作模式。
2.发挥部分
(1)具有时间控制功能,交通信号灯工作时间:05:00~23:00;其余时间两个干道上的黄色信号灯闪烁显示;
(2)绿色信号灯倒计时最后3秒和黄色信号灯显示时闪烁显示。(闪烁频率:1Hz);
(3)其它功能。
二、方案设计论证与可行性分析
2.1硬件设计
(1)单片机预选用51系列,但没买到,选用了AT89S52单片机,其内部带有8KB的程序存储器ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。
(2) 键盘系统:设置3个程序按键:设置键、增加键、减少键,另需配置一个非程序按键:系统复位键。
(3)电源供电系统:本系统采用220V电源供电,应设计相应的稳压电源电路。但设计竞赛受时间和经费限制,也可采用现成的5V直流稳压电源供电,这样可以节约设计时间、简化设计过程。
(4)两个干道的红绿灯用发光二极管(红、黄、绿)显示
(5)两个干道时间显示采用二位共阴数码管
软件设计:
(1)系统资源分配:为了便于程序的设计、阅读及修改,需要先对系统的存储器资源进行分配和说明。
(2)软件模块:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:
·主程序:初始化及键盘监控。
·显示程序模块:完成12个发光二极管的显示驱动和4个二位数码管显示。
·键盘扫描程序模块:判断是否有键按下,并求取键号。
·键处理程序模块:分别是“设置键”“增加键”“减少键”的处理子程序。
2.2方案比较
(1)复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位的目的
(2)东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如表2。
27S
3S
17S
3S
……
东西道
红灯亮
红灯亮
绿灯亮
黄灯亮
……
南北道
绿灯亮
黄灯亮
红灯亮
红灯亮
……
上表说明:
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为27秒。
(2)黄灯3秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为17秒。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
2.3 软件定时与硬件定时
本任务要求交通信号灯能实现自行定时、延时、切换等功能,即能实现交通信号灯自动控制。一般计算机控制系统实现定时或延时有两种基本方法:利用软件定时或使用可编程硬件芯片,即硬件定时。
软件定时:
即让机器执行一段程序,这个程序没有具体的执行目的,显然利用执行每条指令CPU所花费的时间,可实现延时功能。这种方法容易实现,仅需选用恰当指令并安排循环即可实现,定时时间调整方便,但不能做到精确定时。另外,时间调整是以一条指令执行时间为基准,占用CPU资源,降低CPU利用率。
硬件定时:
即使用可编程定时/计数器硬件芯片定时。这种芯片内部有一个可编程定时器,其定时值、定时范围可以很容易地由软件程序改变,定时时间到时可发出某种形式的信号通知外设或CPU。定时器的输出频率和波形等均由程序设定,因而使用灵活,功能强。
综合软、硬件定时的各种优缺点,考虑到设计成本我们采用软件定时(做成品是可运用硬件定时)
2.4查询方式和中断方式
定时时间到后各道路LED灯要转换工作。实现这种转换有两种方式:查询方式和中断方式
查询方式:
即CPU在与外设传输数据(本设计为P1、P2.0-P2.3数据传输给52单片机控制交通灯转换)前,一直不停检查外设状态,当外设准备好时方传输数据,CPU可传输数据,控制信号灯切换。
中断方式:
可以不让CPU主动去查询外设状态,而是让外设在数据准备好(定时时间到后)之后再通知CPU,CPU继而开始与外设交换数据控制外设工作。
显然查询方式相比与中断方式,使CPU利用率大大降低,因为CPU要用大量时间去执行状态查询程序。故本设计选用中断来实现LED灯的转换。
综上所述:我们采用软件定时,利用中断来控制LED灯工作的转换
2.5可行性分析
(1).技术可行性
技术可行性主要考虑的是使用现有的技术,能否能在预定的时间内实现该系统的功能;所选择的技术是否先进,合理;在开发过程中存在哪些技术难点,能否克服;参与开发系统的成员所能达到的技术水平;所实现系统能否满足性能要求等。
就本小组所开发的交通灯控制系统来说,本系统主要采用了 LED的内在特征决定了它是最理想的光源去代替传统的光源,它有着广泛的用途。
1.体积小
LED基本上是一块很小的晶片被装在环氧树脂里面,所以它非常小,非常的轻。
2.耗电量低
LED耗电非常低,一般来说LED的工作电压是2-3.6v,工作电流是0.02-0.03a。这就是说:它消耗的电能不超0.1w;但是它的照明亮度是传统光源十多倍。
3.使用寿命长
在恰当的电流和电压下,LED的使用寿命可达10万小时以上。
(2).经济可行性
经济可行性主要包括:“成本-效益”分析和“短期-长期利益”分析。“成本-效益”是估算软件开发成本,系统交付后的运行维护成本及效益,确定系统的经济效益是否能超过各项花费。“短期-长期利益”是分析该软件的短期和长远利益,估算系统的整体经济效益是否满足要求。
本小组所开发的单片机模拟交通灯控制系统是在所有项目中相对比较简单的系统之一,所运用的技术含量相对较低,实验设备也相对较少,主要运用了8051实验箱,LED发光二极管,复位系统设备及电源灯,相对成本较低,而系统一旦开发出来,应用也比较广泛,也就是说“成本-效益”比较完美。系统可在短期内完成,相对于其他较大系统的开发来说,开发时间比较短,而应用时长久的,大部分都市的交通都不能少了交通灯的工作。因此,在“短期-长期利益”也是可行的。
(3)操作可行性
操作可行性主要是分析系的运行方式,操作规程在用户组织内是否可以有效,顺利实施等问题。
本小组成员所开发的模拟交通灯控制系统是应用比较普遍的控制系统,在大都市繁忙的街道交通中都少不了的。因此,只要系统开发出来后,在各方面都核查并调试无误后,便可以投入使用。系统操作简单方便,便于学习掌握。在操作上的可行性是相对较高的
三、单元电路设计
元件的整体分布图如下
1.AT89S52引脚分布如下:
装载、运行程序,从而控制各外设装置的运行情况。管脚分布图如上其中P1.0-P1.7、P2.0-P2.3为控制东西南北四个方向LED工作的引脚。P0.0-P0.7为控制共阴数码管a、b、c、d、e、f、g、h段工作的引脚。P3.0-P3.2为控制东西方向和南北方向以及花灯闪烁时间的按钮引脚。P2.4-P2.7是控制外接数码管驱动器工作的引脚。
2.无源晶振
接XTAL1、XTAL2使单片机选用内部振荡器为单片机提供工作频率
二、 复位电路
接复位引脚RST,高电平有效。使中央处理器CPU和内部其他部件处于一个确定的初始状态。
三、 轻触开关
接P3.0-P3.2引脚,控制通信时间模式的,按K1一次进入调南北通行时间,再按一次K1进入调东西通行时间,再按一次K1退出设定通行时间模式,进入设定通行时间模式后按K2加1,按K3减1。
在正常模式下按K2进入禁止南北通行模式,再按一下K2进入禁止东西通行模式,再按一下K2退出。
在正常模式下按K3进入紧急模式,再按一次K3进入夜间模式,再按一下K3退出。
四、 排阻
接单片机P0.0-P0.7引脚,为数码管提供工作所需的电压
五、 数码管驱动
因单片机的驱动电流有限,为驱动数码管正常工作,用三极管Q1-Q4来放大电流从而使数码管正常工作。
六、 LED灯限流电阻
当单片机管脚处在低电平时,若不接入限流电阻,会致使电流过大,导致LED灯寿命减短,甚至损坏,因此需串连一个限流电阻。
四、参数计算
1.内部时钟
电路采用了晶振频率为12MHz,选微调电容主要为了稳定振荡频率,快速起振的作用,在本电路中选用33p.F。
2.复位电路
为了让单片机的中央处理器CPU和内部其他部件处于一个确定的初始状态,从这个初始状态开始工作,在单片机复位时,RST端出现持续连个机器周期的高电平,由于本电路中采用了频率为12MHz晶振,振荡周期T=1/f=1/12M=0.0833us,一个机器周期为12T=1us,计算电容的充放电过程时间,要满足至少两个机器周期的高电平,在本电路中选用了22u.F的电容。
3.二极管限流电阻
因为二极管工作电流在5m.A- 25m.A范围,而其在正向导通时电阻很小,故在选取二极管工作时的限流电阻时通过R=U/I来计算,得到限流电阻的大小在200-1k 之间,并最终取390.o
4.数码管工作时的上拉电阻
因为采用了二位共阴数码管,其工作时电压应由P0口和三极管共同提供,并且应保持约1.6-2.4V的压降,在选用P0口处的上拉电阻时,根据计算选用了5ko的电阻。
五、安装与调试
安装过程:
1 检查印刷电路板有无断路、短路,若有,首先处理好。
2 焊接顺序:先焊单片机,在焊接各分块电路,先焊平面的,后焊立体的,原则是有利于焊接。要求卧装水平、竖装垂直、相同元件等高。要特别注意元器件的安装方向!
3 焊接要点:将元件整形后插入对应位置,电路板平放在台面上,一手握烙铁对焊盘和引脚同时接触预热,另一手持焊锡丝与焊盘处烙铁接触,使锡丝熔化,当锡丝熔化一定量时(多了不好少了不行),立即将锡丝离去,烙铁继续保持少许时间,让焊锡围绕焊盘自由流动,形成一个完全覆盖焊盘的钟形(忌讳球形)焊点。切勿将焊锡先溶化在烙铁上再去焊接,这样锡丝里的助焊剂在未焊接前先挥发了,不利于焊接,而且焊点没有光泽。
4 剪脚:元件焊好后,将多余引脚剪掉,剪脚后的焊点应露出引脚0.5-1mm。本课设要求引脚露出2mm,以利于元件重复使用。
5 检查各元件是否出现焊接错误情况以及短路、断路情况。
6 将5V直流电源接入单片机以及其他各分模块电源端。若发现元器件发热或者有异味,应立即切断电源检查。
7.正常电路LED灯以及数码管会工作在较为稳定、准确的状态,可据此来进一步检测电路连接是否、存在问题
调试中遇到的问题
.
1.完成后接上+5V直流电源发现数码管不工作,经过仔细检查后发现数码管为共阳数码管,应改为共阴数码管。
2.更换成共阴数码管后,数码管能够工作但亮度不够,经测试分析,为上拉电阻阻值过大,通过并联减小阻值,亮度加强。
3.接上电源后单片机和各元件都工作可LED灯以及数码管显示都很不稳定,时常出现闪烁现象,后来通过排查发现可能是瓷片电容管脚于单片机相隔太远使得单片机受干扰很严重所致。
4.调试过程中,电路只能实现要求的部分功能,分析所得为所编程序不完整,经修改后功能加强。
六、 性能测试与分析心得
性能测试:
经过细心调试,在性能指标上,我组所焊接的电路板能够实现要求的所有基本功能:以秒为单位倒计时并在计时回零瞬间完成换灯、在0-99秒内任意设定通行时间、人工设定工作模式,并能实现发挥部分的两个功能。调试中,结合理论分析,各个参数基本上处在正常的范围内。
分析心得:
通过这次设计竞赛,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步。本次设计竞赛的过程是艰辛的,不过收获却是很大的。
在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等。在选用数码管时错误的用了共阳数码管,致使调试的失败,经检查发现错误得以更换。在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
设计竞赛让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。在此过程中也深深体会到团队合作的重要性和乐趣,这也是每个人受益匪浅,而这也将在今后的学习、工作、生活中有着不可估量的积极意义。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。
当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。
七.参考文献
[1 ].谢维成、杨加国 单片机原理与应用及c51程序设计.北京:清华大学出版社
[2].阎石.数字电子技术基础.北京:高等教育出版社,2006
[3].谭浩强 C程序设计(第三版).北京:清华大学出版社
[4].童诗白 模拟电子技术基础.北京:清华大学出版社
[5].王一群 怎样用电脑设计电子线路 福建 科学出版社
[6].王宏研,张鑫 电子综合设计实验教程 山东大学出版社
[7].陈永甫.多功能集成电路555经典应用实例第一集.北京:电子工业出版社
[8].王新闲.通用集成电路速查手册.山东:山东科学出版社,2005
[9].崔瑞雪、张增良.电子技术动手实践.北京:北京航空航天出版社,2007
八.元件清单
序号
规格型号
单位(个)
数量(个)
单价(元)
金额(元)
1
单片机AT89S52
1
7
7
2
LED灯(红、黄、绿)
各4
12
0.1
1.2
3
2位共阴数码管
4
2
8
4
轻触开关
4
0.1
0.4
5
瓷片电容33PF
2
0.1
0.2
6
电解电容22uF
1
0.1
0.1
7
晶振12MHZ
1
0.5
0.5
8
三极管9013
10
0.1
1
9
铜柱
4
0.3
1.2
10
排阻
1
0.3
0.3
11
普通电阻
20
0.01
0.2
12
单孔中锡板
1
6
6
13
彩排线
1
10
10
14
焊锡
1
10
10
总价
45.1元
附录
1、程序设计与分析
本程序主要有复位程序、中断程序、延迟程序、显示电路程序、LED灯控制程序、定时器工作程序和键盘扫描程序组成,具体分析如下:
#include<AT89X52.h> //将AT89X52.h头文件包含到主程序
#define uint unsigned int //变量类型宏定义
#define uchar unsigned char
//定义数据口
#define data_bus P0
#define shu 5
//定义全局变量
char sn_num0=30,ew_num0=20; //开始南北、东西干道初始值分别为30s、20s
char sn_num,ew_num;
uchar a=0,num=0,i=0,j=0,k=0;
bit b=0; //定义位标志
bit c=0;
bit d=~d;
bit v=1;
sbit sn_h=P2^7; //定义数码管的位选口
sbit sn_l=P2^6;
sbit ew_h=P2^5;
sbit ew_l=P2^4;
//定义led灯口
sbit n_red=P1^2;
sbit n_yellow=P1^1;
sbit n_green=P1^0;
sbit s_red=P1^6;
sbit s_yellow=P1^7;
sbit s_green=P2^0;
sbit e_red=P1^3;
sbit e_yellow=P1^4;
sbit e_green=P1^5;
sbit w_red=P2^3;
sbit w_yellow=P2^2;
sbit w_green=P2^1;
sbit k1=P3^2; //定义键****
sbit k2=P3^1;
sbit k3=P3^0;
uchar code num_table[]={ 0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //定义显示段码
uchar code num_table1[]={ 0x00,0x71}; //“0X00”表示什么都不显示,“0X71”显示FF
/***********************延时子函数************************/
void delay(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=120;j>0;j--);
}
/**************************定时器1初始化函数***************************/
void timer0_init(bit t)
{
TMOD=0x01; //定时器0工作在方式1
TH0=0x3c; //赋初值
TL0=0xb0;
EA=1; //开总中断
ET0=1; //允许定时器0中断
TR0=t; //为‘1’启动定时器0
}
/**************************定时器1中断函数*****************************/
void timer0() interrupt 1
{
TH0=0x3c; //重复初值 (50ms)
TL0=0xb0;
num++;
if(num==10)
{ d=~d;
if(sn_num<=shu||ew_num<=shu)
{c=~c;}
}
if(num==20) //定时1秒 (20*50ms)
{
c=~c;
d=~d; //c取反用于黄灯和数码管闪烁
if(b==0)
{
sn_num--; //南北通行时间减1
if(sn_num<0)
{b=1;sn_num=sn_num0;}
}
else
{
ew_num--; //东西通行时间减1
if(ew_num<0)
{b=0;ew_num=ew_num0;}
}
num=0;
}
}
/***********************显示函数************************/
void display(char sn_n,char ew_n)
{
uchar i;
for(i=0;i<4;i++)
{
switch(i)
{
case 0:
if(a==0){data_bus=num_table[sn_n/10];} //数码管1显示南北通行时间的十位
else if(a==1)
{
data_bus=num_table[sn_n/10]; //数码管1显示南北通行时间的个位
}
else if(a==2)
{
data_bus=num_table1[0]; // 数码管1不显示
}
else
{
if(c==0)
data_bus=num_table1[1]; //数码管1显示F
else
data_bus=num_table1[0];
}
ew_h=0; //关其他的三个数码管
ew_l=0;
sn_l=0;
sn_h=1;//开数码管1
break;
case 1:
if(a==0){data_bus=num_table[sn_n%10];} //数码管2显示南北通行时间的个位
else if(a==1)
{
data_bus=num_table[sn_n%10];
}
else if(a==2)
{
data_bus=num_table1[0];
}
else
{
if(c==0)
data_bus=num_table1[1];
else
data_bus=num_table1[0];
}
ew_h=0;
ew_l=0;
sn_h=0;
sn_l=1;
break;
case 2:
if(a==0){data_bus=num_table[ew_n/10];} //数码管3显示东西通行时间的十位
else if(a==1)
{
data_bus=num_table1[0];
}
else if(a==2)
{
data_bus=num_table[ew_n/10];
}
else
{
if(c==0)
data_bus=num_table1[1];
else
data_bus=num_table1[0];
}
sn_h=0;
sn_l=0;
ew_l=0;
ew_h=1;
break;
case 3:
if(a==0){data_bus=num_table[ew_n%10];} //数码管4显示东西通行时间的个位
else if(a==1)
{
data_bus=num_table1[0];
}
else if(a==2)
{
data_bus=num_table[ew_n%10];
}
else
{
if(c==0)
data_bus=num_table1[1];
else
data_bus=num_table1[0];
}
sn_h=0;
sn_l=0;
ew_h=0;
ew_l=1;
break;
}
delay(3);
}
}
/***********************键盘扫描函数************************/
void keyscan()
{
if(k1==0)
{
delay(10); //键盘消抖
if(k1==0)
{
TR0=0; //关定时器0
v=0; //标志位v赋0,v为0时K2K3实现时间的加减功能
i++;
if(i>2)
{
v=1; //标志位v赋1,v为1时K2K3实现强制南北、强制东西、紧急、夜间功能
TR0=1; //开定时器0
i=0;
sn_num=sn_num0; //存储调节好的时间供调节返回后立即从设定好的值执行
ew_num=ew_num0;
}
switch(i) //选择显示模式
{
case 0:a=0;break;
case 1:a=1;break;
case 2:a=2;break;
default:break;
展开阅读全文