交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx

上传人:b****2 文档编号:13466745 上传时间:2022-10-10 格式:DOCX 页数:13 大小:141.01KB
下载 相关 举报
交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx_第1页
第1页 / 共13页
交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx_第2页
第2页 / 共13页
交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx_第3页
第3页 / 共13页
交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx_第4页
第4页 / 共13页
交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx

《交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx》由会员分享,可在线阅读,更多相关《交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

交通管理与控制课程设计道路交叉口信号灯控制仿真Word格式.docx

3.2.2显示电路5

3.3程序算法描述7

3.3.1延时算法7

3.3.2相位设计算法7

3.3.3黄灯闪烁算法8

3.3.4数码管显示算法8

4.运行结果及分析8

5.体会感想8

参考文献9

任务分工9

附录19

1.摘要

在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;

黄灯亮表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;

绿灯亮表示该条道路允许通行。

交通灯控制电路自动控制十字路口、丁字路口和环形路口的红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现交通管理的自动化。

2.课程设计内容和要求

课程设计内容:

1.十字路口的四相位控制;

2.丁字路口的三相位控制;

3.环道相位控制。

课程设计基本要求:

1.使用proteus和keil两款软件进行模拟设计;

2.每个进口道必须有红、黄、绿三色交通信号灯;

3.在绿灯变绿灯期间黄灯亮,并要求没秒闪亮一次;

4.各个进口道的通行时间和黄灯亮的时间均可在0~99秒内任意设定;

5.内容任选一个,或者全选做。

3.系统设计

3.1设计原理

本次的交通管理与控制课程设计,我们三个人主要做的是丁字路口三相位的信号灯控制设计,包括西进口、东进口和北进口的信号灯设计。

在查阅书上内容和相关资料后,我们设计的三相位包括:

第一相位是西进口允许直行禁止左转,东进口允许直行和右转,北进口禁止左转和右转。

设计相位图如图1:

图1第一相位图

第二相位是西进口允许左转和直行,东进口禁止直行和右转,北进口允许右转禁止左转。

设计相位图如图2:

图2第二相位图

第三相位是西进口禁止直行和左转,东进口禁止直行允许右转,北进口允许左转和右转。

设计相位图如图3:

图3第三相位图

我们这样设计可以使每个进口道都不存在冲突点,使得每个进口道设计最合理,同时也满足课程设计要求。

3.2硬件设计部分

本次的交通管理与控制课程设计,我们利用AT89C51单片机最小系统作为最主要部分进行电路控制,用LED-GREEN作为绿灯,LED-RED作为红灯,LED-YELLOW作为黄灯,使用7SEG-BCD数码管对各个进口道的通行时间进行控制显示。

其中电路连接时为了使得电路图看得清晰明了,我们没有采用传统的线路连接法,而是使用终端模式。

下面对每部分进行介绍:

3.2.1单片机最小系统

单片机最小系统包括AT89C51单片机芯片,时钟电路和复位电路。

其中AT89C51单片机芯片是整个系统的核心,程序烧录到芯片中,通过芯片控制电路;

时钟电路由一个晶振和两个电容构成,用于产生系统时钟;

复位电路由一个电容、一个电阻和一个开关构成,可以有上电复位、手动复位和看门狗复位。

最小系统电路图如图4:

图4单片机最小系统图

3.2.2显示电路

我们利用LED和7SEG-BCD数码管对显示电路进行设计。

系统总设计图如图7:

图5LED示意图图67SEG-BCD数码管示意图

图5系统总设计图

3.3程序算法描述

3.3.1延时算法

我们利用两函数来设计延时算法,包括微妙函数和毫秒函数,程序如下:

voidDelayUs2x(uchart){//微妙函数

while(--t);

}

