当前位置:文档之家› 基于51单片机的交通控制系统模拟设计

基于51单片机的交通控制系统模拟设计

}
//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);
2.1电源提供方案
采用单片机控制模块提供电源。改方案的优点是系统简明扼要,
节约成本;缺点是输出功率不高。
2.2显示界面方案
采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。
2.3输入方案:
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
(3)进行显示电路,灯状态电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
(4)进行软件系统的设计,对于本系统,采用单片机C语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
2.单片机交通控制系统方案的比较、设计与论证
基于单片机的交通灯控制系统电路图
LED连接图
信号灯的连接
5 系统软件程序的设计
5.1
全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序等。
整个软件程序方面主要分两大部分:主程序部分和中断处理程序。流程图如图9所示。
系统总流程图
设计说明:该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。智能交通灯控制系统在正常工作的情况下,每30s循环变化一次。每个循环周期在还剩3s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。在此期间若中断按键按下则转入中断服务子程序进行相关操作。
3 单片机交通控制系统总体设计
3.1单片机交通控制系统的通行方案设计
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下所示。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始。
通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
}//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;
bb();}
}
void Outside_Int2(void) interrupt2using 1
{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);
◆东西方向绿灯灭,南北方向红灯灭,同时黄灯亮,倒计时3秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
下面我们可以用图表表示灯状态和行止状态的关系如下:
表1交通状态及红绿灯状态
状态1
状态2
状态3
状态4
东西向
ห้องสมุดไป่ตู้禁行
等待变换
通行
等待变换
南北向
通行
等待变换
禁行
等待变换
东西红灯
1
0
0
0
东西黄灯
设计心得体会
吴震
在焊接过程中,我们学会应先合理的布局,并认真检查每个元器件,确保无误后再焊接。还有,不能急于求成,要焊接一个模块,检查一个模块,免得整个版子焊完后再在一大堆线中检查,这样不仅效率低且耗时。自然,我们也学会如何去发现问题与解决问题的一些方法。
至于软件设计与调试,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。可以说再整个软件设计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。当然,通过几次反复调试过程,使得我对汇编指令有了更深刻的理解。
单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中随时调用急停按键。
4智能交通灯控制系统的硬件设计
4.1
实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,1个LED构成倒计时显示模块,若干按键组成紧急按钮。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。
附录
附录一:系统总体原理图
附录二:系统程序清单
#include<reg52.h>
4.3系统工作原理
系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。
时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,
3.3单片机交通控制系统的
单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了紧急情况处理与时间调整功能。
图2系统的总体框图
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。系统的总体框图如上所示。
我的另一个感受就是“团队意识”。从开始的确定方向题目,到最后的完成制作,我们小组成员始终坚守在一起,各尽所能,各施所长,互相鼓励,互相学习,一起克服了重重困难。我想,不管我们的艰辛能否换来我们期待的结果,我们都将无怨无悔。
设计心得体会
文毅
作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。
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++)
在整个课程设计过程我还掌握了一下几点:
(1)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。
(2)理解了最单片机的各部分组成及特性。
(3)熟练使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。
通过本次的课程设计,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习起了很大的帮助。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。同时我也懂得,在整个设计过程中,生活中也一样,一定要意志坚定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。
aa();
bb();
void Outside_Init(void)
{
EX0 = 1; //开外部中断0
EX1 = 1; //开外部中断1
IT0 = 1; //负边沿触发
IT1 = 1; //负边沿触发
}
void main()
{Outside_Init();
EA = 1;
while(1)
{{P1=0xf3;
◆南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向禁止通行,南北向允许通行。
◆南北方向绿灯灭,东西方向红灯灭,同时黄灯亮,倒计时3秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
◆黄灯灭,同时南北方向红灯亮,东西方向绿灯亮,倒计时30秒。此状态下,东西向允许通行,南北向禁止通行。
0
1
0
1
东西绿灯
0
0
1
0
南北红灯
0
0
1
0
南北绿灯
1
0
0
1
南北黄灯
0
1
0
0
东西南北四个路口均有红绿黄3灯,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表1所示。说明:0表示灭,1表示亮。
相关主题