毕业设计说明书 GRADUATEDESIGN
设计题目:基于单片机的智能交通灯控制系统的设计 学生姓名: 专业班级: 学 院:电气工程学院 指导教师: 摘 要随着现代社会对交通运输的日趋依赖,交通灯成为了人们生活中不可或缺的一部分。传统的交通灯控制系统虽然在一定程度上可以满足指挥路口交通的需要,但随着城市规模的不断扩大,原有的交通灯控制系统已经表现出明显的缺点:红绿灯时间相对固定,不能伴随车流量的改变而调整红绿灯的显示时间。 本设计以AT89S51单片机为核心,外接外围电路构成基本电路,使硬件电路能适应所完成的控制功能。在Keil软件中编写C语言程序,最后用Proteus软件进行仿真,基本实现了智能交通灯的模拟。该系统可控制红、绿、黄灯按时间依次变换,并有倒读秒功能。在此基础上,通过传感器对车流量的情况进行数据采集。将采集的数据传送给控制中心,进行分析比较。根据比较的结果,将具体的车流量转换成两相位车流量大小的比值。根据比值转换成对红绿灯时间的控制,使交通信号灯时间可根据车流量改变,提高了交叉口的通行效率。
目录 摘 要 Abstract 第1章 绪论 1.1 课题背景 1.2 课题研究的意义 1.3 智能交通灯的研究背景 1.4 国内外研究现状 1.5 我国交通灯现状 1.6 论文结构 第2章 智能交通灯控制系统方案设计 2.1 智能交通灯控制系统的通行方案设计 2.2 智能交通灯控制系统的功能要求 2.3 智能交通灯控制系统的基本构成及原理 2.4 本章小结 第3章 系统硬件电路的设计 3.1 主要硬件的选型 3.1.1 单片机的选型 3.1.2 车流量检测传感器的选型 3.1.3 电源电路的选型 3.2 系统硬件总电路构成及原理 3.2.1 系统硬件电路构成 3.2.2 系统工作原理 3.3 AT89S51单片机简介 3.3.1 单片机的概述 3.3.2 AT89S51主要引脚功能 3.3.3 AT89S51芯片最小系统 3.4 车流量检测模块介绍 3.4.1 光电开关的工作原理 3.4.2 光电开关的分类 3.4.3 光电开关的应用 3.5 其它硬件介绍 3.5.1 发光二极管 3.5.2 七段LED 数码管 3.5.3 电源电路设计 3.5.4 蜂鸣器 3.6 本章小结 第4章 软件设计 4.1 主程序设计 4.2 车流量采样程序设计 4.3 显示程序设计 4.4 理论基础知识 4.4.1 定时器原理 4.4.2 软件延时原理 4.5 本章小结 第5章 智能交通灯的仿真 5.1 Proteus软件介绍 5.2 仿真过程介绍 5.2.1 用PROTEUS绘制原理图 5.2.2 PROTEUS对单片机内核的仿真 5.2.3 仿真结果与分析 5.3 本章小结 结束语 参考文献 谢 辞 附 录
第1章 绪论 第2章 智能交通灯控制系统方案设计2.1 智能交通灯控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态4然后循环至状态1,周而复始,即如图2.1所示: 图2.1 交通状态 通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下: (1)南北绿灯亮,东西红灯亮。此状态下,南北允许通行,东西禁止通行。 (2)南北黄灯亮,东西保持红灯亮。此状态下除了已经正在通行中的其他所以车辆都需等待状态转换。 (3)东西绿灯亮,南北红灯亮。此状态下,东西允许通行,南北禁止通行。 (4)东西黄灯亮,南北保持红灯亮。此状态下除了已经正在通行中的其他所以车辆都需等待状态转换。 下面用图表表示灯状态和行止状态的关系如下: 表2-1交通状态及红绿灯状态 东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表2.1所示。说明:0表示灭,1表示亮。 2.2 智能交通灯控制系统的功能要求 本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,车流量检测及调整,错误报警等功能。 (1)倒计时显示 倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 (2)红绿灯显示 红绿灯显示可以直观的告诉驾驶员禁行,通行和等待的信号。本设计红绿灯有四种状态:首先南北绿灯亮,东西红灯亮。一定时间后,南北黄灯开始闪烁,持续5s,东西向保持红灯亮。接着南北向红灯亮,东西绿灯亮。一定时间后,东西黄灯闪烁,持续5s,南北向保持红灯亮。 (3)车流量检测及调整 随着我国经济建设的蓬勃发展,城市人口和机动车拥有量在急剧增长,交通流量日益加大,交通拥挤堵塞现象日趋严重,交通事故时有发生。车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要的地位。现阶段,车辆检测器检测方式有很多,各有其优缺点,如遥感微波检测器、磁感应车辆检测器、红外线车辆检测器等。通过比较南北向和东西向的车流量,调节红绿灯的间隔时间。 2.3 智能交通灯控制系统的基本构成及原理 单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。
图2.2 系统的总体框图 本设计系统以单片机为控制核心,由车流量检测模块产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接受输出。系统的总体框图如图2.2所示。 2.4 本章小结 本章主要对智能交通灯控制系统方案设计进行了介绍,概述了智能交通灯控制系统的功能要求以及系统的总体框架。 第3章 系统硬件电路的设计 3.1 主要硬件的选型 实现本设计要求的具体功能,可以用单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,1个蜂鸣器进行报警。 3.1.1 单片机的选型 采用AT89S51单片机作为主控制器。AT89S51具有两个16位定时器/计数器,5个中断源,便于对车流量进行定时中断检测。32根I/O线,使其具有足够的I/O口驱动数码管及交通灯。外部存贮器寻址范围ROM、RAM64K,便于系统扩展。其T0,T1口可以对外部脉冲进行实时计数操作,故可以方便实现车流量检测信号的输入。选用AT89S51单片机跟其他单片机相比,经济实惠,满足设计要求,故选用AT89S51单片机作为主控制器。 3.1.2 车流量检测传感器的选型 车流量检测传感器有三种方案如下: 方案一: 采用遥感微波检测器(RTMS)。微波交通检测器是利用雷达线性调频技术原理,通过发射中心频率为10.525GHz或24.200GHz的连续频率调制微波(FMCW);在检测路面上,投映一个宽度为3-4米,长度为64米的微波带。每当车辆通过这个微波投映区时,都会向RTMS反射一个微波信号,RTMS接收反射的微波信号,并计算接收频率和时间的变化参数以得出车辆的速度及长度,提供车流量、道路占有率、速度和车型等实时信息。为了检测出车道上车的数量,RTMS在微波束的发射方向上以2M为一个层面分展探测物体,微波束在15度范围内投影形成一个分为32个十层面的椭圆形波束,(椭圆的宽度取决于仪器选择的工作方式),通过这种方式可检测出车量数RTMS具有两种基本的使用模式,分别是路边侧向模式和前方正向模式。路边侧向模式可以使用一台RTMS同时检测多至8条车道,并提供每条车道的交通信息。前方正向模式,用一台RTMS实时检测一条单一车道的交通情况。RTMS的检测精度高,且是一个全天候的车辆检测器。 方案二: 采用磁感应车辆检测器.这种环形线圈检测器是传统的交通检测器,是目前世界上用量最大的一种检测设备。这些埋设在道路表面下的线圈可以检测到车辆通过时的电磁变化进而精确地算出交通流量。交通流量是交通统计和交通规划的基本数据,通过这些检测结果可以用来计算占用率(表征交通密度), 在使用双线圈模式时还可以提供速度、车辆行驶方向、车型分类等数据,这些数据对于交通管理和统计是极为重要的。原理方框图如下:

