基于单片机的交通灯控制系统设计毕业设计论文.docx

上传人:b****8 文档编号:10485133 上传时间:2023-02-13 格式:DOCX 页数:48 大小:304.24KB
下载 相关 举报
基于单片机的交通灯控制系统设计毕业设计论文.docx_第1页
第1页 / 共48页
基于单片机的交通灯控制系统设计毕业设计论文.docx_第2页
第2页 / 共48页
基于单片机的交通灯控制系统设计毕业设计论文.docx_第3页
第3页 / 共48页
基于单片机的交通灯控制系统设计毕业设计论文.docx_第4页
第4页 / 共48页
基于单片机的交通灯控制系统设计毕业设计论文.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

基于单片机的交通灯控制系统设计毕业设计论文.docx

《基于单片机的交通灯控制系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制系统设计毕业设计论文.docx(48页珍藏版)》请在冰豆网上搜索。

基于单片机的交通灯控制系统设计毕业设计论文.docx

基于单片机的交通灯控制系统设计毕业设计论文

毕业设计论文

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

摘要:

对基于单片机的交通灯控制系统进行了设计。

系统功能为:

以MCS-51系列单片机作为控制核心,设计并制作交通灯控制系统,东西南北四个方向具有左拐、右拐、直行及行人4种通行指示灯,用计时器显示路口通行转换剩余时间,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行状态。

在对系统功能分析的基础上,提出了三种设计方案,经比较,选择性能较优的LED动态循环显示方案进行了设计。

设计包括硬件和软件两大部分。

硬件部分包括单片机最小系统、时间显示、交通灯显示三部分。

选用Atmel公司的AT89S52单片机作为控制核心,东西南北四个方向设置了LED时间显示和交通灯显示,时间显示采用三位LED显示器,交通灯显示则采用红绿双色高亮发光二极管来模拟。

软件采用了模块化的设计方法,主要分为主程序、定时器中断服务子程序、倒计时显示子程序、交通灯模拟显示子程序四部分。

在实验板上制作了基于单片机的交通灯控制系统样机,对硬件和软件部分分别进行了调试,再进行了软硬件联调,得到的交通灯控制系统样机实物,可圆满地完成毕业设计任务书所要求的功能。

关键词:

交通灯;单片机;AT89S52

 

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

1概述

1.1课题研究背景与意义

随着经济的增长和人口的增加,人们生活方式不断变化,人们对交通的需求不断增加。

城市中交通拥挤、堵塞现象日趋严重,由此造成巨大的经济与时间损失。

资料显示,对日本东京268个主要交叉路口的调查估计表明:

每年在交叉路口的时间延误,折成经济报失为20亿美元;而在我国北京市,当早晚交通高峰时,交叉路口处的排队长度竟达1000多米,有的阻车车队从一个交叉路口延伸到另一个交叉路口,这时一辆车为通过一交叉路口,往往需要半个小时以上,时间损失相当可观。

我国是一个历史悠久、人口众多的国家,城市数量随着社会的发展不断增多。

随着城市化进程的大大加快,诱发的交通需求急剧增长,供需矛盾不断激化,严重的交通问题也随之而来。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

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

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,这一切要归功于城市交通控制系统中的交通灯控制系统。

交通灯控制系统对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果,使城市交通得以有效管理。

交通灯可以采用PLC、单片机等控制方法。

利用单片机实现对交通信号灯的实时控制,只要采用一块单片机,加上简单的接口与驱动放大电路,即可实现,具有成本低,可靠性高的特点。

1.2课题设计内容

本课题对基于单片机的交通灯控制系统进行设计。

以MCS-51系列单片机为控制核心,设计并制作交通灯控制系统,用于十字路口的车辆及行人的交通管理。

东西南北四个路口具有左拐、右拐、直行及行人4种通行指示灯,并分别用计时器显示路口通行转换剩余时间,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行状态。

设计交通灯控制系统硬件电路与软件控制程序,对硬件电路与软件程序分别进行调试,并进行软硬件联调,要求获得调试成功的实物。

2系统设计

2.1设计方案论证

根据设计内容要求,提出了如下三种方案:

方案一:

采用AT89S52单片机作为控制核心,采用四组高亮红绿双色二极管作为东西南北四个路口的通行指示灯;采用四组3位LED数码管作为四个路口的通行倒计时显示器,LED显示采用动态扫描方式,以节省端口数。

按以上系统构架设计,单片机端口资源刚好满足要求。

方案一设计框图如图2-1所示。

