交通灯报告.docx

上传人:b****9 文档编号:26214254 上传时间:2023-06-17 格式:DOCX 页数:35 大小:291.62KB
下载 相关 举报
交通灯报告.docx_第1页
第1页 / 共35页
交通灯报告.docx_第2页
第2页 / 共35页
交通灯报告.docx_第3页
第3页 / 共35页
交通灯报告.docx_第4页
第4页 / 共35页
交通灯报告.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

交通灯报告.docx

《交通灯报告.docx》由会员分享,可在线阅读,更多相关《交通灯报告.docx(35页珍藏版)》请在冰豆网上搜索。

交通灯报告.docx

交通灯报告

电子课程设计报告

 

题目名称:

交通灯模拟控制系统

 

姓名:

专业:

班级学号:

同组人:

指导教师:

 

南昌航空大学信息工程学院

2011年07月03日

 

摘要

  随着社会经济的发展,城市交通问题越来越引起人们的关注。

交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

为了在叉口的各条干道实现合理的科学分流,在岔口醒目处设置交通灯显的尤为必要。

在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,根据行车过程中出现的实际情况,也可全面有效地利用交通灯指示交通情况。

本次课程设计采用单片机来控制,红黄绿三色发光二极管定时发亮,数码管显示各灯亮的时间。

通过硬件的设计,51单片机,138译码器,8255芯片的功能使用,并用软件编程来灵活有效的实现功能,方便采取改进措施。

本次设计是具有物美价廉、功能强、运行稳定等特点。

  关键字:

交通信号灯、单片机、数码管

前言···································································1

第一章设计内容及要求·················································2

设计内容与要求···················································5

方案介绍·························································6

第二章系统组成及工作原理·············································2

89C52的工作原理················································5

8255的工作原理··················································5

7279的读写方法··················································4

系统组成及工作原理···············································4

第三章硬件电路方案设计···············································2

方案选择························································07

硬件电路设计····················································17

电路参数分析····················································27

第四章软件设计·······················································1

程序设计原理····················································28

程序流程图······················································28

第五章实验、调试和测试结果与分析······································2

实验、调试·······················································38

测试结果与分析··················································38

小结··································································39

参考文献······························································10

附录一································································11

附录二································································12

附录二································································12

附录二································································12

前言

当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。

而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。

本次课程设计主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。

交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。

对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。

交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。

但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。

采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。

其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞。

目前,有一种“自动控制”控制交通灯的方法。

利用事先编制好的程序输入单片机,再利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。

这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。

同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

 

第一章设计内容与要求

设计内容与要求

1、用单片机扩展一片8255,用12个发光二极管模拟一个十字交叉路口的红、绿、黄灯,并设置二个紧急放行按键

2、正常行驶时,东西或南北方向的灯按绿灯亮10秒,黄灯闪烁3秒,红灯亮12秒控制

3、当东西或南北方向的紧急放行按键按下时,如果禁行方向为红灯,则红灯继续维持12秒;如果禁行方向为绿灯,则立即变为黄灯闪烁3秒;如果禁行方向为黄灯,则黄灯继续维持

 

方案介绍

基于STC89C52单片机的交通灯模拟控制系统:

(1)熟悉89C52单片机以及其外围电路,8255芯片;

(2)设计硬件电路原理图,实现方案的要求,焊接制作;

(3)画出程序流程框图,编写程序;

(4)将系统板连上PC机,进行仿真调试

 

第二章系统组成及工作原理

89C52的工作原理

89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,基于标准的MCS-51单片机体系结构和指令系统,集成了时钟输出和向上或向下计数器等更多的功能。

89C52内置8位、256字节内部数据存储器RAM、8K片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

此外,89C52还可工作于低功耗模式,可通过两种选择空闲和掉电模式。

在空闲模式下冻结CPU而RAM、串行口和中断系统维持其功能。

掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

下面介绍89C52各引脚的功能与连接方法:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口作为AT89C51的一些特殊功能口,管脚备选功能

RXD(串行输入口)TXD(串行输出口)/INT0(外部中断0)

 /INT1(外部中断1)T0(记时器0外部输入)T1(记时器1外部输入)

/WR(外部数据存储器写选通)/RD(外部数据存储器读选通)

 RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

 ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

 /PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

8255的工作原理

8255特性:

(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。

(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。

8255A的工作方式:

方式0---基本输入输出方式;

方式1---选通输入输出方式;

方式2---双向选通输入输出方式。

引脚信号:

8255A的引脚如图所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

图8255管脚图

RESET:

复位输入线,当该输入端外于高电平时,所有内部寄存器均被清除,所有I/O口均被置成输入方式。

CS:

芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.

RD:

读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:

写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

A0,A1:

地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。

当A0=0,A1=0时,PA口被选择;  当A0=0,A1=1时,PB口被选择;  

当A0=1,A1=0时,PC口被选择;  当A0==1时,控制寄存器被选择。

7279的工作原理

HD7279A是一片数码管/键盘串行接口芯片,其主要特性如下:

串行接口,无需外围元件可直接驱动LED;各位具有独立控制译码/不译码及消隐和闪烁属性;具有(循环)左移、(循环)右移指令;具有段寻址指令,方便控制独立LED;具有64键键盘控制器,内含去抖动电路。

引脚说明及管脚图:

CS:

片选

CLK:

时钟输入端

DATA:

串行数据输入/输出端

RES:

复位端

CLKO:

振荡输出端

KEY:

按键有效输出端

SG—SA:

段g----段a驱动输出

DP:

小数点驱动输出

DIGO—7:

数位0—7驱动输出

RC:

RC振荡器连接端

系统组成及工作原理

1.本设计主要是通过89C52进行控制,利用8255进行并行I/O口扩展。

用8255的~口控制东西南北四个方向的十二盏指示灯的亮灭,用作为东西放行控制口,作为南北放行控制口。

另外本次设计用的是89C51最小系统板作为设计平台的,因此,在设计中直接使用最小系统板中的7279进行倒计时数码显示控制。

其系统组成框图如图。

2.当系统复位后,便进入东西南北均亮红灯5S的初始状态,随后进入的是东西绿灯亮10S、黄灯亮3S、红灯亮12S循环变换,相对应的南北放向则是以红灯亮13S、黄灯亮3S、绿灯亮9S顺序循环变换,此时当有紧急放行键按下时则如果禁行方向为红灯,则红灯继续维持12秒;如果禁行方向为绿灯,则立即变为黄灯闪烁3秒;如果禁行方向为黄灯,则黄灯继续维持。

3.其中指示灯亮灭状态变换是通过89C52定时器T0产生定时中断来实现的,紧急放行键是通过键扫程序读入按键离合状态加以判断处理实现,而倒计时显示是利用定时器产生一秒定时,通过修改显缓区的内容得以实现。

图交通灯模拟控制系统框图

 

第三章硬件电路方案设计

方案选择

方案一:

利用89C52的P1口控制放行键,用8255控制交通灯及倒计时显示

图使用89C51和8255控制框图

方案二:

用利两片8255进行端口扩展,其中一片用于控制指示灯,另一片用于制控倒计时显示及矩阵式键盘控制,

图利用两8255扩展I/O端口控制框图

本方一优点:

直接用51系统控制开关控制紧急放行键,容易控制。

在扩展的8255芯片中控制LED和时间显示。

缺点:

51系统利用少,8255要控制两部分,操作复杂。

本方二优点:

利用的硬件源资源相对较多,但由于使用了两片8255进行I/O端口扩展,所以有充足的端口资源,对系统的功能完善提供了方便的硬件资源。

缺点:

若只是用于实现一般的控制功能,则存在一定的资源浪费,不利于产品的商业化。

方案确定:

由于本次设计主要目的是提高对单片机产品的设计与掌握,且使用的是8255扩展I/O口的最小系统板,因此为了增强对多片外部芯片扩展的掌握,本设计选择方案三。

硬件电路设计

7279倒计时显示电路

本系统显示模块是利用7279来控制数码管的显示。

见附录二7279倒计时显示电路

指示灯及放行键电路

放行键是由8255的和构成,其中构成东西放行键,构成南北放行键。

其电路是由一个100Ω和按键组成分压结构,当按键断开时控制口将通过100Ω电阻到地实现数字低电平,当按键按下时,或者就直接接收5V电压,实现数字电路中的高电平。

见附录三指示灯及放行键电路

最小系统板电路

本电路是通过74LS373进行地址锁存,74LS138进行译码产生片选信号,实现电路扩展以便提高系统性能,其中74LS138的地址输入端A、B、C分别接89C51的、、口。

其中最小系统板自带的8255扩展芯片的片选端

接74LS138输入出端的Y5。

电路参数分析

指示灯控制电路是用8255的PA口的低六位接十二个发光二极管组成,采用的是低电平点亮,因此发光二极管的正端通过一个510Ω的提拉电阻接到5伏电源上。

此时流过发光二极管的电流

I=(mA)式

完全可满足发光二极管点亮时的亮度问题。

定时器初值分析:

T0定时最长时间约为65ms,可用T0产生50ms的定时,再通过计时10次产生半秒标志、计时20次产生1S标志。

设定时初值为X,则有

(65536-X)*1μs=50ms式

得X=3CB0H,即TH0=3CH,TL0=B0H

 

第四章软件设计

程序设计原理

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,设东西方向按绿灯亮10秒、黄灯闪烁3秒、红灯亮12秒控制、指示灯燃亮的方案如表5-1。

表4-1交通灯状态变换表

……

10S

3S

9S

3S

……

东西道

……

绿灯亮

黄灯亮

红灯亮

红灯亮

……

南北道

……

红灯亮

红灯亮

绿灯亮

黄灯亮

……

表4-1说明:

(1)当东西方向为绿灯,此道车辆放行,东西道行人可通过;南北道为红灯,此道车辆禁止通过,行人通行。

时间为10秒。

(2)东西方向黄灯闪烁3秒,警示车辆和行人红、绿灯的状态即将切换,此时南北方向保持红灯。

(3)当东西方向为红灯,此道车辆禁止通行;南北方向为绿灯,南北道车辆放行,行人通行。

时间为12秒。

(4)当东西方向红灯只剩三秒时,南北方向将由绿灯转为黄灯闪烁三秒。

综上分析:

软件模块中应包含四种亮灯状态,同时利用中断控制状态转换,利用键盘扫描控制完成放行键管理,利用显示程序完成倒计时显示,最终通过主程序衔接各子模块。

程序流程图

主程序流程图

主程序流程图如图所示,程序开始执行初始化,再进入循环体工作。

在循环本中通过对30H标志位的判断控制交通灯的状态转换,其中30H标志在中断程序中产生。

图主程序流程图

中断服务程序流程图

中断服务程序流程图如图所示,在本程序块中将产生半秒标志53H,用于控制黄灯的闪烁。

同时还会产生交通灯状态转换标志30H,其中30H有0、1、2、3四种不同的状态值。

图中断服务程序流程图

倒计时显示程序流程图

倒计时显示流程图如图所示,其功能是将倒计时值转换成十进制形式送给显示缓冲区显示。

图倒计时显示程序流程图

四种亮灯状态程序流程图

1)东西绿灯亮、南北红灯亮时其执行程序的流程如图,其主要完成的任务是对按键的扫描,判断是否有放行键按下,从而设置状态标志转换标志30H的标志值。

图东西绿灯亮、南北红灯亮程序流程图

2)东西黄灯闪烁、南北红灯亮时其程序流程图如图所示。

