《本科毕业设计论文--职业学院基于51单片机的交通灯设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计论文--职业学院基于51单片机的交通灯设计.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、合 肥 通 用 职 业 技 术 学 院毕 业 论 文题 目: 基于单片机的交通灯设计 系 别: 信息管理工程系 专 业: 电气自动化技术 学 制: 三年 姓 名: 王泰 学 号: 06130135 指导教师: 支忠山 二O 一六 年 六 月 二十一 日 指导教师评语及成绩: 指导教师: 年 月 日 摘 要当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤等方面给予技术革新。本文主要介绍了一个基于80C51单片机的交通灯控制系统,详细描述了利用80C51开发交通灯控制系统的过程,重点对硬件设计、软件编程、调试分析以及各模块系统流程进
2、行了详细分析,对各部分的电路也一一进行了介绍。本系统由80C51单片机、键盘、交通灯演示组成,。该系统可以方便的实现交通灯控制。该系统结构简单,可靠性高,修改程序简单(方便加入或改变功能),有较好的应用前景。 关键词:交通控制,单片机,80C51, 目 录摘 要11 绪论41.1课题研究的背景以及意义41.2当前的研究现状41.3本文的主要工作和难点42 道路交通灯的总体系统的设计方案62.1 总体设计方案62.1.1系统机构总框架62.1.2交通管理的方案论证62.1.3 控制电路框图62.2电路的工作原理62.3 本章小结63 硬件设计93.1MCS-51单片机介绍93.1.1简介93.1
3、.2 管脚说明123.1.3 时钟脉冲电路143.1.4复位电路143.1.5电源电路143.2硬件原理图153.3 本章小结154 软件设计174.1 主程序设计174.1.1 主程序流程图174.2 初始化程序174.3 延时程序174.4 源程序174.6 本章小结185 结论与展望195.1 结论195.2 展望19致 谢20参考文献21附录226 1 绪论1.1 课题研究的背景及意义随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题
4、。交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他办法来满足日益增长的交通需求。在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。1.2 当前的研究现状路是交通的物质基础,有路才能通车,行人。我国是一个文明古
5、国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近几年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是: a. 路网密度低;b. 交通干道少;c. 路口平面交叉。 道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表现是: 城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市 ,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。我国城市机动车车种繁杂,从50年代的老
6、式车到80年代的新型车,从大货车到小轿车都在一个平面上行驶,不少城市拖拉机还是一种主要运输工具,前面一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。1.3 本文的主要工作和难点通过对城市主要十字路口交通控制规律的观察发现,我国现有交通灯或者交通规则的一个缺陷:十字路口,右拐的车辆经常和过马路的行人冲突,因为车辆右拐和行人过马路是同时进行的,根本没有时间段的划分,所以车和人就像打篮球运球过人,要么过去,要么撞一下,而且经常是车不让人,人不让车,交通事故经常在这里发生,有的路口有协管给车和人分配时间,但大多数路
7、口都是没协管的,因而在这次设计中,为了弥补这个缺陷,特意为行人留出时间过马路,实行人车分流,在此期间各路转弯不再进行。本文主要工作是利用80C51单片机设计一个交通灯控制系统。在一个主要十字路口,纵向为主干道,横向为支干道。主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪烁、支干道黄灯亮。 2 道路交通灯的总体系统的设计方案2.1 总体设计方案2.1.1 系统机构总框架本系统
8、是针对一个大型十字路口设计的交通信号灯控制系统。东西方向和南北方向各设有红灯、黄灯、绿灯各一组。状态一为主干道绿灯亮,支干道红灯亮20秒,状态二为主干道黄灯亮,支干道红灯闪烁4秒状态三为主干道红灯亮,支干道绿灯亮12秒,状态四为主干道红灯闪烁,支干道黄灯亮4秒。四个状态一直循环,并有数码管显示时间。2.1.2 交通管理的方案论证东西、南北两干道交于一个十字路口。各干道有红灯、黄灯、绿灯各一组,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,P1.0P1.2分别控制支干道的红、黄、绿灯,P1.3P1.5分别控制主干道的红、黄、绿灯,。2.1.3
9、控制电路框图倒计时显示89C52系统处理交通信号灯图2-1 控制电路框图本系统每个信号指示灯接一个对应的I/O口,通过对I/O口赋值控制交通信号灯的状态来指挥交通。在此基础上按键可以触发单片机进入中断,进而控制交通信号灯的状态。2.2 电路的工作原理本系统的电路较简单,实物图如附录一所示。共设有12个LED,其中红色的4个,绿色的4个,黄色的4个。所有LED阳极接+5V电源,阴极与对应的I/O口相连(见表2-1)。当单片机上电后,系统对其初始化,所有灯灭。当给任何一个I/O口赋值0时,与其对应的LED点亮。这样,通过对P1的合理赋值并控制其延时时间就可以实现基本的交通控制。 图中,t表示时间,
10、MG表示主干道绿灯,MY表示主干道黄灯,MR表示主干道红灯,SG表示支干道绿灯,SY表示支干黄道灯,SR表示支干道红灯,由交通灯工作时序流程图可以看出,交通灯应满足两个方向的工作时序:主干道绿灯和黄灯亮的时间等于支干道红灯亮的时间;支干道绿灯和黄灯亮的时间等于主干道红灯亮的时间。若假设每个单位脉冲周期为1秒,则主干道绿灯、黄灯、红灯分别亮的时间为20秒、4秒、16秒,支干道红灯、绿灯、黄灯分别亮的时间为24秒、12秒、4秒。一次循环为40秒。主干道黄灯亮时,支干道红灯以1Hz的频率闪烁;支干道黄灯亮时,主干道红灯以1Hz的频率闪烁。主、支干道各信号灯亮时,需配合有时间提示,以数字显示出来,方便
11、行人与机动车观察。主、支干道信号灯亮的时间均以每秒减“1”的计数方式工作,直至减到“0”后主、支干道个信号灯自动转换。2.3 本章小结本章主要介绍了道路交通灯的总体系统的设计方案。设计出系统机构的总框架,并且对交通管理的方案进行了论证,在发现现有交通灯控制系统存在不足的基础上,在本系统中对其进行了改善,设计出了能实现本次设计要求的方案。设计出本系统的控制电路框图,并对其工作原理进行了进一步说明。3 硬件设计3.1 MCS-51单片机介绍3.1.1 简介单片机是微机的一种,是将单片机的CPU、存储器、I/O接口和总线制作在一块芯片上的大规模集成电路。由于单片机具有体积小、功能全、价格低、开发应用
12、方便等优点,又可将其嵌入产品的内部,因此得到了及其广泛的应用。(1)单片机的发展史单片机的发展大致可分为4个阶段。a. 初始阶段 由于受到技术发展的影响,单片机的制作工艺较差、集成度较低。这个阶段的单片机多采用双片结构,且功能比较简单。有些单片机在应用过程中,由于内部资源太少,需要外接其他功能的芯片才能实现应用功能。b. 低性能阶段在此阶段,单片机的功能有了进一步发展、相关的接口电路、定时器、计数器等都集成到一个芯片中。同时单片机被推向市场,促进了单片机的变革。c. 高性能阶段在这个阶段,单片机的品种逐渐增加,功能不断完善,其内部的RAM、ROM都有所增大,寻址范围也变大,并且增加了串行口和多
13、级中断处理。d. 16位单片机阶段由于电子元件、系统结构和软件技术的不断进步,单片机的制造工艺和集成度都得到迅速发展,其内部资源得到了较大的发展,实时处理能力更强。(2)单片机的内部结构单片机经过几十年的不断发展,其功能和组成结构基本已固定,内部结构示意图如图1-1所示。a. 中央处理器(CPU)CPU是单片机的核心部件,根据CPU字长可分为1位机、4位机、8位机、16位机以及32位机,CPU的运算速度、处理数据能力、实施控制功能等性能都与CPU的字长有关,因此,字长是衡量CPU功能的主要指标。b. 存储器存储器按功能可分为程序存储器和数据存储器,由于单片机主要面向控制,因此一般需要大容量的程
14、序存储器和较少的数据存储器,同时存储器类型也不一样。c. 程序存储器单片机内部程序存储器容量一般为1KB64KB,通常采用只读存储器(ROM)。采用只读存储器作为程序存储器,不仅提高了可靠性,而且由于只读存储器的集成度较高、价格较低,降低了成本。CPUROM中断系统串行I/O口并行I/O口定时器RAM图3-1 单片机内部结构示意图d. 数据存储器单片机内部的数据存储量一般为64B256B,通常采用静态随即存储器(RAM),还有少数单片机内采用EEPROM作为数据存储器。数据存储器可分为工作寄存器、堆栈,位标志和数据缓冲器使用。e. I/O接口及特殊功能部件单片机内部有数量不等的并行接口,可以作
15、为外界无输入/输出设备,通常也包含12个串行口,用于实现异步串行通信。特殊功能部件通常包括定时/计数器,其他例如A/D、PWM、DMA等根据不同类型的单片机,其配置不同。(3)单片机应用系统根据单片机应用场合及系统控制的要求不同,在规模、结构上存在很大不同,根据使用功能器件的种类和数量,可分为基本系统和扩展系统。 1)基本系统在此系统中,包含一个单片机,在该单片机中含有程序存储器和数据存储器,仅在外部配置了维持系统运行的基本部件,例如电源、输入/输出,除了这些,还包括不扩充程序存储器、数据存储器、I/O接口以及其他功能部件,因此也被称为最小系统,其结构示意图如图3-2所示。复位电路电源电路单片
16、机时钟电路输入/输出图3-2 单片机最小系统示意图2)扩展系统在大多数系统中,由于需要实现一些特殊的功能,采用最小系统无法满足系统的控制要求,所以要扩展特殊功能部件,弥补单片机内部资源的不足。单片机扩展系统通过并行I/O口或者串行口做总线,在外部扩展了程序存储器、数据存储器、A/D转换等特殊部件,以满足控制系统的特殊要求,其结构示意图如3-3所示。(4)单片机的发展趋势随着科学技术的不断发展,单片机的工艺和集成度不断提高,其功能正朝着多功能、高性能的方向发展,主要体现在一下几方面。1)各种等级的单片机性能提高EPROM程序存储器RAM数据存储器A/DD/A并行接口串行接口复位电路时钟电路输入/
17、输出电源电路单片机 图3-3 单片机扩展系统钢结构示意图 随着工艺技术和集成度技术的发展,许多低端单片机的性能有了较大的提高,甚至可以完成部分高端单片机才能实现的功能,其运算速度、功能和可靠性等方面也得到了快速的发展。a. CPU功能增强CPU的性能主要体现在数据处理的速度和精度上,通过增加CPU的字长、扩充硬件、提高总线速度和处理效率等手段,提高CPU的性能。b. 内部资源增加单片机除了CPU外还有其他部件,通过增强已有部件的性能和增加特殊功能的部件来提高单片机的性能。例如增大存储器的容量,现在一些高端单片机的程序存储器的ROM、EPROM、EEPROM或者FLASH都达到及时KB,而数据存
18、储器的RAM也已达到及时KB。一般的控制系统要求的功能较多,采用较低端的单片机,由于其内部资源不够,无法实现控制要求,因此需要扩展部件,而扩展部件又会造成系统可靠性降低,所以要在工艺水平提高的基础上,尽量集成较多的部件在单片机的内。单片机的特殊部件包括I/O口(并行口和串行口两种)、定时/计数器、AD/DA转换器、PWM输出等,通过在内部集成此类部件,可大大增强单片机的控制功能。c. 寻址范围增加寻址方式的多少直接反应了机器指令系统功能的强弱,寻址方式越多,其功能越强,灵活性越大,这也是衡量单片机性能的重要指标之一。现在已有部分单片机对外部存储器、I/O口寻址范围增加到几MB,甚至有单片机可以
19、选择某些I/O口作为系统的扩展总线使用。2)小型化、低功耗在一些智能控制系统中,其整体系统体积较小,功率不大,因此要求单片机的体积和功耗都要在一定范围内,促使单片机向小型化、低功耗的方向发展。例如,1992年美国推出的i80860超级单片机,运算速度为1.2亿次每秒,可进行32位整数运算、64位浮点运算,同时片内集成了一个三维图形处理器,可构成超级图形工作站。3.1.2 管脚说明MCS-51单片机是采用40引脚双列直插封装的芯片,有些引脚具有两种功能,引脚如图3-4所示。引脚功能如下:Vcc :电源+5V。VSS:接地。XTAL1和XTAL2:使用内部振荡电路时,用来接石英晶体和电容;使用内部
20、时钟时,用来输入时钟脉冲。P0口:双向I/O口,既可以作地址数据总线口,也可作普通I/O口用。P1口:准双向通用I/O口。P2口:准双向口,地址总线口输出地址高8位口。P3口:多功能端口,既可以作普通I/O口用,也可以按每位定义的第二功能操作。ALE/PROG:地址锁存信号输出端。在访问片外存储器时,ALE为高电平有效时,P0口输出地址低8位,用ALE信号做外部地址锁存器的锁存信号。ALE =OSC /6,可以做系统中跟其他芯片的时钟源。第二功能PROG是对8751的EPROM编程脉冲输入端。RST/VPD:复位信号输入端。接通电源后,在该引脚施加大于两个机器周期(24个振荡周期)的高电平,就
21、可使单片机完成内部的复位工作。第二功能是Vpd ,即备用电源输入端。当主电源Vcc 发生故障,降低到低电平规定值时,Vpd 将为RAM提供备用电源,以保证存贮在RAM中的信号不丢失。/EA/VPP :/EA=1时程序先片内后片外自动连续运行;例如:89C52内部有8K字的EEP-ROM就可使/EA=1,先从内程序存储区开始执行程序,当PC值超过内部8K字节(0000-1FFF),才会转到从2000H开始的外程序区执行程序,当/EA=0时程序直接从片外开始执行程序。在对8751的EPROM编程时,此引脚接编程电压12.5V。/PSEN:片外程序存储器选通信号,低电平有效。图3-4 MCS-51引
22、脚图3.1.3 时钟脉冲电路MCS-51的时钟可以有两种方式产生,一种是内部方式,利用芯片内部的震荡电路;另外一种为外部方式。本文根据实际需要和简便,采用内部震荡方式。MCS=51内部有一个用于构成震荡器的高增益反响放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外警惕或陶瓷谐振器一起构成一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的是振荡时钟电路。外接晶体以及电容Cl和C2构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快
23、速性和温度的稳定性。晶体频率可在12MHz-12MHz之间任选,电容Cl和C2的典型值在20pF-100pF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的陶瓷谐振器。由于本系统应用的机器周期为lms,所以晶振选择为12MHz,根据调试电容选择30pF3.1.4 复位电路MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段。有了它可以使程序从指定处开始执行,即从0000H地址单元开始执行程序。在MCS-51的时钟电路工作后,只要RST引脚上出现10ms以上的高电平时,单片机内部则出示复位。只要RST保持高电平,则MCS-51循环复位。只有当RST由高电平变
24、低电平以后,MCS-5l才从0000H地址开始执行程序。MCS-51的复位是由外部的复位电路来实现的。复位引脚通过施密特触发器与复位电路相连。施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式。本系统采用两种方式的复合方式即上电位按钮复位式。3.1.5 电源电路 由于单片机工作时需要的+5v电压,所以在设计电源电路时,需要一个电子元件能提供+5v电压,由于7805能够提供5V电压的三端稳压电源,在实际的电路控制中应用其作为电源电路较为广泛,在普通的电子元器件商场都有销售易于购买,并且技术相对成熟。7805一脚为电源输入
25、段,二脚为公共接地段,三脚即为我们所需要的+5V电压输出端。本文采用最典型的7805提供电压的电路,即在7805的l脚和公共接地端(即2脚)之间接入03mF的电容,在公共接地端和三脚+5V电压输出端之间接人0.1mF的电容。3.2 硬件原理图本系统利用89C52芯片对12个LED进行控制,实现交通信号灯的控制。同时,每个LED串接 一个阻值为330的电阻,以保证系统上电后通过LED的电流不会过大,防止其烧毁。图3-5 硬件原理图3.3 本章小结 本章主要是关于本系统用到的硬件设计的介绍。文中对MCS-51单片机进行了介绍,系统阐述了本设计用到的89C52芯片各管脚功能,并且对时钟脉冲电路、复位
26、电路和电源电路进行了一一解释。重点介绍了本系统的硬件原理图,对其进行了较为细致的说明。19 4软件设计4.1 主程序设计4.1.1 主程序流程图本系统在一般情况下循环执行信号灯状态流程,流程图如图4-1所示。图4-1 信号灯状态流程图 主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪烁、支干道黄灯亮。4.2 初始化程序单片机上电时I/O口默认为高点平,需要在进入主函数时对P1
27、进行附初值。因本系统中LED低电平时点亮,故给P1都赋值0xff,使LED全灭。程序中用到外部中断0和外部中断1,需要初始化,开总中断、开外部中断0和外部中断1,还需要选择触发方式,本系统中断中选择下降沿触发。4.3 延时程序 延时可有两种途径实现:软件延时和单片机内部的定时/计数器延时。软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。定时/计数器延时不占用CPU时间,但占用了硬件资源。本系统采用定时器延时,单次延时时间为50ms,晶振12MHz。4.4 源程序源程序参考附录一。4.6 本章小结本章主要介绍本论文中的软件设计部分。文中详细介绍了本系统的主程序设计、初始化程序、
28、外部中断及延时程序,并附有程序中的各种流程图,使读者对本系统的设计有了进一步了解。 5 结论与展望5.1 结论本论文在深入探讨分析交通控制原理的基础上设计出了一套基于单片机控制之下的交通控制系统,通过阅读大量相关文献,对当前交通控制技术有了比较深入的了解,并在此基础上进行了硬件选型和软件系统的设计,经过在实验室调试,分析及验证了设计方案的可行性。在开发过程中,运用了Protel开发软件、Keil51开发软件,在编程方面使用了C语言。课题完成的主要工作与结论如下:(1)阅读了大量资料,对交通控制系统进行了综合分析,明确了论文的方向,确定了基于80C51单片机的研究与设计的总体设计方案;(2)分析
29、了具体要求,题注硬件总体设计方案,对硬件进行了选型。(3)深入分析、总结了系统软件部分的原理,基于Keil51进行了软件系统的设计。(4)经过实验验证,本系统准确达到了本次设计的要求,进而验证了系统的可行性。不足之处:因设计要求中没有对倒计时显示时间进行要求,也因个人能力有限,没有将倒计时显示时间实现在系统中,所做外接电路也比较粗糙,希望将来能够改进!5.2 展望本次设计经历让我对交通控制系统有了更深入的认识,也了解到现有交通控制系统存在的不足。希望通过努力,最终能将本系统修改为可以指挥交通的应用型系统,弥补现有交通控制系统的不足。 致谢首先诚挚的感谢我的指导老师,老师悉心的教导使我学到很多关
30、于单片机的知识,不时的讨论并指点我正确的方向,使我在这段时间中获益匪浅。老师对学问的严谨更是我学习的典范。感谢各位老师对我的指导,不厌其烦的指出我学习中的缺失,且总能在我迷惘时为我解惑,他们细心指导我的学习与研究,在此,我要向诸位老师深深地鞠上一躬。感谢帮助过我的朋友及同学,感谢你们平时对我的关心和帮助。 参考文献1杨栓科,徐正红等.模拟电子技术基础M.北京:高等教育出版社,2007.5.2张克农,段军政等.数字电子技术基础M.北京:高等教育出版社,2008.1.3申忠如, 申淼 ,谭亚丽. MCS-51单片机原理及系统设计M.西安:西安交通大学出版社,2008.3.4戴仙金.51单片机及其C
31、语言程序开发实例M.北京:北京大学出版社,2006.1.5范立南,谢子殿.单片机原理及应用教程 M.北京:北京大学出版社,2008.2.6胡汉才.单片机原理及接口技术M.北京:清华大学出版社,1996.7.附录源程序#include#define uint unsigned int#define uchar unsigned charsbit MR=P13;sbit MY=P14;sbit MG=P15;sbit SR=P10;sbit SY=P11;sbit SG=P12;uchar code du_code=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0
32、x7F,0x6F;uchar num;uchar second20=20, second12=12, second4=4;bit flag=0;void delayms(uint x)uint y;for(;x0;x-)for(y=110;y0;y-);void initial()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void state1()while(second20)MR=1;MY=1;MG=0;SR=0;SY=1;SG=1;if(flag=1)flag=0;second20-; P2
33、=0xfe;P0=du_codesecond20/10;delayms(2);P2=0xfd;P0=du_codesecond20%10; delayms(2);P2=0xfb;P0=du_code(second20+4)/10;delayms(2);P2=0xf7;P0=du_code(second20+4)%10; delayms(2);second20=20;void state2()while(second4)MR=1;MY=0;MG=1;SY=1;SG=1;if(flag=1)SR=SR;flag=0;second4-;P2=0xfe;P0=du_codesecond4/10;del
34、ayms(2);P2=0xfd;P0=du_codesecond4%10; delayms(2);P2=0xfb;P0=du_codesecond4/10;delayms(2);P2=0xf7;P0=du_codesecond4%10; delayms(2);second4=4;void state3()while(second12)MR=0;MY=1;MG=1;SR=1;SY=1;SG=0;if(flag=1)flag=0; second12-; P2=0xfe;P0=du_code(second12+4)/10;delayms(2);P2=0xfd;P0=du_code(second12+
35、4)%10;delayms(2);P2=0xfb;P0=du_codesecond12/10;delayms(2);P2=0xf7;P0=du_codesecond12%10; delayms(2);23 second12=12;void state4()while(second4)MY=1;MG=1;SR=1;SY=0;SG=1;if(flag=1)MR=MR; flag=0; second4-;P2=0xfe;P0=du_codesecond4/10;delayms(2);P2=0xfd;P0=du_codesecond4%10; delayms(2);P2=0xfb;P0=du_codesecond4/10;delayms(2);P2=0xf7;P0=du_codesecond4%10;delayms(2); /second4=4;void main()initial(); while(1) state1(); state2(); state3(); 24 state4(); void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /num+;if(num=20) num=0;flag=1; 系统原理图25