智能交通灯控制系统设计课程设计.docx

上传人:b****5 文档编号:11879911 上传时间:2023-04-08 格式:DOCX 页数:25 大小:618.36KB
下载 相关 举报
智能交通灯控制系统设计课程设计.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

智能交通灯控制系统设计课程设计

等级:

湖南工程学院

课程设计

课程名称单片机原理及应用

课题名称智能交通灯控制系统设计

湖南工程学院

课程设计任务书

 

课程名称单片机原理及应用

课题智能交通灯控制系统设计

 

专业班级自动化1191

学生姓名徐瑞先

学号201101029118

指导老师王迎旭李晓秀

审批

 

任务书下达日期2013年12月02日

任务完成日期2013年12月13日

设计内容与设计要求

设计内容:

本课题要求以单片机核心,设计一个智能交通灯控制系统。

使其能模拟城市十字路口的交通灯功能,并能满足控制的特殊要求(有三个按键输入),以便处理特殊事件。

设计要求:

1)分析开发系统的硬件构成;

2)进行系统的硬件设计;

3)完成必要的参数计算与元器件选择;

4)完成应用程序设计;

5)进行单元电路及应用程序的调试;

6)写出使用说明书。

 

主要设计条件

1.控制十字路口四个方向的红、黄、绿型号灯的正常工作,规则应符合我国交通法规的规定;

2.南北方向的准行基本时间均为60秒(可在线调整);

3.在交通状况发生特殊情况时,可进行特殊处理:

1)消防车、救护车通过时,按下K1建,关闭倒计时器,四个路口同时黄色灯闪烁5秒然后,转为红灯亮,只允许紧急车辆通过,K1建松开,交通控制回复正常;

2)K2、K3键分别为南北和东西方向车辆多时的特殊处理,功能自行定义。

说明书格式

封面

课程设计任务书

第1章概述(课题设计的要求、目的及意义)

第2章系统总体方案选择与说明(系统硬件电路设计框图与工作原理)

第3章硬件电路设计(各部分电路设计、原理、参数计算、I/O分配等)

第4章应用软件设计(流程图、算法等)

第5章系统仿真调试

第6章硬件调试与结果分析(开发板焊接、性能测试、结果、操作说明)

总结

致谢

参考文献

附录A系统硬件电路原理图

附录B程序清单

 

进度安排

设计时间为两周

第一周

星期一、上午:

布置课题任务,讲课及课题介绍

下午:

借阅有关资料,总体方案讨论

星期二、确定总体设计方案

星期三、硬件模块方案设计

星期四、软件模块方案设计

星期五小系统焊接与调试;

第二周

星期一、各硬件模块设计

星期二、各软件模块设计

星期三、各软件模块设计

星期四、写说明书

星期五、上午:

写说明书,整理资料

下午:

交设计资料,答辩

参考文献

参考文献

[1]王迎旭等.单片机原理及及应用[M].机械工业出版社.2012年

[2]胡汉才:

单片机原理及接口技术[M],清华大学出版社,2009

[3]蔡伟智:

LED道路交通灯的研制[M],液晶与显示,第20卷第五期2007

[4]张友德:

单片机原理与应用[M],复旦大学出版社,2010

第1章概述

1.1课题设计的要求及目的

1.2课题设计的意义

第2章系统总体方案选择与说明

2.1系统硬件设计框图

2.2系统硬件电路工作原理

2.3设计方案

第3章硬件电路设计

3.1LED数码管设计

3.2实际信号显示电路

3.3按键电路

3.4I/O口的分配

3.5复位电路

3.6时钟电路的设计

第4章应用软件设计

第5章硬件调试和硬件结果

总结

致谢

参考文献

附录A程序清单

第1章概述

1.1课题设计的要求及目的

本课题要求以单片机核心,设计一个智能交通灯控制系统。

使其能模拟城市十字路口的交通灯功能,并能满足控制的特殊要求,以便处理特殊事件。

设计要求:

(1)控制十字路口四个方向的红、黄、绿型号灯的正常工作,规则应符合我国交通法规的规定;

