您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页基于51单片机的交通灯控制系统的设计

基于51单片机的交通灯控制系统的设计

来源:爱go旅游网
论文题目

【摘要】

本文根据AT89C51单片机的特点及交通灯在实际控制中的特点,提出了一种用单片机自动控制交通灯以及时

间显示的方法,同时给出了软硬件设计的方法。设计的过程包括硬件电路设计和程序设计两大步骤,对在单片机应用中可能遇到的重要设计问题都有涉足。本系统采用单片机作为核心控制器,通过红外检测系统来测量东西方向和南北方向的车流量大小,经过简单的算法得出红绿灯时间。然后分别用红、黄、绿灯的不同组合来指挥两个方向的通车与禁行,用LED数码管作为倒计时指示,实时地控制当前交通灯时间使LED显示器进行倒计时工作并与状态灯保持同步,在保持交通安全的同时最大限度地提高交通能顺畅交替运行,从而实现十字路口的智能交通控制。 关键词:单片机;交通灯;红外检测;智能控制 发发到的

【关键词】AT89C51单片机,交通控制,传感检测况判别及处理

,倒计时显示,异常状论文题目(英文)

【Abstract】 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

…………

【Keywords】 XXXXXXX XXXXXXXXXXXXX XXXXXXXXXX…………

(与中文摘要基本对应)

目 录

引 言----------------------------------------------------------------------------- 1 第一章 绪论------------------------------------------------------------------- 3

1.1研究意义-------------------------------------------------------------------- 3 1.2交通灯研究现状------------------------------------------------------------- 10

1.2.1国内城市交---------------------------------------------------------------- 4 1.2.2国际先进成果-------------------------------------------------------------- 7

1.3研究内容------------------------------------------------------------------- 15

第二章 总体方案设计----------------------------------------------------------17 第三章 硬件设计-------------------------------------------------------------- 27

3.1单片机概述------------------------------------------------------------------28 3.2电源电路--------------------------------------------------------------------28 3.3检测电路--------------------------------------------------------------------28

3.3.1红外传感器----------------------------------------------------------------- 4 3.3.2常用的红外传感------------------------------------------------------------- 7 3.3.3主动式红外传感器简--------------------------------------------------------- 4 3.3.4检测电路------------------------------------------------------------------ 7

3.4紧急按键K1电路-------------------------------------------------------------28 3.5红绿灯显示电路------------------------------------------------------28 3.6倒计时显示电路-------------------------------------------------------28 3.7振荡电路-------------------------------------------------------------28 3.8复位电路-------------------------------------------------------------28

第四章 系统软件设计------------------------------------------------------ 30

4.1主程序设计-------------------------------------------------------------28 4.2延时子程序------------------------------------------------------28

4.2.1计数器硬件----------------------------------------------------------------- 4 4.2.2软件延时------------------------------------------------------------- 7

4.3计数器计数-------------------------------------------------------28

4.4数码管显示子程------------------------------------------------------------28 4.5黄灯闪烁子程序--------------------------------------------------------28

4.6车流量算法子程序------------------------------------------------------28 4.7紧急车辆子程序------------------------------------------------------------28

第五章 系统实现------------------------------------------------------------- 30

5.1仿真软件简介-------------------------------------------------------------28

5.1.1 Proteus软件简介--------------------------------------------------------- 4 5.1.2 Keil软件简介-----

5.2仿真实现------------------------------------------------------ 5.3实物设计-----

结束语--------------------------------------------------------------------------- 32 致 谢---------------------------------------------------------------------------- 33 参考文献------------------------------------------------------------------------ 34

ABSTRACT------------------------------------------------------------------------------------------------------------- 34

附 录 程序清单------------------------------------------------------------------ 35

基于单片机的交通灯控制系统设计

摘要:

本文根据AT89C51单片机的特点及交通灯在实际控制中的特点,提出了一种用单片机自动控制交通灯以及时间显示的方法,同时给出了软硬件设计的方法。

设计的过程包括硬件电路设计和程序设计两大步骤,对在单片机应用中可能遇到的重要设计问题都有涉足。

本系统采用单片机作为核心控制器,通过红外检测系统来测量东西方向和南北方向的车流量大小,经过简单的算法得出红绿灯时间。然后分别用红、黄、绿灯的不同组合来指挥两个方向的通车与禁行,用LED数码管作为倒计时指示,实时地控制当前交通灯时间使LED显示器进行倒计时工作并与状态灯保持同步,在保持交通安全的同时最大限度地提高交通能顺畅交替运行,从而实现十字路口的智能交通控制。

关键词:

单片机AT89C51;交通灯;红外检测;智能控制

Design of a traffic control system Based on SCM

ABSTRACT:

According to the characteristics of the AT89C51 microcontroller and the characteristics of traffic lights in the actual control,the paper proposes a kind of automatic traffic lights with a single chip and method of time display and gives the hardware and software design methods. The process of design includes the hardware circuit design and programming two steps, and might encounter important problems in the design of SCP application.The system uses the SCM as the core controller and measures the east-west and north-south direction of traffic flow size through the infrared detection system. The time of traffic lights is calculated through a simple algorithm. And command the different combinations of two direction and exclude traffic with red, yellow, and green .Then use the LED digital tube as the countdown instructions ,real-time control the time of the countdown instructionslet ,make LED display lights countdown work and keep pace with the state lamp . While maintaining safety , maximize traffic flow can alternate operation.So crossroads intelligent traffic control is implemented.

Key word:

SCM AT89C51; Traffic lights; Infrared detection; Intelligent Control

1 绪论

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行,这是世界上最早的交通信号灯。1918年,又出现了带控制的红绿灯和红外线红绿灯。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定:绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线。

1.1 研究意义

随着社会经济快速发展,汽车数量的急剧增加,给城市交通带来了极大的压力。特别是在上下班高峰期,巨大的车流量使得道路拥挤,造成了不必要的时间浪费与经济损失。由此可见,交通拥塞已成为一个国际性的问题。因此,设计可靠、安全、便捷的智能交通灯控制系统有极大的现实必要性。而社会上正在使用的交通控制系统主要有两个缺陷:1、车道放行车辆时,时间设定相同且固定,十字路口经常出现主车道车辆多,放行时间短,车流无法在规定时间内通过,而副车道车辆少,放行时间明显过长;2、未考虑急车强通(例如,消防车执行紧急任务时,两车道都应等待消防车通过)。由于交通信号灯控制系统缺乏有效的应急措施,导致十字路口交通受阻,造成不必要的经济损失。

本系统利用AT89C51单片机,实现了根据区域车流量、红外检测或者人为操作进行十字路口交通信号灯智能控制,并在软硬件方面采取一些改进措施,实现了根据十字路口车流、红外检测量进行交通信号灯智能控制,并且在紧急情况下,可以使用紧急按键使两路口都为红灯,让紧急车辆通过后再恢复正常通车,这样,交通信号灯现场控制灵活、有效,从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理等问题,并可通过人为控制来解决紧急车辆强通问题。该系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,并且具有良好的扩展完善特点,有广泛的应用前景。