图3.1 磁检测器方框图 该方案测量精度较好,且性能稳定。 方案三: 利用红外线车辆检测器。红外线车辆检测器是利用被检测物对光束的遮挡或反射,通过同步回路检测物体有无。物体不限于金属,所有能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。如当汽车通过光扫描区域时,部分或全部光束被遮挡,从而实现对车辆数据的综合检测。常利用光电开关技术,具有高速响应,抗干扰性强,不受恶劣气象条件或物体颜色的影响的优点,而且安装简便。 方案一造价高,且易受环境影响,方案二需将检测器埋入地底下,对已建成道路使用不方便。方案三性价比高,且设计简单,权衡利弊,故选用方案三。 在本系统中,采用对射式红外线光电开关HJS18-M14DNK检测车流量。该红外线光电开关工作电压为直流10-30V,检测距离为10m,响应时间小于3ms,能在-25℃~55℃的温度条件下正常工作。当有车辆通过光电开关之间时,输出端将输出一个开关信号,送入单片机,单片机执行相应程序自动对输入信号进行计数,从而完成对车流量的统计。 3.1.3 电源电路的选型 由于单片机工作时需要+5V电压,所以在设计电源电路时,需要一个三端稳压器能提供+5V电压。 三端稳压器,主要有两种:一种输出电压是固定的,称为固定输出三端稳压器;另一种输出电压是可调的,称为可调输出三端稳太器。其基本原理相同,均采用串联型稳压电路。在线性集成稳压器中,由于三端稳压器只有三个引出端子,具有外接元件少,使用方便,性能稳定,价格低廉等优点,因而得到广泛应用。 三端稳压器的通用产品有78系列(正电源)和79系列(负电源),输出电压由具体型号中的后面两个数字代表,有5V,6V,8V,9V,12V,15V,18V,24V等档次。 由于7805能够提供5V电压的三端稳压电源,在实际的电路控制中应用其作为电源电路较为广泛,在普通的电子元器件商场都有销售易于购买,并且技术相对成熟.7805一脚为电源输入端,二脚为公共接地端,三脚即为我们所需要的+5V电压输出端.本文采用最典型的7805提供电压的电路,即在7805的1脚和公共接地端(即2脚)之间接入0.3μF的电容,在公共接地端和三脚+5V电压输出端之间接入0.1μF的电容。 3.2 系统硬件总电路构成及原理 3.2.1 系统硬件电路构成 本系统实现的是对城市十字路口交通的控制,它由三大部分组成: (1)信息的采集部分; (2)单片机自动控制部分; (3)显示部分。 系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的开环控制系统。 系统硬件电路由车流量检测电路、单片机、状态灯、LED显示、蜂鸣器组成。其具体的硬件电路总图如图所示。 P0接上拉电阻与P2控制LED数码管,P1用于控制红绿黄发光二极管, INT1口接蜂鸣器,XTAL1和XTAL2接入晶振时钟电路,RESET引脚接上复位电路,T1口接车流量传感器。