(2)南北方向的准行基本时间均为60秒(可在线调整);

(3)在交通状况发生特殊情况时,可按实际情况进行处理。

1.2课题设计的意义

由于我国经济的快速发展从而导致了汽车数量的猛增,日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。

随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。

 

第2章系统总体方案选择与说明

2.1系统硬件设计框图

整个设计以89C52单片机为核心,由数码管显示,LED数码管显示,复位电路等组成。

图2-1设计框图

2.2系统硬件电路工作原理

以单片机89C52为核心,工作频率在12MHz(机械周期是1us),有数码管显示时间,LED灯显示各路口通行状态,复位电路控制初始状态等,采用独立按键,模拟三种交通状况正常行驶,紧急情况行驶,及高峰期行驶。

每种情况通行时间不同,红绿灯的转换也不同。

2.3设计方案

设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。

其具体状态如下图所示。

说明:

黑色表示亮,白色表示灭。

交通状态从状态1开始变换,直至状态6然后循环至状1,周而复始,即如图(图2-2)所示:

直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下。

图2-2交通状态图

①东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时25秒。

此状态下,东西向禁止通行,南北向允许通行。

②东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。

此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

③南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。

此状态下,东西向允许通行,南北向禁止通行。

④南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时5秒。

此状态下,除了已下面我们可以用图表表示灯状态和行止状态的关系如下。

表2-1交通状态及红绿灯状态

状态1

状态3

状态4

状态6

东西向

禁行

等待变换

通行

等待变换

南北向

通行

等待变换

禁行

等待变换

东西红灯

1

1

0

0

东西黄灯

0

0

0

1

东西绿灯

0

0

1

0

南北红灯

0

0

1

1

南北绿灯

1

0

0

0

南北黄灯

0

1

0

0

东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。

状态及红绿灯状态如表2.1所示。

说明:

0表示灭,1表示亮。

特殊情况:

①消防车、救护车通过时,按下K1建,关闭倒计时器,四个路口同时黄色灯闪烁5秒然后,转为红灯亮,只允许紧急车辆通过,K1建松开,交通控制回复正常。

②K2、K3键分别为南北和东西方向车辆多时的特殊处理,功能自行定义。

 

第3章硬件电路设计

3.1LED数码管设计

数码管的段选为P0.0-P0.7,位选为P2.0-P2.3,且都串一个1K的电阻。

图3-1四个数码管接线图

3.2实际信号显示电路

根据本设计的特点,红绿灯的显示不可少,每个方向上设置红绿黄灯,总共4组。

如果东西红灯亮,那南北方向就是绿灯亮,反之亦然。

本系统的交通信号显示电路是6个LED灯组成P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6分别对应为东西红绿黄和南北红绿黄。

每一个LED灯上串一个1K的电阻,对LED灯过流保护。

图3-2实际指示灯图

3.3按键电路

由于只有两种特殊情况,考虑实际应用中的资源浪费问题,此设计只用到两个按键,分别为紧急情况K1和高峰情况K2。

图3-3按键显示图

3.4I/O接线

表3-1单片机I/O口接线分配表

P0.0

数码管a段

P1.0

东西红灯

P0.1

数码管b段

P1.1

东西绿灯

P0.2

数码管c段

P1.2

东西黄灯

P0.3

数码管d段

P1.3

南北红灯

P0.4

数码管e段

P1.4

南北绿灯

P0.5

数码管f段

P1.5

南北黄灯

P0.6

数码管g段

P1.6

空置

P0.7

数码管dp段

P1.7

空置

P2.6

紧急情况K1

P2.7

紧急情况K2

 

3.5复位电路

手动按钮复位需要人为在复位输入端RST上加入高电平,此处采用的办法是在RST端和正电源Vcc之间接一个按钮。

当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。

由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。

图3-4复位电路图

3.6时钟电路的设计

该设计中选择与负载电容值相等的并联电容,就可以得到晶振的谐振频率,产生的频率是12MHz。

因为晶振与单片机的脚XTAL0和脚XTAL1构成的振荡电路中会产生偕波,为了电路的稳定性起见,所以晶振所配的瓷片电容为30pf的。

