电子信息工程技术基于单片机控制交通灯的设计.docx

上传人:b****4 文档编号:4071377 上传时间:2022-11-27 格式:DOCX 页数:25 大小:145.75KB
下载 相关 举报
电子信息工程技术基于单片机控制交通灯的设计.docx_第1页
第1页 / 共25页
电子信息工程技术基于单片机控制交通灯的设计.docx_第2页
第2页 / 共25页
电子信息工程技术基于单片机控制交通灯的设计.docx_第3页
第3页 / 共25页
电子信息工程技术基于单片机控制交通灯的设计.docx_第4页
第4页 / 共25页
电子信息工程技术基于单片机控制交通灯的设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

电子信息工程技术基于单片机控制交通灯的设计.docx

《电子信息工程技术基于单片机控制交通灯的设计.docx》由会员分享,可在线阅读,更多相关《电子信息工程技术基于单片机控制交通灯的设计.docx(25页珍藏版)》请在冰豆网上搜索。

电子信息工程技术基于单片机控制交通灯的设计.docx

电子信息工程技术基于单片机控制交通灯的设计

电子信息工程技术-基于单片机控制交通灯的设计

 

信息职业技术学院

 

毕业设计说明书(论文)

 

设计(论文)题目:

基于单片机控制的交通灯

设计

专业:

______电子信息工程技术________

班级:

_________电信xx-1班_________

学号:

_______________________

姓名:

___________________

指导教师:

_____________________

2012年12月30日

息职业技术学院毕业设计(论文)任务书

学生

姓名

学号

班级

电信xx-1班

专业

电子信息工程技术

设计(或论文)题目

基于单片机控制的交通灯设计

指导教师姓名

职称

工作单位及所从事专业

联系方式

备注

副教授

学院

电信教研室

设计(论文)内容:

[注意:

选题要结合实际。

设计(论文)内容要详细写明具体步骤;学生在该设计中具体完成的工作(结果)]

1、介绍单片机的发展历史及人们对单片机技术的运用领域;2、对“单片机交通灯电路”的概述、设计和方案介绍;3、对交通灯系统的硬件设计;4、对交通灯系统的软件设计;5、着重讲解交通灯的整机工作原理:

(1)东西方向

(2)南北方向(3)紧急中断;6结论:

简述单片机交通灯电路的系统构成及不足之处、自我总结。

进度安排:

要有较为详细的时间安排(时间具体到周)

进度安排

内容及要求

备注

2012.10.13~10.29

搜集资料并对交通灯的发展、定义等进行分析

第6、7周

2012.10.30~11.23

着重分析交通灯的工作原理

第8、9、10周

2012.11.17~11.30

分析交通灯的运行状况,完成整体的方案

第10、11周

2012.11.24~12.28

对整个论文进行整理检查

第11至16周

2012.12.21~09.1.3

毕业设计答辩

第16、17周

主要参考文献、资料(写清楚参考文献名称、作者、出版单位):

[1]胡汉才.单片机原理及其接口技术[M].北京:

清华大学出版,1996

[2]付家才.单片机控制工程实践技术[M].北京:

化学工业出版社,2004.5

[3]余锡存,曹国华.单片机原理及接口技术[M].陕西:

西安电子科技大学出版社,2000.7

 

教研室负责人:

年月日

备注:

任务书由指导教师填写,一式二份。

其中学生一份,指导教师一份。

 

 

摘要

当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

而近年来,中国车辆数量不断增加,这以为着交通控制在未来的交通管理中起着越来越重要的作用。

智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源;使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。

关键词:

单片机交通灯

 

第一章绪论

1.1单片机交通灯电路概述

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

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

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?

靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P2口设置红、绿灯燃亮时间的功能,红绿灯循环点亮,倒计时为5秒时黄灯闪烁警示(交通灯信号通过P3口输出,显示时间直接通过P0和P2口输出至双位数码管);外加紧急事件中断处理。