图2-1方案一:

采用LED动态扫描的交通灯控制系统

方案二:

采用AT89C2051单片机作为控制器,通行倒计时显示采用16×16点阵LED发光管,左拐、右拐、直行及行人4种通行指示也采用16×16点阵双色LED发光管。

方案二设计框图如图2-2所示,LED点阵的列驱动采用74LS595,用串行端口扩展实现,行驱动采用1/16译码器74LS154动态扫描,译码器74LS154生成16条行选通信号线,再经过驱动器驱动对应的行线。

每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管。

图2-2方案二:

采用16×16点阵LED发光管设计的交通灯控制系统

方案三:

采用AT89C2051单片机作为控制器,通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。

三种方案的特点比较如下:

方案一具有电路简单,设计方便,显示亮度高,耗电较少,可靠性高等特点;方案二的图案显示逼真,单片机占用端口资源少,缺点是需要大量的硬件,电路复杂,耗电量大,不太适合于模型制作;方案三设计占用单片机的端口最少,硬件也少,耗电也最少;虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,不够实用。

可见方案一优于其他两种方案,因此本设计选用方案一:

采用LED动态扫描的方案进行设计。

2.2系统硬件设计

采用LED动态扫描的交通灯控制系统电路原理图如图2-3所示。

(为排版起见,该图放在下一页)。

系统由控制模块、通行灯显示模块、时间显示模块、电源模块四部分组成。

2.2.1控制模块

控制模块电路如图2-4所示。

主控制器采用AT89S52。

AT89S52是ATMEL公司生产的一款性能稳定的8位单片机,具有1个8KB的Flash程序存储器,1个512字节的RAM,3个16的定时/计数器,4个8位的双向可位寻址I/O端口,1个串行口,6个中断源,两个中断优先级。

 

图2-4控制模块原理图

AT89S52的P1口用于控制南北通行灯,P2口用于控制东西通行灯,P0口用于3位LED显示器的段码控制,P3.0~P3.2口用于3位LED显示器的位码控制,手动/自动转换采用P3.7扳键。

/VPP接+5V电源端。

晶振及复位按典型电路设计,元器件参数如图2-4中所示。

晶振频率为12MHz。

2.2.2通行灯显示模块

通行灯显示模块如图2-5所示。

通行灯指示采用高亮度共阴红绿双色发光二极管,左拐、直行、右拐及行人各一个。

双色发光二极管的共阴极通过电阻接地,阳极接P1口或P2口(南北为P1口,东西为P2口),经74HC244控制。

当发光电流为6mA时,限流电阻按公式R=(5-1.8)/0.006计算,应为510Ω。

由于通行时南北双向指示牌相同,东西双向指示牌相同,因此每个端口应具有12mA的吸收电流能力,在单片机的输出口接驱动电路74HC244,以保护单片机的输出端口。

图2-5通行灯输出显示模块

2.2.3时间显示模块

通行剩余时间显示模块如图2-6所示(以北路口为例)。

路口通行剩余时间采用高亮红色7段共阳LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三级管,按每段6mA电流算,全显示字型“8”时,每个数码管需6mA×8=48mA。

由于时间显示每个路口相同,4组需192mA,因此设计中采用功率三极管S9012驱动。

由于单片机每个段码输出口需吸收48mA电流,因此在电路设计中也使用了驱动集成块74HC244。

2.2.4电源电路

  电源电路如图2-7所示。

整个系统采用的电源电压只需+5V电压,将交流电经变压器变换为15V交流电,再用整流桥得到13.5V左右的直流电,采用不可调的3端稳压器件LM7805将电源稳定在5V直流输出。

 

图2-6时间显示模块电路

图2-7电源电路

2.2.5硬件电路中器件选择

A.AT89S52单片机

AT89系列单片机是ATMEL公司的8位FLASH单片机。

这个系列单片机最吸引人的特点就是在片内含有FLASH存储器,不需要再外扩存储器,与80C51插座兼容,由于这些优点,使它有着十分广泛的用途,特别是在便携式和需要特殊信息保存的仪器和系统中显得更为有用。

89系列单片机典型型号有AT89C51,AT89LV51,AT89C52,AT89LV52,AT89C2051,AT89S52,AT89C1051,AT89S51和AT89S8252。

本设计选用AT89S52。

它内部具有1个8KB的Flash的程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16的定时/计数器、1个串行口、6个二级中断源和两个中断优先级。

引脚如图2-8所示。

图2-8AT89S52引脚

