交通信号灯设计Word文档格式.docx
《交通信号灯设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《交通信号灯设计Word文档格式.docx(24页珍藏版)》请在冰点文库上搜索。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;
另一车道为副干道,车辆较少,放行时间应该短些。
2.两条干道的红绿时间不能随时间的改变而修改。
1.3本课题研究内容及意义
随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
第二章系统总体的方案
利用单片机中的定时器、IO接口、中断系统、8279、四位数码管等资源,设计一个十字路口交通信号灯的控制模拟系统。
允许修改各状态下的通行时间,首先能利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭、四位数码管上显示倒计。
并且可通过8279扫描键盘,按键对红绿灯点亮和熄灭时间、四位数码管上显示倒计时进行调整及设置以及能对红绿灯点亮和熄灭时间进行倒计时时间显示,能根据交通流量自动调整对红绿灯点亮和熄灭时间。
2.1本实验设计的思路
1)、利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。
2)、可通过按键对红绿灯点亮和熄灭时间进行调整及设置。
3)、能对红绿灯点亮和熄灭时间进行倒计时时间显示。
4)、可根据交通流量自动调整对红绿灯点亮和熄灭时间。
第三章电路原理图与说明
3.1电路图
主要用到的硬件:
P1口、P3口、LED数码管、LED发光二级管、定时器T0
硬件分配:
1双色发光二极管
表1.双色发光二极管的控制
在表1中是在反相器74LS240输入的电平信号呈现的颜色。
双色发光二极管的控制真值表。
对双色二极管的描述如下:
双色发光二极管内部将一个红色LED和一个绿色LED封装在一起。
共用负端的一个集成发光二极管器件。
当红色正端加高电平,绿色正端加低电平时,红灯亮;
红色正端加低电平,绿色正端加高电平时,绿灯亮;
两端都加高电平时,黄灯亮。
实验中,采用4只双色发光二极管(DLED)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74LS240反向驱动器驱动,74LS240输入控制端为R和G,分别控制DLED红灯和黄灯的工作。
2双色灯与数码管显示的对应关系
在十字路口,交通灯在工作过程中,行人希望看到自己所需等待的时间,那么交通灯就要和时间对应一致,那么我们设计对应的系统中双方对用关系如表2所示:
表2.交通灯与时间显示
3
P1口:
做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:
方向
状态
无
南北
东西
十六进制值
说明
P1.7P1.6
P1.5P1.4P1.3
P1.2P1.1P1.0
00
100
001
22H
东西绿南北红
1
110
011
33H
东西绿黄全亮
2
0CH
东西红南北绿
3
1EH
东西红黄全亮
4、P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。
5、LED发光二极管用来显示灯亮情况。
6、定时/计数器T0用来产生1秒的定时
7.Led显示器十位与p0相连接,个位与p2连接用来显示时间,下面是LED显示接口及原理。
1LED是发光二极管的英文缩写,LED显示器是由发光二极管构成的,它在单片机中的应用非常普遍。
通常所说的LED显示器由7个发光二极管组成,其排列形状如图所示。
此外,显示器中还有一个圆点型发光二极管以dp表示,用于小数点表示。
通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。
LED显示中的发光二极管共有两种连接方法:
2共阳极接法:
把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。
3共阴极接法:
把发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地。
这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不亮。
4控制数码管驱动级的控制电路有静态式和动态式两类:
5静态驱动:
它是指每个数码管都要用一个译码器译码驱动。
6动态驱动:
它是所的数码管使用一个专门的译码驱动器,使各位数码管逐个轮流显示,它的扫描速度极快,因此显示效果与静态驱动相同。
7采用动态数码管显示,可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,就是所谓的分时显示,显示所需要的硬件电路可分时复用。
表1十六进制数字形代码表
字型
共阳极代码
共阴极代码
C0H
3FH
9
90H
6FH
F9H
06H
A
88H
77H
A4H
5BH
B
83H
7CH
B0H
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
8EH
71H
7
F8H
07H
灭
FFH
00H
8
80H
7FH
3.2仿真图
上电后交通灯会按初始化设置好的时间运行,当重设时间后,交通灯就会按照重设好的时间进行工作。
他的工作过程简单的表述为初始状态交通灯为全红,之后几秒变为东西绿、南北红,当显示时间为3秒时,南北闪烁,东西变红,当显示时间为零时停止闪烁同时南北变成绿色,待下次显示时间为3秒时东西闪烁,南北变红,3秒后停止闪烁同时东西变成绿色。
3.3硬件图
黄灯亮3秒
第4章硬件设计
4.1硬件框图
4.2双色发光二极管
4.3双色灯与数码管显示的对应关系
4.4交通灯的状态
1)交通灯的正常工作状态:
交通灯在正常状态的工作初始设置的时间如表3所示:
表3.交通灯的正常工作状态
2)交通灯设置后工作状态
为了适应当时十字路口的交通情况,设计一系列时间工作状态如表4.所示:
表4.设置后的交通灯工作状态
第五章软件设计
5.1主程序流程图
1、首先了解实际交通灯的变化情况和规律。
假设一个十字路口如上图所以,为东南西北走向。
初始状态0:
为东西绿灯亮,南北红灯亮;
然后转状态1:
东西绿灯亮黄灯亮,南北红灯亮黄灯亮;
过后转状态2:
东西红灯亮,南北绿灯亮;
再转状态3:
东西红灯亮黄灯亮,南北绿灯亮黄灯亮。
一段时间后,又循环至状态0。
中间可通过中断按钮产生中断,跳入中断程序执行中断。
列出交通信号灯的状态表如下:
(其中,1代表灯亮,0代表灯灭)
北
西
南
东
绿黄红
2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。
3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。
每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。
4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。
5、通过脉冲中断编写中断程序,可实现中断。
5.2原程序清单及注解
#include<
reg51.h>
#defineport1P2
sbitcom=P0;
sbitkey1=P3^3;
sbitgreen1=P1^0;
sbitred1=P1^1;
sbityellow1=P1^2;
sbitgreen2=P1^3;
sbitred2=P1^4;
sbityellow2=P1^5;
unsignedcharflag=0;
unsignedcharmun=10;
unsignedcharfu=10;
/*数码管段码*/
Unsignedcharcode
tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
voiddelay(void)
{
inti=0,j=0;
for(i=0;
i<
=100;
i++)
for(j=10;
j>
=0;
j--);
}
/*定时器的初始化*/
voidinit_timer0(void)
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
EX1=1;
IT1=1;
}
voiddisplay(unsignedcharx)
unsignedcharm,n;
m=x/10;
n=x%10;
P0=0X01;
port1=~tab[m];
/*数码管显示*/
delay();
P0=0X02;
port1=~tab[n];
voidinit(void)
P1=0x00;
init_timer0();
voidmain()
{init();
while
(1)
{
/*交通灯交替的时间差*/
do
{
display(mun);
green1=1;
red1=0;
green2=0;
red2=1;
}
while(mun!
=3);
do
{
if(mun==3)
{
yellow1=1;
yellow2=1;
}
=0);
if(mun==0)
mun=fu;
yellow1=0;
yellow2=0;
}
green1=0;
red1=1;
green2=1;
red2=0;
{
};
}while(mun!
if(mun==0)
}
/*定时器M0的定时*/
voidtimer(void)interrupt1using1
flag++;
if(flag==20)
{
flag=0;
mun--;
/*外部中断,调节时间*/
voidoutside_int(void)interrupt2
EX1=0;
delay();
if(key1==0)
fu=fu+2;
mun=fu;
第六章心得体会
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
这个设计过程中,我们遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我们明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。
于是,我们坚持了下来。
当然最终,这个设计很成功,主要体现在,这一整个系统,几乎没有课本以外的参考书,程序由我们自己独立完成,制作的交通灯控制系统程序简单易读,结构清楚,最重要的是成本低。
在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。
成本的高低也决定了产品的适用性。
在这次课程设计的过程中,我得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次项目的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把项目做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
参考文献
[1]周立功,单片机应用设计基础[M],北京航空航天大学出版社.2010,9(4):
30-40.
[2]周立功,新编计算机基础教程[M],北京航空航天大学出版社2010
[3](日)铃木雅臣编著,周南生译,晶体管电路设计(上)[M],科学出版社,2003年
[4]康华光主编,电子技术基础[M],高等教育出版社,2007年11月
[5]张迎新等编著,单片机应用设计培训教程[M],北京航空航天出版社,2008年1月
[6]张俊谟编著,单片机中级教程[M],北京航空航天大学出版社,2001年6月
[7]何立民编著,单片机高级教程[M],北京航空航天大学出版社,2001年6月
[8]胡汉才编著,单片机原理及系统设计[M],清华大学出版社,2002年1月
[9]梁合庆编著,增强核闪存80C51教程[M],电子工业出版社,2003年11月
[10]鲍小南主编,单片机基础[M],浙江大学出版社,2002年9月
[11]李朝清编著,单片机原理及接口技术[M],北京航空航天大学出版社,2008年12月
[12]李曼丽著,工程师与工程教育新论[M],商务出版社,2010年9月
[13]胡汉章、叶香美主编,数字电子技术与实践[M],垫子工业出版社,2009年4月
[14]猪饲国夫等编著,徐雅珍等译,数字系统设计[M],科学出版社,2008年8月
附录: