单片机系统实训报告交通灯设计概要.docx
《单片机系统实训报告交通灯设计概要.docx》由会员分享,可在线阅读,更多相关《单片机系统实训报告交通灯设计概要.docx(35页珍藏版)》请在冰豆网上搜索。
单片机系统实训报告交通灯设计概要
单片机系统实训报告
基于单片机的交通控制系统模拟设计
学院:
电气工程及自动化
专业:
自动化
班级:
10电51
姓名:
韩月
学号:
10285046
基于单片机的交通控制系统模拟设计
摘要:
自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。
近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。
本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯对路面状况的智能控制。
从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。
系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。
本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。
和复位电路控制电路等组成,较好的模拟了交通路面的控制。
关键词:
交通灯单片机数码管
目录
1.前言---------------------------------------------------1
2.总体设计-----------------------------------------------1
2.1设计思路-------------------------------------------1
2.2单片机交通控制系统方案的比较、设计与论证-----------1
2.2.1电源提供方案-----------------------------------1
2.2.2显示界面方案-----------------------------------2
2.2.3输入方案---------------------------------------2
2.3单片机交通控制系统总体设计-------------------------2
2.3.1单片机交通控制系统的通行方案设计---------------2
2.3.2单片机交通控制系统的功能要求-------------------3
2.3.3单片机交通控制系统的基本构成及原理-------------4
2.4交通灯控制系统的硬件设计---------------------------5
2.4.1交通灯中的中断处理流程-------------------------5
2.4.2系统硬件总电路构成及原理-----------------------6
3.4.2.1系统硬件电路构成-----------------------6
3.4.2.2系统工作原理---------------------------6
3.4.2.3其他硬件介绍---------------------------7
2.5系统软件程序的设计---------------------------------8
2.5.1程序主体设计流程------------------------------9
2.5.2子程序模块设计--------------------------------10
2.5.2.1状态灯显示及判断----------------------10
2.5.2.2LED倒计时显示-------------------------11
2.5.2.3紧停及调整时间中断子程序--------------12
2.5.2.4红绿灯时间调整程序--------------------13
2.5.2.5总程序--------------------------------14
3.实训体会-----------------------------------------------20
4.参考文献-----------------------------------------------21
5.致谢---------------------------------------------------22
1
前言
在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红黄绿信号灯。
其中红灯亮,表示该条道路禁止;黄灯亮表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。
交通灯控制电路自动控制十字路口红黄绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。
1.设计思路
(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
(2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,基于实际情况,又增加了紧急状况处理和通行时间可调这两项特特殊功能。
(3)进行显示电路,灯状态电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
(4)进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
2.单片机交通控制系统方案的比较、设计与论证
2.1电源提供方案
为使模块稳定工作,须有可靠电源。
因此考虑了两种电源方案:
方案一:
采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟
电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:
采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,
1
节约成本;缺点是输出功率不高。
综上所述,我选择第二种方案。
2.2显示界面方案
该系统要求完成倒计时功能。
基于上述原因,我考虑了二种方案:
方案一:
采用数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
方案二:
采用点阵式LED显示。
这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。
综上所述,我选择第一种方案。
2.3输入方案:
题目要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:
方案一:
采用8155扩展I/O口及键盘,显示等。
该方案的优点是:
使用灵活可编程,并且有RAM及计数器。
若用该方案,可提供较多I/O口,但操作起来稍显复杂。
方案二:
直接在I/O口线上接上按键开关。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
3.单片机交通控制系统总体设计
3.1单片机交通控制系统的通行方案设计
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行。
共有8种状态,这8种状态如下,周而复始,循环变化。
8个状态归纳如下:
1.东西方向红灯亮,同时南北方向绿灯亮,倒计时15S,此状态下,南北方向直行,东西方向禁止通行。
2.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。
3.
2
东西方向红灯亮,同时南北方向两个绿灯亮,倒计时15S,此状态下,南北方向车辆可以直行,左右拐,行人禁止通行,倒计时15S。
4.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。
5.东西方向绿灯亮,同时南北方向红灯亮,倒计时15S,此状态下,东西方向直行,南北方向禁止通行。
6.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。
7.东西方向两绿灯灯亮,同时南北方向红灯亮,倒计时15S,此状态下,东西方向车辆可以直行,左右拐,行人禁止通行,倒计时15S。
8.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。
即:
时间
15S
5S
15S
5S
15S
5S
15S
5S
东西
红
黄
红
黄
绿
黄
两绿
黄
南北
绿
黄
两绿
黄
红
黄
红
黄
3.2单片机交通控制系统的功能要求
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的
信号发生,还能进行倒计时显示,通行时间调整和紧急处理等功能。
(1)倒计时显示
倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。
驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。
倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。
(2)时间的设置
3
可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。
键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。
前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。
后者适用于按键数量较多的场合,但是在单片机I/0口资源相对较少而需要较多按键时,此
方法仍不能满足设计要求。
本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。
(3)紧急处理
交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。
由此在交通控制中增设禁停按键,就可达到想此目的。
3.3单片机交通控制系统的基本构成及原理
单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
本系统在此基础上,加入了紧急情况处理与时间调整功能。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。
系统的总体框图如上所示。
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中随时调用急停按键和时间调节中断。
4
系统的总体框图
4.交通灯控制系统的硬件设计
4.1交通灯中的中断处理流程
(1)现场保护和现场恢复:
有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。
(2)中断打开和中断关闭:
为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。
(3)中断服务程序:
有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:
即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。
(4) 中断返回:
5
执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。
4.2系统硬件总电路构成及原理
实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,16个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和紧急按钮。
(进行硬件搭建时,只用8个灯和4个数码管模拟,即东西两个方向只模拟一个,南北也只模拟一个)
4.2.1系统硬件电路构成
本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。
其具体的硬件电路总图如下图所示。
其中P0用于送显两片LED数码管,P1,P2.4,P2.5用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P1.6,P1.7,P2.0,P2.1对数码管进行片选,P3.2即INT0紧急情况处理按键,P3.3即INT1接时间调整中断按键。
4.2.2系统工作原理
系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口以及P2.4,P2.5口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。
时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,
当然,还要开启两个外部中断,其一为紧急情况处理中断,一旦信号有效,即P3.2为低电平时进入中断服务子程序,东西南北路口的红灯全亮禁止全部通行,再使P3.2为无效高电平,中断结束返回。
其二为通行时间调整中断,若P3.3为低电平进入相应的中断子程序,对时间进行调整,再使P3.3为无效高电平,中断结束返回。
6
基于单片机的交通灯控制系统电路图
4.3其它硬件介绍
4.3.1八段LED数码管
LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。
LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。
以八段共阴管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示dP,即点),每个发光二极管的阴极连在一起,如下图所示。
这样,一个LED数码管就有1根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。
为方便起见,本文主要讨论共阴八段LED数码显示管,其他类形的显示管与其类似。
7
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如dp,g,f,e,d,c,b,a全亮显示为8,采用共阴极连接驱动代码,代码表如下表所示
驱动代码表
显示数值
dp,g,f,e,d,c,b,a
驱动代码
0
00111111
3FH
1
00000110
06H
2
01011011
5BH
3
01001111
4FH
4
01100110
66H
5
01101101
6DH
6
01111109
7DH
7
00000111
07H
8
01111111
7FH
9
01101111
6FH
相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后用IPTR调取LEDMAP的代码。
4.3.2发光二极管
根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。
每个方向上设置红绿黄灯(绿灯为2个),总共4组。
4.3.3按键控制
本设计设置了4个键:
K1键P3.0,K2键P3.1,K3键P3.2,K4键P3.3,每个按键一端接地,另一端接对应的P3端口,低电平有效,当按键下端口接地,单片机捕获到低电平,从而知道相应的输入信息。
8
5系统软件程序的设计
5.1程序主体设计流程
全部控制程序实际上分为若干模块:
键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序,红绿灯时间调整程序等。
整个软件程序方面主要分两大部分:
主程序部分和中断处理程序。
流程图如下图所示。
9
9
9
5.2子程序模块设计
5.2.1状态灯显示及判断
在本设计中,实际控制的灯只有8个,即:
东西红灯,东西黄灯,东西绿灯(2个),南北红灯,南北黄灯,南北绿灯(2个)。
定义IO端口如下,其中均是高电平有效。
共有8种状态:
东西绿灯亮,南北红灯亮;东西黄灯亮,南北黄灯亮;东西两绿灯灯亮,南北红灯亮;东西黄灯亮,南北黄灯亮;东西红灯亮,南北绿灯亮;东西黄灯亮,南北黄灯亮;东西红灯亮,南北两绿灯亮;东西黄灯亮,南北黄灯亮。
用于显示发光二极管时,部分程序如下:
;东西红,南北绿,计时时间为15S
MOVP1,#0CH
MOV60H,#15H
A1:
MOVR1,#50
10
A2:
ACALLBCD
ACALLDISPCLK
DJNZR1,A2
MOVA,60H
MOVR0,60H
ADDA,#99H
DAA
MOV60H,A
CJNER0,#05H,A1
5.2.2LED倒计时显示
LED计时每1秒都要刷新1次,采用的是动态显示,首先将R4除以10H,整数即十位放在50H中,余数即个位放在51H中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。
具体程序如下:
BCD:
;将十位数送到(51H),个位数送到(50H)
MOVA,60H;60H单元放的是倒计时值
MOVB,#10H
DIVAB
MOV51H,A
MOVA,B
MOV50H,A
RET
DISPCLK:
;显示部分
MOVDPTR,#TAB
MOVA,50H
MOVCA,@A+DPTR
MOVP0,A
CLRP1.6
LCALLDELAY
SETBP1.6
CLRP2.0
LCALLDELAY
SETBP2.0
MOVA,51H
MOVCA,@A+DPTR
MOVP0,A
CLRP1.7
LCALLDELAY
SETBP1.7
CLRP2.1
LCALLDELAY
11
SETBP2.1
RET
5.2.3紧停及调整时间中断子程序
紧停按键连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断进行相关处理。
程序如下:
;紧急情况处理
IINT0:
CLREA
JBP3.2,$
PUSH60H
PUSHP1
PUSHP2
B0:
JNBP3.0,NH
JNBP3.1,DH
;全红
A9:
MOVP1,#09H
SETBP1.6
SETBP1.7
SETBP2.0
SETBP2.1
ACALLDELAY
JNBP3.2,B0
JMPJE
;只允许东西方向车辆通行
NH:
MOVP1,#21H
SETBP1.6
SETBP1.7
SETBP2.0
SETBP2.1
ACALLDELAY
JNBP3.2,B0
JMPJE
;只允许南北方向车辆通行
DH:
MOVP1,#0CH
SETBP1.6
SETBP1.7
SETBP2.0
SETBP2.1
ACALLDELAY
JNBP3.2,B0
JMPJE
JE:
12
POPP2
POPP1
POP60H
SETBEA
RETI
5.2.4红绿灯时间调整程序
时间调整按键连接到外部中断引脚P3.3,即INT1捕获到一个低电平,则进入该中断进行相关处理。
程序如下:
;加减程序
IINT1:
CLREA
JBP3.3,$
PUSHP1
PUSHP2
B1:
JNBP3.1,DDEC
ZINC:
;加1程序
MOVR0,#15
A10:
ACALLBCD
ACALLDISPCLK
DJNZR0,A10
MOVA,60H
ADDA,#01H
DAA
MOV60H,A
JNBP3.3,B1
JMPJS
DDEC:
;减1程序
DDEC:
MOVR4,#15
A12:
ACALLBCD
ACALLDISPCLK
DJNZR4,A12
MOVA,60H
ADDA,#99H
DAA
MOV60H,A
JBP3.3,JS
JMPB1
JS:
MOV61H,60H
POPP2
POPP1
SETBEA
13
RETI
5.2.5总程序:
ORG0000H
LJMPSTART
ORG0003H
LJMPIINT0
ORG0013H
LJMPIINT1
ORG0030H
START:
MOVSP,#6FH;系统初始化
LIGHT:
SETBEA
SETBEX0
SETBEX1
CLRIT1
CLRIT0
CLRP2.4
CLRP2.5
MOVP1,#0CH;东西红,南北绿,禁止拐弯,计时时间为15s
MOV60H,#15H
A1:
MOVR1,#50
A2:
ACALLBCD
ACALLDISPCLK
DJNZR1,A2
MOVA,60H
MOVR0,60H
ADDA,#99H
DAA
MOV60H,A
CJNER0,#00H,A1
MOV60H,#05H
MOVP1,#12H;东西黄,南北黄灯闪烁5s
MOVR2,#5
A3:
MOVR1,#50
A4:
ACALLBCD
ACALLDISPCLK
DJNZR1,A4
CPLP1.1
14
CPLP1.4
MOVA,60H
ADDA,#99H
DAA
MOV60H,A
DJNZR2,A3
MOVP1,#0CH
SEBTP2.4
CLRP2.5;南北左右转弯,车辆直行,禁止人行,倒计时15S
MOV60H,#15H
D1:
MOVR1,#50
D2:
ACALLBCD
ACALLDISPCLK
DJNZR1,D2
MOVA,60H
MOVR0,60H
ADDA,#99H
DAA
MOV60H,A
CJNER0,#00H,D1
MOV60H,#05H
MOVP1,#12H
CLRP2.4
CLRP2.5;东西黄,南北黄灯闪烁5s
MOVR2,#5
D3:
MOVR1,#50
SETBP2.3
D4:
ACALLBCD
ACALLDISPCLK
DJNZR1,D4
CPLP1.1
CPLP1.4
MOVA,60H
ADDA,#99H
DAA
MOV60H,A
DJNZR2,D3
MOVP1,#21H;东西绿,南北红,禁止转弯,计时时间15s
MOV60H,#15