基于51单片机智能交通灯的控制.docx
《基于51单片机智能交通灯的控制.docx》由会员分享,可在线阅读,更多相关《基于51单片机智能交通灯的控制.docx(38页珍藏版)》请在冰点文库上搜索。
基于51单片机智能交通灯的控制
学号
**********
密级公开
******本科毕业论文
基于8051单片机的城市智能交通灯控制
系统的设计
学
院
名
称:
&&&&&&&
专
业
名
称:
*********
学
生
姓
名:
****
指
导
教
师:
******
二O一一年五月
BACHELOR'SDEGREETHESIS
OFLANZHOUCITYUNIVERSITY
TheDesignofIntelligentTrafficLight
SystemBasedon8051SCM
May2011
郑重声明
本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。
尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。
对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。
本学位论文的知识产权归属于培养单位。
本人签名:
日期:
随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重。
因此,一个好的交通灯控制系统,将给道路拥挤等方面给予技术革新。
8051单片机的交通灯控制系统由8051单片机、交通灯显示、LED倒计时、紧急处理(中断)等模块组成。
本设计除了基本交通灯功能外,还具有倒计时显示、紧急情况处理等相关功能。
理论证明该系统能够简单、经济、有效地疏导交通,提高交通路口的通行能力。
本设计根据单片机具有功能强、实用方便灵活、可靠性高的特点,提出了用8051单片机自动控制交通信号灯灯及时间显示的方法,同时给出了软硬件的设计及实现方法,在硬件电路中具体设计了时钟电路、复位电路、中断电路信号灯电路设计,在软件电路中具体编写了中断程序和软件延时程序。
为交通指挥自动化提供一种新的廉价手段,具有一定的推广意义。
关键词:
交通控制;单片机;8051;智能
ABSTRACT
Theagesisanautomationagesnowadaysandtransportationlightcontrol'swaitingalotofequipmentsofprofessionsalliscloselyrelatedwithcalculator.Therefore,agoodtransportationlightcontrolsystem,willhustleforroad,givetechniqueinnovation.
The8051microcontrollrecontrolsystemconsistsofthetrafficlightsdisplay,8051monolithicintegratedcircuits,andLEDthecountdown,emergency
adjustment」nadditiontothebasictrafficfunctionoutside,stillhavetimetomanuallyset,andsoon.theoryshowthatthesystemcansimple,economicandeffectiverelievestraffic,improvethecrossroadscapacity.
Accordingtothedesignofchipmircrocotrollrehasstrongfunction‘convenientandflexible,hingreliablility.presentedwith8051microcontrollrecontrolfortrafficsignallightsandtimedisplaymethod,atthesametime,givesthehardwareandsoftwaerdesignandimplementationmethod」nthehardwarecircuitofthespecificdesignofclockcircuit,aninterruptcircuitsignalccirrcuitdesign.lnthesoftwarecircuitspecificwritinginterruptprogramandasoftwareprogram.Trafficcommandautomationprovidesanewmeansofcheap,haspopularizingsignificane.
Keywords:
TrafficControl;SingleChipMicrocomputer;8051;Intelligenee
第1章绪论1
1.1课题研究的背景及意义1
1.2本文主要研究工作1
第2章道路交通灯控制系统的设计方案2
2.1系统总框架2
2.2电路的工作原理2
第3章硬件设计4
3.1系统总框图4
3.2总的硬件电路图设计4
3.2.1时钟电路设计5
3.2.2复位电路设计6
3.2.3单片机最小系统7
3.2.4LED数码管显示电路设计7
3.2.5信号灯设计9
3.2.6中断电路设计10
第4章软件设计12
4.1软件流程图12
4.2部分函数介绍12
4.2.1每秒钟的设定12
4.2.2计数器初值计算12
4.3软件延时13
4.4中断响应程序设计14
4.4程序流程图15
4.5中断程序16
4.6源程序17
结论21
参考文献22
致谢错误!
未定义书签。
第1章绪论
1.1课题研究的背景及意义
随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。
交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。
为了解决车和路的矛盾,常用的有两种方法:
一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及环境的压力,也将受到限制。
这就需要依靠除限制需求和提供道路设施之外的其他办法来满足日益增长的交通需求。
在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。
通过对城市主要十字路口交通控制规律的观察发现,我国现有交通灯控制系统的一个缺陷:
当有紧急车辆通过时没有响应的措施让紧急车辆优先通过,本设计针对这一问题设计了当有紧急车辆来时优先让其通过。
1.2本文主要研究工作
为了实现对交通道路的管理,力求交通管理先进性、科学化,本设计分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济、能够有效地疏导交通,提高交通路口的通行能力⑴
本设计主要做以下几方面的工作:
一、对交通信号灯的研究意义和交通灯的研究现状进行分析,确定系统交通控制的总体设计,包括交通灯控制系统通常要实现自动控制等各项应有功能,增加在紧急情况下能够手动切换信号灯让紧急车辆优先通行的功能。
二、基于8051单片机设计出城市智能交通灯控制系统,并进行详细说明设计总的硬件电路以及各个部分的硬件电路。
三、进行软件系统的设计,尤其详细说明了定时器、中断以及延时程序的设计。
第2章道路交通灯控制系统的设计方案
2.1系统总框架
本设计针对一个大型十字路口设计的交通信号灯控制系统。
东西方向和南北
方向各设有红灯、黄灯、绿灯各一组。
指挥车辆和行人安全通行。
红灯亮禁止通
行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换[2]0
状态一南北方向上红灯亮25秒,东西方向上绿灯亮20秒,状态二东西方向上
绿灯闪烁2秒再接着黄灯闪烁3秒,状态三东西方向上红灯亮25秒,东西方向上绿灯亮20秒,状态四南北方向上绿灯闪烁2秒再接着黄灯闪烁3秒。
这样四个状态一直循环下去,并有数码管显示时间。
除了可以实现基本交通灯功能外,亦能实现倒计时和紧急情况下的中断处理。
2.2电路的工作原理
本系统共设有12个LED,其中红色的4个,绿色的4个,黄色的4个。
所有LED在该设计中采用共阴极接法[4]o
交通灯应满足两个方向的工作时序:
东西道绿灯和黄灯亮的时间等于南北道
红灯亮的时间;南北道绿灯和黄灯亮的时间等于东西道红灯亮的时间。
若假设每
个单位脉冲周期为1秒,则东西道绿灯、黄灯、红灯分别亮的时间为22秒、3秒、25秒,而相应的南北道红灯、绿灯、黄灯分别亮的时间为25秒、22秒、3秒。
一次循环为50秒。
东西方向黄灯亮时,南北方向红灯以1Hz的频率闪烁;南北方向黄灯亮时,东西方向红灯以1Hz的频率闪烁。
各个方向的信号灯亮时,需配合有时间提示,以数字显示出来,方便行人与
机动车观察。
信号灯亮的时间均以每秒减“1”的计数方式工作,直至减到“0”后各信号灯自动转换。
由软件设置交通灯的初始时间,数码管的段码用不同的口线,东西方向的是用的P0口,南北的使用P3口,用单片机来控制各种信号灯的燃亮时间,通过单片机的P2口控制[5]。
控制电路图如下图2.1所示:
8051
倒计时显
系
交通
示
统
处
>
信号灯
理
图2.1控制电路框图
本系统每个信号指示灯接一个对应的I/O口,通过对I/O口赋值控制交通信号灯的状态来指挥交通。
在此基础上按键可以触发单片机进入中断,进而控制交通信号灯的状态⑹。
第3章硬件设计
3.1系统总框图
交通灯控制系统的设计方案如下图3.1所示:
图3.1系统设计方案框图
3.2总的硬件电路图设计
寿AL
Pr.WADE
皿刘ADWfSEH皿沁】I
RLEPJ.-kAD]2讥M魁D泊
j
Pl.tfADD
IMMAD】
PI.沁F
FI.S'ADSM魁D$
PL.IPI&TUO:
:
-pi.apumrpljn.anwroPLJPJ.3ANTIpi4patroplyP3irriPl.5PJiifiPFPL-7PSIfliD
图3.2总硬件电路图(其中R表示红灯,丫表示黄灯,G绿灯)
3.2.1时钟电路设计
时钟电路是单片机的心脏,它控制着单片机的工作节奏。
单片机内部有一个
高增益反相放大器,用于构成振荡器。
反相放大器的输入端为XTAL1,输出端为
XTAL2禾I」用芯片内部反相器和电阻组成的振荡电路,在XTAL1和XTAL2引脚上跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,形成单片机的时钟电路(如下图3.3所示),可稳定频率并对振荡频率有微调作用⑺。
每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
晶振的作用是为系统提供基本的时钟信号⑺。
本设计中
取晶体振荡器的频率f°sc=12MHZ,电容C1、C2的主要作用是帮助振荡器起振,其值的大小对振荡器的频率有微调作用,典型值为C仁C2=33pF
C1
33p
C2
I—IX1
—i一CRYSTALLXTAL1
12MHz
tiXTAL2
图3.3时钟电路
322复位电路设计
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
51系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位⑹(本设计中需要2us以上的高电平就能复位)。
除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,
•RST
可以按复位键以重新启动。
具体电路如图3.4所示:
1
R2
1k
图3.4复位电路
323单片机最小系统
O—
C3
I—IX1
CRYSTAL
10U
R1
100R
R2
1k
工
rXTALl
FAWWP01/AD1F02AD2
XTZJ.2
斗
P;5/AD5
RST
F0.7/Ar?
7
F2.^A1iO
PSEN
F2.3/A11
炷
F2.47A12
EA
F2.CJA14
F2.7/A15
P1.0
Fl1
F3[书任]
F1.2
P3.24NT0
F13
F3刑巧
F14
F1o
F1.6
F17
r37HD
4#
二
—□-—
r
-?
4—
图3.5最小系统电路图
单片机最小系统(如上图3.5所示)以8051为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。
时钟电路在单片机的外部通过XTAL1、XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C1、C2为33pF⑶。
复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效。
上电自动复位通过电容C3和电阻R2来实现,按键手动复位是图中复位键来实现的[10]。
3.2.4LED数码管显示电路设计
根据系统设计要求,东西和南北方向的信号灯时间不一样,所以就利用单片机的P0和P3口来做数码管的段码驱动,东西方向和南北方向的位线可以公共来使用,可以节约单片机的口线[11]。
数码管可以使用共阴数码管⑷,数码管的每段的电流是10毫安。
电路如下图
3.6所示:
A
3
29
10~3?
POQ/ADQ
S7TALL
PtM/AD】
M2ZAD2
KTAL2
M.3/AD3
P0.4/AT4POLADSP0.fi/AD6
RST
P0.7TAD7
P2.0/AD8
P2,L/AD9
P2.2/ADLD
pSEN
P2.3/AD1
ALE
F2.4/AD2
EA
B^.urADMP2.7/AD15
Pl.D
P3.D/EUCD
Pt.t
pumtD
Pi2
P3.2/[NTO
Pl.3
P3.S/[NTL
PN
Pl.5
P3.5/TJ
Pl.5
P3.^flVP
PL7
P3.7/RD
VI
AWS51
33
32
17
nTT
21
23药
25
26远
ZE
39
38
童
36s
02
图3.6单片机与数码管连线图
其数码管显示原理[13]:
数码管按段数分为7段数码管和8段数码管。
7段数码管是由七段条形发光
二极管组成的“8”字形的LED显示器,每段分别用a、b、c、d、e、f、g表示;
8段数码管则是在7段的基础上再加一个圆点型发光二极管,用dp表示。
由于连
接方式的不同,数码管又分共阳极接法和共阴极接法,接法不同,段码值不同[12]<
在本设计中采用共阴极接法,具体段码值确定如下表3.1所示:
表3.1采用共阴极连接
显示数值
dpgfedcba
驱动代码(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
9
01101111
6FH
325信号灯设计
本设计利用单片机的P2口驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管,电路图见图3.8所示
[14]
。
锁存器--74HC573八进制三态非反转透明锁存器,高性能硅门CMOS器件。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。
当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存[15]。
管脚安排如下图3.7所示:
2
3
4
5
6
7
8
9
DO
Q0
19
18
D1
Q1
17
D2
Q2
16
D3
Q3
15
D4
(34
14
D5
(25
13
D6
Q6
12
D7
<27
LE
VCC
OE
GNC
74HC573
图3.7锁存器74HC573管脚图
主要特点:
1)输出能直接接到CMOS,NMOS和TTL接口上
2)操作电压范围:
2.0V-6.0V
3)低输入电流:
1.0uA
4)CMOS器件的高噪声抵抗特性
其功能表如表3.2所示:
表3.2锁存器74HC573功能表
输入
输出
输出使能
输入锁存
D
Q
L
H
H
H
L
H
L
L
L
L
X
不变
H
X
X
Z
X:
不用关心
Z:
高阻抗
4
~~
ZF
^ALl
PO.O/ADO
POJ/ADl
P0.2/AD2
XTAL2
PG.3/AD3
P0.4/AD4
P0.5/AD5
P0.fi/AD6
RST
P0.7/AD7
P2.0/AD8
P2J/AD9
P2.2/AD10
PSEN
P2.3/AD1]
AXE
P2.4/AD12
EA
PZ.J/ADh
P2.6/AD14
P2.7/AD15
P1.0
P3.0/RXD
Pl.l
P3]/TXE>
PL2
P3.2/1NT0
Pl.3
P3.3/JNTI
Pl.斗
P3.4/T0
Pl.5
P3.57T1
Pl.5
P3.6W!
Pl.7
P3.7/RD
U1
13
ATS9S5]
二
37
三
21
22_
2?
26
27
2?
■0
17
U2
11
;4
12
”
—"I1S
ra
图3.8单片机与信号灯连接图(其中R表示红灯,Y表示黄灯,G表示绿灯)
3.2.6中断电路设计[16]
当紧急情况发生时,按下紧急按键(外部中断INT1),单片机输出紧急信号
系统进入紧急状态[17]。
中断硬件显示如下图3.9所示:
U1
箭甩1
po.{eXT^J_2
FG.2Z^2⑴阴3
n:
ST
PC加皿PC鋼:
£
POEi*D6
Pi:
明V
P3En
r2l旳卫1临F2.2/AI0
ALE
;2.4/A12
6?
;2.5fAJ3
PI:
JO
pzewuP2.7M5
PS.O^RXD
Pl.t
P3JIXD
PI.2
円.2丽頁
P口?
1.4
pzsm
R3J/ID
P1j5
P35/H
P1J6
F■北帧
Pt.7
P37jT1j
19
J,4
—
T7
2S
3T
37
图3.9中断硬件连接图
第4章软件设计
4.1软件流程图
图4.1主程序流程
4.2部分函数介绍
4.2.1每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软件延时的方法[18]o
4.2.2计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他
是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器摸值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为28。
计算公式:
T=(M—TC)T计数
或TC=M—T/T计数
T计数是单片机时钟周期Tclk的12倍;TC为定时初值。
如单片机的主脉冲频率为Tclk12MHz,经过12分频:
方式0TMAX=213*1微秒=8.192毫秒
方式1TMAX=216*1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。
4.3软件延时
MCS-51的工作频率为2~12MHz。
机器周期与主频有关,机器周期是主频的
12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间[19]。
具体的延时程序分析:
DELAY:
MOV
R4,#08H
延时1秒子程序
DE2:
LCALL
DELAY1
DJNZ
R4,DE2
RET
DELAY1:
MOV
R6,#0
延时125ms子程序
MOV
R5,#0
DE1:
DJNZ
R5,$
DJNZ
R6,DE1
RET
MOV
RN,
#DATA
字节数数为2机器周期数为1
所以此指令的执行时间为
2ms
DELAY1为一个双重循坏,循环次数为256*256=65536,所以延时时间=65536*2=131072us约为125us。
DELAYR4设置的初值为8,主延时程序循环8次,所以125us*8=1秒。
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
4.4中断响应程序设计
在现实生活中,通常会有一些紧急车辆出现(例如救护车)。
此时应强行中断正常的交通灯运转状态,使有紧急车辆的车行方向保持通行状态。
无紧急车辆时,交通信号灯按正常时序控制。