图3.2 总体设计电路图 3.2.2 系统工作原理 通过车流量传感器对东西和南北两条通道的车流量的测量,将车流量信息以脉冲电平的方式传给单片机。单片机能通过程序运算得到两条通道车流量的大小来控制路口各方向的红绿灯时长,并由LED显示。以一个周期向传感器取一次数据。 信息采集主要是对路口各方向的车流量进行采集。因为关系到哪个方向通行时间长,哪个方向通行时间短。目前大多采用光学或压力传感器,以确定每个路口在一定时间段车辆通过的次数。本设计采用比例的方法利用红外线传感器只计算出需比较两个相对路口车流量的比值即可。 设计车流量传感器,一个对准东西方向取样,另一个对南北方向取样,分别取得两个代表东西和南北方向车流量a和b。用单片机巡回检测,并将他们进行比较。若二者相等则按一定时间间隔交替导通。若a>b,进入a方向绿灯延时程序。反之,进入b方向绿灯延时程序。该控制程序又根据具体的比例做时长的变换。这些工作全部由单片机完成。单片机通过接口得到a和b相对应的电压信号量,然后对其进行处理、分析和判断,改变信号灯输出时长,直接控制信号灯驱动电路,实现单片机对信号灯的智能控制。 本系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值送显P0口和用P2口来选通LED数码管的显示导通,在此同时以50ms为周期,用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。 该智能交通灯控制系统以四个状态为一周期循环。每满一个状态循环周期,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。
3.4 车流量检测模块介绍 在本系统中,采用对射式红外线光电开关HJS18-M14DNK检测车流量。该传感器工作电压为直流10-30V,检测距离为10m,响应时间小于3ms,能在-25℃~55℃的温度条件下正常工作。当有车辆通过光电开关之间时,输出端将输出一个开关信号,送入单片机,单片机执行相应程序自动对输入信号进行计数,从而完成对车流量的统计。 车流量检测传感器可对单片机控制系统提供实时数据,系统对所获数据进行处理。实现红绿灯控制必须解决对当前十字路口的交通状况的检测, 并完成如下工作: 1.输入量的采集,系统采集两个输入量,即两个方向的车流量。 2.输出量的确认,即红绿灯时间值。 为了采集上述数据,在十字路口的四侧共设置2个传感器。分别检测两个方向的车流量,车流量检测不是最终目的,在每半个循环周期,系统会检测到两个方向的车流量数据,除以时间,那么就可以得到单位时间的车流量,然后比较两个方向单位时间车流量多少,以确定下一次循环红绿灯时间,达到调整的目的。 3.4.1 光电开关的工作原理 光电开关(光电传感器)是光电接近开关的简称,它是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。物体不限于金属,所有能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。其工作原理图如图3.6所示: 
图3.6 光电开关工作原理简图 发送器对准目标发射光束,发射的光束一般来于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。 3.4.2 光电开关的分类 (1)漫反射式光电开关 它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。 (2)镜反射式光电开关 它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关信号。 (3)对射式光电开关 它包含了在结构上相互分离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最可靠的检测装置。 (4)槽式光电开关 它通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一光轴,当被检测物体经过U型槽且阻断光轴时,光电开关就产生了开关量信号。槽式光电开关比较适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用安全可靠。 (5)光纤式光电开关 它采用塑料或玻璃光纤传感器来引导光线,可以对距离远的被检测物体进行检测。通常光纤传感器分为对射式和漫反射式。但光纤式光电开关有一些缺点:适宜空间狭小、电磁干扰大、温差大。 3.4.3 光电开关的应用 随着我国工业自动化技术的迅速发展,光电开关自动化元件将被普遍采用。应用领域也在不断扩展,采用集成电路技术和SMT表面安装工艺而制造的新一代光电开关器件,具有延时、展宽、外同步、抗相互干扰、可靠性高、工作区域稳定和自诊断等智能化功能。这种新颖的光电开关是一种采用脉冲调制的主动式光电探测系统型电子开关,它所使用的冷光源有红外光、红色光、绿色光和蓝色光等,可非接触、无损伤地检测和控制各种固体。新型光电开关具有体积小、功能多、寿命长、精度高、响应速度快、检测距离远以及抗光、电、磁干扰能力强等优点。 目前,这种新型的光电开关已被用作物位检测、液位控制、产品计数、宽度判别、速度检测、定长剪切、孔洞识别、信号延时、自动门传感、色标检出、冲床和剪切机以及安全防护等诸多领域。 3.5 其它硬件介绍 3.5.1 发光二极管 根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。每个方向上设置红绿黄灯,总共4组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如图3.7所示。 
图3.7 信号灯的连接
3.5.3 电源电路设计 不管是AT89S51单片机工作电源、二极管还是数码管的驱动,都要用到+5V的直流电源,因此,一个稳定的、持续的+5V直流电源对本系统十分重要。本设计运用桥式整流电路,将交流转换为直流,可为各部分电路提供恒定的+5V直流。220V左右的交流电压,经变压器后转换为15V左右的电压,再经全波整流电桥整流后,得到一幅0-8V左右的波动直流。这一波动的直接经过电解电容C4滤波后,得到一个较平稳的直流,再经过LM7805稳压为+5V后,得到稳定的+5V直流电流,为系统提供稳定电压,保证电路的稳定性和抗干扰性,其电路如图3.9所示。图中C5用于抵消输入线较长时的电感效应,以防止电路产生自激震荡,其容量较小,本设计选择的为0.31μF的电容。图中C6用于消除输出电压中的高频噪声,本设计选用0.1μF的电容。 
图3.9 电源电路 3.5.4 蜂鸣器 本设计采用一般蜂鸣器,蜂鸣器使用PNP三极管进行驱动控制,当连接到单片机上的引脚输出为低电平,PNP导通,蜂鸣器蜂鸣;当连接到单片机上的引脚输出高电平时,PNP截止,蜂鸣器停止蜂鸣。如图3.10所示