按功能,引脚大致分为4部分:

a)I/O口线

P0口:

8位、漏级开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。

在编程时,P0口用于接受指令代码字节;在程序校验时,P0口可输出指令字节(这时需要加外部上拉电阻)。

P1口:

8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。

在编程和校验时,可用做输入低8位地址。

用做输入时,应先将输出锁存器置1。

P1口可驱动4个TTL负载。

P2口:

8位、准双向I/O口,具有内部上拉电阻。

P2口也可做普通I/O口使用。

用做输入时,应先将输出锁存器置1。

P2口可驱动4个TTL负载。

P3口:

8位、准双向I/O口,具有内部上拉电阻。

P3口可作为普通I/O口,用做输入时,将输出锁存器置1。

在编程/校验时,P3口接受某些控制信号。

b)控制信号线

RST:

复位输入信号,高电平有效。

在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。

/VPP:

外部程序存储器访问允许信号。

引脚接地时,仅使用64KB的片外程序存储器,CPU从外部0000H~FFFFH的地址空间取指令;当

引脚接VCC时,CPU从片内0000H地址开始取指令,当PC值超过1FFFH时,自动转到外存储器2000H~FFFFH地址空间执行程序。

片外程序存储器读选通信号,低电平有效。

ALE/

低字节地址锁存信号。

c)电源线:

VCC为电源电压输入引脚,GND为地线。

d)外部晶振引线:

XTAL1:

片内振荡器反相放大器和时钟发生线路的输入端。

使用片内振荡器时,连接外部石英晶体和微调电容。

XTAL2:

片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

B.74HC244

简单输出接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。

74HC244芯片的引脚排列与内部结构分别如图2-9(a)(b)。

(a)引脚排列     (b)内部结构

图2-9 74HC244

74HC244芯片内部共有两组四位三态缓冲器,使用时可分别以1

和2

作为它们的选通工作信号。

1脚为低电平时只有4个缓冲器工作,输入2,4,6,8对应输出18,16,14,12;1为高电平时这4个缓冲器为高阻。

19引脚为低电平另外四个缓冲器工作,同样,输入11,13,15,17,对应输出9,7,5,3;19为高电平时这四个缓冲器为高阻。

C.LM7805

LM7805的外形如图2-10所示。

LM7805三端集成稳压电源内部由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成,具有低功耗,高效率,纹波系数小,输出电压稳定等优点。

 

图2-10LM7805的外形图

D.七段LED数码管

7段数码管是一种常用的显示器件,其外观与内部电路连接见图2-11。

它使用7个笔画显示0~9共10个数字,加上一个小数点共8个显示段,每一个笔画都是由发光二级管组成的。

LED数码管根据LED的接法不同分为共阴和共阳两类,图2-11(b)是共阳极数码管的内部电路,将八只LED的阳极连在一起,其中a~g为7个笔画的驱动端;dp为小数点驱动端;COM为公共引脚。

 (a)外观(b)内部电路连接

图2-11LED数码管

0~9共10个字符的字形码如表2-1所示。

E.双色发光二极管

双色发光二极管是在一个封装结构内设置两只不同单色的发光二极管。

共阴红绿双色发光电气符号图与内部电路连接如图2-12所示。

有3根引出线,圆形和长方形两种封装。

其中第一只发光二极管的负(或正极)与第二只发光二极管的负(或正极)极相互连接后再向外引出。

表2-1LED数码管显示字符的字形码

字形

P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

字形编码

dp

g

f

e

d

c

b

a

共阳

共阴

0

1

1

0

0

0

0

0

0

C0H

3FH

1

1

1

1

1

1

0

0

1

F9H

06H

2

1

0

1

0

0

1

0

0

A4H

5BH

3

1

0

1

1

0

0

0

0

B0H

4FH

4

1

0

0

1

1

0

0

1

99H

66H

5

1

0

0

1

0

0

1

0

92H

6DH

6

1

0

0

0

0

0

1

0

82H

7DH

7

1

1

1

1

1

0

0

0

F8H

07H

8

1

0

0

0

0

0

0

0

80H

7FH

9

1

0

0

1

0

0

0

0

90H

6FH

(a)外形     (b)共阴双色发光二极管内部电路连接

图2-12双色发光二极管

发光双色二极管的判别与检测方法:

将万用表打在电阻档,用万用表黑表笔接在双色发光二极管中间的负极上,红表笔接在双色发光二极管的正极上,每次都亮,该双色发光二极管是共阴极的,并且是好的。