图3-5时钟电路图

 

第4章应用软件设计

一开始就就先声明,然后定义,这些都是初始化,之后调用显示,扫描是否有键按下,分三种情况,即正常情况,紧急情况,高峰情况,执行完后回到正常情况。

图4-1主程序图

进入case1后即进入正常通行,通过判断zc的状态来确定东西和南北的红黄绿灯的情况。

 

(1)正常情况流程图

N

Y

 

(2)紧急情况流程图

图4-2正常情况和紧急情况图

(3)高峰期情况,考虑到此情况与正常情况类似,只是南北,东西时间做了些许调整,在这里就不再重复。

第5章硬件调试与硬件结果

用硬件调试,观察到正常行驶时,东西红灯亮30秒,南北路灯亮25秒,东西红灯最后5秒时,南北变为黄灯,之后东西变为绿灯,南北变为红灯,情况跟上次一样。

紧急情况行驶时,都为黄灯闪烁。

高峰期行驶时,东西为35秒,南北为40秒,增加了时间缓冲,缓解了交通压力。

东西红灯,南北绿灯的情形。

图5-1东西红,南北绿的实物结果

东西红灯,南北黄灯并闪烁的情形。

图5-2东西红,南北黄的实物结果

东西绿灯,南北红灯情形。

图5-3东西绿,南北红的实物结果

 

总结

交通灯是我们生活中非常常见的一种东西,在这里我们设计的交通灯仅仅只是模拟现实中的情况。

此设计最大的优点就是实现智能化控制,不需要人为。

同时,它的缺点是系统稳定性不是很好。

通过这次交通灯的课程设计,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力,使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。

希望能为以后的工作学习打下基础。

 

致谢

由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。

最后,对在这个两周帮助我的所有同学和各位指导老师再次表示衷心的感谢!

参考文献

[1]王迎旭等.单片机原理及及应用[M].机械工业出版社.2012

[2]胡汉才:

单片机原理及接口技术[M],清华大学出版社,2009

[3]蔡伟智:

LED道路交通灯的研制[M],液晶与显示,第20卷第五期2007

[4]张友德:

单片机原理与应用[M],复旦大学出版社,2010

 

附录A程序清单

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitp10=P1^0;//东西红灯

sbitp11=P1^1;//东西绿灯

sbitdh=P1^2;//东西黄灯

sbitp13=P1^3;//南北红灯

sbitp14=P1^4;//南北绿灯

sbitnh=P1^5;//南北黄灯

sbitp16=P1^6;//始终置为1

sbitp17=P1^7;//始终置为1

ucharnum1,num2,num3d;num3n;tt,zc;gf;key;a;b;c;//东西时间num1;南北时间num2;时间中断次数tt;

ucharled0,led1,led2,led3;//数码管显示缓冲区域

unsignedcharcodeled_code[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e,0xbf};/*共阳字型段码表,"0"--"F","-"*/

voiddelay(uintz);

voiddisplay(ucharled0,led1,led2,led3);

ucharkeyscan(void);//键盘扫描

voidmain()

