交通灯控制系统设计论文.docx
- 文档编号:6251678
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:35
- 大小:253.83KB
交通灯控制系统设计论文.docx
《交通灯控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统设计论文.docx(35页珍藏版)》请在冰豆网上搜索。
交通灯控制系统设计论文
基于AT89C51的交通灯控制系统的设计
摘要
交通灯控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。
随着我国城市现代化进程的不断推进,交通是影响我国社会经济发展的严重问题,而城市交通问题的核心就是对十字路口交通信号的控制。
因此,我国的城市交通问题的研究重点是交通灯控制系统的研究。
本课题是根据单片机相关知识对简单交通灯控制系统的设计。
本文首先介绍了交通灯的发展历史和研究现状,阐述了本课题的任务要求,并在交通管理系统知识的基础上,根据设计要求和实际应用情况,进行总体方案论述。
接着,对单片机进行了简单介绍,然后通过对交通灯控制系统需完成的功能确定了控制系统中需要设计的模块,最后对每个模块进行硬件的选择与设计,完成了对交通灯控制系统的硬件设计。
在软件设计部分,运用Proteus和Keil软件对交通控制系统编程与仿真,使交通灯控制系统功能达到任务要求。
关键词:
信号灯AT89C51倒计时控制
引言:
在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
这一技术在19世纪就已出现了。
早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早起交通流量不大的情况曾起过一定的作用。
但随着汽车工业的发展,交通流量增加,随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。
计算机的出现为交通控制技术的发展注入了新的活力。
加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。
这是道路交通控制技术发展的里程碑。
为此,设计一个关于交通灯控制系统,该设计以AT89C51单片机作为核心,功耗小可以方便以后研究。
1.设计的要求与方案
1.1
根据上述交通灯控制系统的研究意义,本课题设计了适应当前交通管理的交通灯控制系统。
此系统中除了具有基本的交通灯功能之外,还具有倒计时、时间设置、根据情况手动控制等功能。
(1)在一般情况下,交通灯控制系统要求正常显示信号灯以及倒计时的时间变化:
当东西方向为绿灯时,南北方向为红灯;当东西方向绿灯变为黄灯,提示此方向即将禁止通行;当东西方向变为红灯,南北方向变为绿灯;当南北方向变为黄灯时,提示此方向即将禁止通行。
在每个方向都要求有倒计时显示,提示通行时间和暂缓通行时间。
(2)在特殊情况下,某一方向的车流量过多,按键设置通行时间和暂缓通行时间。
综上所述,交通灯的发展带动了整个交通运输的发展。
本章主要介绍了交通灯的发展现状和研究意义,提出了本课题的任务要求。
1.2系统设计的总体方案
1.2.1系统设计目标
随着人们日常生活水平的提高,机动车辆不断增加,简单的交通控制系统已不能满足当前交通道路管理的需要。
为了最大程度的满足交通管理的需要,为车辆提供准确的通行时间,本课题应结合先进的研究技术设计出功能完善的交通灯控制系统。
此外,还需要充分考虑系统的可操作性,使控制系统具备与突发状况相适应的可调节能力。
1.2.2交通道路管理方案
在设计交通灯控制系统之前,应明确交通道路中交通灯的管理方案。
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,以指挥车辆的安全通行。
红灯亮禁止通行;绿灯亮允许通行;黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。
信号灯指示方案如表1.2.1所示。
表1.2.1信号灯指示方案
状态
信号灯显示
S1
东西方向绿灯南北方向红灯
S2
东西方向黄灯南北方向红灯
S3
东西方向红灯南北方向绿灯
S4
东西方向红灯南北方向黄灯
1.2.3系统设计总体方案
根据交通系统管理方案和本课题任务的要求,该系统应具有交通灯的显示功能、倒计时功能和通行时间设置功能,所以把系统分为四个模块,包括单片机控制、信号灯显示、倒计时显示和键盘设置,系统硬件设计结构如图2.1所示。
初始参
数设置
AT89C51单片机控制模块
倒计时显示模块
信号灯显示模块
键盘设置
74LS245
驱动
图1.2.1系统硬件设计结构
下面分别简单介绍这四个模块:
(1)单片机控制模块:
单片机将计算机的基本部件微型化并集成到一块芯片上,具有优异的性能价格比,控制功能强,这将使各模块功能的实现变得简单方便。
本系统中,8051单片机的P0口控制南北方向的时间显示;P1口控制信号灯的点亮;P2口控制东西方向的时间显示;P3口接入键盘开关,可设置适应当前状况的通行时间和暂缓通行时间。
(2)信号灯显示模块:
利用发光二极管代替交通信号灯,通过单片机控制使其按要求点亮。
(3)倒计时显示模块:
此模块有两种方案。
第一种是采用数码管显示。
该方案实现简单,但只能显示有限的符号和数码字符。
第二种是采用点阵式LED显示。
该方案实现复杂,须完成大量的软件工作,但功能强大,可方便的显示各种英文字符、汉字和图形。
由于本控制系统只需显示倒计时时间,利用数码管即可完成此功能,因此本控制系统中利用2位一体的共阴数码管显示道路两个方向的通行时间和暂缓通行时间,通过单片机控制进行倒计时显示。
(4)键盘设置模块:
在交通道路突发情况时,可通过按键手动设置通行时间和暂缓通行时间,通过单片机控制进行时间设置。
此模块有两种方案:
第一种是采用8255扩展I/O口及键盘、信号灯显示等。
该方案使用灵活,可提供较多I/O口,但操作复杂。
另一种是直接在I/O口线上接上按键开关。
该方案设计精简,但提供的I/O口数量有限。
由于本控制系统对于交通灯及数码管的控制只用单片机本身的I/O口就可实现,故选择第二种方案。
综上所述,交通灯控制系统的总体方案已经确定,下面进行硬件设计。
2交通灯控制系统硬件设计
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]。
图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,此时发光二极管正常点亮。
2.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进制)
0
00111111
3FH
1
00000110
06H
2
01011011
5BH
3
01001111
4FH
4
01100110
66H
5
01101100
6DH
6
01111100
7DH
7
00000111
07H
8
01111111
7FH
本控制系统倒计时电路采用了4个2位一体的共阴数码管,此数码管在交通灯控制系统中便于观察倒计时显示,如图3.3所示。
图2.2位一体的共阴数码管
这4个数码管分别与控制两干道倒计时显示的端口相连接,即可显示出信号灯的倒计时功能。
以南北方向的数码管为例,如图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单片机有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内部结构
当片选端
低电平有效时,DIR=“0”,信号由B向A传输,即接收数据;DIR=“1”,信号由A向B传输,即发送数据。
当
为高电平时,A、B均为高阻态。
所以,在本控制系统中需要用74LS245芯片对数码管进行驱动。
本章对单片机进行了简单介绍,设计了交通灯控制系统硬件电路。
接下来,还需要对软件部分进行设计,完成整个控制系统的设计要求。
3交通灯控制系统的软件设计
硬件平台结构一旦确定,功能框架就已经形成。
软件在硬件平台的基础上构筑,完成各部分硬件的控制和协调。
系统是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。
因此,软件是本系统的灵魂。
软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。
同时,对软件进行全面测试也是检验错误排除故障的重要手段。
3.1软件设计环境简介
3.1.1Proteus仿真软件简介
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路[16]。
该软件的特点是:
(1)实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
(4)具有强大的原理图绘制功能[17]。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
3.1.2KeilC51编译软件简介
目前流行的51系列单片机开发软件是德国Keil公司推出的KeilC51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为uVision(通常称为uV2)[18]。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:
uVisionIDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统[19-21]。
3.2交通灯系统主程序
在交通灯控制系统的设计中,首先对交通灯进行初始参数设置,然后根据是否出现键盘事件,如出现键盘事件就启动键盘程序,进行键盘时间处理;若没有出现,继续进行由初始参数进行的控制程序。
交通灯控制系统的设计流程如图4.1所示:
开始
初始化
等待键盘事件
键盘事
件处理
显示程
序处理
图4.1交通灯控制系统设计流程
3.3交通灯延时程序
延时方法可以有两种,一种是利用MCS-51内部定时器才生溢出中断来确定1秒的延时时间,另一种是采用软件延时的方法。
3.3.1计数器硬件延时
(1)计数器初值计算
定时器工作时必须给计数器初值,这个值是送到TH和TL中的。
它是以加法计数的,并能从全1到全0时自动产生溢出中断请求[22-26]。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器模值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为28。
(2)计算公式
TC=M-T/T计数
T计数是单片机时钟周期TCLK的12倍;TC为定时初值,
如单片机的主脉冲频率TCLK为12MHZ,经过12分频:
方式0:
TMAX=213﹡1us=8.192ms
方式1:
TMAX=216﹡1us=65.536ms
方式2和3:
TMAX=28﹡1us=0.256ms
显然1秒钟已经超过了计数器的最大定时时间,所以只有采用定时器和软件相结合的办法才能解决这个问题。
(3)延时1秒的方法
系统中采用在主程序中设定一个初值为4000的软件计数器和使定时器定时250us。
这样每当T0到250us时CPU就响应它的溢出中断请求,进入它的中断服务子程序。
在中断子程序中,CPU先使软件计数器减1,然后判断它是否为0。
为0表示1秒已到可以返回到输出时间显示程序。
(4)相应程序代码
主程序中:
定时器需要定时250us,故T0工作于方式2。
初值:
TC=M-T/T计数=28-250us/1us=06H
TMOD=0x02;//设置定时器0为工作方式2
TH0=0x06;
TL0=0x06;//初始化8位定时器(256-6)*4000=1s
EA=1;//总中断允许
ET0=1;//T0中断允许
TR0=1;//打开T0中断
3.3.2软件延时
软件延时需要通过编写延时程序进行延时。
计算机执行一条指令需要一定的时间,由一些指令组成一段程序,并反复循环执行,利用计算机执行程序所用的时间来实现延时,这种程序称为延时程序[27-28]。
如当系统使用12MHz晶振时,一个机器周期为1us,执行一条双字双周期DJNZ指令的时间为2us,因此执行该指令50万次,就可以实现延时1s的目的,对于50万次循环可采用外循环、中循环、内循环嵌套的多重循环结构。
3.4交通灯显示程序
交通灯显示程序设计流程如图4.2所示。
交通灯显示程序总共有4个状态S1、S2、S3和S4,每个状态中发光二极管显示信号灯点亮情况,数码管来进行倒计时显示,完成这4个状态后再进入初始状态S1,进行循环。
图4.2交通灯显示设计流程
3.5按键处理程序
键盘是人机进行交互的重要接口之一。
用户通过对仪器下达命令,仪器获得相应的键值,并执行相应的命令程序[29]。
键盘部分的软件设计主要是对键盘管理芯片8051进行编程,从而成功地读取键盘值,实现相应功能。
按键模块设计流程如图4.3所示。
在系统中有3个按键设置,分别为“设置键”、“增加键”、“减少键”。
若“设置键”没有按下,不进行按键处理。
若“设置键”按下,则按照到“设置键”程序处理,看是否有“增加键”和“减少键”被按下,若没有,不进行处理;若有,进行相应按键处理。
图4.3按键模块设计流程
3.5.1设置键处理
(1)设置键的功能
设置键的功能是根据按键次数决定的,如表4.1所示。
按下“设置键”1次,则设置东西方向的绿灯点亮时间;按下“设置键”2次,则设置东西方向黄灯点亮时间;按下“设置键”3次,则设置南北方向的绿灯点亮时间;按下“设置键”4次,则设置南北方向黄灯点亮时间;按下“设置键”5次,则恢复交通灯工作状态,时间显示设置后的通行时间和暂缓通行时间。
表4.1设置键功能
按“设置键”次数
第1次
第2次
第3次
第4次
第5次
调整内容
东西方向
绿灯点亮
时间
东西方向
黄灯点亮
时间
南北方向
绿灯点亮
时间
南北方向
黄灯点亮
时间
恢复交通灯工作状态
(2)设置键设计流程
N
N
N
N
Y
Y
Y
Y
Y
等待按键释放
第5次按下
东西向绿灯点亮,数码管闪烁,设置通行时间
东西向黄灯点亮,数码管闪烁,设置暂缓通行时间
南北向绿灯点亮,数码管闪烁,设置通行时间
南北向黄灯点亮,数码管闪烁,设置暂缓通行时间
交通灯正常显示,数码管显示设置好的时间
返回等待
第4次按下
第3次按下
第2次按下
第1次按下
图4.4设置键设计流程
(3)设置键相关程序
voidsetSecond(void)
{while(P3_4==0);
cntP3_4++;//标志设置键被按下的次数
switch(cntP3_4)
{case1:
cntEW=5;//cntEW为东西向标志位
P1=0xf7;//东西向绿灯点亮
break;
case2:
cntEW=1;
P1=0xef;//东西向黄灯点亮
break;
case3:
cntSN=1;//cntSN为南北向标志位
P1=0xfe;//南北向绿灯点亮
break;
case4:
cntSN=3;
P1=0xfd;//南北向黄灯点亮
break;
case5:
cntEW=5;//东西方向和南北方向标志位都回到初始状态
cntSN=5;
cnt_num=0;
cntP3_4=0;
break;}
}
增加键处理
(1)增加键的功能
当系统系统需要进行按键设置时,通过“增加键”可以改变东西方向和南北方向的通行时间和暂缓通行时间。
此按键分为两个功能,一个是“加1”功能,一个是“加10”功能。
(2)增加键处理流程
N
N
N
Y
Y
Y
Y
延时
按键是否还在按下
延时
按键是否释放
按键是否还在按下
等待按键释放
数码管值加1
返回
数码管值加10
数码管加10
延时
图4.5增加键设计流程
(3)“增加键”相关程序
秒数加1程序:
voidaddSecond(void)
{while(P3_5==0);
cnt_key=0;//记录长按键的参数清零
switch(cntP3_4)
{case1:
if(keyMemory!
=greenEW+10)//判断按键是否已经加10,如果没有加10则秒数加1,如果已经加10则不加1
{greenEW++;
}
if(greenEW==90)
{greenEW=0;//90为秒数增加后的最大值,当超过90s后自动为0
}
scdEW=greenEW;
scdSN=greenEW+yellowEW+1;
break;//东西向绿灯显示时间设置
case2:
if(yellowEW++==9)
{yellowEW=0;
}
scdEW=yellowEW;
break;//东西向黄灯显示时间设置
case3:
if(keyMemory!
=greenSN+10)
{greenSN++;
}
if(greenSN==90)
{greenSN=0;
}
scdEW=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制系统 设计 论文