F.三极管9012

9012为一PNP型的三极管,外形与引脚图如图2-13所示。

其中1脚为发射极,2脚为基极,3脚为集电极。

G.整流桥

整流桥的外形如图2-14所示。

整流桥的是作用将交流电转换成直流电,本次设计电源电路中选用1A,220V的整流桥。

图2-139012外形图及引脚图图2-14整流桥的外形如图                           

2.3系统软件的设计

交通灯控制系统软件分为主程序、定时中断程序与特种车实时响应程序三部分。

2.3.1主程序

主程序主要负责总体程序管理功能,包括初始化部分与人机交互设定部分。

由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。

主程序流程图如图2-15所示。

图2-15主程序流程图

初始化部分主要完成内存规划,定时器的工作模式、中断方式等的设定。

由于子程序调用较多,因此初始化时堆栈指针设于80H处。

定时器T0、T1设为16位定时器模式,定时时间为50mS,T0为秒计时用,T1为通行结束闪烁用。

2.3.2定时中断服务程序

定时中断服务程序主要用于车辆与行人的通行指示,按照通行规则,红绿灯控制转换逻辑表如表2-2所示。

通行规则如下:

A.车辆南北直行、各路右拐,南北向行人通行。

南北向通行时间为1min(60S),各路右拐比直行滞后10S开放。

B.车辆南北向左拐、各路右拐,行人禁行。

通行时间为1min(60S)。

C.车辆东西直行、各路右拐,东西向行人通行。

东西向通行时间为1min(60S),各路右拐比直行滞后10S开放。

D.车辆东西向左拐、各路右拐,行人禁行。

通行时间为1min(60S)。

表2-2路口通行方式控制码数据表

端口

控制功能

120-110S

110-70S

70-60S

60-10S

10-0S

P1.7

左拐红

1(亮)

1(亮)

1(亮)

0(暗)

0(暗)

P1.6

左拐绿

0(暗)

0(暗)

0(暗)

1(亮)

1/0(提示)

P1.5

直行红

0(暗)

0(暗)

0(暗)

1(亮)

1(亮)

P1.4

直行绿

1(亮)

1(亮)

1/0(提示)

0(暗)

0(暗)

P1.3

右拐红

1(亮)

0(暗)

0(暗)

0(暗)

0(暗)

P1.2

右拐绿

0(暗)

1(亮)

1(亮)

1(亮)

1/0(提示)

P1.1

行人红

0(暗)

0(暗)

0(暗)

1(亮)

1(亮)

P1.0

行人绿

1(亮)

1(亮)

1/0(提示)

0(暗)

0(暗)

路口控制字

99H

95H

95H/84H

66H

66H/22H

西

P2.7

左拐红

1(亮)

1(亮)

1(亮)

1(亮)

1(亮)

P2.6

左拐绿

0(暗)

0(暗)

0(暗)

0(暗)

0(暗)

P2.5

直行红

1(亮)

1(亮)

1(亮)

1(亮)

1(亮)

P2.4

直行绿

0(暗)

0(暗)

0(暗)

0(暗)

0(暗)

P2.3

右拐红

1(亮)

0(暗)

0(暗)

0(暗)

0(暗)

P2.2

右拐绿

0(暗)

1(亮)

1(亮)

1(亮)

1/0(提示)

P2.1

行人红

1(亮)

1(亮)

1(亮)

1(亮)

1(亮)

P2.0

行人绿

0(暗)

0(暗)

0(暗)

0(暗)

0(暗)

路口控制字

AAH

A6H

A6H

A6H

A6H/A2H

 

交通灯的4种通行规则,是以给控制红绿灯端口送控制码的方式实现的。

它的原理是,将按不同规则通行时的各路口的红绿灯亮灭情况转换为单片机端口控制码。

红绿灯指示功能通过T0定时中断服务程序实现。

定时器T0定时溢出中断周期设为50ms,中断累计20次(即1S)时对120S倒计时单元减一操作。

设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。

控制码分为5个时间段:

120~110S、110~70S、70~60S、60~10S、10~0S。

交通管理定时功能程序流程图如图2-16所示。

图2-16交通管理定时功能程序

2.3.3特种车中断服务程序

将按钮S3按下,给INT1引脚输入低电平信号来模拟特种车通过信号,此时外部中断1被触发,中断处理流程如图2-17所示。

图2-17 特种车中断服务程序流程图

总的程序清单见附录二。

2.3.4算法分析

A.定时器/计数器