图3.10 蜂鸣器连接 3.6 本章小结 本章首先对单片机、车流量传感器和电源模块进行了选型,接着介绍了总体设计电路图的构成及原理。第三部分详细介绍了AT89S51单片机各个管脚的功能和内部芯片,以及AT89S51单片机的最小系统。第四部分主要介绍了红外线传感器的原理。最后对其他硬件进行了介绍,如发光二极管,LED数码管以及电源电路等。 第4章 软件设计 硬件平台结构一旦确定,大的功能框架基本形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,因为软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,系统是本系统的灵魂。软件采用模块化设计方法,不但易于编程和调试,也可以减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。这里我采用了常用的C语言编程来实现的。 4.1 主程序设计 将整个流程分为四个状态如下: (1)南北绿灯亮,东西红灯亮。此状态下,南北允许通行,东西禁止通行。 (2)南北黄灯闪烁5s,东西保持红灯亮。此状态下除了已经正在通行中的其他所以车辆都需等待状态转换。 (3)东西绿灯亮,南北红灯亮。此状态下,东西允许通行,南北禁止通行。 (4)东西黄灯闪烁5s,南北保持红灯亮。此状态下除了已经正在通行中的其他所以车辆都需等待状态转换。 主程序采用查询方式定时,获取交通灯的各种状态。主程序流程图如图4.1所示。 4.2 车流量采样程序设计 车流量采样程序主要功能是采样各路口的车流量,每次红灯转换成绿灯前两秒对路口车流量进行采样,然后根据采样后得到的车流量的大小来分配红绿灯的时间。根据两方向车流量的比例分成5个区域:小于0.4,0.4-0.8,0.8-1.2,1.2-1.6,大于1.6。 时间调整在此只划定5个范围。比例小于0.4,表示南北方向车流量畅通,东西方向车流量拥挤。比例为0.4-0.8时,表示南北方向车流量比东西车流量少。比例为0.8-1.2时,表示南北车流量与东西车流量差距不大。比例为1.2-1.6时,表示南北车流量比东西车流量多。比例大于1.6时,表示南北方向车流量拥挤,东西方向车流量畅通。时间设置以40s为基准,当比例为1.2-1.6时,南北绿灯时间增加10s,东西绿灯时间减少10s。当比例为1.6以上时,南北绿灯时间增加20s,东西绿灯时间减少20s。当比例为0.4-0.8时,南北绿灯时间减少10s,东西绿灯时间增加10s。当比例为0.4以下时,南北绿灯时间减少20s,东西绿灯时间增加20s。程序流程图如图4.2所示。 根据红绿灯时间调整原理,一个周期下来,count_SN,count_EW中分别存储着南北,东西的车流量,接下来求单位时间车流量,此时南北向时间,东西向时间分别存储在tt_SN,tt_EW中,则两个方向的流量比例为(count_SN /tt_SN)/(count_EW/tt_EW)=( count_SN * tt_EW)/(count_EW * tt_SN),显然该比例是1左右带小数的值,然而单片机程序中只取整数,重要的数据信息就会丢失,所以本设计中首先将(R5*R1)乘以10,比例就变为10左右的值。将该比例值放在A,然后根据A的大小进行时间调整,具体时间设置表4-1. 表4-1 比例及调整时间

