单片机模拟交通灯控制.docx

上传人:b****7 文档编号:9492929 上传时间:2023-02-04 格式:DOCX 页数:10 大小:77.66KB
下载 相关 举报
单片机模拟交通灯控制.docx_第1页
第1页 / 共10页
单片机模拟交通灯控制.docx_第2页
第2页 / 共10页
单片机模拟交通灯控制.docx_第3页
第3页 / 共10页
单片机模拟交通灯控制.docx_第4页
第4页 / 共10页
单片机模拟交通灯控制.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机模拟交通灯控制.docx

《单片机模拟交通灯控制.docx》由会员分享,可在线阅读,更多相关《单片机模拟交通灯控制.docx(10页珍藏版)》请在冰豆网上搜索。

单片机模拟交通灯控制.docx

单片机模拟交通灯控制

 

本科学生设计性实验报告

 

学院:

物理与电子信息学院专业、班级:

12级电子班

实验课程名称:

单片机模拟交通灯控制

开课学期:

2013至2014学年第二学期

填报时间:

2014年6月15日

 

 

摘要:

本设计是关于单片机控制的交通灯模拟系统的设计。

主要内容有模拟交通灯控灯设计方案,通过软件KeilC51进行的程序编写,以及通过仿真软件Proteus对交通灯设计的模拟。

本设计通过单片机控制实现如下的交通灯功能:

1)南北方向车道(A车道)和东西方向车道(B车道)两条交叉道路上的车辆交替运行,每个方向每次通行时间都设为55S,时间可设置修改;

2)绿灯将要变更为红灯之前必须闪三次。

3)在绿灯转为红灯时,要求黄灯先亮2秒钟,才能变换运行车道;

4)遇到紧急有紧急车辆通过,可通过按下J2实现两车道都是红灯,保证紧急车辆优先通过(当CPU响应外部中断0的中断请求时,实现两个方向红灯同时亮20秒)。

5)遇到主干道A有特殊情况,可通过J1控制A道放行5S(CPU响应中断1的请求,实现A道绿灯,B道红灯10s)。

关键字单片机模拟交通灯

概述

1.1引言

当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。

绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。

左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。

红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

1.2设计思想

该设计在掌握单片机端口的高低电平控制,用延时程序控制单片机端口保持某一状态时间长短,使用单片机中断系统进行中断,使用单片机定时器控制延时,使用用单片机控制LED灯亮灭的基础上,以及应用电路相关知识,设计一个采用AT89C51控制的模拟交通灯系统,并用仿真软件进行仿真。

设计内容

2.1设计电路原理图

根据生活中常见路口交通灯的设计结构,可以得到如下整体的外围电路:

2.2列真值表

依据电路图以及现实中十字路口的设置要实现正常的通行,相应车道红灯亮表示禁止通行,绿灯亮表示允许通行,则有如下真值表(0表示灯亮,1表示灯灭):

南北

东西

R

Y

G

R

Y

G

1

1

055s

0

1

1

1

1

(1,0)3次

0

1

1

1

02s

1

0

1

1

0

1

1

1

1

055s

0

1

1

1

1

(1,0)3次

0

1

1

1

02s

1

2.3程序框图

根据真值表得如下的一般情况下程序编写的构思框图:

2.4编写程序

由构思的程序编写框图以及真值表和单片机知识的如下的程序,其中单片机借口P1.0到P1.5分别控制灯B-gre,B-yellow,B-red,A-gre,A-yellow,A-red。

 

//程序:

ex6.c

//功能:

交通灯控制程序

#include

unsignedchart0,t1;//定义全局变量,用来保存延时时间循环次数

//函数名:

delay0_5s1

//函数功能:

用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定

//时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒

//形式参数:

//返回值:

voiddelay0_5s1()

{

for(t0=0;t0<0x0a;t0++)//采用全局变量t0作为循环控制变量

{

TH1=0x3c;//设置定时器初值

TL1=0xb0;

TR1=1;//启动T1

while(!

TF1);//查询计数是否溢出,定时50ms时间到,TF1=1

TF1=0;//50ms定时时间到,将定时器溢出标志位TF1清零

}

}