voidDelayMS(uintt){//毫秒函数,延时t毫秒

while(t--){

DelayUs2x(245);

//时间运算为:

2*(2*245+5)=990us,约等于1ms

}

3.3.2相位设计算法

在设计交通信号灯函数时,我们使用了switch…case…选择分支,并且分6个分支,其中前3个case是用来设计相位,举例说明程序如下:

case1:

//第一相位

//初始化各端口

RED_WEST=1;

YELLOW_WEST=1;

GREEN_LEFT_WEST=1;

GREEN_STRIGHT_WEST=0;

RED_EAST=1;

YELLOW_EAST=1;

GREEN_RIGHT_EAST=0;

GREEN_STRIGHT_EAST=0;

RED_NORTH=0;

YELLOW_NORTH=1;

GREEN_RIGHT_NORTH=1;

GREEN_LEFT_NORTH=1;

for(i=20;

i>

=0;

i--){//设计第一相位通行20秒

num_display(i);

//调用显示函数,从20显示到0

DelayMS(1000);

//延时1秒

if(i==0){//当i的值为0

i=99;

break;

//退出for循环,避免数的回绕而无法退出for循环

}

Operation_Type=4;

//转到case4进行黄灯闪烁

break;

3.3.3黄灯闪烁算法

switch…case…选择分支的后3个case是用来设计3次黄灯闪烁,列举其中一个,程序如下:

case4:

//进行黄灯闪烁

if(Flash_Count%2==0)//当Flash_Count为偶数是进行闪烁

num_display(3-Flash_Count/2);

//调用显示函数,从3显示到0

GREEN_RIGHT_EAST=1;

GREEN_STRIGHT_EAST=1;

//初始化各端口

YELLOW_EAST=~YELLOW_EAST;

//YELLOW_EAST取反

DelayMS(500);

//延时0.5秒

if(++Flash_Count!

=7)//if判断

return;

//如果还未到7则回到case4开头

Flash_Count=0;

//将Flash_Count复位

Operation_Type=2;

//转到case2

3.3.4数码管显示算法

因为我们选用的是7SEG-BCD数码管进行显示,其特点是管脚只有4个,可以直接和单片机芯片的管脚相连。

又其是BCD数码管,特点是直接给数码管便可直接进行数据显示。

程序描述如下:

voidnum_display(uintnum){//7SEG-BCD显示函数

uinta,b,c;

//定义三个无符号整数

a=num/10;

//a存的是十位数

b=num%10;

//b存的是个位数

c=b;

a=a<

<

4;

//a左移4位

c=c|a;

//进行或运算,得到a和b的组合数

dataport=c;

//将c的值给P2端口,高4位的是十位数a的值,低4位的值是个位数b的值

4.运行结果及分析

当把设计好电路,并把程序装载到单片机中,启动电源后可以看到LED灯按照设计的相位开始点亮,并且数码管也在进行数据的递减,完全吻合程序设计。

5.体会感想

通过这次课程设计,我受益匪浅,一方面是对学过的课内知识的温习和巩固,一方面是锻炼了我的动手能力、分析能力、写作能力和团队协作精神,再一方面是学会了使用proteus和keil这两款软件,为今后的学习做好了铺垫。

感谢XX老师,谢谢老师的讲课和课设指导!

参考文献

[1]吴兵,李晔等.交通管理与控制[M].北京:

人民交通出版社,2010.

[2]袁俊泉.单片机设计及其应用.西安:

西安电子科技大学出版社,2002.

任务分工

在本次课设中,我们的分工如下:

XX负责课设报告的撰写,XX和XX负责程序和电路图的设计。

附录1

#include<

reg52.h>

#defineucharunsignedchar//类型重定义

#defineuintunsignedint

#definedataportP2//定义P2端口

//定义西进口交通灯的端口号

sbitRED_WEST=P0^0;

sbitYELLOW_WEST=P0^1;

sbitGREEN_LEFT_WEST=P0^2;

sbitGREEN_STRIGHT_WEST=P0^3;

//定义东进口交通灯的端口号

sbitRED_EAST=P0^4;

sbitYELLOW_EAST=P0^5;

sbitGREEN_RIGHT_EAST=P0^6;

sbitGREEN_STRIGHT_EAST=P0^7;

//定义北进口交通灯的端口号

sbitRED_NORTH=P1^0;

sbitYELLOW_NORTH=P1^1;

sbitGREEN_RIGHT_NORTH=P1^2;

sbitGREEN_LEFT_NORTH=P1^3;

ucharFlash_Count=0;

//闪烁计数变量

Operation_Type=1;

//操作类型变量

voidnum_display(uintnum){//7SEG-BCD显示函数

uinta,b,c;

//定义三个无符号整数

a=num/10;

//a存的是十位数

b=num%10;

//b存的是个位数

c=b;

a=a<

//a左移4位

c=c|a;

//进行或运算,得到a和b的组合数

dataport=c;

voidDelayUs2x(uchart){//延时函数

voidDelayMS(uintt){//延时t毫秒

DelayUs2x(245);

//时间运算为:

voidTraffic_light()//交通信号灯函数

{

uinti;

switch(Operation_Type){//switch选择

case1:

//第一相位

//初始化各端口

RED_WEST=1;

RED_EAST=1;

RED_NORTH=0;

for(i=20;

i--){//设计第一相位通行20秒

num_display(i);

DelayMS(1000);

if(i==0){//当

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

当前位置:首页 > 解决方案 > 学习计划

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

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