1、毕业设计基于单片机的智能交通灯的设计与仿真学生姓名XX学 号050910005学 院计算机与电子工程学院专 业电子信息工程班 级电信0501班指导教师XX职 称讲 师湖 南 商 学 院2009年6月湖南商学院本科毕业设计诚信声明本人郑重声明:所呈交的本科毕业设计,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科毕业设计作者签名: 年 月 日内容摘要近年来随着科技的飞速发展
2、,单片机的应用正在不断地走向深入。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。该文介绍了一个基于单片机的智能交通灯控制系统的设计与仿真,系统能够根据十字路口双车道车流量的情况控制交通信号灯按特定的规律变化。该文首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析,指出了现状交通灯存在的缺点,并提出了改进方法。智能交通灯控制系统通常要实现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。该文还对AT89S52单片机的结构特点和重要引脚功能进行了介绍,同时对
3、智能交通灯控制系统的设计进行了详细的分析。最后介绍了PROTEUS嵌入式系统仿真与开发平台的使用方法,利用Proteus软件对交通灯控制系统进行仿真。关键词AT89S52单片机;智能交通灯控制系统;PROTEUS仿真ABSTRACTIn recent years, with the rapid development of science and technology, the application of single-chip microcomputer are to depth. In real-time detection and automatic control system of
4、 single-chip applications, Single-chip is often used as a core component, only single-chip knowledge is not enough, It should also be based on the specific hardware structure and application of object-specific features of the software to be perfect. This paper describes a microcontroller-based intel
5、ligent traffic light control system design and simulation. System at a crossroads two-lane traffic flow in accordance with the situation in control of the traffic light changes according to the laws of a particular.The first study, such as Intelligent Transportation Research significance and analysi
6、s, point out that the status quo of the shortcomings of the existence of traffic lights and made things better. Intelligent traffic light control system is usually in order to achieve automatic control and in emergency situations to manually switch the signal to allow priority access to special vehi
7、cles. The article also AT89S52 MCU pin structure and important functional characteristics are introduced, at the same time intelligent traffic light control system carried out a detailed analysis. Finally, simulation and embedded system protues development platform to use, the use of software protue
8、s traffic lights control system simulation.KEY WORDSAT89S52 single-chip microcomputer; Intelligent traffic light control system; PROTEUS simulation目 录1. 绪论11.1 课题背景11.2 课题研究意义11.3 国内外研究现状21.4 论文结构32. 方案论证与设计42.1 课题设计要求42.2 方案选择与比较42.2.1 基于数字电路的交通灯控制系统42.2.2 基于PLC的交通灯控制系统42.2.3 基于单片机的交通灯控制系统42.3 总体方案
9、设计53. 硬件电路设计73.1 单片机主控模块设计73.1.1 AT89S52介绍73.1.2 单片机主控电路设计93.2 车辆检测模块设计103.3 信号灯电路模块设计133.4 时间显示电路模块设计143.4 电源电路模块设计164. 系统软件设计174.1 主程序设计174.2 显示程序设计184.3 紧急车辆中断响应程序设计205. 智能交通灯的仿真225.1 protues软件介绍225.2 仿真过程介绍225.2.1 用protues绘制原理图225.2.2 用protues对单片机内核的仿真23结束语26参考文献27致谢29附录1 交通灯电路图30附录2 交通灯控制程序31基于
10、单片机的智能交通灯的设计与仿真1. 绪 论1.1 课题背景随着我国国民经济的迅速发展,城市街道车辆大幅度增长,给城市交通带来巨大压力,交通拥堵已经成为影响城市可持续发展的一个全局性问题。而街道各十字路口,又是车辆通行的瓶颈所在。已有的许多建立在精确模型基础上的交通系统控制方案都存在着一定的局限性。研究车辆通行规律,找出提高十字路口车辆通行效率的有效方法,对缓解交通阻塞,提高畅通率具有十分现实的意义。地面道路是一个庞大的网络,交通状况十分复杂,使目前交通灯控制器的单一时段控制已不能满足现代交通流量的多变性,特别是在交通流量高峰时,往往会造成交通路口的通过率下降,甚至出现交通混乱现象,城市的交通拥
11、挤问题正逐渐引起人们的注意。道路平面交叉口(简称交叉口)是交通网中通行能力的“隘口”和交通事故的“多发源”。因此,交叉口这个事故多发源不能不引起人们的高度关注。随着交通技术、电子技术的发展及微机技术的应用,人们设计出了适应各种需要的交通检测器、信号控制机和交通信号灯。交通灯是交管部分管理城市交通的重要工具。现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用。目前绝大部分交通灯其时间都是设定好的,采用的是单段式定时控制或多段式定时控制,其最大的缺点是绿灯时间是固定的或是分时段固定的,且最佳绿灯时间
12、的整定较为困难,需要大量的实测统计数据,且很多情况下整定所得值并不是最优的,甚至是不合理的。控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文为了实现交通道路的管理,力求交通管理先进性、科学化。分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法。实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。1.2 课题研究的意义科学技术的进步推动了交通工具的现代化,社会经济的发展则导致了交通量的急剧增长并进而加剧了交通拥挤与阻塞的严重程度,城市交通的规模与复杂性特征、传统交通控制和交通拥挤一直是困扰世界各国的难题,日前美国每年由于交通拥挤造成的直接经
13、济损失达2370亿美元,而我国国内百万人以上的大城市每年由交通拥塞造成的直接间接经济损失约计1600亿元,相当于国内生产总值的3.2%。解决城市交通问题的根本路经有两条:一是加快交通基础设施建设;二是加强交通管理。前者是发展城市交通,满足各种交通需求的物质基础;而后者则为合理使用现有交通设施。保证人车的安全,在良好的交通环境下,使现有设施的能力得以充分发挥。二者相比,由于在大城市新建和扩建道路的可能性受空间制约越来越小。当前城市交通管理的重点也侧重于加强交通管理。对平面交叉口的研究一般都是应用交通信号在时间上给车辆分配通行权,从而实现车辆在时间上的分离。智能的交通信号灯指挥着人和各种车辆的安全
14、运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行。交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。1.3 国内外研究现状目前国外较为完善的交通信号控制系统主要有英国的TRANSYT (Traffic Net work Study Tool)和SCOOT(Split, Cyc
15、le and Of set Optimization Technique,绿信比、周期和相位差优化技术)系统和澳大利亚的SCATS (Sydney coordinated adaptive traffic system),悉尼协调自适应交通系统)系统,以及美国、日本等国家开发的一些系统,其中以英国的SCOOT系统和澳大利亚的SCATS系统较为著名,它们在中国的城市(如:上海、杭州、宁波等用的是SCATS系统;成都、大连、北京等用的是SCOOT系统)也得到了较好的应用。但由于这些系统多为交通信号控制专用系统,所以开放性较差,难于同其它系统连接和协调控制,系统带有一定的局限性,并且价格比较昂贵,没
16、有充分考虑到我国的国情(如自行车交通流和行人的交通流等)。我国近几年经过深入研究,也开发出了一些适用于我国交通状况的交通控制系统,主要有上海交通大学的SUATS系统和南京、深圳等地研制的系统。这些系统在深入研究国外先进系统的基础上,融合了大量交警实际控制经验,以开放型为前提,增加了符合中国国情的特殊功能。但还不成熟,控制效果也不是很好,没有得到广泛应用。因此,结合我国国民经济,建立一个相对廉价、获取信息多且准确、工作可靠、具有智能交通控制系统势在必行。1.4 论文结构本论文简要介绍了一个基于单片机的智能交通灯控制系统的设计与仿真,系统能够根据十字路口双车道车流量的情况控制交通信号灯按特定的规律
17、变化。在绪论部分讲述了本课题的研究背景与意义、国内外智能交通控制系统的研究现状。在第二章中,基于绪论部分对单片机智能交通控制系统的了解以及现实生活中的需求,根据设计要求提出总体设计方案论证与选择。首先,简单介绍基于数字电路交通灯控制系统、基于PLC的交通灯控制系统和基于单片机的交通灯的控制系统各自的优缺点,然后经过分析比较之后,选定用单片机实现智能交通灯的设计与实现的方案并给出了系统结构图。在一、二章的基础上,第三章完成了硬件电路的设计。本章主要分为单片机主控模块设计和各个外电路模块设计第四章首先根据软件设计流程图简要介绍了软件设计,并介绍了各个程序模块的设计思想。第五章简要介绍了protue
18、s软件及电路绘制并详细叙述了如何实现电路的仿真。最后是对本课题的总结与展望,概述了系统实现的功能,前景和不足之处以及致谢、附录、参考文献等关于本次毕业设计的后续工作。附录为系统的程序清单以及整体电路图供阅读参考。2. 方案论证与设计2.1 课题设计要求 设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向能根据车流量大小自动调节通行时间,车流量大,通行时间长,车流量小,通行时间短。 每次绿灯变红灯时,要求黄灯先亮5S,才能变换运行车辆。 东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。 同步设
19、置人行横道红、绿灯指示。 考虑到特殊车辆情况,设置紧急转换开关。2.2 方案选择与比较2.2.1 基于数字电路的交通灯控制系统数字电路是我们最常用的一种控制电路,如果用纯数字电路设计本系统,完成任务较困难,电路过于复杂,对于电路各个部分电路的设计连线非常复杂,且容易出错,最主要的是系统不灵活,若需要更新,则需要重新设计电路图,而且出错的时候难以复查。并且数字与模拟电路相结合,由于采用的电路和采用的元件需要较大的电流才能工作,对工作人员的素质要求较高,元件出问题时,工作维修人员对电路的检测非常不易,对于当今电子产品日益精细化的今天,此方案不值得提倡,所以不选用。2.2.2 基于PLC的交通灯控制
20、系统P L C 是一种专门为在工业环境下应用而设计的数字运算操作的电子控制装置,应该是一个较理想的控制器选择。P L C 采用可编程的存储器,在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作指令,并能通过数字量或模拟量的输入和输出,控制各种类型的机械或生产过程。PLC控制器的编程比较简单、易懂。但PLC I/O口比较少,不能进行大量的信号输出、输入。2.2.3 基于单片机的交通灯控制系统利用单片机AT89S52,借助总线作为现场通信总线实现智能交通信号灯控制系统设计,实现了根据区域车流、以及PC机进行十字路口交通信号灯智能控制,并在软、硬件方面采取一些改进措施,实现了根据十字路口
21、车流进行交通信号灯智能控制,使交通信号灯现场控制灵活、有效。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。2.3 总体方案设计目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在缺点:两车道的车辆轮流放行时间相同且固定, 在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。为此针对道路
22、交通拥挤,交叉路口经常出现拥堵的情况。利用单片机控制技术,提出了软件和硬件设计方案及改进措施:根据各道路路口车流量的大小自动调节通行时间。用单片机设计不但设计简单,而且成本低,用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。由于AT89S52单片机自单带有2计数器,6个中断源,能满足系统的设计要求,可画出交通灯的系统结构框图,为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。系统设计结构框图如图2.1所示:东西检测点紧急控制开关南北红绿黄灯时间显示块东西红绿黄灯时间显示块 T0T1
23、AT89S52南北检测点图2.1 系统结构框图3. 硬件电路设计3.1 单片机主控模块设计采用AT89C52 为CPU,对整个系统进行控制和管理。本模块从车辆检测电路接收车流量信息,并对接收到信息进行综合分析和处理,产生相应的控制信息控制倒计时显示电路、状态灯显示电路以及紧急车通过的工作。当有紧急情况产生时,本模块还可及时中断当前的控制状态,对意外情况进行特殊处理。3.1.1 AT89S52介绍对交通灯控制系统的设计,首先应对交通灯的核心控制芯片的基本结构和特征以及主要引脚有比较详细的了解。AT89S52是美国ATMEL公司生产的低功耗,高性能 CMOS 8 位单片机,片内含 4k bytes
24、 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器 既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中,ATMEL 公司的功能强大,低价位 AT89S52 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89S52的引脚图及引脚功能如图3.1。图3.1 AT89S52引脚图AT89S52有P0、P1、P2、P3四个I/O端口。在这四个并行I/O端口中,每个端口都有双向的I/O功能,CPU可以从四个并行的I/O端口中的任何一个输出
25、数据,也可以从任何一个输入数据。每个I/O端口内部都有一个八位的数据输出锁存器和一个八位数据输入缓冲器。四个I/O端口中,P0是真正的双向I/O口它可以输出片外存储器的低八位地址码和读写数据,表3.1为P0、P1、P2、P3的管脚和功能介绍。表3.1 P0、P1、P2、P3的管脚和功能表名称管脚号类型功能P0.0-0.739-32I/OP0 口: P0 口是开漏双向口,可以写为1 使其状态为悬浮用作高阻输入。P0 也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。P1.0-1.71-8I/OP1 口: P1 口是带内部上拉的双向I/O 口,
26、向P1 口写入1时,P1 口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P1 口会因为内部上拉而输出电流。P2.0-2.721-28I/OP2 口: P2 口是带内部上拉的双向I/O 口,向P2 口写入1时,P2 口被内部上拉为高电平可用作输入口。当作为输入脚时,被外部拉低的P2 口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时分别作为地址高位字节和16 位地址(MOVX DPTR)此时通过内部强上拉传送1。 当使用8 位寻址方式(MOVRi)访问外部数据存储器时,P2 口发送P2 特殊功能寄存。P3.0-3.710-17I/OP3 口:P3 口是带内部上拉的双向
27、I/O 口,向P3 口写入1时,P3 口被内部上拉为高电平可用作输入口。当作为输入脚时被外部拉低的P3 口会因为内部上拉而输出电流。另外,P3口除了上述功能外,还具有第2功能,具体如下表3.2所示。表3.2 P3口各位第二功能表P3口的位第二功能注 释P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2INT0外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写选通信号P3.7RD外部RAM读选通信号3.1.2 单片机主控电路设计主控制电路芯片采用A T 8 9 S 5 2,单片机的P 1口及P 2 口分别用于控制
28、南北和东西方向的通行灯,P 0 口用于对L E D 计时器的控制,T 0 和T 1 作为东西方向和南北方向车流量控制,I N T 0 和I N T 1 用于东西方向和南北方向紧急转换控制。交通灯控制模块作为本系统的核心部分。图3.2 交通灯主控电路图3.2 车量检测模块设计作为智能交通灯系统的重要组成部分,车流量检测装置是必不可少的。目前有多种方法检测车流量,例如电磁感应装置法、车流信息的超声波检测法,还有基于机器视觉的车流量检测法等等。超声波检测精度不高,容易受车辆遮挡和行人的影响,检测的距离短(一般不超过12 m),因此,本设计的车辆检测器采用地感线圈检测方案。地感线圈车辆检测器是一种基于
29、电磁感应原理的车辆检测器。地感线圈Ll埋在路面下,通有一定工作电流的环形线圈,由多匝导线绕制而成,埋设在道路中。地感线圈构成的耦合电路如图3.3所示。图3.3 耦合振荡电路T为隔离变压器,匝数比为1:1,三极管Ql和Q2组成共射极振荡器,电阻R3是两只三极管的公共射极电阻,并构成正反馈。地感线圈作为检测器谐振电路中的一个电感元件,与车辆检测器的振荡回路一起形成L C谐振。当有车辆通过时,将会使线圈中单位电流产生的磁通量增加,从而导致线圈电感值发生微小变化,进而改变LC谐振的频率,这个频率的变化就作为有汽车经过地感线圈的输入信号。为了检测这个变化,常用的办法是通过单片机计算单位时间内的振荡脉冲个
30、数来确定车是否到来。在本设计中,需要检测两个地感线圈的频率变化,如果利用单片机同时对两路信号频率的变化量进行测量,则系统相对较大,程序比较复杂,使得单片机负担较重。这里介绍一种新的检测方法:利用锁相环音频译码器LM567检测频率的变化,应用电路图如图3.4所示。 图3.4 锁相环电路LM567的第5、6脚外接的电阻、电容决定了IC内部压控振荡器的中心频率,fo=111RC。第1、2脚通常是分别对地接电容,形成输出滤波网络和环路低通滤波网络,其中第2脚所接电容决定锁相环电路的捕捉带宽,带宽的理论值可用此公式计算: ( 3.1)式3.1中是输入信号的有效值,是滤波电容(单位为uF),其值再乘上10
31、0%则是锁相环电路的实际捕获带宽。当音频译码器LM567工作时,若输入的信号频率落在给定的通频带时,锁相环即将这个信号锁定,同时LM567的内部晶体管受控导通,8脚输出低电平,否则输出高电平。当输入信号频率处于通频带内,LM567锁定,输出低电平。通常在无车情况下,耦合电路的振荡频率会在一定的范围内保持不变,当车经过地感线圈时,使得耦合电路震荡频率发生变化,并且,随着车型的不同以及车本身的铁质不均匀,使这个频率的变化也在一定的范围内浮动。因此,通过实验,选择合适的LM567捕获带宽值,使得当无车时,输入信号频率虽有微小变化,但使这个浮动的频率都处于通频带内,LM567锁定,8脚输出低电平;有车
32、到来时,频率发生剧烈的变化已不在通频带内,8脚就会输出高电平。这时,对车辆是否到来的检测转化为对电平高低的检测,通过触发单片机的外部中断即可感知车辆的到来,而无需通过复杂的程序来区分此时的频率变化是否由车辆的到来所引起,大大降低了编程的难度。3.3 信号灯电路模块设计信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图3.5。每个路口的信号的的转换顺序为:绿黄红 绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为20秒,最长时间为40秒,红灯最短时间为25秒,最长时间为45秒,黄灯时间为
33、5秒。信号灯的连接电路如图3.6所示。红黄绿绿黄红绿黄红红黄绿红黄绿绿黄红绿黄红红黄绿红黄绿红黄绿红黄绿绿黄红绿黄红绿黄红红黄绿红黄绿图3.5 交通信号灯运行状态图3.6 信号灯连接电路3.4 时间显示电路模块设计在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以显示的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图3.7所示。图3.7 时间显示电路图由车流量检测电
34、路获得当前路段的车辆数据,用来判断各方向车辆状况。本次设计我设定当20秒内南往北方向车辆通过车辆达不到20辆时,判断该方向为少车,当20秒内北往南方向车辆通过车辆也达不到20辆时,判断该方向也为少车,下一次通行仍为20秒,当20秒时间内南往北或北往南任意一个方向通过的车辆达20辆时证明该状态车辆较多,下一次该方向绿灯放行时间改为40秒,当40秒内通过的车辆数达45辆时车辆判断为拥挤,下一次绿灯放行时间改仍为40秒,当40秒车辆上通过车辆达不到45辆时,判断为少车,下次绿灯放行时间改为20秒, 依此类推。绿灯下限时间为20秒,上限值为40秒,初始时间为20秒。这样检测,某次可能不准确,但下次肯定
35、能弥补回来,累积计算是很准确的,由于南往北,北往南时间显示相同,所以只要一个方向多车,下次时间就要加长东往西,西往东也一样,显示时间选择如表3.3所示。表3.3 显示时间选择表车辆情况本次该方向通行时间下次该方向通行时间本次该方向通行时间下次该方向通行时间南往北少车,北往南少车20秒20秒40秒20秒南往北少车,北往南多车20秒40秒40秒40秒南往北多车,北往南少车20秒40秒40秒40秒南往北多车,北往南多车20秒40秒40秒40秒东往西少车,西往东少车20秒20秒40秒20秒东往西少车,西往东多车20秒40秒40秒40秒东往西多车,西往东少车20秒40秒40秒40秒东往西多车,西往东多车
36、20秒40秒40秒40秒3.5 电源电路模块设计无论是AT89S52单片机工作电源、二极管还是数码管的驱动,都要用到+5V的直流电源,所以,一个稳定的、持续的+5V直流电源对本系统十分重要。本设计运用桥式整流电路,将交流转换为直流,为各部分电路提供恒定的+5V直流。从接口J1输入的220V左右的交流电压,经变压器转换为15V左右的电压,再经全波整流电桥DB整流后,得到一幅值为0-8V左右的波动直流。这一波动的直流经C4、C5滤波后,得到一较平稳的直流,再经 LM7805稳压为+5V,C6再次滤波后,得到稳定的+5V直流电流,为系统提供稳定电压,保证电路的稳定性和抗干扰性,其电路如图3.8所示。
37、图3.8 电源电路4. 系统软件设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。这里我采用了常用的汇编语言编程来实现的。 交通灯控制系统控制程序主要分为以下几个模块: 初始化程序、主程序、数码管显示程序、紧急车辆通行实时响应程序。4.1 主程序设计主程序采用查询方式定时,由R2寄存器确定调用1S
38、延时子程序的次数,从而获取交通灯的各种状态。主程序流程图如图4.1 所示。图4.1 主程序流程图4.2 显示程序设计显示交通灯的时间,南北方向要显示20秒,东西方向要显示25秒,那么我们先给P0口送2的共阴极码即5BH,让第一位2要显示的位码GND段为低电平,其它三位的控制端都接高电平,那么第一位就显示2,其它三位不亮。让其显示1MS后再给P0口送0的共阴极码即3FH,让第二位要显示0的位码GND段为低电平,其它三位的控制端都接高电平,那么第二位就显示0,其它三位不亮。依此类推分别送完第一位2,第二位0,第三位2,第四位5,每一位点亮1MS一个扫描周期为4MS,一秒时间就要扫描250次其流程图
39、如图4.2所示。 图4.2 显示程序流程图显示程序如下:MOV R6,#250;显扫描次数LOOP:MOV P0,#5BH ;送2的共阴极码CLR P2.0;第一位显示2ACALL D1MS ;延时1MSSETB P2.0 ;灭第一位MOV P0,#3FH ;送0的共阴极码CLR P2.1;第二位显示0ACALL D1MS ;延时1MSSETB P2.1 ;灭第二位MOV P0,#5BH ;送2的共阴极码CLR P2.2;第三位显示2ACALL D1MS ;延时1MSSETB P2.2 ;灭第三位MOV P0,#6DH ;送5的共阴极码CLR P2.3;第四位显示5ACALL D1MS ;延时
40、1MSSETB P2.3 ;灭第四位DJNZ R7,LOOP;不够一秒,继续扫描NEXTNUMBER;到一秒显示下一个数D1MS: ;1MS延时程序STAT1:MOV R4,#2MOV R3,#250DJNZ R3,$DJNZ R4,STAT1RET4.3 紧急车辆中断响应程序设计在现实生活中,通常会有一些紧急车辆出现。此时应强行中断正常的交通灯运转状态,使有紧急车辆的车行方向保持通行状态。紧急车强通信号受紧急车强通按键控制。无紧急车辆时,交通信号灯按正常时序控制。有紧急车来时,若紧急车通行方向为绿灯状态,则无需处理。否则将紧急车强通按键按下。因此,一般情况下交通灯按照车流量大小合理分配通行时
41、间,按一定规律变化,但考虑紧急车通行车况,设计紧急通行开关。中断服务程序的流程图如图4.3所示。图4.3 中断响应流程图交通灯的中断处理流程:(1)现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。(2)中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。(3)中断服务程序:有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西
42、方向转换为绿灯,南北方向为红灯。(4)中断返回:执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。5. 智能交通灯的仿真5.1 proues软件介绍Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号
43、发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。5.2 仿真过程介绍5.2.1 用PROTEUS 绘制原理图运行PROT
44、EUS VSM的ISIS后出现相应的界面,点状的栅格区域为绘图区。左侧的上方为电路图概览区,下方是元器件列表区。单击P 后出现的Pick Device 添加元器件的对话框,输入所要添加的器件名称,则该器件就会出现在右侧,单击OK 按钮,完成一个元器件的添加。重复以上过程,添加好电路中所需的元器件。在元器件列表区选中某元器件后,在电路图概览区会出现该元器件,用鼠标将其拖至绘图区,将所有需要的元器件在绘图区放置好,即可开始连线。连线方法很简单, 将鼠标移至元器件引脚后会出现一个小十字, 单击鼠标左键后移动鼠标,将线引至某一引脚处会再次出现小十字, 再次单击左键就完成了一条连线。在布线时,如果需要转
45、弯,可以在转弯处单击鼠标左键。5.2.2 PROTEUS 对单片机内核的仿真PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil ,Wave6000等编译模拟软件结合使用。由于keil使用方便,具备强大的软件仿真和硬件仿真功能。把Proteus和keil结合起来调试硬件就方便多了,我就是采用“Proteus+keil”的仿真方法,具体步骤如下:首先运行PROTEUS VSM 的ISIS,选择SourceDefine Code Generation Tool 菜单项,将出现如图5.1所示定义代码生成工具对话框。图5.1 定义代码生成工具对话框图5.2
46、 创建源代码对话框选择用keil创建好的chengxu.ASM文件,即完成了文件的创建。就这样当用keil对chengxu.ASM 文件进行更改时每一次运行PROTEUS VSM 的ISIS对电路进行仿真时keil都会对chengxu.ASM进行编译,chengxu.HEX文件也会随时更新。电路图绘制完成后,再添加AT89C52 的应用程序。将鼠标移至AT89C52 上,单击鼠标右键使之处于选中状态,在该器件上单击左键,打开如图5.2所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3 种格式的文件) ,给AT89C52输入晶振频率,此处默认为12MHZ,单击OK 按钮完成程序添加工作, 下面就可以进行
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100