图4.1 主程序流程图

4.2 车流量程序流程图
4.3 显示程序设计
交通灯的时间显示主要是通过数码管,本设计采用动态显示数码管。其流程图如图4.3所示。  图4.3 显示程序流程图 4.4 理论基础知识 4.4.1 定时器原理 定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式: TC=M-C 式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。计算通式变为: T=(M-TC)T0 模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因, 若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。 4.4.2 软件延时原理 MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。 我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到。设定定时器需要定时50毫秒,故T0必须工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH. 4.5 本章小结 本章主要对智能交通灯软件方面进行了介绍。主要包括了三个方面的软件设计思路及原理:交通灯主程序的设计,车流量采样程序的设计以及数码管显示程序的设计。最后概述了定时器原理和软件延时原理。
第5章 智能交通灯的仿真 5.1 Proteus软件介绍 Proteus软件是英国Labcenter electronics公司开发的电路分析与实物仿真的软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,软件的特点是: (1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机外围电路组成的系统的仿真、RS232动态仿真、IIC调试器、SPI调试器、键盘和LCD系统仿真的功能:各种虚拟仪器,如示波器、逻辑分析仪、信号发生器灯。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:6800系列、8051系列、AVR系列、PIC14系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVison4等软件。 (4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能非常强大。 5.2 仿真过程介绍 5.2.1 用PROTEUS绘制原理图 运行PROTEUS VSM的ISIS后出现相应的界面,点状的栅格区域为绘图区。在左侧的上方为电路图概览区,下方则是元器件列表区。单击P后出现的Pick Device添加元器件的对话框,输入所要添加的器件名称,则该器件就会出现在右侧,单击OK按钮,完成一个元器件的添加。重复以上过程,添加好电路中所需要的元器件。在元器件列表区选中某元器件后,在电路图概览区会出现该元器件,用鼠标将其拖至绘图区,将所有需要的元器件在绘图区放置好,既开始连线。连线方法很简单,将鼠标移至元器件引脚后出现一个小十字,再次单击左键就完成了一次连线。在布线时,如果需要转弯,可以在要转弯处单击鼠标左键。
5.2.2 PROTEUS对单片机内核的仿真
PROTEUS嵌入式系统仿真软件在设计时就已经注意到和单片机各种编译程序的整合了,如它可以和Keil,Wave6000等编译模拟软件结合使用。因为Keil使用方便,具有强大的软件仿真和硬件仿真功能。把Proteus和Keil结合起来调试硬件就方便了好多,我采用的就是“Proteus+Keil”的仿真方法,具体步骤如下: 首先运行PROTEUS VSM的ISIS,画好原理图后,用鼠标左键双击单片机出现如图5.1所示定义代码生成工具对话框。 
图5.1 定义代码生成工具对话框 用Keil软件写好程序,并编译生成相应的HEX文件。电路图绘制完成后,再添加AT89S52的应用程序。鼠标移至AT89S51上,双击鼠标左键,打开如图5.2所示的对话框。在Program File栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3种格式的文件),再给AT89S52输入晶振频率。此处默认为12MHZ,单击OK按钮完成程序添加工作,下面就可以进行系统仿真了。单击主界面下方的按钮开始系统仿真。PROTEUS VSM所进行的是一种交互式仿真,在仿真进行中可以对各控制按钮、开关等进行操作,系统对输入的响应会被真实的反映出来。在这个例子里,开始仿真后,开关按钮通过鼠标单击来改变状态,改变的状态会在LED和数码管显示出来。

图5.2 创建源代码对话框 5.2.3 仿真结果与分析 设南北向为a路口,东西向车为b路口。 (1)当交通灯开始工作后,执行初始状态。系统自动进入状态1:南北向绿灯,东西向红灯,倒计时40秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时40秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.3所示。 
图5.3 默认状态仿真图 (2)当手动按下开关,使a路口车流量与b路口流量相当时,既0.5<a/b<=1.2时。系统将红绿灯时间调整为40s、40s。南北向绿灯,东西向红灯,倒计时40秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时40秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.4所示。 

图5.4 a/b=1时仿真图 (3)当手动按下开关,使a路口车流量大于b路口流量,即比例为1.2-1.6时。系统将红绿灯时间调整为50s、30s。南北向绿灯,东西向红灯,倒计时50秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时30秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.5所示。 

图5.5 比例为1.2-1.6时仿真图 (4)当手动按下开关,比例为1.6以上时。系统将红绿灯时间调整为60、20s。南北向绿灯,东西向红灯,倒计时60秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时20秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.6所示。 

图5.6 比例大于1.6时的仿真图 (5)当手动按下开关,比例为0.4-0.8时。系统将红绿灯时间调整为30、50s。南北向绿灯,东西向红灯,倒计时30秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时50秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.7所示。 

图5.7 比例为0.4-0.8时的仿真图 (6)当手动按下开关,比例小于0.4时。系统将红绿灯时间调整为20、60s。南北向绿灯,东西向红灯,倒计时20秒。倒计时到5s时,南北向黄灯开始闪烁5s,东西向保持红灯。然后,东西向绿灯亮,南北向红灯亮,倒计时60秒。倒计时到5s时,东西向黄灯开始闪烁5s,南北向保持红灯。仿真结果如图5.8所示。  
图5.8 比例小于0.4时的仿真图 5.3 本章小结 本章首先对proteus软件进行了介绍,后面展示了各种情况的仿真模拟图。 结束语 交通灯控制在交通运输领域有着非常重要的作用。本系统采用以单片机为中心控制器,实现了传统的红绿灯显示和倒读秒功能,并能根据车流量的变化自动调整红绿灯时间。 首先通过信息采集,主要是对路口各方向的车流量进行采集。本设计采用比例的方法利用红外线传感器只计算出需比较两个相对通行路口车流量的比值即可。该系统可完成红绿灯传统的控制功能,红绿黄灯按一定的规律依次循环显示,并采用LED显示器,以动态扫描的方式完成倒计时功能。在此基础上,通过传感器对车流量的情况进行数据采集。将采集的数据以脉冲信号的方式传送还给控制中心,进行分析比较。根据比较的结果,将具体的车流量转换成两车流量大小的比值。根据比值与红绿灯时长的关系输出时长控制信号,使交通信号灯可根据车流量改变,提高了交叉口的通行效率。 本论文以现有智能交通灯理论为基础,突破传统思路,使问题简化。将难点不再放在具体的车辆数的获得,以及车辆数与红绿灯时间的数学模型的建立。通过传感器取得两路口车辆数的比值。因红绿灯以秒为单位,这在控制中是精度很低的,将比值和秒数对应化数学模型很容易建立,便于实现,使智能交通信号灯从理论进入实践成为一种可能。并且系统的结构简单,成本较低。经进一步研究和完善,有望推向实际应用。
谢 辞 本次设计是在翻阅了大量资料,以及在何佳老师的大力帮助和支持下完成的。他在设计中悉心指导,提出了许多宝贵的意见和建议,帮助我们解决了许多难题,对我们的设计起到了至关重要的作用,充分显示了一位经验丰富的教师精神之高尚、学识之渊博。 在设计过程中,我受益非浅,不仅使我由对课本上的知识粗浅认识有了更进一步的理解,而且还积累了很多课本以外的知识,开阔了我的视野,丰富了我的内涵,同时还积累了很多宝贵的经验,增强了独立思考的能力,当然在这个过程中也发现自己还有许多不足之处,但整个过程对我来说就像一个实际的眼帘,这对我来说无疑是一笔宝贵的财富。四年的大学生活即将结束了,但这并比意味着学习的终止,在今后的工作和学习中,我还要不断的学习,不断地丰富和发展自己的知识,不断地提高和完善自己,不断地进步。 设计过程是充实的,内容是丰富的,我从中获得了更深层的知识,同时也锻炼了我的毅志,培养了我的耐心和细致的工作作风和严谨的科学态度,了解了工作的艰辛,这对我以后的工作和学习是大有帮助的。 本次设计是在何老师的耐心指导和其他同学的大力协助下完成的,在此深表感谢。
附 录 附录A:交通灯电路图
附录B:交通灯控制程序(见附件)
#include<reg51.h>
完整的Word格式文档51黑下载地址:
基于单片机的智能交通灯控制系统的设计.doc
(1.27 MB, 下载次数: 100)
|