本系统只在基础交通灯上加了一个紧急通道开关,其实用性只适合中小型城市,使用范围小,还有待改进。

1.2设计任务

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

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

红灯的设计时间为40秒,黄灯为5秒,绿灯为34秒。

 

1.3方案介绍

1.3.1方案设计思想

状态

A干道灯显示

B干道灯显示

东西方向

红灯(40s)

黄灯(5s)

东西方向

红灯(34s)

绿灯(34s)

南北方向

黄灯(5s)

红灯(40s)

南北方向

绿灯(34s)

红灯(34s)

本方案分三步:

1、要建立两路信号灯的控制系统,本设计采用AT89C51芯片通过组合逻辑控制两路灯的显示关系。

2、建立显示控制系统,本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能通过8051芯片的P0和P1口分别设置南北与东西路道的红、绿、黄灯燃亮时间的功能,红绿黄灯循环点亮。

3、建立反馈信息部分,主要解决显示时间和灯控的同步问题,采用倒计时系统,通过紧急中断和复位电路同步反馈到显示系统的置数环节中。

注意:

虽然本设计没有扩展I/O端口,但实际上8051的4个8位I/O端口中,真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。

因此,8051通常需要扩展。

由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然8051的端口是不够,需要扩展。

扩展的方法有两种:

(1)借用外部RAM地址来扩展I/O端口;

(2)采用I/O接口新片来扩充。

 

1.3.2方案示意图

BB

东西红灯亮

东西绿灯亮

AA

(车辆禁止通行)(车辆可直线行驶和左转弯)

南北绿灯亮南北红灯亮

(可以直线行驶和左转弯)(车辆禁止通行)

图1.1图1.2

 

B

 

东西红灯亮

A

 

(紧急车辆通行状态)

南北红灯亮

图1.3

由上面三幅图可以知道,图1为东西(A)红灯、南北(B)绿灯状态下的正常通行状态,当南北(B)为绿灯状态时,南北方向的车辆可以通过并且可左转弯;图2同图1一样是属于正常通行状态,不过是东西(A)为绿灯、南北(B)红灯;图3为紧急车辆通行状态,当遇到紧急车辆需要通过的时候,四周红灯全亮,紧急车辆可以从十字路口通行。

 

第二章交通灯系统硬件设计

此设计采用的是AT89C51单片机为内部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。

2.1系统框架图

电路板一块,AT89S51单片机一片,八段LED数码管四个。

发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键开关。

(系统结构框图:

图2.1)

 

 

图2.1

2.3单元电路的分析与介绍

2.3.1MSC-51芯片简介

MCS-51单片机内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

·数据存储器(RAM)

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图2.2

·程序存储器(ROM):

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

·定时/计数器(ROM):

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

·并行输入输出(I/O)口:

8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

·全双工串行口:

8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

·中断系统:

8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

·时钟电路:

8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。

下图是MCS-51系列单片机的内部结构示意图2.3。

 

图2.3

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

如图2.4

 

 

图2.4

引脚9:

RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。

8051的复位方式可以是自动复位,也可以是手动复位,见下图2.5。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

图2.5

·引脚30:

ALE/

当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,

将用于输入编程脉冲。

·引脚29:

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

·引脚31:

EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

显然,对内部无程序存储器的8031,EA端必须接地。

2.3.2LED显示数码管

八段LED显示器由八个发光二极管组成。

其中7个长条形的发光管排列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。

LED显示器有两种不同的形式:

一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器如图2-2所示;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器。

LED数码管结构原理图:

(如图2.6、2.7、2.8)

图2.6高电平驱动(共阴极)图2.7低电平驱动(共阳极)

图2.8八段LED数码管

2.3.3晶体振荡器

石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。

我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。

振荡器特性,XTAL1和XTAL2分别为反向放大器的输入和输出。

该反晶体向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

在XTAL1和XTAL2引脚上外接定时元件就能构成自激振荡电路。

定时元件通常采用石英晶体和电容组成的并联谐振电路。

电容器C1和C2主要起频率微调作用。

 