图东西黄灯闪烁、南北红灯亮程序流程图

3)东西红灯亮、南北绿灯亮程序流程图如图所示。

 

图东西红灯亮、南北绿灯亮程序流程图

4)东西红灯亮、南北黄灯闪烁程序流程图如图所示。

 

图东西红灯亮、南北黄闪烁程序流程图

紧急放行键扫描程序流程图

本程序用于对按键的监控,既定期对键盘实行监控扫描,判断是否有按键按下,及对按下键进行分析判断,产生对应标志,从而完成对按下键的相应操作。

图紧急放行键扫描流程图

 

第五章实验、调试和测试结果与分析

硬件、软件调试

硬件调试

首先用时钟信号对于给的最小系统板和7279进行测试,运行良好。

在实验室,电路焊接好后,对外接电路模块进行电路连通测试,用万用表检测各个连接点以及各种电源线与地线之间是否有短路现象。

用万用表检查完后,再进行上电检测。

给板加电,用万用表检测所有的连接点或是器件的端口是否符合预计的电压值。

然后在实验室对外接扩展的AT24C02芯片模块进行焊接,检查了连线,虚焊后,就利用最小系统板开始调试。

根据硬件的连接,对程序做了一定的修改,并将程序烧录到了51单片机,第一次没有达到正确的结果。

我们通过SST单步调试,边调试边修改,直到结果符合设计要求。

软件调试

调试过程中,对程序实现的是分模块调试,先确认模块程序能够运行,再进行程序的整体调试。

这样可以快速的检查出程序实现的功能与系统实际要求的区别,发现有区别也可以快速更改程序,直到程序能够实现设计要求。

最后将各个模块组合后再次调试程序,确保各功能模块能够相容。

打开UV2编译器,将程序用.asm格式保存并添加到指定文件夹下,编译,有一些语法错误,进行了修改;

1.用伟福编译器先调试设计好的程序,方法是打开伟福编译器后新建项目,加入模块文件.asm保存到文件夹下,名字自定即可,然后打开.asm模块文件,再编译检查是否正确通过。

2.若出现错误,就要修改错误,(比如指令错误,或者是符号错误等)编译全部通过后再接外围硬件电路,接上仿真头,硬件电路供电后再开启仿真头,然后正确设置好

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1