1.2 交通灯研究现状

1.2.1 国内城市交通现状

汽车进入家庭步伐的加快和城市汽车数量的增多, 城市道路交通问题显得越来越重要。我们在马路上经常会看到这种现象: 一旦整个路口的交通信号灯出现故障, 若没有交警的及时疏导, 该路口就会塞得一塌糊涂。原交通信号控制大都采用继电器实现, 存在着功能少、可靠性差、维护量大等缺点,越来越不能适应城市道路交通高速发展的要求。另外, 根据人车流量的多少, 可能随时增加路口的交通信号, 比如增加转弯或人行道交通信号, 原有系统的制约性就更明显了。交通问题在现在乃至将来的一段时间内仍是制约国内各大中城市发展的主要问题之一。

以北京为例,“开车没有骑车快,坐车没有走路快”,这种现象在北京交通高峰时段已是见怪不怪。当年,奥委会在《申办城市手册》中谈到交通问题时指出:“成功举办奥运会的关键因素是要有一个有效的交通系统”,而“北京正面临着经济发展和城市快速扩展而产生的交通需求挑战”,从而可见一个有效的先进的交通系统的重要性。

目前各城市都在不断改善交通设施,改进各十字路口交通灯控制方式,都得到了很好的效果。

1.2.2 国际先进成果

智能控制交通系统是目前研究的方向,也已经取得不少成果,在少数几个先进国家已采用智能方式来控制交通信号,其中主要运用GPS全球定位系统等。出于便捷和效果的综合考虑,可以制作传感器探测车辆数量来控制交通灯的时长。具体如下:在入路口的各个方向附近的地下按要求埋设感应线圈,当汽车经过时就会产生涡流损耗,环状绝缘电线的电感开始减少,即可检测出汽车的通过,并将这一信号转换为标准脉冲信号作为单片机的控制输入,并用单片机的计数器计数,按一定控制规律自动调节红绿灯的时长。比较传统的定时交通灯控制与智能交通灯控制,可知后者的最大优点在于减缓滞流现象,也不会出现空道占时的情形,提高了公路交通通行率。目前,基于单片机的智能交通系统在国内外还处于研究发展阶段,但已取得了很大的研究成果,得到了丰富的理论知识。

1.3 研究内容

综合研究和分析国内外交通灯的研究技术以及方向,总结各类检测车流量技术的特点和应用前景,利用现有的检测技术和控制技术设计一种基于51单片机的交通灯智能控制的装置。本次毕业设计设计一个主动式红外对射式传感器和单片机在交通系统中的应用设计,基本研究内容有以下几点: 1)学习并熟悉单片机的基本结构、引脚功能说明等硬件方面的知识。

2)在传感器上,主要使用的是红外传感器,在这方面我们要了解传感器的工作原理,传感器是该系统的检测部分的核心之一,它关系到其它各个部分的运行和操作。

3)学会利用多种语言编写单片机的程序,特别是高级语言的使用会极大地降低编写程序的复杂性。

4)在电路方面,我们要了解电路的作用,电路的工作原理,电路的设计原理,加深我们对电路知识的学习。

5)要熟悉系统设计思路,组织电路的设计,了解整个电路的联系,将其组成一个整体,实现最终的设计思路。

2 总体方案设计

本文是采用了以AT89C51单片机为核心的控制方案。方案中通过遮光式的红外传感器来检测东西方向和南北方向的车流量大小,再经过一定的简单算法算出各方向上的红绿灯时间并在数码管显示器上显示倒计时,同时通过路口上的红绿灯的点亮与熄灭控制车辆的通行与停止。另外,方案中还设计一个紧急车辆通行按键,每当有紧急车辆需要通过时,操作员按下按键,东西方向和南北方向上均为红灯,并发出警报禁止普通车辆的通行,先让紧急车辆通过。东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间,指示灯燃亮的方案如表2-1。

表2-1 指示灯的燃亮方案表

东西道 南北道 (T1-3)s 红灯亮 绿灯亮 3s 黄灯亮 黄灯亮 (T2-3)s 绿灯亮 红灯亮 3s 黄灯亮 黄灯亮 …… …… …… 表2-1说明: (1)当东西方向为红灯,此道车辆禁止通行;南北道为绿灯,此道车辆通过。时间为(T1-3)秒。

(2)黄灯闪烁3秒,警示车辆红、绿灯的状态即将切换。

