《基于51单片机交通信号灯控制系统设计.pdf》由会员分享,可在线阅读,更多相关《基于51单片机交通信号灯控制系统设计.pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录一、设计思路.11.设计思路和采取的技术方案.11.1 设计思路.11.2 采取的技术方案.12.工具设备要求和技术规范.12.1 工具设备要求.12.2 技术规范.2二、设计过程与说明.31.设计过程.31.1 设计的前期调研.31.2 设计功能要求.31.3 单片机交通控制系统的基本构成及原理.41.4 设计方案.51.5 系统硬件电路的设计.61.6 系统软件程序的设计.122.设计过程中遇到的问题与解决措施.152.1 设计过程中遇到的问题.152.2 解决措施.15三、设计成果简介.161.作品的特点.161.1 技术指标.161.2 性能特点.161.3 创新之处.161.4
2、 实用性.162.对毕业设计进行归纳和总结.173.提出建议和改进意见.174.待解决的问题.175.程序代码、设计图纸、测试文件等资料的截图.185.1 设计图纸.185.2PCB 图.185.3 实物图.195.4 仿真图.205.5 程序测试图.205.6 程序代码.20五、参考文献.331一、设计思路1.1.设计思路和采取的技术方案设计思路和采取的技术方案1.1 设计思路设计思路本系统设计思路是以 STC89C51 单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、LED 显示电路、数码管显示电路、按键电路等组成。设计目的是制作一个比较符合实际情况,价格低
3、廉而拥有着不乏性能的交通灯控制系统。通过对现在的交通灯的了解和研究,除了自动控制红绿灯的变化以外,还有在紧急的特殊情况下,还可以手动的变换红绿灯来使一些特殊的车辆快速通过交通路口等。能模拟基本的交通灯控制系统,用红绿黄三种灯表示禁行、通行和等待信号,按键可以控制夜间模式、禁行模式、东西通行、南北通行、时间加、时间减、方向切换等功能。共四个二位数码管,东南西北四个方向各有一个显示时间的数码管,共 12 个发光二极管,指示通行状态。1.2 采取的技术方案采取的技术方案实施步骤:网上收集资料,图书借阅等方式查阅相关资料。系统的硬件设计:单片机、LED 灯显示、按键控制电路、数码管显示等组成;系统的软
4、件设计:主程序、子程序、Protues 仿真、Altium 绘制原理图等;完成整个系统所有功能的软硬件联调,并记录实验数据,整理设计材料,撰写毕业设计说明书,完成毕业设计。主要方法:根据任务书明确设计目的与设计内容要求及相关要求制定设计方案等。使用keil 程序开发软件、Altium 设计硬件、Protues 仿真软件、电烙铁和万用表等工具进行软硬件模拟、调试及修改。2.2.工具设备要求和技术规范工具设备要求和技术规范2.1 工具设备要求工具设备要求(1)Protues;(2)Protel Altium;(3)Keil uVision4;(4)恒温电烙铁等工具;(5)数字万用表。22.2 技术
5、规范技术规范(1)电子产品工艺设计规范;(2)万用表工具操作规范;(3)焊接工具使用规范;(4)电子产品调试与检测标准;(5)程序设计语言。3二、设计过程与说明1.1.设计过程设计过程1.1 设计的前期调研设计的前期调研当今社会,无论在日常生活中,我们所用到的电饭煲、洗衣机、冰箱等,还是在工业领域的自动化控制,电子领域的数据收集等,都能看到单片机的身影,在微控领域占据了极高的地位。所以单片机的开发应用是高科技领域的一个里程碑。所以我们有必要更加深入掌握有关单片机的知识及其应用技术。本设计是运用单片机来制作一个模拟交通灯控制系统来控制十字路口的交通,有效、科学的控制引导过往的车辆和人流。通过对现
6、在的交通灯的了解和研究,除了自动控制红绿灯的变化以外,还有在紧急的特殊情况下,还可以手动的变换红绿灯来使一些特殊的车辆快速通过交通路口等。1.2 设计功能要求设计功能要求本设计能模拟基本的交通控制系统,设计一个十字路口的交通灯控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行数码管倒计时显示。按键可以控制禁行、复位、东西通行、南北通行、时间加、时间减、方向切换等功能。要求南北方向和东西方向十字路口的车辆交替运行,有夜间模式、禁行模式,可以设定时间倒计时,每次绿灯变红灯时,要求黄灯先亮几秒才能变换,东西方向、南北方向车道除了有红、黄、绿指示灯外,每一种灯亮的时间都用数码管进行显示,有复
7、位功能。1.2.1 显示模块功能显示模块功能显示模块分数码管显示和 LED 显示,数码管倒计时显示可以提醒驾驶员在信号灯颜色发生改变时在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号灯控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯颜色改变时做出判断的一种方法,它可以提醒驾驶员信号灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。通过两种显示结合是合理可靠的。1.2.2 按键模块功能按键模块功能按键控制不多,I0 口足够,可直接采用独立式。按键可以设置系统的运行状态,禁行状态为数码管均显示“00”,红灯全
8、亮;复位按键可以将整个系统复位;东西通行是东4西方向的绿灯亮,南北方向的红灯亮;南北通行为南北方向的绿灯亮,东西方向的红灯亮;时间加减可以设置通行和等待通行的时间;切换按键可以切换方向和加减时间。通过此模块的控制,使得整个系统具有灵活性,实用性。1.3 单片机交通控制系统的基本构成及原理单片机交通控制系统的基本构成及原理本系统采用 STC89C51 单片机以及单片机最小系统和按键控制和数码管显示等部件,设计一个基于 51 单片机交通灯系统设计,设计通过两位一体共阴极数码管显示,并能通过按键对时间进行设置。本系统实用性强、操作简单、扩展功能强。在相同的时间里提高通车的效率,并能在高峰期根据实际状
9、况来控制按钮调整主、次干道的通车时间,降低交通拥挤堵塞现象。交通控制系统具有紧急控制,让救护车、警用车、消防车等特殊车辆通过时,使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。单片机控制交通灯系统,可用单片机直接控制信号灯的状态变化,接入 LED 数码管就可以显示倒计时以提醒驾驶员和行人,更具人性化。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到 LED 数码管上实时显示。在此过程中还要实时捕捉紧急按键信号,以达到对异常状态进行实时控制的目的。图 2-1 系统总体框图本设计系
10、统以单片机为控制核心,连接单片机最小系统,按键设置模块等产生输入,信号灯状态模块,LED 倒计时模块进行输出。系统总体框图如上图所示。单片机红绿黄信号灯8 段 LED 数码管复位电路最小系统外围接口按键控制驱动显示51.4 设计方案设计方案设在十字路口,分为东西方向和南北方向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态 1 开始直至状态 4 然后再循环至状态 1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:图 2-2 交通状态图状态 1:东西方向红灯亮,南北
11、方向绿灯亮,倒计时 20 秒。此状态下,东西方向禁止通行,南北方向允许通行。状态 2:东西方向红灯亮,南北方向绿灯灭,同时黄灯亮,倒计时 5 秒。此状态下,除了已经越过人行横道线的车辆,其他所有车辆都需等待状态转换。状态 3:南北方向红灯亮,东西方向绿灯亮,倒计时 25 秒。此状态下,东西方向允许通行,南北向禁止通行。状态 4:南北方向红灯亮,东西方向绿灯灭,同时黄灯亮,倒计时 5 秒。此状态下,除了已经越过人行横道线的车辆,其他所有车辆都需等待状态转换。用表格表示灯状态和行止状态的关系如下:表 2-3 灯状态和行止状态状态 1状态 2状态 3状态 46东西南北四个路口均有红绿黄 3 灯和数码
12、显示管 4 个,在任何一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮提示行止状态将变换。说明:0 表示灭,1 表示亮。1.5 系统硬件电路的设计系统硬件电路的设计1.5.1 系统硬件电路构成系统硬件电路构成实现本设计要求的具体功能,可以选用 STC89C51 单片机及外围器件构成最小控制系统,12 个发光二极管分成 4 组红绿黄三色灯构成信号灯指示模块,8 个 LED 东西南北各两个构成倒计时数码管显示模块,若干按键组成时间设置和模式选择按钮和紧急按钮等。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、数码管显示、LED 显示、按键等组成。其中 P
13、0、P1 用于送显 LED 数码管的段选和位选,P2 用于控制红绿黄发光二极管,12MHz 晶振接在单片机芯片引脚的 XTAL1和 XTAL2 上,REST 引脚接复位电路,P3 用于口按键控制。1.5.2 单片机系统单片机系统单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器 RAM、程序存储器 ROM、定时/计数器、中断系统、时钟部件的集成和I/O 接口电路。由于单片机具有体积小、价格低廉、可靠性高、开发应用方便等特点,单片机技术作为计算机技术的一个非常重要的分支,广泛地应用于工业控制、智能化仪器仪表、家用电器等各个不同的领域。在控制领域中,现如今
14、人们更注意计算机的低成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比,所以越来越多的制造业、工业离不开单片机。单片机的应用系统包含硬件部分和软件部分,只有这样才是完整的单片机应用系统。软东西方向禁行等待变换通行等待变换南北方向通行等待变换禁行等待变换东西红灯1100东西绿灯0010东西黄灯0001南北红灯0011南北绿灯1000南北黄灯01007件部分是指导硬件工作的指令集。没有软件部分,系统将无法正常工作。硬件部分则是交通灯系统的基础。没有硬件系统则没有所谓的交
15、通灯系统。只有将两者结合,才能实现功能齐全的交通灯系统。1.5.3 单片机最小系统单片机最小系统STC89C51 单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的 XTAL1 和 XTAL2 引脚外接晶振,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容 C1 和 C2 的作用是稳定频率和快速起振,电容值在 5-30pF,典型值为 30pF。晶振 CYS 的振荡频率范围在 1.2-12MHz间选择,典型值为 12MHz 和 11.0592MHz。当在 STC89C51 单片机的 RST 引脚引入高电平并保持 2 个机器周
16、期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按键复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要 VCC 的上升时间不超过 1ms,就可以实现自动上电复位。时钟频率用 6MHZ 时 C 取 22uF,R 取 1K。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种,其中电平复位是通过 RST 端经过电阻与电源 VCC 接通而实现的。8图 2-4 单片机最小系统原理图1.5.4 LED 显示显示发光二极管简称为 LED。它是一种
17、半导体二极管。它的可见光是由空穴和电子结合时辐射而出的,因此它可以把电能转化为光能。主要由镓(Ga)与砷(As)、磷(P)、氮(N)、铟(In)等化合物制成这种半导体二极管。三极管具有 2 个 PN 结,而发光二极管是由一个 PN 结组成的,它具有单向导电性。正向电压降低,反向电压降则要相对高得多。它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光。因此它也是非常有发展前景的绿色照明光源。它的功耗低,寿命长,辐射低的特点使其得到了广泛的应用。不仅如此,它的光效率高,亮度高,同时可以回收利用的优点也使它成为非常受瞩目的新一代光源。它的运用简单,信号稳定,所以选择发光二极管作为设计模
18、拟交通灯灯源是有迹可循的。本系统所选用的是普通单色发光二极管。它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长且价格低廉等优点非常适合做单片机交通灯系统的模拟交通灯。连接时也要注意 LED 灯的单相导电性,接反将会导致交通灯无法正常使用。LED 交通灯利用发光二极管来显示不同颜色的信号指示灯。LED 显示电路如图所示。9图 2-5 LED 显示电路1.5.5 数码管显示数码管显示数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为 1 位、2
19、位、4 位等数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。由于它的价格便宜使用简单在家用电器领域应用极为广泛。此系统用动态
20、显示方式点亮 4 个 2 位数码管,各个共阳极数码管相应的段选控制端并联在一起由 PO 口控制,并用驱动器驱动。各位数码管的公共端,也称为“位选端”由单片机的 P1 口控制。10图 2-6 数码管显示电路1.5.6 键盘输入电路键盘输入电路单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个 I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的 I/O 少。根据本设计的需要这里选用了独立式键盘接法。独立式键盘的实现方法是利用单片机 I/O 口读取口的电平高低来判断是否有按键按下。将常开按键的一端接地,另一
21、端接一个 I/O 口,程序开始时将此 I/O 口置于高电平,平时无按键按下时 I/O 口保护高电平。当有键按下时,此 I/O 口与地短路迫使 I/O 口为低电平。按键释放后,单片机内部的上拉电阻使 I/O 口仍然保持高电平。我们所要做的就是在程序中查寻此 I/O 口的电平状态就可以了解是否有按键按下的动作了。在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般 10200 毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机
22、而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时 10200 毫秒以避开抖动(经典值为 20 毫秒),延时结束后再读一次 I/O 口的值,这一次的值如果为 1 表示低电平的时间不到 10200 毫秒,视为干扰信号。当读出的值是 0 时则表示有按键按下,调用相应的处理程序。键盘控制电路如下图所示:11图 2-7 键盘控制电路1.5.7 系统硬件原理图系统硬件原理图图 2-8 原理图121.6 系统软件程序的设计系统软件程序的设计1.6.1 程序主体
23、设计流程程序主体设计流程全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED 显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和 50ms 扫描程序。流程图如图所示。图 2-9 主体设计流程图1.6.2 子程序模块设计子程序模块设计按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机 I/O 口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个 I/O 口,程序开始时将此 I/O 口置于高电平,平时无键按下时 I/O 口
24、保护高电平。当有键按下时,此I/O 口与地短路迫使 I/O 口为低电平。按键释放后,单片机内部的上拉电阻使 I/O 口仍然保持高电平。我们所要做的就是在程序中查寻此 I/O 口的电平状态就可以了解我们是否有按键动作了。定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。13中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序流程图如图所示。图 2-10 中断程序流程141.6.3 LED 灯循环流程图灯循环流程图图 2-11 LED 灯循环流程图152.2.设计过程中遇到的问题与解决措施设计过程中遇到的问题与解决措施2.1 设计过程中遇到的问题设计过程中遇到
25、的问题问题一:为了能够让交通灯在正常的状态下运作,应该有一个稳定的电源。问题二:电路板元器件安装完成焊接好后,接上外接电源后通电发现一个 LED 灯不亮。2.2 解决措施解决措施解决措施一:使用相对稳定的外接电源。这个方案的好处是性能比较稳定安全,缺陷是每一个部分都使用独立的电源,令系统变得更复杂,并且有几率改变电路电平。解决措施二:用数字万用表蜂鸣档测量,发现 LED 灯不亮,交换表笔测量后发现 LED亮了,LED 接反了导致通电后不亮,使用吸锡器和电烙铁将接反了的 LED 拆下,确定极性方向插接正确后进行上锡操作,通电后正常亮灯。16三、设计成果简介1.1.作品的特点作品的特点1.1 技术
26、指标技术指标1.紧急模式:十字路口东西南北方向亮红灯,提示路口中的车辆禁止通过需停止等待。在有紧急车辆(救护车、警用车、消防车等)通过路口时,紧急模式能引导路口其它车辆根据实际交通情况通过路口,特殊车辆优先通过路口。2.夜间模式:十字路口东西南北方向亮黄灯,提示路口中的车辆需观察路口交通情况确认安全后再通过。在有紧急车辆(救护车、警用车、消防车等)通过路口时,夜间模式能引导路口其它车辆根据实际交通情况通过路口,特殊车辆优先通过路口。3.倒计时时间加减调节和方向切换调节:该功能可以设置十字路口东西南北方向的交通状态,可设置调节东西方向和南北方向的红绿黄灯的倒计时时间,根据主干道、次干道的车流量设
27、置合理的红绿黄灯的倒计时时间。1.2 性能特点性能特点(1)STC89C51 具有优异的性价比、集成度高、体积小、可靠性高等,控制功能强、低电压、低功耗、易扩展功能。(2)能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。按键可以控制禁行、复位、东西通行、南北通行、时间加、时间减、方向切换功能。1.3 创新之处创新之处本设计采用 STC89C51 单片机及外围器件构成最小控制系统,12 个发光二极管分成 4组红绿黄灯构成信号灯指示模块,8 个数码管东西南北各两个构成倒计时数码管显示模块,若干按键组成时间设置和模式选择等构成一个交通灯控制系统。集成度高、体积
28、小、可靠性高、低电压、低功耗等。1.4 实用性实用性单片机物美价廉、功能强大、使用方便、可靠性高、实用性高等特点,广泛应用于医疗设备,例如医用呼吸机,各种分析仪、监视器、超声诊断设备、病床呼叫系统等。在工业测17控领域,一些测量系统通常由单片机构成,可实现工业领域的智能数据采集和处理,并可显示多功能数字显示和宽屏范围自动切换,取代了传统的模拟显示器。单片机还广泛应用于家用电器控制,例如电饭煲、洗衣机、冰箱、空调、彩电等其他音频和视频设备。单片机还广泛应用于汽车电子,例如汽车中的发动机控制器、GPS 导航系统、ABS 防抱死制动系统、制动系统和轮胎压力检测。本设计是运用单片机来制作一个模拟交通灯
29、控制系统来控制十字路口的交通,有效、科学的控制引导过往的车辆和人流。通过对现在的交通灯的了解和研究,除了自动控制红绿灯的变化以外,还有在紧急的特殊情况下,还可以手动的变换红绿灯来使一些特殊的车辆快速通过交通路口等。2.2.对毕业设计进行归纳和总结对毕业设计进行归纳和总结通过做这次毕业设计的过程中我学到了很多新的知识并且巩固了已学的专业理论知识,对于 keil 编程软件、proteus 仿真软件、Altium 硬件电路设计软件和 WPS office 办公软件的使用更加熟练了,我的学习能力和动手能力得到了提高。在做毕业设计过程中也遇到了自己不会的问题,自己通过网上查阅资料,查阅资料的过程是浮躁的
30、,需要把心态摆正耐心地把遇到的问题简单化,不能急于求成,功夫不负有心人,问题得到了解决。这次毕业设计也是一个学习的机会锻炼的机会,独处的时间比较多,自学能力和独立思考能力、分析问题能力也得到了提高。此毕业设计结合了自己在校所学的专业理论知识以及以往积累的学习经验和工作经验,在指导老师和同学们的帮助下,我顺利的完成了毕业设计。通过此次毕业设计我对所学的专业有了进一步的认识,对将来所从事得行业的工作有了更深的了解,给即将迈入社会工作打下了坚实的基础。3.3.提出建议和改进意见提出建议和改进意见在原有的功能上加一个红外线感应模块,通过红外线感应器感应十字路口车流量,自动控制东西南北方向的交通信号灯时
31、间,从而减少交通堵塞,提高出行效率。4.4.待解决的问题待解决的问题供电问题,该交通灯模块电路需要单独外接电源供电,一旦停电该模块也就失效了,十字路口的交通秩序就会受到影响,可能会引发车祸,这时需要靠交警用手势来控制交通秩序,各方向的车辆根据十字路口中交警的手势通过路口。185.5.程序代码、设计图纸、测试文件等资料的截图程序代码、设计图纸、测试文件等资料的截图5.1 设计图纸设计图纸图 3-1 原理图5.2PCB 图图图 3-2 PCB 图195.3 实物图实物图图 3-3 实物正面图图 3-4 实物背面图205.4 仿真图仿真图图 3-5 仿真图5.5 程序测试图程序测试图图 3-6 程序
32、测试图5.6 程序代码程序代码#include 21#define uchar unsigned char#define uintunsigned intuchar data buf4;uchar data sec_dx=20;uchar data sec_nb=30;uchar data set_time dx=20;uchar data set_time nb=30;int n;uchar data countt0,countt1;sbitk4=P37;sbitk1=P35;sbitk2=P36;sbitk3=P34;sbitk5=P31;sbitk6=P15;sbit Red_nb=P2
33、6;sbit Yellow_nb=P25;sbit Green_nb=P24;sbit Red_dx=P23;sbit Yellow_dx=P22;sbit Green_dx=P21;bit set=0;bit dx_nb=0;bit shanruo=0;bit yejian=0;uchar code table11=0 x3f,/-00 x06,/-1220 x5b,/-20 x4f,/-30 x66,/-40 x6d,/-50 x7d,/-60 x07,/-70 x7f,/-80 x6f,/-90 x00/-NULL;void delay(int ms);void key();void k
34、ey_to1();void key_to2();void key_to3();void display();void logo();void Buzzer();void main()TMOD=0X11;TH1=0X3C;TL1=0XB0;TH0=0X3C;TL0=0XB0;EA=1;ET0=1;ET1=1;TR0=1;TR1=0;logo();P2=0Xc3;sec_nb=sec_dx+5;23while(1)key();display();void key(void)if(k1!=1)display();if(k1!=1)TR0=0;shanruo=0;P2=0 x00;TR1=0;if(s
35、et=0)set_timedx+;elseset_timenb+;if(set_timenb=100)set_timenb=1;if(set_timedx=100)set_timedx=1;sec_nb=set_timenb;sec_dx=set_timedx;dodisplay();while(k1!=1);24if(k2!=1)display();if(k2!=1)TR0=0;shanruo=0;P2=0 x00;TR1=0;if(set=0)set_timedx-;elseset_timenb-;if(set_timenb=0)set_timenb=99;if(set_timedx=0)
36、set_timedx=99;sec_nb=set_timenb;sec_dx=set_timedx;dodisplay();while(k2!=1);if(k3!=1)display();if(k3!=1)TR0=1;sec_nb=set_timenb;25sec_dx=set_timedx;TR1=0;if(set=0)P2=0X00;Green_dx=1;Red_nb=1;sec_nb=sec_dx+5;elseP2=0 x00;Green_nb=1;Red_dx=1;sec_dx=sec_nb+5;if(k4!=1)display();if(k4!=1)TR0=0;set=!set;TR
37、1=0;dx_nb=set;dodisplay();while(k4!=1);26if(k5!=1)display();if(k5!=1)TR0=0;P2=0 x00;Red_dx=1;Red_nb=1;TR1=0;sec_dx=00;sec_nb=00;dodisplay();while(k5!=1);if(k6!=1)display();if(k6!=1)TR0=0;P2=0 x00;TR1=1;sec_dx=00;sec_nb=00;dodisplay();while(k6!=1);27void display(void)buf1=sec_nb/10;buf2=sec_nb%10;buf
38、3=sec_dx/10;buf0=sec_dx%10;P1=0 xff;P0=0 x00;P1=0 xfe;P0=tablebuf1;delay(1);P1=0 xff;P0=0 x00;P1=0 xfd;P0=tablebuf2;delay(1);P1=0 xff;P0=0 x00;P1=0Xfb;P0=tablebuf3;delay(1);P1=0 xff;P0=0 x00;P1=0Xf7;P0=tablebuf0;delay(1);28void time0(void)interrupt 1 using 1TH0=0X3C;TL0=0XB0;TR0=1;countt0+;if(countt
39、0=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)countt0=0;sec_dx-;sec_nb-;if(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;Yellow_nb=1;29if(sec_dx=0&sec_nb=5)sec_
40、dx=5;shanruo=1;if(sec_nb=0&sec_dx=5)sec_nb=5;shanruo=1;if(dx_nb=0&sec_nb=0)P2=0 x00;Green_nb=1;Red_dx=1;dx_nb=!dx_nb;shanruo=0;sec_nb=set_timenb;sec_dx=set_timenb+5;if(dx_nb=1&sec_dx=0)P2=0X00;Green_dx=1;Red_nb=1;dx_nb=!dx_nb;shanruo=0;sec_dx=set_timedx;sec_nb=set_timedx+5;void time1(void)interrupt
41、3TH1=0X3C;30TL1=0XB0;countt1+;if(countt1=10)Yellow_nb=0;Yellow_dx=0;if(countt1=20)countt1=0;Yellow_nb=1;Yellow_dx=1;void logo()for(n=0;n50;n+)P0=0 x40;P1=0 xfe;delay(1);P1=0 xfd;delay(1);P1=0Xfb;delay(1);P1=0Xf7;delay(1);P1=0 xff;void delay(int ms)uint j,k;for(j=0;jms;j+)31for(k=0;k124;k+);33五、参考文献l
42、边海龙,孙永奎.单片机开发与典型工程项目实例详解J.电子工业出版社,2008,(10):143-160.2王为青,邱文勋.51 单片机开发案例精选J.人民邮电出版社,2001,(5):45-47.3张鑫,华臻,陈书谦.单片机原理及应用J.电子工业出版社,2008(5).4张洪润,张亚凡.单片机原理及应用J.清华大学出版社,2005,(4).5黄智伟.凌阳单片机课程设计指导J.北京航空航天大学出版社,2007,(6)6蒋辉平,周国雄.基于 Proteus 的单片机系统设计与仿真实例M.机械工业出版社,2009.7张毅坤.单片微型计算机原理及应用,M西安电子科技大学出版社19988余锡存 曹国华.单片机原理及接口技术M.陕西:西安电子科技大学出版社,2000.79雷丽文 等.微机原理与接口技术M.北京:电子工业出版社,1997.10张萌单片机应用系统开发综合实例第二版清华大学出版社2005 年11何立民单片机应用文集第一版北京航空航天大学出版社2004 年12张一工现代电力电子技术原理与应用第一版科学出版社2002 年13欧阳文ATMEL89 系列单片机的原理与开发实践第一版中国电力出版社2007 年