{

num1=30;

num2=25;

tt=0;

TMOD=0x11;//设置定时器0为工作方式1

TH0=(65536-50000)/256;//定时器0设50毫秒

TL0=(65536-50000)%256;

EA=1;//开总中断

ET0=1;//开定时器0中断

TR0=1;//启动定时器0

zc=1;//正常情况初始化

key=0x7e;

P1=0xf5;

num1=25;

num2=30;

gf=1;//高峰期初始化

c=1;

num3d=35;

num3n=40;

display(led0,led1,led2,led3);

while

(1)

{

display(led0,led1,led2,led3);/*调显示*/

key=keyscan();//调用键盘扫描

switch(key)

{

/*正常情况通行*/

case0x7e:

switch(zc)//用于对灯的初始状态复原,因为紧急状况改变灯的状态

{

case1:

p10=1;//东西红灯

p11=1;//东西绿灯

p13=0;//南北红灯

p14=1;//南北绿灯

nh=1;//南北黄灯

p16=1;//始终置为1

p17=1;//始终置为1

break;

case2:

P1=0xee;break;

case3:

p10=0;//东西红灯

p11=1;//东西绿灯

dh=1;//东西黄灯

p13=1;//南北红灯

p14=1;//南北绿灯

p16=1;//始终置为1

p17=1;//始终置为1

break;

case4:

P1=0xf5;break;

};

display(led0,led1,led2,led3);

if(num1==0||num2==0)

{

zc++;//时间到0后

switch(zc)

{

case1:

num1=5;P1=0xf3;break;

case2:

num1=30,num2=25;P1=0xee;break;

case3:

num2=5;P1=0xde;break;

case4:

zc=1;num1=25;num2=30;P1=0xf5;break;

}

}

elseif(a==1)

{

a=0;num1--;

num2--;

led0=num1/10;

led1=num1%10;

led2=num2/10;

led3=num2%10;

if(zc==2)

dh=~dh;

if(zc==4)

nh=~nh;

};

b=0;

c=1;

break;

/*紧急情况*/

case0x7d:

if(a==1)

{

b++;

if(b<6)

{

p10=1;//东西红灯

p11=1;//东西绿灯

dh=~dh;//东西黄灯

p13=1;//南北红灯

p14=1;//南北绿灯

nh=~nh;//南北黄灯

p16=1;//始终置为1

p17=1;//始终置为1

}

else

{

p10=0;//东西红灯

p11=1;//东西绿灯

dh=1;//东西黄灯

p13=0;//南北红灯

p14=1;//南北绿灯

nh=1;//南北黄灯

p16=1;//始终置为1

p17=1;//始终置为1

}

a=0;

};

break;

/*情况三高峰期*/

case0x7b:

if(c==1)//第一次就初始化数值

{

c=0;

num3d=35;

num3n=40;

}

display(led0,led1,led2,led3);

if(num3d==0||num3n==0)

{

gf++;//时间到0后

switch(gf)

{

case1:

num3d=5;P1=0xf3;break;

case2:

num3d=20,num3n=15;P1=0xee;break;

case3:

num3n=5;P1=0xde;break;

case4:

gf=1;num3d=35;num3n=40;P1=0xf5;break;

}

}

elseif(a==1)

{

a=0;

num3d--;

num3n--;

led0=num3d/10;

led1=num3d%10;

led2=num3n/10;

led3=num3n%10;

if(gf==2)

dh=~dh;

if(gf==4)

nh=~nh;

}

b=0;

break;

}

display(led0,led1,led2,led3);

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidtime0()interrupt1//定时器中断为1,0是外部中断。

{

EA=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tt++;

if(tt==20)

{

a=1;

tt=0;

}

EA=1;

}

voiddisplay(ucharled0,led1,led2,led3)

{

P3=0xfe;P0=led_code[led0];delay(5);

P3=0xfd;P0=led_code[led1];delay(5);

P3=0xfb;P0=led_code[led2];delay(5);

P3=0xf7;P0=led_code[led3];delay(5);

}

ucharkeyscan(void)//键盘扫描函数

{

P2=0xff;//行线输出全为0

if(P2!

=0xff)//先检测有无按键按下

{

if(p2^7==0)return(0x7d);

if(p2^6==0)return(0x7b);

display(led0,led1,led2,led3);/*调显示*/

}

return(0x7e);//无键按下返回值

}

 

电气信息学院课程设计评分表

项目

评价

及格

设计方案合理性与创造性(10%)

开发板焊接及其调试完成情况*(10%)

硬件设计或软件编程完成情况(20%)

硬件测试或软件调试结果*(10%)

设计说明书质量(20%)

答辩情况(10%)

完成任务情况(10%)

独立工作能力(10%)

出勤情况(10%)

综合评分

指导教师签名:

________________

日期:

________________

注:

表中标*号项目是硬件制作或软件编程类课题必填内容;

此表装订在课程设计说明书的最后一页。

课程设计说明书装订顺序:

封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

目录

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

当前位置:首页 > 人文社科 > 军事政治

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

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