(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过。时间为(T2-3)秒。

(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样车辆就能安全畅通的通行。另外,在紧急情况下,操作员可以通过紧急按键K1,使两路口均是红灯,禁止普通车辆通行,先让紧急车辆(例如救护车等)通过。

注:时间T1和T2均由红外传感器检测电路测的。另外,在交通灯的燃亮指示表中,东西(南北)方向绿灯的点亮时间为(T1-3)(南北方向绿灯为(T2-3)),这是因为循环时间段T1(T2)包括绿灯和黄灯的时间,扣除的3秒钟为黄灯的点亮时间,所以从时间段T1(T2)扣除黄灯的3秒钟即为东西方向的绿灯点亮时间(南北方向的绿灯点亮时间)。

3 硬件设计

本系统利用AT89C51单片机作为系统的核心控制部件,利用其定时器/计数器作为红外传感器的接收端,通过高低电平的变化来统计通过检测区域的车流量,然后通过软件计时来控制接在P0端口的红绿灯的点亮与熄灭状态,并在8段数码管(接在P1和P2端口)上显示倒计时。系统的电路图主要由电源电路、遮光式红外传感器检测电路、红绿灯显示电路、红绿灯时间倒计时电路以及紧急按键K1电路等电路组成。系统的基本原理框图如图3-1所示:

振荡电路红绿灯显示电路复位电路AT89C51单片机红外传感器检测电路数码管倒计时显示电路紧急按键K1报警电路

图3-1 系统的基本原理框图

下面从各个电路分别加以说明,首先介绍一下单片机。

3.1 单片机概述

单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。

[

[16]

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

本文中使用的AT89C51单片机是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数

器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

·数据存储器(RAM):

AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·程序存储器(ROM):

AT89C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM):

AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口:

AT89C51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 ·全双工串行口:

AT89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 ·中断系统:

AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。 ·时钟电路:

AT89C51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8951单片机需外置振荡电容。

AT89C51单片机的外形结构为40条引脚双列直插式封装,下面是单片机的引脚图,以及简单的管脚说明:

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSS12345678910111213141516171819204039383736353433323130292827262524232221VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VPP/EAALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0AT89C51

图3-2 单片机的引脚图

VCC(40脚):供电电压。

GND(20脚):接地。

XTAL1(19脚):反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18脚):来自反向振荡器的输出。 振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

RST(9脚):复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG(30脚):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN(29脚):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

P0口(32-39脚):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口(1-8脚):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口(21-28脚):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口(10-17脚):P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口管脚 备选功能

P3.0(10脚):RXD(串行输入口) P3.1(11脚):TXD(串行输出口) P3.2(12脚):/INT0(外部中断0) P3.3(13脚):/INT1(外部中断1) P3.4(14脚):T0(记时器0外部输入) P3.5(15脚):T1(记时器1外部输入) P3.6(16脚):/WR(外部数据存储器写选通) P3.7(17脚):/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

3.2 电源电路

电源采用输出为正5V直流电压的稳压电源电路。IC采用集成稳压器7805三端稳压器。它是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。当输出电流较大时,7805应配上散热板。C3为输入端滤波电容,C5为输出端滤波电容。如图3-3所示:

Vin7805VioGNDC31000ufC40.1ufC50.1ufC6100uf

图3-3 电源电路

本系统采用220V交流电电源,经过5V适配器滤波后,在固定式三端稳压器LM7805的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过LM7805的稳压和电容的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。

3.3 检测电路

检测电路是本系统能够实现智能控制红绿灯时间的关键。检测电路的核心是红外传感器,下面首先对红外传感器做一个简单地介绍:

3.3.1 红外传感器的发展

传感器被定义为能感受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置,通常由敏感元件和转换元件组成。

红外传感器是利用物体产生红外辐射的特性,实现自动检测的传感器。在物理学中,我们就已经知道可见光、不可见光、红外光及无线电等都是电磁波,它们之间的差别只是波长(或频率)的不同而已。

红外技术发展到现在,已经为大家所熟知,这种技术已经在现代科技、国防和工农业等领域获得了广泛的应用。红外传感系统是利用红外线为介质的测量系统,按照功能能够分成五类:(1)辐射计,用于辐射和光谱测量;(2)搜索和跟踪系统,用于搜索和跟踪红外目标,确定其空间位置并对它的运动进行跟踪;(3)热成像系统,可产生整个目标红外辐射的分布图像;(4)红外测距和通信系统;(5)混合系统,是指以上各类系统中的两个或者多个的组合。

[5]

红外传感器根据探测机理可分成为:光子探测器(基于光电效应)和热探测器(基于热效应)。

3.3.2常用的红外传感器 (1)红外探测器

红外系统的核心是红外探测器,按照探测的机理不同,可以分为热探测器和光子探测器两大类。 热探测器是利用辐射热效应,使探测元件接收到辐射能后引起温度升高,进而使探测器中依赖于温度的性能发生变化。检测其中某一性能的变化,便可探测出辐射。多数情况下是通过热点变化来探测辐射的。当元件接收辐射,引起非电量的物理变化时,可以通过适当的变换后测量相应的电量变化。

(2)红外测温产品:

HEITRONICS拥有40多年非接触红外测温经验,50多种红外测温仪和非接触红外测温系统可满足不同行业用户的特殊需求,提供最优非接触红外测温解决方案。在高性能和高品质的红外测温产品市场,来自德国的HEITRONICS以其在尖端领域应用中良好的品质记录,被广泛公认为是世界一流的红外测温产品供应者而受到信任。

HEITRONICS系列产品已广泛应用于冶金,玻璃,造纸,纺织,橡胶,木材,制陶,塑料涂层,沥青建筑,电子,食品,石化,水泥等工业制造、科学研究和实验领域。 (3)压电传感器

压电传感器是一种典型的有源传感器,它是以某些电介质的压电效应为基础,在外力作用下,电介质表面产生电荷,从而实现外力与电荷量间的转换,达到非电量的电测目的。

压电传感器的应用:可分为单向力,双向力和三向力传感器。压电传感器的物理基础是压电效应,压电敏感元件感受力的作用而产生电压或电荷输出,即根据输出电压或电荷的大小和极性,就可确定作用力的大小和方向。由此可见,压电传感器可以直接用于测力,或测与力有关的压力、位移、振动加速度等。 (4)磁电传感器

磁电传感器可分为两大类,一类是基于铁芯线圈电磁感应原理的磁电感应式传感器,一类是基于半导体材料磁敏效应的磁敏传感器。

磁敏管的应用:不但具有很高的磁灵敏度,同时能识别磁场极性:而且体积小,功耗低,因而具有广泛的应用前景。 (5)光电传感器

光电传感器是一种将光信号转换成电信号的装置,它具有结构简单,性能可靠,精度高,反应快等优点,在现代测量和自动控制系统中,应用非常广泛,是一种很有发展前途的新型传感器。 (6)人体热释电红外传感器介绍和应用

在电子防盗、人体探测器领域中,被动式热释电红外探测器的应用非常广泛,因其价格低廉、技术性能稳定而受到广大用户和专业人士的欢迎。 (7)无线红外传感器

无线红外传感器又称无线红外探测器是根据人体红外光谱而工作,当人体在其接受范围内活动时,探测器输出报警信号,广泛用于银行、仓库和家庭等场所的安全防范。

综上所述,每一种传感器都有他的用处和广泛的应用前景。经过比较,在本文系统中最适合采用的是光电传感器,下面再简单地介绍下。

3.3.3 主动式红外传感器简介

光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。

本文采用的是一种对射型光电传感器,即主动红外探测器。主动红外探测器由红外发射机、红外接收机和报警控制器组成。分别置于收、发端的光学系统一般采用的是光学透镜,起到将红外光束聚焦成较细的平行光束的作用,以使红外光的能量能够集中传送。红外光在人眼看不见的光谱范围,有人经过这条无形的封锁线,必然全部或部分遮挡红外光束。接收端输出的电信号的强度会因此产生变化,从而启动报警控制器发出报警信号。

主动式红外探测器遇到小动物、树叶、沙尘、雨、雪、雾遮挡则不应报警,人或相当体积的物品遮挡将发生报警。由于光束较窄,收发端安装要牢固可靠,不应受地面震动影响,而发生位移引起误报,光学系统要保持清洁,注意维护保养。因此主动式探测器所探测的是点到点,而不是一个面的范围。其特点是探测可靠性非常高。但若对一个空间进行布防,则需有多个主动式探测器,价格昂贵。主动式探测器常用于博物馆中单体贵重文物展品的布防以及工厂仓库的门窗封锁、购物中心的通道封锁、停车场的出口封锁、家居的阳台封锁等等。

主动式红外探测器有单光束、双光束、四光束之分。以发射机与接收机设置的位置不同分为对向型安装方式和反射式按装方式,反射型安装方式的接收机不是直接接收发射机发出的红外光束,而是接收由反射镜或适当的反射物(如石灰墙、门板表面光滑的油漆层)反射回的红外光束。当反射面的位置与方向发生变化或红外发射光束和反射光束之一被阻挡而使接收机无法接收到红外反射光束时发出报警信号。

对于用于检测车流量的传感器,本系统采用主动式红外对射传感器,它相对于传统的被动式热释红外传感器有以下优点:

1.主动式对射红外传感器安装于十字路口上,采用多光束综合判断,当有车辆通过遮挡时,才被触发,极大的降低了传感器的误报(例如飞鸟等);

2.天气的变化对被动式热释红外传感器产生的影响很大,而主动式对射红外传感器大大地降低了这方面的影响。

3.3.4 检测电路

从上面的介绍可知,我们利用红外传感器的红外线发射和接收方向性较强的特点,在车辆经过的路面上安装密度适当的几排红外线发射接收电路,组成红外线矩阵,在没有遮挡的情况下红外线接收电路产生高电平信号,反之产生低电平信号。因此,根据车驶入、通过、驶出测试区时等状态引起的矩阵内各点高低电平的复杂变化,通过硬件电路的设计和软件算法的处理,最终统计出经过该测量区域内双向并排经过的车辆的总流量。红外传感器的检测示意图如图3-4所示:

红外传感器发射端红外线车辆的经过会产生一个负跳变,送给单片机的计数器[5]

红外传感器接收端图3-4 红外传感器检测示意图

3.3 紧急按键K1电路

当有紧急车辆通过时,操作员可以按下紧急按键K1,K1接在单片机的P3.1端口上,这样就产生了一个高电平。而单片机通过软件程序检测到P3.1口为高电平后,再通过软件调用一段子程序,使东西和南北方向都为红灯,并接通蜂鸣器警告普通车辆禁止通行,先让紧急车辆通过。待紧急车辆通过后,交通控制系统会恢复中断前的现场。其电路原理图如图3-5所示:

P3.0P3.1蜂鸣器K1图3-5 紧急按键K1电路原理图

3.4 红绿灯显示电路

交通灯最基本的功能是颜色灯的显示, 每个路口均需红、黄、绿灯各一盏,东、西道上的两组同色灯蝉联在一起,南、北道的两组同色也彼此互联。这6盏灯分别接在单片机的P0.0-P0.5口,如图3-6所示。D1、D2、D3分别代表的是东西方向的绿、黄、红灯;N1、N2、N3分别代表的是南北方向的绿、黄、红灯。当东西方向为绿灯时,P0.0口输出低电平,绿灯D1点亮;对应地,P0.6口也输出低电平,南北方向的红灯N3点亮。当东西方向为红灯时,P0.2口输出低电平,红灯D3点亮;对应地,P0.3口也输出低电平,南北方向的绿灯N1点亮。而当东西方向和南北方向均为黄灯时,黄灯会以2HZ的频率闪烁(通过软件来实现的),提醒车辆的驾驶员注意红绿灯的转换。具体的指示灯的燃亮时间表见表2-1,下面是红绿灯与单片机的接线图:

D1D2D3N1N2N3P0.0P0.1P0.2P0.3P0.4P0.5

图3-6 东西、南北方向红绿灯与单片机接线图

3.5 倒计时显示电路

这里首先简单介绍一下7段LED数码管。LED数码管由七段发光线段组成,每条线段可以是一个(或几个)发光二极管。其结构如图3-7所示。

在图3-7中,只要使不同段的发光二极管发光,即可改变所显示的数字和字母。例如,在图3-7中,a、b、g、e、d各段的二极管发光,即可显示“2”;而a、f、g、e、d共5个发光二极管亮则可显示英文大写字母E。LED七段数码管根据其内部LED的连接方法不同,有共阴极和共阳极两种接法,如图3-8所示。

[8]

-gf+ab12345afbgd678ecDP910

ed+cDP-

abcdefgDP abcdefgDP共阳极

共阴极 图3-7 七段数码管结构图 图3-8 LED数码管的两种接法

各种数字与七段代码的关系如表3-1所示。

表3-1 段码表

数字 0 1 2 3 4 5 6 7 8 9 代码(十六进制) 共阴极 3F 06 5B 4F 66 6D 7D 07 7F 6F 共阳极 C0 F9 A4 B0 99 92 82 F8 80 90

上面简单介绍了七段数码管的显示原理。倒计时显示系统的主要功能是对红、黄、绿灯的延时时间进行倒计时,给车辆驾驶员以提示。这里使用共阴极的7段数码管作为显示设备,各个路口上两个数码管,一个显示十位,一个显示个位。本文中时间的倒计时是通过软件来实行的,将在软件部分进行具体的说明。

下面是7段数码管与单片机的接线图:

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P2.0P2.1P2.2P2.3P2.4P2.5P2.6东西方向十位东西方向个位P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6南北方向十位P2.0P2.1P2.2P2.3P2.4P2.5P2.6南北方向个位

图3-9 7段数码管与单片机接线图

3.6振荡电路

AT89C51的XTAL1和XTAL2引脚分别为单极片内反相放大器的输入/输出端,其频率范围为1.2~12MHz。XTAL2又是内部时钟发生器的输入端,这个内部反相器可与外部元件组成如图3-10所示的皮尔斯(Pierce)振荡器。当采用石英晶体振荡器时,C=(30±10)pF;当采用陶瓷谐振振荡器时,C=(40±10)pF。

在任何情况下,振荡器始终驱动内部时钟发生器向主机提供时钟信号。因为时钟发生器的输入是个二分频触发器,所以对外部振荡信号的脉宽无特殊要求,但必须保证高低电平的最小宽度。

CXTAL1[1]

XTAL2CAT89C51 图3-10 单片机振荡电路

3.7复位电路

本文中的单片机采用了外接的复位电路,并且采用了一种上电复位和手动复位的组合,复位电路图如图3-11所示。单独上电复位的电路时,并没有图3-11中与电容并联的开关,当Vcc上升时间不超过1ms,振荡器启动时间不超过10ms,则在Vcc接通电源时,这个自动上电复位电路保证在上电开机时对8951单片机进行正确的复位。当电源接通时,电源Vcc向电容充电,电流流入RST引脚。开始时,由于电容器上的电压不能突变,所以RST引脚上的电压升至等于Vcc电源电压,因为RST上的电压是Vcc和电容器上电压之差,所以随着充电过程,电容器上电压不断上升,RST引脚上的电压就不断下降。电容器容量越大,充电时间常数越大,即电容器上电压上升越慢,则RST引脚上的电压就下降越慢,必须使RST引脚上的电压保持在斯密特触发器的触发门槛电压以上足够长的时间,以满足复位操作的要求。所需的这个时间应为振荡器的起振时间再加上两个机器周期以上,因而所选的电容应足够大。如果Vcc上升时间不超过1ms,振荡器的起振时间不超过10ms,则选取10uf的电容就可提供可靠的复位。

手动复位可在上电复位基础上并接一个复位开关(如图3-11),这样既保证上电复位,又可手动复位。

单片机复位后,内部特殊功能寄存器复位后的状态为确定值。复位后,PC=00H,这表明程序从0000H地址单元开始执行。PSW=00H,表明选寄存器0组为工作寄存器组。P0至P3=FFH,表明已向各端口写入1。此时,各端口既可用于输入又可用于输出。IE=0**00000B,表明各个中断均被关断。编程时如果记住一些特殊功能寄存器复位后的状态,对于减少应用程序中的初始化是十分必要的。

[9]

Vcc复位开关K2RST/VpdR 8.2kΩAT89C51C 10ufVss

图3-11 单片机复位电路

4 系统软件设计

上面主要讲述了系统的硬件设计部分,但一个系统必须有软件(即程序)来控制计算机运行。目前,对大多数MCS-51单片机的应用系统的编程语言主要有PLM、汇编和c语言

[10]

。其中汇编和c

语言比较常用。汇编语言的机器代码生成效率很高但可读性并不强,复杂一点的程序就更难读懂,而c语言在大多数情况下,其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且c语言还可以嵌入汇编语言来解决高时效性的代码编写问题。因此,c语言是单片机开发、应用的重要趋势。目前,c语言已经成为在单片机基础上应用最为广泛的计算机语言之一。将c语言向单片机移植始于20世纪80年代的中后期。这些年,经过各公司(Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司)坚持不懈的努力,终于在20世纪90年代,单片机c语言编程开始日趋成熟。现在c语言已经成为专业化的单片机编程高级语言。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的缺点已被克服。

现在MCS-51单片机上c语言的代码长度,已经做到了只有汇编语言的1.2-1.5倍。4K字节以上的程序,c语言的优势更能得到发挥。关于执行速度的问题,只要有好的仿真器帮助,找出关键代码,进一步用人工优化,就能很简单地达到十分完美的程序。从开发速度、软件质量、结构严谨、程序坚固等方面比较,c语言的优势更多。

c语言有很多鲜明的特点,比较适于编写系统软件和大型的应用软件。下面结合MCS-51介绍单片机c语言的优越性。

(1) 不懂得单片机的指令集,也能够编写完美的单片机程序。 (2) 直接访问物理地址,可以进行位操作。

(3) 同函数的数据实行覆盖,有效利用片上有限的RAM空间。

(4) 语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性。

(5) 提供专门针对MCS-51单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址。

(6) 提供small、compact、large等编译模式,以适应片上存储器的大小。 (7) 提供常用的标准函数库,以供用户直接使用。

(8) c语言作为高级语言对机器没有依赖性,可以在各种不同的机器和操作系统上应用,而不必改写源代码(所谓的移植性好),生成目标代码的效率高。

4.1 主程序设计

本系统的程序就是用的c语言来编译的,下面是系统的主程序流程图:

开始单片机初始化赋值东西方向绿灯的初始时间初始化计数器T0/T1启动计数器T0/T1东西方向绿灯亮南北方向红灯亮倒计时减一操作是有紧急车辆通过?否否倒计时结束?是黄灯闪烁3秒钟执行紧急车辆通过程序停止计数器并计算出南北方向绿灯时间启动计数器T0/T1南北方向绿灯亮方向红灯亮倒计时减一操作有紧急车辆通过?否否倒计时结束?是黄灯闪烁3秒钟停止计数器并计算出东西方向绿灯时间是执行紧急车辆通过程序

图4-1 主程序流程图

主程序: void main() {

P3=0x00; //P3口清0

dx_cll=60; //给东西方向绿灯时间赋初值60s

TMOD=0x55; //初始化定时器/计数器T0、T1为计数模式,工作于方式1,二进制计数 while(1)

{

jishuqi(); // for(;dx_cll>3;dx_cll--) // {

P0=0xde; // timer(dx_cll,100); // while(jinji==1) int0(); // }

for(i=3;i>0;i--) // {

while(jinji==1) int0(); // P0=0xed; timer(i,50); P0=0xff;

timer(i,50); // } TR0=0;

TR1=0; // i=1;

nb_cll=suanfa(i); //

jishuqi(); // for(;nb_cll>3;nb_cll--) // {

P0=0xf3; // timer(nb_cll,100); // while(jinji==1) int0(); //计数器启动计数

东西方向绿灯倒计时,直至4s 东西方向绿灯和南北方向红灯亮 延时0.5s

检测P3.1口是否为高电平 黄灯倒计时3s 检测P3.1口是否为高电平 黄灯闪烁点亮 计数器停止计数 算出南北方向绿灯的时间 计数器启动计数

南北方向绿灯倒计时,直至4s 南北方向绿灯和南北方向红灯亮 延时0.5s

检测P3.1口是否为高电平

}

for(i=3;i>0;i--) //黄灯倒计时3s {

while(jinji==1) int0(); //检测P3.1口是否为高电平 P0=0xed; timer(i,50); P0=0xff;

timer(i,50); //黄灯闪烁点亮 } TR0=0;

TR1=0; //计数器停止计数 i=0;

dx_cll=suanfa(i); //算出东西方向绿灯的时间 } }

4.2延时子程序

单片机的1秒钟延时可以有两种方法,一种是利用AT89C51单片机内部定时器溢出中断来确定1秒的时间;另一种是采用软件延时来确定1秒的时间。

4.2.1 计数器硬件延时

(1) 计数器初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式: TC=M-C

式中,M为计数器摸值,该值和计数器工作方式有关。在方式0时M为13;在方式1时M的值为16;在方式2和3时M的值为8。

(2) 计算公式

T=(M-TC)T计数

或TC=M-T/T计数

T计数是单片机时钟周期TCLK的12倍;TC为定时初值 如单片机的主脉冲频率为TCLK12MHz,经过12分频 方式0 TMAX=2131us=8.192ms 方式1 TMAX=2161us=65.536ms

显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.

(3) 1秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。

(4) 相应程序代码

主程序:

定时器需定时50毫秒,故T0工作于方式1。

初值:TC=M-T/T计数=2-50ms/1us=15536=3CB0H ┇

void main() {

uint A ;

TMOD=0x01 ;令T0为定时器方式1

TH0=0x3c ;装入定时器初值

TL0=0xb0

IE=0x82 ;开T0中断 TR0=1 ;启动T0计数器 A=0x14 ;赋初值 _nop_() ;等待中断 ┇ }

中断服务子程序: ┇

void BRT0(void) interrupt 3 () {

16

for(;A>0;A--) //循环20次

NEXT() ;重新定时50ms

}

void NEXT() {

A=0x14 ;恢复A值

TH0=0x3c ;重装装入定时器初值

TL0=0xb0 ; IE=0x82 ;

}

4.2.2 软件延时

MCS-51系列的单片机的工作频率为2-12MHZ,我们选用的8951单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

下面给出是4ms的延时子程序:

void delay(uint z) //延时子程序4ms { }

一个for循环结构“for(y=1;y>0;y--){;}”的执行时间为8us,则上面的子程序执行周期为8us*500=4000us=4ms。主程序中用到了1s延时和0.5s延时,可以通过程序嵌套赋值z来达到1s和0.5s的延时时间。

另外,需要注意的是,算嵌套时间时要算上一个LCALL指令(2us)执行时间,还有返回指令RET(2us)执行时间。

uint x,y;

for(x=500;x>0;x--) //循环500次

for(y=z;y>0;y--);

4.3 计数器计数

由硬件部分单片机的简介,我们知道了8951包含两个计数/定时器

[12]

。T0是由TH0和TL0组合

而成,T1的结构也是一样。当T0 或T1用作计数器时,计数器的计数脉冲是从外部引脚引入的,这两个引脚分别是P3.5和P3.4,当这两个管脚出现下降沿时引发一个计数脉冲。计数脉冲引起T0和T1的当前值发生变化将不占用CPU时间。下面是计数器初始化的程序:

void jishuqi() {

TMOD=0x55; //初始化定时器/计数器T0、T1为计数模式,工作于方式1,二进制计数

TH0=0x00;

TL0=0x00; //TH,TL0清0 TH1=0x00;

TL1=0x00; //TH1,TL1清0 TR0=1; //启动T0计数 TR1=1; //启动T1计数 EA=1; //允许中断

}

在算法的子程序中,我们使用到了“x=TL0|(TH0<<8);”这样的形式,这相当于x=TH0*256+TL0,但比之于后一种形式,该方式可以得到更高的效,其后就是将x值不断地除10取整,这样将uint型数据的各位分离并送入相应的显示缓冲区。

4.4 数码管显示子程序

数码管常用的显示方法有动态显示和静态显示两种

[14]

所谓动态显示,就是单片机定时地对显示模块件扫描,在这种方法中,显示模块件分时工作,每次只能有一个器件显示,但由于人视觉的暂留现象,所以仍感觉所有的器件都在显示。此种显示的优点是使用硬件少,因而价格低。但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销太大,所以,在以工业控制为主的单片机控制系统中应用很少。

所谓静态显示,是由单片机一次输出显示后,就能保持该显示结果,直到下次送新的显示模型为止。这种显示占用机时少,显示可靠,因而在工业控制中得到了广泛的应用。这种显示方法的缺点是使用元件多,且线路比较复杂,因而成本比较高。但是,随着大规模集成电路的发展,目前已经研制出具有多种功能的显示模块件,例如,锁存器、译码器、驱动器和显示模块4位一体的显示模块件,用起来比较方便。

本文中的数码管显示使用了静态显示的方法,下面是数码管的显示子程序: void display(uchar shi,uchar ge,uchar x) //数码管显示子程序 { }

子程序中的形参shi和ge分别对应的是显示数字的十位和个位,shi和ge两个参数均是通过子函数timer算的。而形参x是用来赋值显示延时时间的参数。例如赋值x=100,通过子函数之间的调用,可以粗略地算得延时时间为1s。

P2=table[go]; //显示个位 delay(x); //调用延时程序 P1=table[shi]; //显示十位 delay(x); //调用延时程序

4.5 黄灯闪烁子程序

黄灯是警告信号,警告人们红绿灯即将转换,面对黄灯的车辆不能越过停车线,因此在这里设置黄灯闪烁点亮3s更加能引起人们的注意,从而尽量避免事故的发生。下面是黄灯闪烁3s的程序: for(i=3;i>0;i--) {

P0=0xed;

timer(i,50); //延时0.5s P0=0xff;

timer(i,50); //延时0.5s }

程序中,先执行“P0=0xed;”语句,即让两个方向路口的黄灯点亮,然后延时0.5s;而后执行“P0=0xff;”语句,即让两个方向路口的黄灯熄灭,然后延时0.5s,如此循环下去。这样就产生了黄灯闪烁的效果,来警告人们红绿灯即将转换。

4.6 车流量算法子程序

主程序中最重要的子程序即为车流量的算法子程序该子程序通过两方向实际车流量的大小

[18]

[15]

,它是交通灯系统实现智能化的重要手段。

与事先预定的车流量的大小进行一个简单的算法得出一个

合理的绿灯通行时间,使得两方向上的车流能够及时畅通地通过十字路口。我们在这里设定东西方向的预定车流量为60,南北方向的预定车流量为45。

通过主程序中的算法子程序“uint suanfa(m)”我们可以发现,局部变量x和y分别被赋值等于单片机计数器T0和T1的值,然后再进行一个简单的代数算法。这里对两方向的车流量的大小分成了三种情况:(1),若两方向上的车流量都小于或等于5,则绿灯时间都赋予20s(之所以选择20s,是因为不能让绿灯通行时间太短,便于下一阶段的车流量检测);(2),若5x=x-60; y=y-45;

z=x-y; x=x+60;

y=y-45;

if(x>90) x=90; if(y>90) y=90;

经过以上的算法之后,得到的绿灯时间完全符合正常情况的红绿灯时间,且不会太长,以免让红灯车道上的车辆等待太长时间。

4.7 紧急车辆子程序

紧急车辆的通过功能也是本系统与现在市面上正在使用的交通灯的主要区别之一,这个设计很人性化。比如,一辆救护车需要紧急救人,但在十字路口处遇到红灯,则这个功能的设计将会发挥很大的作用,为救人争取更多的时间。

当有紧急车辆需要通过时,操作员按下按键K1,单片机P0.2和P0.5输出低电平,使得接在这两个端口上的两个红灯点亮,禁止普通车辆通过。下面是紧急车辆通过的子程序:

void int0() {

P0=0xdb; baojing=1; P2=table[0]; P1=table[0];

}

5 系统实现

本系统的仿真实现主要用到了两个软件:Proteus和Keil。其中Proteus主要用来画电路图和仿真,Keil主要用来编译调试,下面分别对这两个软件进行介绍:

5.1 仿真软件简介

5.1.1 Proteus软件简介

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。下面简单地介绍一下在该软件中画电路图的步骤:

1、将所需元器件加入到对象选择器窗口。

单击对象选择器按钮,弹出“Pick Devices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中。在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加至对象选择器窗口。同样,可以添加7SEG-COM-CATHODE、BUTTON、BUZZER、CAP、RES、LED-GREEN等元器件对象。若单击AT89C51,在预览窗口中,见到AT89C51的实物图;若单击RES或7SEG-COM-CATHODE,在预览窗口中,见到RES和7SEG-COM-CATHODE的实物图。此时,我们已注意到在绘图工具栏中的元器件按钮处于选中状态。

2、放置元器件至图形编辑窗口

在对象选择器窗口中,选中7SEG-COM-CATHODE,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将AT89C51和RES等放置到图形编辑窗口中。

若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。

由于许多电阻的型号和电阻值均相同,因此可利用复制功能作图。将鼠标移到R1,单击鼠标右键,选中R1,在标准工具栏中,单击复制按钮,拖动鼠标,按下鼠标左键,将对象复制到新位置,如此反复,直到按下鼠标右键,结束复制。此时我们已经注意到,电阻名的标识,系统自动加以区分。

3、放置总线至图形编辑窗口

单击绘图工具栏中的总线按钮,使之处于选中状态。将鼠标置于图形编辑窗口,单击鼠标左键,确定总线的起始位置;移动鼠标,屏幕出现粉红色细直线,找到总线的终了位置,单击鼠标左键,再单击鼠标右键,以表示确认并结束画总线操作。此后,粉红色细直线被蓝色的粗直线所替代。

4、元器件之间的连线

Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R1的右端连接到LED显示器的A端。当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED显示器的A端的连接点时,跟着鼠标的指针就会出现一个“×”号,表明找到了LED显示器的连接点,同时屏幕上出现了粉红色的连接,单击鼠标左键,粉红色的连接线变成了深绿色,同时,线形由直线自动变成了90º的折线,这是因为我们选中了线路自动路径功能。

Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。

5、元器件与总线的连线

画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。

6、给与总线连接的导线贴标签

单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号。表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口。

在“string”栏中,输入标签名称(如a),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。

至此,我们便完成了整个电路图的绘制。

5.1.2 Keil软件简介

随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

使用Keil要使用 Keil uVision3编写一个单片机程序,通常的步骤如下:

1. 打开 Keil uVision3软件,单击菜单“Project->New…->uVisi on Project…”以建立新的工程文件。

2. 在弹出的对话框中,选择工程文件的目录,输入工程文件名,如“交通灯”,然后点击“保存”。

3. 接着在弹出的对话框中,选择你这个工程所使用的单片机型号。

4. 点击确定后,会弹出一个对话框,问你要不要把标准8951启动代码复制到工程目录下并添加到工程中,通常选“否”。

5. 然后点击工具栏“新建文件”按钮,新建一个程序源文件。

6. 点击“保存”按钮,保存新建立的源文件,如果是C语言源文件,则文件名后缀为“.c”,如果是汇编源文件,则后缀为“.a”,如果是C语言头文件,则后缀为“.h”。

7. 然后用右键点击左边的“Source Group 1”,在跳出的菜单中选中“Add Files to Group‘Source Group 1’”。

8. 在弹出的对话框中找到刚才建立的源文件,双击它,然后点击“Close”,以添加源文件到工程中。

9.然后就可以在中部右面的文本框中输入你的程序了。

10.接着,点击“Flash”菜单下的“Configure Flash Tools…”进行一下编译器相关设置。 11.在弹出的对话框中,点击“Output”标签,选中“Create Hex Fi…”左边的复选框,使它打上勾,然后点击“确定”。

12.写好程序后,就可以点击“Build target”按钮进行编译,如果程序有错误,编译时会在下面的“ Output Window”窗口中指示程序哪一行有什么错误。如果没有任何错误,则会产行一个十六进制格式的Hex文件,这个文件就是你编程的成果,把它用编程器烧写到单片机中,就可以在单片机中运行你的程序了。

至此,用 Keil uVision3就编写出来一个单片机的程序。下面就是本系统中单片机程序在Keil uVision3中编译的画面:

图5-1 Keil uVision3编译画面

5.2 仿真实现

在Proteus绘制电路图,在Keil uVision3对c语言程序进行编译调试,下面首先简单地说明Keil uVision3与Proteus相结合的仿真步骤:

1、假若Keil uVision3与Proteus均已正确安装在C:\\Program Files的目录里,把C:\\Program Files\\Labcenter Electronics\\Proteus 6 Professional\\MODELS\\VDM51.dll复制到C:\\Program Files\\keilC\\C51\\BIN目录中。

2、用记事本打开C:\\Program Files\\keilC\\C51\\TOOLS.INI文件,在[C51]栏目下加入:TDRV5=BIN\\VDM51.DLL (\"Proteus VSM Monitor-51 Driver\")。其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复(步骤1和2只需在初次使用设置)。

3、进入Keil uVision3开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51),并为该项目加入Keil uVision3源程序。

4、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮。在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好后,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。 5、Proteus的设置

进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”。此后,便可实现Keil uVision3与Proteus连接调试。

6、Keil uVision3与Proteus连接仿真调试

单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。

仿真结果如图5-2所示:

图5-2 仿真结果

如图5-2是交通灯控制系统的仿真电路,当单片机上电复位时,东西方向的绿灯点亮,初始时间为60s;相应的是南北方向的红灯点亮。需要注意的是:

(1)软件Proteus中没有系统中所使用到的反射式红外光电传感器,所以在电路图中使用两个按钮开关BUTTON代替,来模仿车辆经过红外传感器检测区时产生的高低电平变化。

(2)LED灯D1、D2、D3分别代表的是东西方向的绿、黄、红灯;N1、N2、N3分别代表的是南北方向的绿、黄、红灯。

(3)仿真中使用的数码管为7段码共阴数码管。

5.3 实物设计

在调试实物设计时,我们要用到一种软件模拟器——伟福仿真器

[20]

。这款南京伟福实业有限公

司生产的仿真器的软、硬件方面具有多种先进特点,特别是可以直接工作于Keil uVision 调试环境下进行各种多方位,动态的仿真,使用极为便利。下面我们简单地介绍一下伟福仿真器的使用步骤:

1.建立你的新程序

选择菜单[文件|新建文件]功能,出现一个文件名为NONAME1的源程序窗口,在此窗口中输入用户的程序。

2.保存你的程序

选择菜单[文件|保存文件]或[文件|另存为]功能给出文件所要保存的位置。 3.建立新的项目

选择菜单[文件|新建项目]功能,新建项目会自动分三步走:A)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。B)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。C)保存项目。在保存项目对话框中输入项目名称。MY1 无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单[窗口|项目窗口]功能来打开。可以通过仿真器设置快捷键或双击项目窗口第一行选择仿真器和要仿真的单片机。

