人车分行交通信号指挥灯的控制DOC.docx
- 文档编号:23343052
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:25
- 大小:490.69KB
人车分行交通信号指挥灯的控制DOC.docx
《人车分行交通信号指挥灯的控制DOC.docx》由会员分享,可在线阅读,更多相关《人车分行交通信号指挥灯的控制DOC.docx(25页珍藏版)》请在冰豆网上搜索。
人车分行交通信号指挥灯的控制DOC
单片机原理及接口技术
课程设计报告
设计题目:
人车分行交通信号指挥灯的控制
学号:
姓名:
指导教师:
信息与电气工程学院
二零一四年六月
人车分行交通信号指挥灯的控制
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但是仅仅掌握单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,不断完善调试,才能设计出功能完好的产品。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?
靠的就是交通信号灯的自动指挥系统,所以有条不紊的智能交通灯的应用和开发也显得尤为重要,交通信号灯控制方式很多。
本系统采用单片机设计交通灯控制器,以AT89S52单片机为核心部件,应用汇编语言编程,实现交通灯的完美工作。
1.设计任务
结合市政审批路口实际情况,基于AT89S52单片机设计一个人车分行交通信号灯的控制系统。
该系统应满足的功能要求为:
如果产生紧急事件,人为按下紧急按钮,紧急灯显示,并且南北东西的所有路口都显示并且保持红灯;紧急事件消除后,再扳回按钮,此时交通灯状态再从状态1开始循环。
如果没有紧急事件,状态由1到5正常循环进行。
初始状态(状态1)为:
南北方向绿灯通车,东西方向红灯,持续20s。
状态2:
南北方向绿灯最后闪烁几次后转黄灯亮,延时2s,此时东西方向仍然保持红灯。
状态3:
东西方向保持红灯,南北方向也转为红灯,此时是人行状态,持续20s,人行提示灯亮,同时人行倒计数开始(非人行状态时人行提示灯灭,倒计数显示禁止通行)。
状态4:
东西方向转绿灯,延时20S,南北方向仍然红灯。
状态5:
东西黄灯闪烁2s,南北红灯保持。
至此,一个循环大状态完成。
此后不断循环重复状态1至状态5,在每个状态下,都有时钟倒数计时显示。
状态
20S
2S
20S
20
2s
紧急
东西
红灯亮
红灯亮
红灯亮(人行)
绿灯亮
黄灯亮
红灯
南北
绿灯亮
黄灯亮
红灯亮(人行)
红灯亮
红灯亮
红灯
2.整体方案设计
图2-1十字路口交通灯示意图
人车分行交通信号指挥控制灯以AT89S52单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个人车分行交通灯控制的硬件系统。
硬件系统主要由紧急设定,显示电路,时钟电路,红绿灯电路构成。
各模块的主要功能如下:
(1)紧急设定:
由一个开关键给出,当发生紧急状况时,打开开关键,东西、南北红灯均亮,禁止车辆通行。
(2)显示电路的功能是显示东西、南北交通指示灯亮的时间。
(3)时钟电路的功能是为单片机提供时钟信号。
(4)红绿灯电路的功能是指示车辆通行,红灯停,绿灯行。
(5)复位电路的功能是使单片机处于某种确定的初始状态。
系统的整体设计方案设计图如图2-2所示。
图2-2系统的整体方案设计图
3.系统硬件电路设计
3.1紧急设定电路紧急设定电路采用一个开关来控制,如果发生紧急情况,开关闭合,东西、南北红灯均亮,人行灯灭,禁止行人、车辆通行,来保护现场。
并且显示电路停止计时。
图3-1AT89S52与开关的紧急设定电路
3.2显示电路
倒计时显示电路采用LED数码管显示,由于本题要显示六位,采用了共阴数码管动态显示。
本次设计采用LED动态显示方式。
LED数码管工作于动态显示方式时,各位的共阴极接地;每位的段码线分别与一个8位的I/O口锁存器输出相连。
如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。
图3-2AT89S52与LED的显示电路
3.3时钟电路
AT89S52单片机各功能部件的运行都以时钟控制为基准,有条不紊、一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
单片机时钟信号产生有两种方式:
一是内部时钟电路,二是外部时钟电路,本设计使用内部时钟电路,在单片机的XTAL1和XTAL2引脚接石英晶体,作为单片机内部振荡电路的负载,构成中自激振荡器,可在单片机内部产生时钟脉冲信号,C1和C2可以稳定振荡频率,并使快速起振。
本电路选用晶振12MHz,C1=C2=30pF。
晶体的频率越高,系统的时间频率越高,单片机的运行速度也就越快。
图3-3AT89C52的时钟电路
3.4红绿灯电路
本次设计需要控制十二个灯的红绿黄状态。
其中由于十字路口对象红绿灯状态相同,因此只需控制6个灯的状态即可。
6个灯阳极全部接高电平。
图3-4AT89S52连接红绿灯及人行灯电路
3.5复位电路
复位是单片机的初始化操作,只需给AT89S52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使AT89S52复位。
AT89S52的复位是由外部的复位电路实现的。
复位电路通常采用上电自动复位和按钮复位两种方式。
本设计采用的是上电复位电路。
上电自动复位电路是通过外部复位电路给电容C充电加至RST引脚一个短的高电平信号,信号随着Vcc对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C的充电时间。
因此,为了保证系统可靠的复位,RST引脚上的高电平必须维持足够长的时间。
图3-5AT89C52的复位电路
4.系统程序设计
4.1主程序流程图
初始状态(状态1)为:
南北方向绿灯通车,东西方向红灯,持续20s。
状态2:
南北方向绿灯最后闪烁几次后转黄灯亮,延时2s,此时东西方向仍然保持红灯。
状态3:
东西方向保持红灯,南北方向也转为红灯,此时是人行状态,持续20s,人行提示灯亮,同时人行倒计数开始(非人行状态时人行提示灯灭,倒计数显示禁止通行)。
状态4:
东西方向转绿灯,延时20S,南北方向仍然红灯。
状态5:
东西黄灯闪烁2s,南北红灯保持。
至此,一个循环大状态完成
此后不断循环重复状态1至状态5,在每个状态下,都有时钟倒数计时显示
图4-1主程序流程图
4.2显示子程序流程图
图4-2显示子程序流程图
4.3闪烁子程序流程图
图4-3闪烁子程序流程图
4.4正常子程序流程图
图4-4正常子程序流程图
4.5延迟子程序流程图
图4-5延时子程序流程图
5.系统调试
5.1Proteus软件仿真调试
(1)调试过程启动计算机,打开Proteus仿真软件,进入仿真环境。
将写好的程序存入单片机中,点击运行。
即可观察程序运行情况。
各端口红色代表高电平,蓝色代表低电平,灰色代表无状态。
可以通过数码管和红绿灯的状态观察仿真是否正确。
也可以通过单片机端口的高低电平状态判断运行情况。
可以通过暂停键暂停程序,通过结束键随时结束程序。
(2)调试时遇到的问题及解决方法引脚分配时出现错误,导致紧急开关不能中断正常子程序。
重新分配引脚后,紧急开关常态是为高电平,闭合后为低电平。
正常程序不再运行,数码管停止示数,四个路口红灯亮起。
(3)调试运行结果在设置5段时间之后,第一个状态运行情况如图5-1,东西绿灯20s(最后两秒闪烁),南北红灯20s第二个状态运行情况如图5-2,东西黄灯2s.南北红灯2s。
第三个状态运行情况如图5-3,东西红灯20s,南北红灯20s,人走。
第四个状态如图5-4,东西红灯20s,南北绿灯20s(最后两秒闪烁)。
第五个状态运行情况如图5-5,东西红灯2s,南北黄灯2s。
按下紧急按钮后,运行状态如图5-6(数码管灭,所有红灯亮起)。
图5-1第一个状态运行情况
图5-2第二个状态运行情况
图5-3第三个状态运行情况
图5-4第四个状态运行情况
图5-5第五个状态运行情况
图5-6紧急状态运行情况
5.2硬件调试
(1)调试过程安装好仿真器,连接好电路,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
将写好的.C文件通过菊阳软件下载到单片机中。
运行程序,观察测试结果,包括各路口红绿灯显示及数码管显示。
(2)调试时遇到的问题及解决方法实验箱数码管与软件仿真所用数码管有所不同,片选端加装了非门,片选信号与所编程序刚好相反。
更改程序后正常显示。
6.程序清单
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitDXyellow=P1^0;
sbitDXgreen=P1^1;
sbitDXred=P1^2;
sbitNByellow=P1^3;
sbitNBgreen=P1^4;
sbitNBred=P1^5;
sbitRwalk=P1^6;//人行提示灯
sbitJ=P1^7;//紧急按钮
sbitw1=P3^0;
sbitw2=P3^1;
sbitw3=P3^2;
sbitw4=P3^3;//四个位选
sbitw5=P3^4;
sbitw6=P3^5;
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uintnum1,num2,ge1,shi1,ge2,shi2;
voidxianshi();
voidxianshi1();
voidshanshuo1();
voidshanshuo2();
voidzhengchang();
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()
{
while
(1)
if(J==0)
{NBred=0;DXred=0;}
else
{zhengchang();}
}
voidxianshi()
{
uinti=167;
while(i--)
{
w1=1;P2=table[shi1];delay
(1);w1=0;
w2=1;P2=table[ge1];delay
(1);w2=0;
w3=1;P2=table[shi2];delay
(1);w3=0;
w4=1;P2=table[ge2];delay
(1);w4=0;
w5=1;P2=0x3f;delay
(1);w5=0;
w6=1;P2=0x3f;delay
(1);w6=0;
}
}
voidxianshi1()
{
uinti=167;
while(i--)
{
w1=1;P2=table[shi1];delay
(1);w1=0;
w2=1;P2=table[ge1];delay
(1);w2=0;
w3=1;P2=table[shi2];delay
(1);w3=0;
w4=1;P2=table[ge2];delay
(1);w4=0;
w5=1;P2=table[shi2];delay
(1);w5=0;
w6=1;P2=table[ge2];delay
(1);w6=0;
}
}
voidzhengchang()
{
num1=20;num2=42;
while(num1)
{if(J==0)
{NBred=0;DXred=0;NBgreen=1;DXyellow=1;NByellow=1;DXgreen=1;Rwalk=1;}
else
{if(num1>2)
{NByellow=1;NBred=0;NBgreen=1;DXyellow=1;DXred=1;DXgreen=0;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
xianshi();num1--;num2--;}
else
{NByellow=1;NBred=0;NBgreen=1;DXyellow=1;DXred=1;DXgreen=0;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
shanshuo1();num1--;num2--;}
}
}//东西绿灯20s(最后两秒闪烁),南北红灯20s
num1=2;num2=22;
while(num1)
{if(J==0)
{NBred=0;DXred=0;NBgreen=1;DXyellow=1;NByellow=1;DXgreen=1;Rwalk=1;}
else
{NByellow=1;NBred=0;NBgreen=1;DXyellow=0;DXred=1;DXgreen=1;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
xianshi();num1--;num2--;}
}//东西黄灯2s.南北红灯2s
num1=42;num2=20;
while(num2)
{if(J==0)
{NBred=0;DXred=0;NBgreen=1;DXyellow=1;NByellow=1;DXgreen=1;Rwalk=1;}
else
{NByellow=1;NBred=0;NBgreen=1;DXyellow=1;DXred=0;DXgreen=1;Rwalk=0;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
xianshi1();num1--;num2--;}
}//东西红灯20s,南北红灯20s,人走
num1=22;num2=20;
while(num2)
{if(J==0)
{NBred=0;DXred=0;NBgreen=1;DXyellow=1;NByellow=1;DXgreen=1;Rwalk=1;}
else
{if(num2>2)
{NByellow=1;NBred=1;NBgreen=0;DXyellow=1;DXred=0;DXgreen=1;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
xianshi();num1--;num2--;}
else
{NByellow=1;NBred=1;NBgreen=0;DXyellow=1;DXred=0;DXgreen=1;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
shanshuo2();num1--;num2--;}
}
}//东西红灯20s,南北绿灯20s(最后两秒闪烁)
num1=2;num2=2;
while(num2)
{if(J==0)
{NBred=0;DXred=0;NBgreen=1;DXyellow=1;NByellow=1;DXgreen=1;Rwalk=1;}
else
{NByellow=0;NBred=1;NBgreen=1;DXyellow=1;DXred=0;DXgreen=1;Rwalk=1;
ge1=num1%10;shi1=num1/10;ge2=num2%10;shi2=num2/10;
xianshi();num1--;num2--;}
}//东西红灯2s,南北黄灯2s
}
voidshanshuo1()
{
uinti=170;
while(i--)
{
if((i%17)==0)DXgreen=!
DXgreen;
w2=1;P2=table[ge1];delay
(1);w2=0;
w1=1;P2=table[shi1];delay
(1);w1=0;
w4=1;P2=table[ge2];delay
(1);w4=0;
w3=1;P2=table[shi2];delay
(1);w3=0;
w5=1;P2=0x3f;delay
(1);w5=0;
w6=1;P2=0x3f;delay
(1);w6=0;
}
}
voidshanshuo2()
{
uinti=170;
while(i--)
{
if((i%17)==0)NBgreen=!
NBgreen;
w2=1;P2=table[ge1];delay
(1);w2=0;
w1=1;P2=table[shi1];delay
(1);w1=0;
w4=1;P2=table[ge2];delay
(1);w4=0;
w3=1;P2=table[shi2];delay
(1);w3=0;
w5=1;P2=0x3f;delay
(1);w5=0;
w6=1;P2=0x3f;delay
(1);w6=0;
}
}
7.小结
本次单片机课程设计,学到了很多的东西。
不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。
在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。
过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。
从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
此外,尤其值得一提的是团队合作是很重要的,在团队的合作下,能更好的解决问题,将每个人的长处发展到最大,在大家的合作之中共同完成,这个也是团队课设的很重要的目的。
在设计完成之际再次衷心感谢老师的指导!
其他格式说明
以下主要对文中出现的图、表以及公式格式给出相关示例,请大家按照如下格式编排。
对图的格式要进行设置,首先设置其版式为“嵌入型”,然后将图和图下面的图号及图题居中排列,如图2-1所示。
图2-1水罐液位控制结构图
XXXX。
XXX如表2-1所示。
表2-1XXX
材料
名称
化学成分(%)
力学性能
C
Mn
Cr
其他
抗拉强度
σb
/N/mm2
屈服强度
σs
/N/mm2
弹性模量
E
/N/mm2
伸长率
δ
/%
布氏硬
度
/HBS
…
…
对于文中出现的所有公式,要求必须用公式编辑器进行编辑,并在后面作相应的标号,具体格式如下例所示,右对齐,公式本体依靠在公式号和公式本体之间加入空格实现居中。
(2-1)
(2-2)
报告内容编号说明:
1.节标题(小三黑体,段前段后6磅间距,顶格)
1.1条标题(小四黑体,段前6磅间距,顶格)
(1)一级子项标题(小四号宋体,首行缩进2字,行间距与正文相同,1.25倍行距,英文括号,编号与后面文字之间空一格,可加粗突出显示,也可不加粗)
(2)哈尔滨工业大学本科课程设计报告模板
1)二级子项标题(小四号宋体,首行缩进2字,英文半括号,编号与后面文字之间空一格,不加粗)
2)
①三级子项标题(编号形式有区别,别的同二级子项标题)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分行 交通信号 指挥 控制 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)