本设计涉及到120~110S、110~70S、70~60S、60~10S、10~0S五段计时,首先须将它们转为16进制代码。

120=7×16+8=78H

110=6×16+14=6EH

70=4×16+6=46H

60=3×16+12=3CH

10=0×16+10=0AH

B.定时时间初值与TMOD的设置

T0、T1为16位定时器,由于定时时间大于8192μS,应选用工作方式一。

由于晶振频率为12MHz,TCY=1μS,故有

T=(65536-X)TCY=(65536-X)×1μs=50ms

计算初值X=15536=3CB0H

即TH0=3CH,TL0=0B0H。

TMOD的格式如图2-18所示。

D7

D6

D5

D4

D3

D2

D1

D0

GATE

C/

M1

M0

GATE

C/

M1

M0

 

图2-18TMOD的格式

TMOD各位的内容确定如下:

由于定时器/计数器0设为定时器,选用工作方式一,所以C/

(TMOD.2)=0,M1(TMOD.1)=0,M0(TMOD.0)=1,GATE(TMOD.3)=0;定时器/计数器1没有使用,相应的D7~D4为随意状态“X”。

若取“X”为0,则(TMOD)=00000001B=01H

C.中断系统IE的取值

IE的格式如图2-19所示。

D7

D6

D5

D4

D3

D2

D1

D0

EA

---

ET2

ES

ET1

EX1

ET0

EX0

图2-19 IE的格式

IE每一位都由软件置1或清零。

本设计中CPU允许中断即EA=1,定时器/计数器0中断允许位ET0及外部中断0中断允许位EX0可申请中断,即ET0=1,EX0=1,其余不允许中断,均设为0,所以IE=10000011H=83H

3系统调试

根据前述第2大节中硬件和软件设计,制作了基于单片机的交通灯控制系统样机实物。

对样机的硬件和软件分别进行了调试,最后进行了软件、硬件联调。

调试成功的实物照片如图3-1所示。

图3-1调试成功的单片机控制交通灯系统实物照片

调试过程中遇到了不少问题,并已将其逐一解决。

最终得到了调试成功的交通灯系统,可以完成本设计1.2节中设计内容的要求。

3.1硬件调试

3.1.1静态检查

根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。

3.1.2通电检查

首先调试电源部分。

整个电路只需要+5V的电压,接上电源,将220V交流电通入,测试变压器的输出端,整流桥输出,LM7805的输出电压是否和理论计算值一致,再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡信号。

3.2软件调试及软硬件联调

对软件先用仿真器进行了调试。

用仿真器运行正常后,再用烧写器将程序烧到AT89S52单片机中,进行了脱机调试。

3.2.1仿真器选择

单片机仿真器有很多型号,本次设计采用南京电子有限公司生产的伟福系列仿真器H51/S。

仿真头类型采用POD-H8X5X。

3.2.2仿真过程

A.建立程序

选择菜单[文件|新建文件]出现一个文件名为NONAME1的源程序窗口,如图3-2所示,输入程序段(此处以P18页时间显示程序段为例)。

 

图3-2 建立程序窗口

将文件存为扩展名为.ASM的文件进行保存。

B.建立项目

建立项目分如下三步:

a)加入模块文件。

(将上述A中建立的ASM文件加入)

b)加入包含文件。

(若无包含文件,此步加以取消)

c)保存项目。

C.仿真器的设置

选择菜单[设置|仿真器设置]功能或按“仿真器设置”快捷图标打开“仿真器设置”对话框,如图3-3所示。

在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。

在“语言”栏中,“编译器选择”选择为“伟福汇编器”。

编译项目。

选择菜单[项目|编译]功能或按编译快捷图标,编译项目。

在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。

纠正错误后,再次编译直到没有错误。

在编译之前,软件会自动将项目和程序存盘。

在编译没有错误后,就可调试程序了。

图3-3“仿真器设置”对话框

3.2.3通行灯输出调试

对于通行灯输出程序的调试,首先看左拐灯、直行灯、右拐灯、行人灯是否能正常工作。

编制了以下测试灯亮灭的程序:

 ORG0000H

START:

 MOVA,#0AAH    ;让东西南北四个路口的四个红灯全亮

 MOVP1,A

 MOVP2,A

 ACALLDELAY;延时一段时间

  MOVA,#55H;让东西南北四个路口的绿灯全亮

MOVP1,A

MOVP2,A

ACALLDELAY;

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

当前位置:首页 > 工程科技 > 电力水利

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

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