4.设置项目

选择菜单[设置|仿真器设置]功能或按“仿真器设置”快捷图标或双击项目窗口的第一行来打开“仿真器设置”对话框。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C 语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C (V4或更低)”还是“Keil C (V5或更高)”。按“好”键确定。当仿真器设置好后,可再次保存项目。

5.编译你的程序

选择菜单[项目|编译]功能或按编译快捷图标或F9键,编译你的项目。在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了,首先我们来单步跟踪调试程序。

6.单步调试程序

选择[执行|跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=>”所指的就是下次将要执行的程序指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,此行产生了可以指行的机器指令。

7.连接硬件仿真

按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。参见第4步,设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号及仿真器的序列号。表明仿真器初始化正确。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器、仿真器的选择是否有错,硬件接线是否有错,检查纠正错误后,再次确认。直至显示如图的硬件仿真确认对话框。

按照上面的步骤利用伟福仿真器仿真正确后,然后将单片机的程序烧写到单片机中,实物即完成。

结束语

本系统采用了单片机作为核心控制器,提高了系统的可靠性和稳定性,并且系统的调试和维护方便。另外,本系统的最大一个优点是:由于采用了红外传感器车流量检测系统,红绿灯的显示时间是动态的,使十字路口更加畅通,避免了现有的交通灯系统的红绿灯显示时间固定所带来的不便;还引用了外部中断技术,使紧急车辆得以计时顺利通过。

而且,本系统中的交通灯可用型号较大的指示灯,传感器在实际中也很容易实现。本系统今后还要进一步完善, 增加更强的功能, 比如摄像机交通监控的控制、车辆转弯的交通灯的控制以及车辆闯红灯警告系统等。

通过这次毕业设计,在郑老师的悉心指导下,我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言和c语言)的掌握方面都能向前迈了一大步,并且大大地提高了我的动手能力,为日后成为合格的应用型人才打下良好的基础。

