1基于AT89C51的交通灯控制系统的设计摘要交通灯控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。随着我国城市现代化进程的不断推进,交通是影响我国社会经济发展的严重问题,而城市交通问题的核心就是对十字路口交通信号的控制。因此,我国的城市交通问题的研究重点是交通灯控制系统的研究。本课题是根据单片机相关知识对简单交通灯控制系统的设计。本文首先介绍了交通灯的发展历史和研究现状,阐述了本课题的任务要求,并在交通管理系统知识的基础上,根据设计要求和实际应用情况,进行总体方案论述。接着,对单片机进行了简单介绍,然后通过对交通灯控制系统需完成的功能确定了控制系统中需要设计的模块,最后对每个模块进行硬件的选择与设计,完成了对交通灯控制系统的硬件设计。在软件设计部分,运用Proteus和Keil软件对交通控制系统编程与仿真,使交通灯控制系统功能达到任务要求。关键词:信号灯AT89C51倒计时控制2引言:在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。这一技术在19世纪就已出现了。早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早起交通流量不大的情况曾起过一定的作用。但随着汽车工业的发展,交通流量增加,随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。计算机的出现为交通控制技术的发展注入了新的活力。加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。为此,设计一个关于交通灯控制系统,该设计以AT89C51单片机作为核心,功耗小可以方便以后研究。1.设计的要求与方案1.1根据上述交通灯控制系统的研究意义,本课题设计了适应当前交通管理的交通灯控制系统。此系统中除了具有基本的交通灯功能之外,还具有倒计时、时间设置、根据情况手动控制等功能。(1)在一般情况下,交通灯控制系统要求正常显示信号灯以及倒计时的时间变化:当东西方向为绿灯时,南北方向为红灯;当东西方向绿灯变为黄灯,提示此方向即将禁止通行;当东西方向变为红灯,南北方向变为绿灯;当南北方向变为黄灯时,提示此方向即将禁止通行。在每个方向都要求有倒计时显示,提示通行时间和暂缓通行时间。(2)在特殊情况下,某一方向的车流量过多,按键设置通行时间和暂缓通行时间。综上所述,交通灯的发展带动了整个交通运输的发展。本章主要介绍了交通灯的发展现状和研究意义,提出了本课题的任务要求。31.2系统设计的总体方案1.2.1系统设计目标随着人们日常生活水平的提高,机动车辆不断增加,简单的交通控制系统已不能满足当前交通道路管理的需要。为了最大程度的满足交通管理的需要,为车辆提供准确的通行时间,本课题应结合先进的研究技术设计出功能完善的交通灯控制系统。此外,还需要充分考虑系统的可操作性,使控制系统具备与突发状况相适应的可调节能力。1.2.2交通道路管理方案在设计交通灯控制系统之前,应明确交通道路中交通灯的管理方案。东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,以指挥车辆的安全通行。红灯亮禁止通行;绿灯亮允许通行;黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。信号灯指示方案如表1.2.1所示。表1.2.1信号灯指示方案状态信号灯显示S1东西方向绿灯南北方向红灯S2东西方向黄灯南北方向红灯S3东西方向红灯南北方向绿灯S4东西方向红灯南北方向黄灯1.2.3系统设计总体方案根据交通系统管理方案和本课题任务的要求,该系统应具有交通灯的显示功能、倒计时功能和通行时间设置功能,所以把系统分为四个模块,包括单片机控制、信号灯显示、倒计时显示和键盘设置,系统硬件设计结构如图2.1所示。图1.2.1系统硬件设计结构初始参数设置AT89C51单片机控制模块倒计时显示模块信号灯显示模块键盘设置74LS245驱动4下面分别简单介绍这四个模块:(1)单片机控制模块:单片机将计算机的基本部件微型化并集成到一块芯片上,具有优异的性能价格比,控制功能强,这将使各模块功能的实现变得简单方便。本系统中,8051单片机的P0口控制南北方向的时间显示;P1口控制信号灯的点亮;P2口控制东西方向的时间显示;P3口接入键盘开关,可设置适应当前状况的通行时间和暂缓通行时间。(2)信号灯显示模块:利用发光二极管代替交通信号灯,通过单片机控制使其按要求点亮。(3)倒计时显示模块:此模块有两种方案。第一种是采用数码管显示。该方案实现简单,但只能显示有限的符号和数码字符。第二种是采用点阵式LED显示。该方案实现复杂,须完成大量的软件工作,但功能强大,可方便的显示各种英文字符、汉字和图形。由于本控制系统只需显示倒计时时间,利用数码管即可完成此功能,因此本控制系统中利用2位一体的共阴数码管显示道路两个方向的通行时间和暂缓通行时间,通过单片机控制进行倒计时显示。(4)键盘设置模块:在交通道路突发情况时,可通过按键手动设置通行时间和暂缓通行时间,通过单片机控制进行时间设置。此模块有两种方案:第一种是采用8255扩展I/O口及键盘、信号灯显示等。该方案使用灵活,可提供较多I/O口,但操作复杂。另一种是直接在I/O口线上接上按键开关。该方案设计精简,但提供的I/O口数量有限。由于本控制系统对于交通灯及数码管的控制只用单片机本身的I/O口就可实现,故选择第二种方案。综上所述,交通灯控制系统的总体方案已经确定,下面进行硬件设计。52交通灯控制系统硬件设计2.1单片机简介8051系列单片机是在美国Intel公司于20世纪80年代推出的MCS-51系列高性能8位单片机的基础上发展而来的,它在单一芯片内集成了并行I/O口、异步串行口、16位定时器/计数器、中断系统、片内RAM和片内ROM,以及其他一些功能部件[5]。单片机主要有如下特点:(1)有优异的性能价格比。(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣的环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)低功耗、低电压,便于生产便携式产品。(5)外部总线增加了IC(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模应用系统[6]。2.2系统时钟电路晶振采用了内部时钟信号源的方式,如图3.1所示。8051单片机内部有一个高增益反向放大器,用于构成振荡器,反向放大器的输入端为XTAL1,输出端为XTAL2,分别是8051的第19和18脚。在XTAL1和XTAL2之间接1个石英晶体及2个电容,就可以构成稳定的自激振荡器,当震荡在6MHz~12MHz时通常取30pF左右的电容进行微调[7]。6图3.1系统时钟电路2.3信号灯显示电路在信号灯显示电路中,本控制系统选用了发光二极管代替信号灯。其中:红色发光二极管、黄色发光二极管和绿色发光二极管分别代替红灯、黄灯、绿灯。发光二极管是一种特殊的二极管,导通时会发光(发光二极管导通压降一般为1.5V左右)[8]。此外,工作电流要满足该二极管的工作电流。一般发光二极管与I/O端口之间都会再连接一个电阻,其作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制[9]。一般发光二极管的点亮电流为5~15mA。控制系统中,信号灯指示电路如图3.2所示。图3.2信号灯显示电路在此信号灯显示电路中,每个发光二极管都与1个220Ω的电阻相连接,起到限流作用。因为二极管的导通电压为1.5V,电阻分得的电压为5V-1.5V=3.5V,当选择220Ω的电阻时发光二极管的电流为3.5V/220Ω,约为15mA,此时发光二极管正常点亮。72.4倒计时显示电路该交通灯控制系统的倒计时功能可以采用数码管显示,也可以采用点阵式LED显示。点阵式LED虽然功能强大,但是需要完成大量的软件工作,系统设计的复杂度会增加,因此本控制系统选择采用数码管来实现交通灯倒计时功能的显示。8段数码管又称为8字型数码管,分为8段:A、B、C、D、E、F、G、DP。其中,DP为小数点。数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共段,两根之间相互连通[10-13]。8段LED数码管,就是在一定形状的绝缘材料上,利用不同形状点划的发光二极管组合,排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示0~9的数字[14]。数字显示代码如表3.1所示。表3.1数字显示驱动代码表显示数值dopgfedcba驱动代码(16进制)0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011006DH6011111007DH70000011107H8011111117FH本控制系统倒计时电路采用了4个2位一体的共阴数码管,此数码管在交通灯控制系统中便于观察倒计时显示,如图3.3所示。图2.2位一体的共阴数码管这4个数码管分别与控制两干道倒计时显示的端口相连接,即可显示出信号灯的8倒计时功能。以南北方向的数码管为例,如图3.4所示。此数码管显示的数值从绿灯的设置时间最大值一直减,每秒钟减1,然后又从黄灯的设置时间一直减,再从红灯的设置时间一直减,接下来又显示绿灯时间,如此循环。图3.4南北方向倒计时显示2.5键盘设置电路键盘设置电路中,采用独立式按键进行控制。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态[14]。独立式按键的典型应用如图3.5所示:图3.5独立式按键电路独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。根据以上特点,本控制系统单片机的I/O口数可以满足该键盘,并且可以完成课题中所要求的手动设定时间的控制功能,所以本控制系统中应采用独立式键盘,键盘设置电路如图2.6所示。图2.6键盘设置电路2.6单片机控制电路设计交通灯控制系统中,单片机控制模块是整个电路设计的主要部分。8051单片机9有4个并行I/O口P0、P1、P2和P3,每个口都有8个引脚,共有32根I/O引脚,它们都是双向通道,每一条I/O引脚都能独立地用做输入和输出。本系统中,8051单片机的P0口控制南北方向的时间显示;P1口控制信号灯的点亮;P2口控制东西方向的时间显示;P3口接入键盘开关,可设置适应当前交通状况的通行时间和暂缓通行时间。另外,在P0口控制南北方向的时间显示中,利用74LS245芯片驱动数码管。74LS245管脚结构如图3.7所示,它是常用的芯片,用来驱动LED或者其他的设备,是8路同相三态双向总线收发器,可双向传输数据[15]。8051单片机P0口内部不带上拉电阻,输出只有电压没电流,接负载时要外接上拉电阻,即当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。图3.774LS245管脚结构74LS245芯片具有双向三态功能,既可以输出,也可以输入数据,74LS245芯片内部结构如图3.8所示。图3.874LS245内部结构当片选端CE低电平有效时,DIR=“0”,信号由B向A传输,即接收数据;DIR=“1”,信号由A向B传输,即发送数据。当CE为高电平时,A、B均为高10阻态。所以