图2.9

2.3.4复位电路

89C51的复位时由外部的复位电路来实现的。

复位引脚RST通过一个施密特触发器用来抑制噪声,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

本设计是采用上电自动复位,上电自动复位时通过外部复位电路的电容充电来实现的。

只要VCC的上升时间不超过1ms,就可以实现自动上电复位。

时钟频率用12MHz时C取20PF。

 

图2.10

 

第三章交通灯系统软件设计

3.1主程序流程图

3.2软件延时程序

在整个程序里面,如在上一句命令与下一句命令执行之间(上一句命令执行完后,间隔一段时间再执行下面一句命令),产生的中间时间差,就是延时程序所起到的作用。

在C语言中,延时程序,就是一种利用循环执行一段命令,以起到延时的功能。

具体的延时程序分析:

voiddelay(uintz)//带参数的延时函数

{

ucharx,y;//定义两个变量

for(x=z;x>0;x--)//循环延时

for(y=110;y>0;y--);//循环延时

}

3.3中断程序

3.3.1定时器中断

在main函数中的if(cc==82)【82是红黄绿三灯循环一次所需的时间】来判断语句中的cc是用来控制数码显示管与LED灯工作的。

部分程序如下:

voidtimer0()interrupt1//定时器0的中断函数

{

TH0=(65536-50000)/256;//重装计数初值

TL0=(65536-50000)%256;//重装计数初值

aa++;

if(aa==20)//判断定时1分钟是否到

{

aa=0;//计数次数清0

if(cc==0)//南北亮红灯40秒,东西亮黄灯5秒

{

DXY=0;//东西的黄灯亮

DXG=1;//东西的绿灯不亮

DXR=1;//东西的红灯不亮

NBY=1;//南北的黄灯不亮

NBG=1;//南北的绿灯不亮

NBR=0;//南北的红灯亮

DXtemp=5;//东西的黄灯亮5秒

NBtemp=40;//南北的红灯亮40秒

}

3.3.2外部中断

当由于紧急事件需要对道路进行长时间中断时,就要外加一个外部中断,以保持该道路的畅通。

代码如下:

voidJJZD()interrupt0//紧急中断程序,南北东西都亮红灯

{

DXY=1;//东西的黄灯不亮

DXG=1;//东西的绿灯不亮

DXR=0;//东西的红灯亮

NBY=1;//南北的黄灯不亮

NBG=1;//南北的绿灯不亮

NBR=0;//南北的红灯亮

displayNB(0,0);//南北数码管都显示0

displayDX(0,0);//东西数码管都显示0

cc=0;//重最开始显示

}

3.4数码显示管倒计时程序

在十字路口,由于东西、南北方向的灯亮时间各不相同(参考1.3.1表格),就只能单独编写东西、南北数码显示管倒计时程序(其中黄灯时间5秒)。

然后利用函数调用来实现显示。

如下为南北(东西亦同)方向的显示程序。

如下:

voidfenjieNB()//南北数码管显示数字的分解函数

{

NBshi=NBtemp/10;//将要显示的时间的十位赋给变量

NBge=NBtemp%10;//将要显示的时间的个位赋给变量

NBtemp--;

}

voiddisplayNB(ucharNBshi,ucharNBge)//带参数的数码管显示函数

{

//显示南北十位

P2=0xfe;

P0=table[NBshi];

delay(5);

//显示南北个位

P2=0xfd;

P0=table[NBge];

delay(15);

}

3.5LED工作程序

东西、南北方向的灯交替点亮,可参看1.3.1表格。

下面为部分程序:

if(cc==0)//南北亮红灯40秒,东西亮黄灯5秒

{

DXY=0;//东西的黄灯亮

DXG=1;//东西的绿灯不亮

DXR=1;//东西的红灯不亮

NBY=1;//南北的黄灯不亮

NBG=1;//南北的绿灯不亮

NBR=0;//南北的红灯亮

DXtemp=5;//东西的黄灯亮5秒

NBtemp=40;//南北的红灯亮40秒

}

第四章系统工作原理

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

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

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间,外加紧急事件中断处理,如表2。

5S/40S

34S/34S

40S/5S

34S/34S

紧急中断

东西道

黄灯亮

绿灯亮

红灯亮

红灯亮

红灯亮

南北道

红灯亮

红灯亮

黄灯亮

绿灯亮

红灯亮

表2

表2说明:

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

(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。

(3)当东西方向为绿灯,此道车辆通行,时间为34秒;南北方向为红灯,南北道车辆禁止通过,行人通行,时间为40秒。

(4)当由于紧急需要时,就要对道路进行长时间中断。

(5)这样如上表的时间和红、绿、黄出现的顺序依次出现,这样行人和车辆就能安全畅通的通行。

调试程序

打开Keil软件,新建工程;

选择芯片;

新建文档,把编写好代码写入文档并保存了ASM文件;

把保存的文档加载到SourceGroup;

编译程序;

设置转换成16进制;

运行程序的结果;

把编写好的16进制文件(***.hex)输入单片机AT89C51仿真器和对其进行初始化。

给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。

通电以后,东西、南北方向的时间均递减,5秒以后,东西方向的5秒用完,变成东西左转、南北各34秒,此后,时间显示和红绿灯不再变化,一直保持这一状态。

 

第五章结论

本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P2口设置红、绿灯燃亮时间的功能,红绿灯循环点亮,倒计时为5秒时黄灯闪烁警示(交通灯信号通过P3口输出,显示时间直接通过P0和P2口输出至双位数码管),外加紧急事件中断处理。

系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。

这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。

但是在这次毕业设计中我发现自己的看法有点太片面。

毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。

通过这次毕业设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低,学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

更使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

 

 

致谢

在这里,我首先向我的指导老师张xx表示深深的感谢,同时感谢我的同学在毕业设计中给我的帮助和鼓励。

在整个毕业设计过程中,他们都给予了我极大的关心和帮助,并对我的毕业设计进行了悉心的指导。

使我获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。

我感谢大学三年来所有教过我的计算机工程系的老师们,是他们传授了有用的专业知识给我,使我在整个毕业设计过程中能游刃有余的发挥,同时也感谢我们计算机工程系为我们提供了良好的上机环境,在此向他们致以深深的谢意!

最后,我忠心地感谢单片机组的其它同学以及各位老师的指导和支持,在未来的工作和学习中,我将以更好的成绩来回报各位领导、老师和同学。

 

参考文献

[1] 李朝青.单片机原理及接口技术(简明修订版).

杭州:

北京航空航天大学出版社,1998

[2] 李广弟.单片机基础[M].北京:

北京航空航天大学出版社,1994

[3]胡文金,单片机应用技术实训教程,重庆大学出版社,2005年2月。

[4]胡辉《单片机原理与应用》,中国水利出版社,2007。

[5]刘守义《单片机应用技术》,西安电子科技大学出版社

 

附录1

 

交通灯控制线路图

附录2

原程序代码

#include

#defineuintunsignedint//宏定义

#defineucharunsignedchar//宏定义

ucharaa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;//定义变量

sbitNBR=P3^0;//南北红灯

sbitNBY=P3^1;//南北黄灯

sbitNBG=P3^4;//南北绿灯

sbitDXY=P3^5;//东西黄灯

sbitDXG=P3^6;//东西绿灯

sbitDXR=P3^7;//东西红灯

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f};//数字的代码从0-9

voidinit();//初始化子程序的申明

voiddisplayNB(ucharNBshi,ucharNBge);//显示子程序的申明

voiddelay(uintz);//延时子程序的申明

voidfenjieNB();//南北数码管显示数字的分解函数

voidfenjieDX();//东西数码管显示数字的分解函数

voidmain()

{

init();//初始化子程序

while

(1)

{

if(cc==82)//循

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

当前位置:首页 > 农林牧渔 > 林学

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

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