//函数名:

delay_t1

//函数功能:

实现0.5秒~128秒延时

//形式参数:

unsignedchart;

//延时时间为0.5秒×t

//返回值:

voiddelay_t1(unsignedchart)

{

for(t1=0;t1

delay0_5s1();

}

//函数:

int_0

//函数功能:

外部中断0中断函数,紧急情况处理,当CPU响应外部中断0的中断请求时,

//自动执行该函数,实现两个方向红灯同时亮20秒

//形式参数:

//返回值:

voidint_0()interrupt0//紧急情况中断

{

unsignedchari,j,k,l,m;

i=P1;//保护现场,暂存P1口、t0、t1、TH1、TH0

j=t0;

k=t1;

l=TH1;

m=TH0;

P1=0xdb;//两个方向都是红灯

delay_t1(40);//延时20秒

P1=i;//恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0

t0=j;

t1=k;

TH1=l;

TH0=m;

}

//函数:

int_1

//函数功能:

外部中断1中断函数,特殊情况处理,当CPU响应外部中断1的中断请求时,

//自动执行该函数,实现A道放行10秒

//形式参数:

//返回值:

voidint_1()interrupt2//特殊情况中断

{

unsignedchari,j,k,l,m;

EA=0;//关中断

i=P1;//保护现场,暂存P1口、t0、t1、TH1、TH0

j=t0;

k=t1;

l=TH1;

m=TH0;

EA=1;//开中断

P1=0xf3;//A道放行

delay_t1(20);//延时10秒

EA=0;//关中断

P1=i;//恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0

t0=j;

t1=k;

TH1=l;

TH0=m;

EA=1;//开中断

}

voidmain()//主函数

{

unsignedchark;

TMOD=0x10;//T1工作在方式1

EA=1;//开放总中断允许位

EX0=1;//开外部中断0中断允许位

IT0=1;//设置外部中断0为下降沿触发

EX1=1;//开外部中断1中断允许位

IT1=1;//设置外部中断1为下降沿触发

while

(1){

P1=0xf3;//A绿灯,B红灯,延时55秒

delay_t1(110);

for(k=0;k<3;k++){//A绿灯闪烁3次

P1=0xf3;

delay0_5s1();//延时0.5秒

P1=0xfb;

delay0_5s1();//延时0.5秒

}

P1=0xeb;//A黄灯,B红灯,延时2秒

delay_t1(4);

P1=0xde;//A红灯,B绿灯,延时5秒

delay_t1(110);

for(k=0;k<3;k++)//B绿灯闪烁3次

{

P1=0xde;

delay0_5s1();//延时0.5秒

P1=0xdf;

delay0_5s1();//延时0.5秒

}

P1=0xdd;//A红灯,B黄灯,延时2秒

delay_t1(4);

}

}

注:

若需要改变黄灯时间,只需将相应程序下“delay_t1(t)”中括号内的“t”值进行改变,如,delay_t1(8)就可以延时8s。

2.5画仿真电路图

根据2.1中所示的电路原理图,在仿真软件Proteus中正确添加原器件后正确连接电路,正确设置好器件的的参数,得如下仿真电路图:

2.5将程序烧录到单片机内进行仿真

将如上的程序写到Keil51中,通过编译产生hex文件,将所产生的hex文件导入到仿真软件Proteus仿真电路的单片机内,进行仿真,验证是否达到预期的效果。

结论

3.1结论

通过仿真软件对所设计的电路已经程序进行仿真,得到了,南北通行55s,东西通行55s。

当要改变通行方向时,原以通行的方向的绿灯闪三次,每次用时大概1s,在改变为黄灯3s,完成通行方向改变的整个过程。

同时通过J1中断控制实现了南北的10s放行,通过J2中断实现了有特殊车辆通过时的20s东西南北两个车道的20s禁行。

参考文献

单片机C语言应用100例王东锋王会良编著

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

当前位置:首页 > 考试认证 > 司法考试

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

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