基于51单片机的交通控制系统模拟设计.docx
- 文档编号:29261377
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:27
- 大小:160.97KB
基于51单片机的交通控制系统模拟设计.docx
《基于51单片机的交通控制系统模拟设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的交通控制系统模拟设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于51单片机的交通控制系统模拟设计
基于51单片机的交通控制系统模拟设计
参考文献……………………………………………………………………………………………..17
设计心得体会………………………………………………………………………………………...18
附录……………………………………………………………………………………………………19
基于单片机的交通控制系统模拟设计
1.设计思路
(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
(2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示,基于实际情况,又增加了紧急状况处理和通行时间可调这两项特特殊功能。
(3)进行显示电路,灯状态电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
(4)进行软件系统的设计,对于本系统,采用单片机C语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
2.单片机交通控制系统方案的比较、设计与论证
2.1电源提供方案
采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,
节约成本;缺点是输出功率不高。
2.2显示界面方案
采用数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
2.3输入方案:
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
3单片机交通控制系统总体设计
3.1单片机交通控制系统的通行方案设计
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。
其具体状态如下所示。
交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始。
通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
◆南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。
此状态下,东西向禁止通行,南北向允许通行。
◆南北方向绿灯灭,东西方向红灯灭,同时黄灯亮,倒计时3秒。
此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
◆黄灯灭,同时南北方向红灯亮,东西方向绿灯亮,倒计时30秒。
此状态下,东西向允许通行,南北向禁止通行。
◆东西方向绿灯灭,南北方向红灯灭,同时黄灯亮,倒计时3秒。
此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
下面我们可以用图表表示灯状态和行止状态的关系如下:
表1交通状态及红绿灯状态
状态1
状态2
状态3
状态4
东西向
禁行
等待变换
通行
等待变换
南北向
通行
等待变换
禁行
等待变换
东西红灯
1
0
0
0
东西黄灯
0
1
0
1
东西绿灯
0
0
1
0
南北红灯
0
0
1
0
南北绿灯
1
0
0
1
南北黄灯
0
1
0
0
东西南北四个路口均有红绿黄3灯,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。
状态及红绿灯状态如表1所示。
说明:
0表示灭,1表示亮。
3.2单片机交通控制系统的功能要求
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的
信号发生,还能进行倒计时显示。
(1)倒计时显示
倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。
驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。
倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。
3.3单片机交通控制系统的基本构成及原理
单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
本系统在此基础上,加入了紧急情况处理与时间调整功能。
图2系统的总体框图
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。
系统的总体框图如上所示。
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中随时调用急停按键。
4智能交通灯控制系统的硬件设计
4.1系统硬件总电路构成及原理
实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,1个LED构成倒计时显示模块,若干按键组成紧急按钮。
4.2系统硬件电路构成
本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。
其具体的硬件电路总图如图3.1所示。
其中P0用于送显两片LED数码管,P1用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P2.6与P2.7对数码管进行片选,P3.2即INT0紧急情况处理按键,P3.3即INT1接时间调整中断按键。
4.3系统工作原理
系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。
时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,
基于单片机的交通灯控制系统电路图
LED连接图
信号灯的连接
5系统软件程序的设计
5.1程序主体设计流程
全部控制程序实际上分为若干模块:
键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序等。
整个软件程序方面主要分两大部分:
主程序部分和中断处理程序。
流程图如图9所示。
系统总流程图
设计说明:
该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。
智能交通灯控制系统在正常工作的情况下,每30s循环变化一次。
每个循环周期在还剩3s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。
在此期间若中断按键按下则转入中断服务子程序进行相关操作。
设计心得体会
吴震
在焊接过程中,我们学会应先合理的布局,并认真检查每个元器件,确保无误后再焊接。
还有,不能急于求成,要焊接一个模块,检查一个模块,免得整个版子焊完后再在一大堆线中检查,这样不仅效率低且耗时。
自然,我们也学会如何去发现问题与解决问题的一些方法。
至于软件设计与调试,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。
可以说再整个软件设计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。
当然,通过几次反复调试过程,使得我对汇编指令有了更深刻的理解。
在整个课程设计过程我还掌握了一下几点:
(1)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。
(2)理解了最单片机的各部分组成及特性。
(3)熟练使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。
通过本次的课程设计,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习起了很大的帮助。
就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。
同时我也懂得,在整个设计过程中,生活中也一样,一定要意志坚定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。
设计心得体会
赵玉峰
我觉得类似这种课程设计的实践真的不错,通过这些项目练习,我自学能力,解决实际问题的能力得到提高,可以说是对综合素质全面提升,我想这也是我们上大学应真正学到的。
在这次课程设计中,我最大的感受之一就是“知识欠缺”。
通过这次课程设计,我知道了自己的缺陷。
因为在平日里的学习中,只讲究完成作业和考试,对知识的实用性不是太重视。
通过本次课程设计我明白了学以致用的的重要性。
我的另一个感受就是“团队意识”。
从开始的确定方向题目,到最后的完成制作,我们小组成员始终坚守在一起,各尽所能,各施所长,互相鼓励,互相学习,一起克服了重重困难。
我想,不管我们的艰辛能否换来我们期待的结果,我们都将无怨无悔。
设计心得体会
文毅
作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。
更重要的是如何把自己平时所学的东西应用到实际中。
附录
附录一:
系统总体原理图
附录二:
系统程序清单
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharnum;
uinta;
ucharcodetable[]={
0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0
};
voiddelay(uintz);
aa();
bb();
voidOutside_Init(void)
{
EX0=1;//开外部中断0
EX1=1;//开外部中断1
IT0=1;//负边沿触发
IT1=1;//负边沿触发
}
voidmain()
{Outside_Init();
EA=1;
while
(1)
{{P1=0xf3;
aa();
}
for(num=6;num<9;num++)
{P1=0xed;
for(a=0;a<=50;a++)
{P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=table[num];
delay(10);}}
{P1=0xde;
aa();
}
for(num=6;num<9;num++)
{P1=0xed;
for(a=0;a<=50;a++)
{P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=table[num];
delay(10);
}
}}}
voidOutside_Int1(void)interrupt1using1
{if(p3^2==0)
{P1=0xb3;
bb();}
}
voidOutside_Int2(void)interrupt2using1
{if(p3^3==0)
{P1=0x9e;
bb();}
}
aa()
{
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xb0;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}
//30
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0x90;
delay(10);
}//29
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0x80;
delay(10);
}//28
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0xf8;
delay(10);
}//27
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0x82;
delay(10);
}//26
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0x92;
delay(10);
}//25
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0x99;
delay(10);
}//24
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0xb0;
delay(10);
}//23
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0xa4;
delay(10);
}//22
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0xf9;
delay(10);
}//21
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xa4;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}//20
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0x90;
delay(10);
}//19
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0x80;
delay(10);
}//18
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xf8;
delay(10);
}//17
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0x82;
delay(10);
}//16
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0x92;
delay(10);
}//15
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0x99;
delay(10);
}//14
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xb0;
delay(10);
}//13
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xa4;
delay(10);
}//12
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xf9;
delay(10);
}//11
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}//10
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x90;
delay(10);
}//09
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x80;
delay(10);
}//08
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xf8;
delay(10);
}//07
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x82;
delay(10);
}//06
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x92;
delay(10);
}//05
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x99;
delay(10);
}//04
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xb0;
delay(10);
}//03
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xa4;
delay(10);
}//02
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xf9;
delay(10);
}//01
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}//00
}
bb()
{
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xf9;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}//10
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x90;
delay(10);
}//09
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x80;
delay(10);
}//08
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xf8;
delay(10);
}//07
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x82;
delay(10);
}//06
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x92;
delay(10);
}//05
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0x99;
delay(10);
}//04
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xb0;
delay(10);
}//03
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xa4;
delay(10);
}//02
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xf9;
delay(10);
}//01
for(a=0;a<=50;a++)
{
P2=0xfd;
P0=0xc0;
delay(10);
P2=0xfb;P0=0xc0;
delay(10);
}//00
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
附录三:
元器件清单
元器件型号
数量
共阳极数码管
2
LED发光二极管
红黄绿各四个
330欧电阻
12
排针
2排
排孔
一排
自锁开关
4
复位开关
1
三极管9012
2
导线
若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 交通 控制系统 模拟 设计