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