参考文献:

1、韩克 柳秀山 冯明库 薛迎霄 《电子技能与EDA技术》·第1版·曁南大学·2004.12 2、江晓安 董秀峰 《模拟电子技术》·第2版·西安电子科技大学出版社·2005.1 3、清华大学电子学教研组 余孟尝 《数字电子技术基础简明教程》·第2版·高等教育出版社·2005.5

4、周润景 袁伟亭 景晓松 《Proteus在MCS-51和ARM7A系统中的应用百例》·第1版·电子工业出版社·2006.10

5、彭志刚.利用单片机改进交通灯控制系统[J].湖南工业职业技术 学院学报,2003

6、李广弟.单片机基础[M].北京:北京航空航天大学出版社.2001 7、何立民.单片机应用技术选编[M].北京:北京航空航天大学出版 社.2004

8、张毅坤.单片微型计算机原理及应用[M].西安:西安电子科技大 学出版社,1998

9、李鸿恩,熊国奎.数字电子技术[M].重庆:重庆大学出版社,1994. 10、胡宴如.模拟电子技术[M].北京:高等教育出版社,2004

致谢

三年的大学读书生涯在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。三年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师——郑老师。我不是您最出色的学生,而您却是我最尊敬的老师之一。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。从开始进入课题到论文的顺利完成,还有很多可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。

