电子信息技术 单片机课程设计与制作说明书 交通灯课程设计报告.docx
- 文档编号:16337909
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:33
- 大小:121.24KB
电子信息技术 单片机课程设计与制作说明书 交通灯课程设计报告.docx
《电子信息技术 单片机课程设计与制作说明书 交通灯课程设计报告.docx》由会员分享,可在线阅读,更多相关《电子信息技术 单片机课程设计与制作说明书 交通灯课程设计报告.docx(33页珍藏版)》请在冰点文库上搜索。
电子信息技术单片机课程设计与制作说明书交通灯课程设计报告
桂林航院电子工程系
单片机课程设计与制作说明书
设计题目:
智能交通灯控制
专业年级:
10级电子信息工程技术
(1)班
学号:
201004520121
姓名:
黄莉珊
同组姓名:
李丰
指导教师:
赵素文
单片机技术课程设计与制作成绩评定表
设计题目:
智能交通灯
学号:
姓名:
项目
评语内容
评定等级
设计
表现
(20%)
基本要求评价:
掌握基础理论,设计过程中的学习态度,文献查阅能力,设计思路可行性能力评价设计任务量、设计过程中参与情况
A
B
C
D
E
设计
说明书
(30%)
调试过程中运用理论分析与解决问题的能力;报告格式规范性、全面性、逻辑性、表达能力综合评价
A
B
C
D
E
实物
评价
(30%)
电路实现情况,电路板外观、焊点、设计合理性等
A
B
C
D
E
答辩
(20%)
答辩时,回答老师提出的软硬件问题情况
A
B
C
D
E
综合成绩
教师签名
年月日
单片机课程设计与制作任务书
专业:
10级电子信息工程技术一班学号:
201004520121姓名:
黄莉珊
一、设计题目:
智能交通灯控制
二、设计要求:
1、设计一个十字路口的交通灯控制电路,要求主车道和干道两条交叉道路上车辆交替通行。
每次通行时间都设为主干道25S,次道路为20S,且用数码管显示时间。
2、要求黄灯先亮5S才能变换通行车道。
3、黄灯亮时,要求每秒闪亮一次,并倒数秒在数码管上显示。
4、如有特殊情况要紧急通行时,可对红绿灯进行人为的控制。
红绿灯用发光二极管显示。
三、设计内容:
画出硬件设计图、软件设计、开发板演示、程序调试。
四、设计成果形式:
1、设计说明书一份(不少于4000字);
2、样品一套。
五.完成期限:
2012年6月日
指导教师:
年月日
教研室:
年月日
摘要
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。
本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、紧急情况中断系统、复位电路等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用C51编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
关键词:
AT89C52LED交通灯程序
引言
随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可或缺的作用。
本文就控制交通灯的方法进行了讨论,分析了各种方案的性价比,并用软、硬件加以实现。
而后,对六车道以上道路的“十字交叉路口交通灯控制”进行了分析。
最后,还对城市交通灯网的控制进行了展望。
希望能给有关政府部门一些参考,更好地改善我们的城市交通。
现今的交通发展迅速,车辆极具增加,马路不断扩宽,人行横道相对较少。
在车流量较大的地段即便有人行横道,行人也很难通过马路。
行人自控指示灯系统可以有效的改善这种状况。
特别是像北京这样的大都市,经济飞速发展,车辆繁多,人口密集。
缓解交通已成为当务之急.例如在我们新校区西门口(塔南路)就是这种情况,每天进出校门的学生特别多,大多还需要穿过这条繁忙的高速公路,这为学校师生带来大大的不便.该系统主要应用于交通领域,具有较高的实用价值。
该系统利用红灯,黄灯,绿灯来指挥车辆和行人,以达到车辆停止,行人通行的目的,减少了交通拥挤现象,为行人节省了时间,即保证行人过马路时的安全,也减轻了交管部门的负担。
本产品面对公共交通设施,并不注重经济收益,而是注重以后潜在的发展,从而带动相关产业。
用户可以完全掌握行人自控指示灯系统的操作方法,以及各个按键的作用科学技术的突飞猛进直接把我们带进了信息化的社会,计算机的应用已普及到经济和社会生活的各个领域.
智能的交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。
本文为了实现交通道路的管理,分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法。
一、课程设计的目的与要求
1、课程设计目的:
(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。
(2)通过课程设计提高应用能力,分析问题和解决问题的能力。
(3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。
2、课程设计要求
交通灯控制系统的设计
1)掌握在单片机系统中扩展简单I/O接口的方法。
2)掌握数据输出程序的设计方法。
3)掌握模拟交通灯控制的实现方法。
4)掌握外部中断技术的基本使用方法。
5)掌握中断处理程序的编程方法。
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
(1)能够正确理解课程设计的题目和意义,全面思考问题。
(2)运用科学合理的方法,认真按时完成。
一、方案选择及总体设计
一、技术指标
1、设计一个十字路口的交通灯控制电路,要求主车道和干道两条交叉道路上车辆交替通行。
每次通行时间都设为主干道25S,次道路为20S,且用数码管显示时间。
2、要求黄灯先亮5S才能变换通行车道。
3、黄灯亮时,要求每秒闪亮一次,并倒数秒在数码管上显示。
4、如有特殊情况要紧急通行时,可对红绿灯进行人为的控制。
红绿灯用发光二极管显示。
二、智能交通灯的方案选择
利用单片机控制技术.提出了软件和硬件设计方案及两点改进措施:
1、根据各道路路口车流量的大小设置主干道的通行时间。
2、考虑特殊车辆通行情况,设计紧急切换开关。
由于AT89S52单片机自单带有2计数器,6个中断源,能满足系统的设计要求。
用单片机设计不但设计简单,而且成本低,用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯,系统构图如图1所示:
三、智能交通灯方案的实现
根据设计任务和要求,可画出该控制器的原理框图,为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。
其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。
1)控制器的系统框图如图2所示。
图2交通灯控制器系统框图
2)电路图
智能交通灯电路图如图3所示。
工作原理:
首先必须了解交通灯的亮灭规律。
本实验需要用到试验箱上八个发光二极管中的六个,即红、绿、黄各两个。
将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯。
交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
当有紧急车辆到达或交通拥堵时,可以手动控制两个方向上的灯可以让车辆慢行或禁行或延长红绿灯的停留时间,以便让紧急车辆通过或减轻交通拥堵压力,保证交通顺畅,紧急车辆通过后,交通灯恢复中断前的状态。
图3智能交通灯电路图
3)智能交通灯系统的组成
交通灯系统由三部分组成:
信号灯电路,时间显示电路,控制开关电路。
4)工作原理
Ⅰ、主干道、次道
十字路口车辆通行顺序如图4所示:
图4十字路口车辆通行顺序
Ⅱ、信号灯电路
信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图5。
每个路口的信号的的转换顺序为:
绿——>黄——>红,绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。
红灯表示禁止通行。
主干道绿灯的时间为25秒,红灯时间为20秒,黄灯时间为5秒。
次道绿灯的时间为20秒,红灯的时间为25秒,黄灯时间为5秒。
图5交通信号灯运行状态
Ⅲ、时间显示电路
在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。
由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图6所示
图6数码管连接方法
下面我们用这种方法显示交通灯的时间,南北(主干道)方向要显示25秒(绿灯),东西(次道)方向要显示20(红灯)秒。
显示程序如下所示:
voiddisplay(uchari)//显示时间
{P2=0xff;
delay
(1);
P2=0x7d;
P0=table[i/10];
delay
(1);
P2=0xff;
delay
(1);
P2=0xbe;
P0=table[i%10];
delay
(1);
P2=0xff;
delay
(1);
P2=0xf7;
switch(temp)
{case0:
P0=table[10];break;//显示一个R
case1:
P0=table[11];break;//显示一个Y
case2:
P0=table[9];break;//显示一个G
case3:
P0=table[11];break;//显示一个Y
}
delay
(1);
P2=0xff;
delay
(1);
P2=0xfb;
switch(temp)
{case0:
P0=table[14];break;//显示一个”三“,表示车辆禁止通行,是红灯亮
case1:
P0=table[12];break;//显示一个“H”表示车辆慢行
case2:
P0=table[13];break;//显示一个“||”表示车辆畅通无阻
case3:
P0=table[12];break;//显示一个“H”表示车辆慢行
}
delay
(1);
P2=0xff;
delay
(1);
P2=0xef;
switch(temp)
{case0:
P0=table[9];break;//显示一个G
case1:
P0=table[11];break;//显示一个Y
case2:
P0=table[10];break;//显示一个R
case3:
P0=table[11];break;//显示一个Y
}
delay
(1);
P2=0xff;
delay
(1);
P2=0xdf;
switch(temp)
{case0:
P0=table[13];break;//显示一个“||”表示车辆畅通无阻
case1:
P0=table[12];break;//显示一个“H”表示车辆慢?
case2:
P0=table[14];break;//显示一个”三“,表示车辆禁止通行,是红灯?
case3:
P0=table[12];break;//显示“H"
}
delay
(1);
}
四、开关控制电路
一般情况下交通灯按照车流量大小(主干道、次道)合理分配通行时间,按一定规律变化,但考虑车道通车情况,设计手动控制通行开关,下面简述单片机的中断原理。
ⅰ)Mcs—51的中断源
8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序入口地址如表4所示:
表4中断源程序入口
中断源的服务程序入口地址
中断源
入口地址
外中断0
0003H
定时/计数器0
000BH
外中断1
0013H
定时/计数器0
001BH
串行口中断
0023H
ⅱ)中断的处理流程
CPU响应中断请求后,就立即转入执行中断服务程序。
不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述:
(1)现场保护和现场恢复:
中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份——即保护现场。
我们举个例子,在看书时,电话玲响需传去接电话时,必须在书本上做个记号,以便在接完电话后回来看书时,知道从哪些内容继续往下看。
计算机的中断处理方法也如此,中断开始前需将有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。
中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢复。
如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,程序跑飞,自然使单片机不能正常工作。
(2)中断打开和中断关闭:
在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。
(3)中断服务程序:
既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。
(4)中断返回:
执行完中断服务程序后,必然要返回,中断返回就是被程序运行从中断服务程序转回到原工作程序上来。
在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。
ⅲ)交通灯中的中断处理流程
(1)现场保护和现场恢复:
有某一个干道上的车流拥堵时就需要人工控制交通灯的工作,因此要进入中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。
(2)中断打开和中断关闭:
为了使车流拥堵的干道尽可能流畅按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。
(3)中断服务程序:
有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:
即如果南北方向出现车辆拥堵时就要要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向出现拥堵就需要要求通过,东西方向转换为绿灯,南北方向为红灯。
(4) 中断返回:
执行完中断服务程序后,必然要返回,即交通灯信号回到最初的状态。
(5)在程序周采用的是P3.4、P3.5、P3.6、P3.7作为控制开关,下面是交通灯开关控制程序如下:
voiduscan()
{
if(key==0)
{delay(10);//去抖程序
if(key==0)
{
TR0=~TR0;//启动/暂停
/*switch(temp)
{case0:
P1=0x7e;break;
case1:
P1=0xbe;break;
case2:
P1=0xdb;break;
case3:
P1=0xdd;break;
}*/
while(!
key);
}
}
if(key1==0)
{delay(10);
if(key1==0)
{
TR0=0;//中断定时器T0
if(t==3){t=0;}
while(!
key1);
switch(t)//切换红黄绿三灯的状态,即改变东西南北的通行状态
{case0:
P1=0xff;
delay(5);
P1=0x7e;
delay(10);
num=num2;
temp=0;
break;
case1:
P1=0xff;
delay(5);
D0=0;D1=0;
delay(10);
num=num3;
temp=1;
break;
case2:
P1=0xff;
delay(5);
P1=0xdb;
delay(10);
num=num4;
temp=2;
break;
}
t++;
//TR0=1;if(t==0)
}
}
if(key2==0)
{delay(10);
if(key2==0)
{
TR0=0;
while(!
key2);
switch(t)//时间加1,改变时间
{case0:
num++;break;
case1:
num2++;num++;display(num2);break;
case2:
num3++;num++;display(num3);break;
case3:
num4++;num++;display(num4);break;
}
//TR0=1;
//delay(100);
}
}
if(key3==0)
{delay(10);
if(key3==0)
{
TR0=0;
while(!
key3);
switch(t)//时间减1,改变时间
{case0:
num--;break;
case1:
num2--;num--;display(num2);break;
case2:
num3--;num--;display(num3);break;
case3:
num4--;num--;display(num4);break;
}
delay(150);
if(num==0)//时间减到0,重新启动定时器T0
{
TR0=1;
switch(t)
{case1:
num2=1;num=1;display(num2);break;
case2:
num3=1;num=1;display(num3);break;
case3:
num4=1;num=1;display(num4);break;
}
}
//delay(100);
}
}
}
五、交通灯的软件设计流程图
智能交通灯的软件设计流程图如图7所示:
图7交通灯的软件设计流程图
程序设计:
AT89C51单片机交通灯显示程序清单:
见附录:
五.智能交通灯方案的仿真及测试、数据及结果分析
1.智能交通灯方案的仿真
PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil,Wave6000等编译模拟软件结合使用。
打开PROTEUS软件,按照硬件电路设计将硬件画好,电路图绘制完成后,再添加AT89C51的应用程序。
将鼠标移至AT89C51上,单击鼠标右键使之处于选中状态,在该器件上单击左键,打开如图11所示的对话框。
在ProgramFile栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3种格式的文件),给AT89C51输入晶振频率,此处默认为12MHZ,单击OK按钮完成程序添加工作,下面就可以进行系统仿真了。
单击主界面下方的按钮开始系统仿真。
PROTEUSVSM所进行的是一种交互式仿真,在仿真进行中可以对各控制按钮、开关等进行操作,系统对输入的响应会被真实的反映出来。
在这个例子里,开始仿真后,开关,按钮通过鼠标单击来改变状态,所改变状态的状态会在LED和数码管显示出来。
图11AT89C51添加程序文件
2.测试、数据及结果分析
(1).状态灯显示测试当电路连接完毕后,将写好的测试程序刷写到芯片内,K1和K2分别给端口送高电平和
低电平,通电即可检测。
将程序输入到单片机中,运行程序,可以观察到现象:
首先是东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时5秒后,东西路口绿灯灭,黄灯开始闪烁。
闪烁2次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时25秒后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁2次后,再切换到东西路口方向,重复上述过程。
(2).数码管的测试将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。
将程序输入到单片机中,运行程序,可以观察到现象:
看到所有的数码管都为零,按下复位键,数码管还是没有变化,按一下键盘上的按键,也没有反映。
关机,检查程序,发现显示程序中的的段码和位码弄错,改过来,重新烧录进单片机,。
开机,看到数码管显示时间,但闪得很厉害。
我想是延时时间过长,所以对程序进行修改,把原来的10us改为1us,重新烧录,闪烁现象消失。
(3)开关控制电路的测试按下启动/暂停按键,看到数码管的时间显示由走到停到走;按下干道红绿灯的切换开关,可以看到由东西红灯和南北绿灯亮变到东西南北的黄灯都亮,再变南北绿灯和东西红灯亮。
按一下暂停键,当时间暂停时,按下控制时间的两个按键+/-,可以改变时间的长短,再按一下启动键,看到时间从刚才设置的数值开始走,因此这部分电路没有出错。
(3).整体电路测试系统上电,刷写好程序即可开始测试,观测一个周期灯的显示状态是否正常,同时观察倒计的计数是否正常。
给单片机上电,烧录程序。
看到状态灯显示正常,数码管的时间显示也正常。
观察状态灯的变化情况是否与时间显示一致。
最后观察到不一致,发现有一个状态时南北和东西的红灯同时亮,还有一路车辆的慢行与车辆禁止通行的标志弄错了,一路车辆畅通无阻与车辆禁止通行的标志弄错,经检查,得知在取数据时弄错了,是由于定义时出现了错误而造成的。
经修改,重新烧录,开发板成功实现了预期的功能。
六、总结
1.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。
了解了在单片机系统中扩展简单I/O接口的方法.外部中断技术的基本使用方法,掌握了中断处理程序的编程方法。
2.通过查阅各种单片机资料,培养了我自学和独立思考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子信息技术 单片机课程设计与制作说明书 交通灯课程设计报告 单片机 课程设计 制作 说明书 交通灯 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)