基于单片机的智能交通灯控制系统设计毕业设计..doc
基于单片机的智能交通灯控制系统设计摘要:本设计是采用AT89C51单片机来实现对交通灯的智能控制,采用LED数码管显示通行或禁行的倒计时时间。根据交通灯控制系统的要求,设定四种紧急突发状况,如加长东西南北方向的通行时间,四个方向均禁行,东西方向保持通行南北方向禁行,南北方向保持通行东西方向禁行等。关键词:AT89C51;LED数码管;交通灯The design of intelligent traffic light control system based on MCUAbstract: This design is the use of AT89C51 microcontroller to realize intelligent control the traffic lights, and uses LED digital tube to display the countdown time pass or cut the line. According to the traffic light control system requirements, setup four kinds of emergency situations, such as the direction of the passage time lengthened the four corners of the world, four directions are forbidden, east-west direction to keep traffic south direction of the cut line, the north south direction to keep traffic direction cut line etc.Keywords: AT89C51, LED digital tube, traffic lights目录第一章 绪论31.1 交通灯控制系统的背景及意义31.2国内交通灯控制系统研究现状51.3交通灯控制系统的技术特点51.4本次设计研究的内容6第二章 交通灯控制系统系统的总体设计82.1设计任务82.2方案介绍8第三章 交通灯控制系统硬件设计103.1控制系统硬件构成及原理103.2单片机103.2.1时钟电路113.2.2复位电路133.3按键电路143.4交通灯电路173.5数码管显示电路18第四章 交通灯控制系统的软件设计204.1 程序设计204.2 主程序204.3按键扫描子程序模块214.4定时器中断处理程序模块22第五章 结论与体会26第一章 绪论1.1 交通灯控制系统的背景及意义随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象,成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可或缺的作用。本文就控制交通灯的方法进行了讨论,分析了各种方案的性价比,并用软、硬件加以实现。而后对 “十字交叉路口交通灯控制”进行了分析。最后,还对城市交通灯网的控制进行了展望。希望能给有关政府部门一些参考,更好地改善我们的城市交通。现今的交通发展迅速,车辆极具增加,马路不断扩宽,人行横道相对较少。在车流量较大的地段即便有人行横道,行人也很难通过马路。行人自控指示灯系统可以有效的改善这种状况。特别是像北京这样的大都市,经济飞速发展,车辆繁多,人口密集。 早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早期交通流量不大的情况曾起过一定的作用。但随着汽车工业的发展、交通流量增加、随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。 计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。中国要发展,交通事业决不能停步不前。所以我国交通管制系统应当以人性化、智能化为目的,做出相应的改善。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。在实时检测和自动控制的单片机应用系统中,单片机是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。1.2国内交通灯控制系统研究现状 我国城市交通运输的现状和存在的问题,借鉴国外城市交通管理的先进经验,强调建立城市交通管理体制的重要性,提出加强城市交通研究的交通规划,建立稳定的交通基础设施建设的资金出道,实行公交优先政策,建立先进的交通信息系统等对策。 随着城市机动车增长速度的加快。1994年卧轨城市机动车保有量已接近500完辆。20世纪90年代以来,经济的发展加快,从1985年到1995年,机动车增长率达13%左右,近几年更是增多。 然而,在此同时,城市道路建设规模也在加大,我国城市普遍存在道路密度,道路面积率偏低的问题,这是我国城市哟其是大城市有机的一个重要原因。我国城市道路的密度只有6.8km每平方千米,而在20世纪80年代,世界发达国家就已到达20km每平方千米。20世纪90年代,我国部分城市道路面积率,北京为5.9%,上海为6.4%,而国外东京为13.8%,巴黎为25%,普遍高于我国。近几年,国家虽不断加大城市道路建设的力度,但仍赶不上车辆的增长速度,且与世界其他国家相比,差距仍很大。出租车以及公交的发展运营情况并不尽如人意,虽然车辆和线路长度增长,但运营速度成了瓶颈,新增的运力被运输效率低下所抵消。 1.3交通灯控制系统的技术特点 道路交通控制的目的可定义为:在确定的行政规定约束下,采用合适的营运方法来确保公共和私人运输方式具有最佳的交通运行状态。围绕这一目的研制出的道路交通控制系统,把受控对象看成一个整体,采用对交通流科学地时间分割的方法,最大限度地保证交通流运动的连续性,使受控区域的交通流减少冲突,同时平稳地、有规则地运动。道路交通控制的作用主要表现为以下几个方面:(1)改善交通秩序,增加交通安全。(2)减少交通延误,提高经济效益。 (3)降低污染程度,保护生态环境。 (4)节省能源和土地消耗。1.4本次设计研究的内容 基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,且功能强大的单片机芯片为控制中心,设计出一套十字路口的交通控制系统,以指挥该路口的实时通行状态。本设计主要做了如下几方面的工作: 一、确定系统交通控制的总体设计,包括十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,紧急状况处理和键盘可设置等强大功能。 二、硬件电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。三、进行软件系统的设计,对于本系统,程序采用C语言编写,因为C语言是一种结构化语言,还有着丰富的数据类型。与和汇编语言相比,C语言程序结构清晰,可读性强;具有较强的数据处理能力。对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。本课题是基于单片机的智能交通灯控制系统设计,使其能模仿城市十字路口交通灯的功能,并能满足特殊的控制要求。第二章 交通灯控制系统系统的总体设计2.1设计任务一、控制东西南北方向的红黄绿灯正常工作:东西和南北方向分时通行和禁行,通行时间均为30s或60s(可以进行控制转换);通行方向亮绿灯30s或60s后,通行方向黄灯闪烁3秒(每秒闪一次),禁行方向亮红灯。 二、LED显示剩余时间:四个方向均采用LED数码管显示通行或禁行的剩余时间。三、紧急状态的设计 在交通状况出现以下四种特殊情况时,可以通过按键操作进入特殊情况执行任务: (1)加长东西南北方向的通行时间;(2)四个方向均禁行;(3)东西方向保持通行南北方向禁行;(4)南北方向保持通行东西方向禁行。当特殊情况结束时,按键操作进入正常状态。2.2方案介绍 本设计以89c51单片机为核心处理器,实现对模拟十字路口交通灯的控制。在实验中交通灯用12个红、黄、绿单色LED灯模拟。用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,而接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了紧急状态下的运行。本设计系统以单片机为控制核心,连接成最小系统,由独立式键盘模块、复位电路模块、晶振电路模块产生输入,LED信号灯状态模块,数码管倒计时模块接受输出。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时紧急按键信号,以达到对异常状态进行实时控制的目的。第三章 交通灯控制系统硬件设计3.1控制系统硬件构成及原理 本设计硬件模块主要采用以下基本模块来实现,单片机、按键输入模块、数码管显示模块、交通灯控制模块。 本次设计的控制系统原理是由按键输入指令信息,通过单片机控制数码管的显示以及交通灯的状态变化。3.2单片机单片机是一种集成电路芯片,采集超大规模集成电路技术把具有数据处理能力(如算数运算、逻辑运算、数据传送、中断处理)的微型处理器,随机存取数据存储器(RAM)、只读程序存储器(ROM)、输入/输出电路(I/O),可能还包括定时/计数器、串行通信口(SCI)、显示驱动电路(LCD或LED驱动电路)、脉宽调制电路(PWM)、模拟多路转化器及A/D转化器等电路集成到一片芯片上,构成一个最小而又完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效的完成程序设计者事先规定的任务。本次设计采用的单片机是AT89C51单片机,其引脚图如图3-1所示。图3-1 AT89C51单片机引脚图单片机的工作就是执行用户程序、指挥各部分硬件完成既定任务。除了单片机外,单片机能够工作的最小电路还包括时钟电路和复位电路,通常称为单片机最小系统电路。3.2.1时钟电路在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式。本次设计采用的时钟电路图如图3-2所示。图3-2单片机时钟电路在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz12MHz之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。3.2.2复位电路 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。 单片机复位电路如下图3-3所示。图3-3单片机复位电路51单片机要复位只需要在第9引脚接个高电平持续2uS就可以实现。 在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 在电路图中,电容的大小是22uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*22uF=0.22S。 复位电路的原理是单片机RST引脚接收到2uS以上的电平信号,只要保证电容的充放电时间大于2uS,即可实现复位,所以电路中的电容值是可以改变的。 按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。3.3按键电路单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。最常见的按键电路大致有,一对一的直接连接(如图3-4)和动态扫描的矩阵式连接(如图3-5)两种。图3-4独立按键电路左右两个电路作用一样,区别是左边CPU的输入端常态为高电位,按下按键时为低电位;右边的常态为低电位,按下按键是高电位。 这样的电路简单直接,一个按键独占一个端口,在按键数量较少端口数量富裕时可以直接使用。很多场合需要的按键数比较多,要尽量少地占用端口就必须使用矩阵式的按键链接。图3-5矩阵按键电路图中将按键按行列矩阵的方式排列,其中的每一行公用一根行线,每一列公用一根列线。以此图为例,16个按键,按一对一方式连接的话需要16个端口,而按这样的矩阵方式链接只需要8个端口, 本次设计因为使用的按键个数不多,所以采用的按键电路是独立按键电路如图3-6。图3-6 按键电路当单片机I/O口P3.0为低电平时,S1键按下;P3.1为低电平时,S2键按下;P3.2为低电平时,S3键按下;P3.3为低电平时,S4键按下;P1.6为低电平时,S5键按下。其功能介绍见下表3-7所示。表3-7 按键功能表按键功能S1加长东西南北方向的通行时间S2四个方向均禁行S3东西方向保持通行南北方向禁行S4南北方向保持通行东西方向禁行S5开始按键3.4交通灯电路本次设计采用的是使用红、绿、黄发光二极管模拟交通灯信号灯。具体电路图如图3-8所示。图3-8交通灯显示电路本设计中信号指示系统采用LED灯指示电路,用红、绿、黄两组LED灯分分别显示控制东西和南北方向的通行指示情况。指示电路用共阳极方式连接,将所有LED灯正极连接在一起并与电源相连接,故而当AT89S52的P1口输出为低电平才有效。指示电路与单片机的联接时采用并行输出方式,将所有位的段选线并联在一起,由单片机的6位I/O口控制。 在交通中,当东西方向绿灯亮的时候,南北方向的红灯则必须同时点亮,倒计时最后5秒绿灯灭的同时东西方向黄灯闪亮作为提示,南北方向的红灯依旧亮。相反,当南北方向的绿灯亮的时候,东西方向的红灯必须点亮,然后是南北方向的黄灯闪亮和东西方向上的红灯亮。这样的过程无限循环下去便可实现道路交通的有序控制。该指示电路清晰直观,可使道路通行井然有序。3.5数码管显示电路本次设计使用的LED数码管显示电路。LED是单片机应用系统中一种常见的输出设备,通常使用的是七段显示。这种显示块有共阴极与共阳极两种。本次设计采用的是双位共阴极数码管,其实物图和管脚图如图3-10,3-9所示。图3-9 LED数码管引脚定义 图3-10 LED数码管实物图它由8个发光二极管(7段和一个小数点)构成,可用来显示09,A、B、C、D、E、F、G(小数点)。在数码管中,若把各二极管的阴极连在一起称为共阴极数码管;若把各二极管的阴极连接在一起称为共阴极数码管;若把各二极管的阳极连接在一起,则称为共阳极数码管。在本次设计中,取单片机的P0口连接到数码管中的8个发光二极管,双位数码管的十位显示连接到P2.0口,个位显示连接到P2.1口。数码管显示采用的是动态显示,由于十位和个位交替显示的时间很短,人的肉眼感觉不到数码管的十位和个位是在交替显示。当P0口为低电平且P2.0为高电平,P2.1为低电平时,数码管十位显示数字,个位不显示;当P0口为低电平且P2.1为高电平,P2.0为低电平时,数码管个位显示数字,十位不显示。具体的硬件图如图3-11所示。图3-11数码管显示电路第四章 交通灯控制系统的软件设计软件对整个系统来说是至关重要的,是整个系统的灵魂,整个系统的执行操作都是在软件的协调指挥下进行的。用于计算机程序设计的语言分为机器语言、汇编语言和高级语言。本控制系统的软件的编写主要采用C语言编写。因为C语言是一种结构化语言,还有着丰富的数据类型。与和汇编语言相比,C语言程序结构清晰,可读性强;具有较强的数据处理能力。4.1 程序设计本系统软件设计采用模块化的设计思路,即整个系统的程序软件由多个独立的子程序模块组成。按功能划分模块,整个软件系统可分为三个大模块,即主程序模块、按键扫描子程序模块和定时器中断处理子程序模块。每个模块都具有一定的功能,每个模块又可分为多个子模块,既相互独立又相互联系,低级模块可以被高级模块调用。4.2 主程序首先开始执行设定好的显示模式,并且将设定好的码值送到数码管显示,其后,判断是否到了预定的时间,若时间没到,则继续执行现有的命令。若预定时间到了,则执行下一条命令,以此周期循环。主程序流程图如图4-1所示。图4-1主程序流程图4.3按键扫描子程序模块按键处理程序是整个系统程序的起点。只有当开始键按下,整个程序才能开始运行。在程序运行的过程中,可以通过控制按键来改变交通灯和数码管显示的状态。89C51通过对IO扫描,确定是否有键按下,再判断具体是那个键按下,根据键值跳转到按键处理程序。本次设计中有以下四种情况会通过按键来改变交通灯和数码管显示的状态。(1)加长东西南北方向的通行时间;(2)四个方向均禁行;(3)东西方向保持通行南北方向禁行;(4)南北方向保持通行东西方向禁行。当特殊情况结束时,按键操作进入正常状态。按键扫描程序流程图如图4-2所示。图4-2 按键扫描子程序流程图4.4定时器中断处理程序模块本设计中采用的是定时器中断,定时器中断子程序主要是控制数码管倒计时显示。定时器为16位计数器,定时时间由下式计算: 定时时间 =(65536-计数初值)*12/晶振频率 ,计数初值=216 定时时间×晶振频率12 。 数码管采用动态扫描原理,在每次扫描以前要先关闭所有的位选,然后再送由剩余时间计算函数所计算出的剩余时间值的对应的段码,最后再开由位选标志位所对应的位码,如此便实现了数码管的动态扫描。因为动态扫描程序是写在定时器内的,而定时器定时为50ms,即每50ms扫描一位数码管,2位数码管,故100ms循环一次。中断系统由中断请求、响应中断、中断返回。在本设计中,中断流程如图4-3所示。 图4-3 中断处理流程图中断系统的子程序如下:void delay_1s1() interrupt 3num+;TH1=0X3c;TL1=0Xb0;if(num=20) num=0;second+; if(second>=2*t1+6)second=0; 第五章 结论与体会做毕业设计是为了让我们对平时学习的理论知识与实际操作相结合,在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高,学会将知识应用于实际的方法,提高分析和解决问题的能力。对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,查阅了大量的资料,初步完成了电路设计方案。虽然感觉交通灯程序没什么难的,就是数码管倒计时显示加几个闪烁的二极管就完事,但是也许是起初想的太简单,设计时到了细节处,也出了不少问题,而且很难被检查出来,比如在用定时器中断后,用一些选择语句,程序由于判断条件有疏漏,程序很容易跑飞,但是最后经过我们的不断努力,还是写出来正确的代码。通过这次毕业设计,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我们应届毕业生来说,对以后工作都有很大的影响。在此向我的指导老师表示深切的感谢和崇高的敬意,同时也对学院所提供的良好学术环境表示感激。毕业设计附录目录:1. 智能交通灯控制系统的硬件图2. 智能交通灯控制系统的源程序3. 专业翻译材料4. 毕业设计(论文)指导记录表5. 毕业答辩评审表附录1:交通灯控制系统原理图附录2:程序#include<reg51.h>#define uchar unsigned char#define uint unsigned char /有74LS240反相器的交通灯程序sbit DX_red=P10;sbit DX_yellow=P11;sbit DX_green=P12;sbit NB_green=P13;sbit NB_yellow=P14;sbit NB_red=P15;sbit add=P16;sbit case_NB=P17;sbit case_DX=P32;sbit case_DX_NB=P33;sbit P2_0=P20;sbit P2_1=P21;sbit P2_2=P22;sbit P2_3=P23;void display();void display_LED();void delay_10ms();void key_scan_add();void key_scan_case_DX();void key_scan_case_NB();void key_scan_case_DX_NB(); unsigned char action,second;unsigned char t1=5, num;uchar code table=0xc0,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /数码管显示09void main()TMOD=0x10; TH1=0X3c; TL1=0Xb0; EA=1; ET1=1; TR1=1; P3=0xff; P1=0xc0; while(1) display();display_LED();key_scan_add();key_scan_case_DX_NB(); key_scan_case_DX(); /按键加周期时间 key_scan_case_NB(); /按键减周期时间 display_LED(); /显示程序 void delay_1s1() interrupt 3num+;TH1=0X3c;TL1=0Xb0;if(num=20) num=0;second+;if(second>=2*t1+6)second=0;void delay_10ms()unsigned char a,b;for(a=100;a>0;a-)for(b=100;b>0;b-); /按键扫描开始/ void key_scan_case_DX_NB() uchar a1;if(case_DX_NB=0)delay_10ms();if(case_DX_NB=0)while(case_DX_NB)a1=1;while(a1) DX_green=0;DX_yellow=0;DX_red=1;NB_green=0;NB_yellow=0;NB_red=1;if(case_DX_NB=0)a1=0;while(case_DX_NB); void key_scan_case_DX() /按键加周期时间 uchar a2; if(case_DX=0)delay_10ms();if(case_DX=0)while(case_DX)a2=1;while(a2)DX_green=1;DX_yellow=0;DX_red=0;NB_green=0;NB_yellow=0;NB_red=1;if(case_DX=0)a2=0;while(case_DX); void key_scan_case_NB() /按键减周期时间 uchar a3;if(case_NB=0)delay_10ms();if(case_NB=0)while(case_NB)a3=1;while(a3)DX_green=0;DX_yellow=0;DX_red=1;NB_green=1;NB_yellow=0;NB_red=0;if(case_NB=0)a3=0;while(case_NB);void key_scan_add()if(add=0)delay_10ms();if(add=0)while(add);t1=t1+1; /延长红绿灯时间/正常情况下的红绿灯/void display()if(second<=t1) NB_green=1; NB_yellow=0; NB_red=0; DX_green=0; DX_yellow=0; DX_red=1; else if(second<=t1+3&&second>t1) NB_green=0; NB_red=0;if(second%2)NB_yellow=1;else NB_yellow=0; DX_green=0; DX_yellow=0; DX_red=1; else if(second<=2*t1+3&&second>t1+3) NB_green=0; NB_yellow=0; NB_red=1; DX_green=1; DX_yellow=0; DX_red=0; else if(second<=2*t1+6&&second>2*t1+3) NB_green=0; NB_yellow=0; NB_red=1; DX_green=0; DX_red=0;if(second%2)DX_yellow=1;else DX_yellow=0; /LED数码管显示/void display_LED()if(second<=t1)P2_0=1;P2_2=1;P2_1=0;P2_3=0;P0=second/10;delay_10ms();P2_0=0;P2_2=0;P2_1=1;P2_3=1;P0=second%10;delay_10ms();if(second<=t1+3&&second>t1)P2_0=1;P2_2=1;P2_1=0;P2_3=0;P0=(second-t1)/10;delay_10ms();P2_0=0;P2_2=0;P2_1=1;P2_3=1;P0=(second-t1)%10;delay_10ms();if(second<=2*t1+3&&second>t1+3) P2_0=1;P2_2=1;P2_1=0;P2_3=0;P0=(second-3-t1)/10;delay_10ms();P2_0=0;P2_2=0;P2_1=1;P2_3=1;P0=(second-3-t1)%10;delay_10ms();if(second<=2*t1+6&&second>2*t1+3)P2_0=1;P2_2=1;P2_1=0;P2_3=0;P0=(second-3-2*t1)/10;delay_10ms();P2_0=0;P2_2=0;P2_1=1;P2_3=1;P0=(second-3-2*t1)%10;delay_10ms();参考文献1 张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社 1998.2 余锡存 曹国华.单片机原理及接口技术M.陕西:西安电子科技大学出版社. 3苏家健. 单片机原理及应用技术 .高等教育出版社,2004.11.4 周航慈. 单片机程序设计基础 . 北京航空航天大学出版社,2003.07. 5李仁发、肖玲、吴强.数字逻辑设计(第四版). 人民邮电出版社,2006.05 .6 51单片机学习网 HTTP:/WWW.51C51.COM/ .7 单片机学习网 HTTP:/WWW.MCUSTUDY.COM/ .8单片机C语言应用程序设计第四版,马忠梅主编,北京航空航天大学出版社 .9单片机开发与典型工程项目实例详解,边海龙、孙永奎编著,电子工业出版社 .1051单片机C语言教程-入门、提高、开发、拓展全攻略,郭天祥 编著, 电子工业出版社 .