应电0801 王晶晶

2011年1月

附录 程序清单

#include #include #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; uchar shi,ge; uint dx_cll,nb_cll,cll,i; sbit jinji=P3^1; sbit baojing=P3^0;

void delay(uint z) //延时子程序4ms { }

void display(uchar shi,uchar ge,uchar x) //数码管显示子程序 { }

void timer(uchar x,uchar y) //显示倒计时程序 { }

uint suanfa(int m) //车流量算法

shi=x/10; ge=x%10; display(shi,ge,y);

P2=table[ge]; //显示个位 delay(x); //调用延时程序 P1=table[shi]; //显示十位 delay(x); //调用延时程序 uint x,y;

for(x=500;x>0;x--) //循环500次

for(y=z;y>0;y--);

{

uint x,y,z; x=TL0|(TH1<<8); y=TL1|(TH1<<8);

if(x<=5&&y<=5) return(20); else if((5if(m==0) return(x); else if(m==1) return(y); else return(20); }

else if(x>=60&&y>=45) {

x=x-60; y=y-45; z=x-y; x=x+60; y=y-45; if(x>90) x=90; if(y>90) y=90; if(m==0) return(x); else if(m==1) return(y); else return(20); } }

void jishuqi() {

TMOD=0x55; 1,二进制计数 TH0=0x00;

TL0=0x00; TH1=0x00;

TL1=0x00; TR0=1; TR1=1; EA=1; //初始化定时器/计数器T0、T1为计数模式,工作于方式//TH,TL0清0 //TH1,TL1清0 //启动T0计数 //启动T1计数 //允许中断

}

void int0() //紧急车辆通过程序 { P0=0xdb; baojing=1; P2=table[0]; P1=table[0]; }

void main() {

P3=0x00; dx_cll=60; TMOD=0x55; 模式,工作于方式1,二进制计数 while(1)

{

jishuqi(); for(;dx_cll>3;dx_cll--) {

P0=0xde; timer(dx_cll,100); while(jinji==1) int0(); }

for(i=3;i>0;i--) {

while(jinji==1) int0(); P0=0xed; timer(i,50); P0=0xff;

timer(i,50); } TR0=0;

TR1=0; i=1;

nb_cll=suanfa(i); //P3口清0

//给东西方向绿灯时间赋初值60s //初始化定时器/计数器T0、T1为计数 //计数器启动计数

//东西方向绿灯倒计时,直至4s //东西方向绿灯和南北方向红灯亮 //延时0.5s

//检测P3.1口是否为高电平 //黄灯倒计时3s //检测P3.1口是否为高电平 //黄灯闪烁点亮 //计数器停止计数 //算出南北方向绿灯的时间

jishuqi(); //计数器启动计数

for(;nb_cll>3;nb_cll--) //南北方向绿灯倒计时,直至4s {

P0=0xf3; //南北方向绿灯和南北方向红灯亮

timer(nb_cll,100); //延时0.5s

while(jinji==1) int0(); //检测P3.1口是否为高电平 } }

}

for(i=3;i>0;i--) {

while(jinji==1) int0(); P0=0xed; timer(i,50); P0=0xff;

timer(i,50); } TR0=0;

TR1=0; i=0;

dx_cll=suanfa(i);

//黄灯倒计时3s //检测P3.1口是否为高电平 //黄灯闪烁点亮 //计数器停止计数 //算出东西方向绿灯的时间 毕业设计(论文)考核表

指导教师对毕业设计(实习)及论文的评语: 指导教师 (签名) 年 月 日 建议成绩 评阅小组或评阅人对毕业设计(论文)的评语及能否参加答辩的意见: 评阅小组负责人或评阅人 (签名) 年 月 日 建议成绩 毕业设计成果验收意见(无实物成果要求,不填此栏): 验收小组负责人 (签名) 年 月 日 建议成绩 毕业设计(论文)答辩评语: 答辩小组负责人 (签名) 年 月 日 建议成绩 答辩委员会意见: 答辩委员会负责人 (签名) 年 月 日 成 绩

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务