交通灯论文文档格式.docx
《交通灯论文文档格式.docx》由会员分享,可在线阅读,更多相关《交通灯论文文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
4.5软件仿真11
第五章设计总结15
致谢16
参考文献17
附录18
第一章选题依据
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。
对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。
而这一技术在19世纪就已出现了:
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯;
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯;
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成行;
1918年,又出现了带控制的红绿灯和红外线红绿灯。
智能的交通灯管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。
使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
本系统采用单片机AT89C51为中心器件来设计交通信号灯单片机控制系统,系统实用性强,操作简单,扩展性强。
系统由单片机系统、LED数码显示、交通灯演示系统组成,具备基本的交通灯的功能,另外还具有倒计时显示以及紧急情况手动控制功能。
该系统适用于车流量较均衡的双向四车道十字路口,根据一般情况,此次设计红绿灯亮的时间定为50秒,同时对时间进行倒计时显示。
此系统将会从解决路口拥堵,车流顺畅通行出发,改善十字路口的交通环境。
第二章交通管理方案论证
2.1设计任务
交通信号灯控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用数码管显示时间。
用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
设计框图如图2-1。
图2-1设计框图
2.2方案介绍
本系统是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西红灯,南北绿灯通车。
过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。
最后循环至状态1。
本系统就是利用了AT89C51芯片的I/O引脚。
系统采用美国ATMEL公司生产的单片机AT89C51,以及其它芯片来设计交通灯控制器,实现了红灯亮60秒,绿灯50秒,黄灯闪烁10秒。
P1输出口设置红、绿灯燃亮的功能和P2输出口设置实现在七段数码管上的时间显示。
简单的来说,就是用单片机控制二极管的闪灭亮和显示时间。
第三章系统硬件模块分析
3.1单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过几代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
以下是对AT89C51单片机介绍:
AT89C51是MCS-51系列单片机的典型产品,其包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
MCS-51单片机基本结构示意图3-1。
图3-1单片机基本结构
AT89C51的管脚引图如图3-2。
图3-2AT89C51管脚引图
3.2各个功能电路介绍
3.2.17447译码显示电路
7447是BCD—7段高电平有效译码/驱动器,是将输入的BCD码转化二进制信号输出用于LED数码管显示的信号。
7447译码显示电路如图3-3。
图3-37447译码显示电路
3.2.2复位电路
AT89C51的复位的条件是:
必须使RET/VPD或RST引(9)加上持续两个机器周期(即24个震荡周期)的高电平。
例如,若时钟频率为12MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
复位方式可以是自动复位,也可以是手动复位。
考虑到是汽车信号灯的设计,因而本系统采用自动复位。
如图3-4。
图3-4复位电路
3.2.3发光二极管指示灯电路
该电路部分是交通信号灯的主要显示部分。
采用发光二极管构成,按交通规划分红、黄、绿三种颜色。
发光二极管直接与单片机的I/O端口相连,绿灯和黄灯控制器还有红灯控制器的控制信号都是由秒脉冲发生器给出的。
如图3-5所示。
图3-5发光二极管电路
3.2.4键盘扫描电路
此电路是实现本系统电路手动控制的功能。
利用单片机的中断实现,如图3-6所示,P3.5和P3.2分别表示与单片机的T1和INT0端口连接来中断实现。
警急情况的控制就由该电路发出信号进行控制。
当开始按键按键按下后,信号灯为南北绿红灯,东西亮红灯,即实现南北通行,当紧急按键按键按下后,信号灯为东西亮红灯,南北亮红灯,实现紧急情况。
图3-6键盘扫描电路
3.3系统选用元器件
选用AT89C51单片机一片,7447译码/驱动器两片,共阴极的七段数码管两个,红、黄、绿二极管各四个,开关两个等元器件。
3.4系统整体框图
图3-7系统整体方框图
键盘扫描电路
3.5整体线路图
图3-8整体线路图
其工作方式:
接通电源后东西南北红灯全亮,LED数码管显示00。
当开始按键按下,显示60秒,开始进入循环状态。
若紧急按键被按下,则停止倒计时,东南西北全亮红灯,松开紧急按键则进入初始状态,需要按开始按键才又进如循环状态。
第四章程序设计及仿真
4.1交通信号灯单片机控制系统程序流程图
图4-1交通信号灯单片机控制系统程序流程图
该程序用于控制发光二极管的闪灭及LED数码管显示时间。
状态0为东西红灯,南北红灯,并显示00秒。
监测是否有按键输入,如果有转状态1东西红灯,南北绿灯通车,LED数码管显示60秒。
LED数码管显示10秒时转状态2南北绿灯灭,黄灯闪烁十次即用时十秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯,LED数码管显示60秒。
LED数码管显示10秒时转状态4,东西绿灯灭,黄灯闪烁十次即用时十秒,南北仍然红灯。
4.2按键子程序流程图
图4-2按键子程序流程图
该按键子程序的作用在于当出现紧急情况时控制路口交通。
当出现紧急情况时显示为全红灯,LED数码管停止倒计时,并显示此刻时间。
4.3延时的设定
延时方法可以有两种,一种是利用AT89C51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法。
本系统源程序就是采用软件延时的方法。
AT89C51的工作频率为0—33MHZ,系统选用的AT89C51单片机的工作频率为12MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。
因为知道具体每条指令的周期数,这样就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序分析:
DELAY:
;
1s延時子程序
MOVR5,#20
D1:
MOVR6,#100
D2:
MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
DELAY为一个多重循坏,循环次数为20*100*248=496000所以延时时间=496000*2=992000us约为1秒。
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
4.4交通信号灯单片机控制系统源程序
该系统的源程序编写是基于现在广泛使用的C51集成开发环境Keil软件(KeiluVision2)。
它是为8051系列单片机所设计的开发工具,支持所有8051系列衍生产品,支持带扩展储存和扩展指令集的新设备,以及支持很多公司的一流的设备和IP内核。
它集成了源程序编辑和程序调试于一体,支持汇编、C语言。
汇编语言作为一个符号化的机器语言,其代码执行效率高,运行速度快,对DSP(数字信号处理器)内核管理方便,可以充分发挥DSP的硬件性能,非常适合于编写实时性要求较高的控制程序。
所以本系统采用汇编语言进行编程。
此次设计的交通信号灯单片机控制系统程序具体见附录。
在Keil软件中进行程序调试是通过对源程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
以下是创建基本步骤:
[1]打开Keil软件,新建工程;
[2]选择芯片;
[3]新建文档,把编写好代码写入文档并保存了ASM文件;
[4]把保存的文档加载到SourceGroup;
[5]编译程序;
[6]设置转换成16进制;
[7]运行程序的结果;
然后把编写好的16进制文件输入到Proteus软件中电路图上的单片机AT89C51仿真器和对其进行初始化。
给实验板进行通电,观察运行结果,不一致则进行反复调试及修改程序,直到与预定目的一致。
以下是在程序调试过程中出现在情况:
把程序装好,通电以后,发光二极管的亮灭没有达到预定目的,且显示的是东西黄灯亮,关电源重新开始还是如此。
经过分析后,发现是在P2输出口的设置数值有误,是将高四位与低四位设置反了而导致东西黄灯亮。
4.5软件仿真
此次系统设计的仿真是基于Proteus虚拟单片机仿真软件。
以下是软件介绍:
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是:
它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。
因为Proteus不仅能仿真单片机CPU
的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
(1)proteus
的工作过程
运行proteus
的ISIS
程序后,进入该仿真软件的主界面。
在工作前,要设置view
菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p(从库中选择元件命令)命令,在pick
devices
窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线;
双击需要加入程序的元器件,在program
file命令中,加入单片机硬件电路的对应程序;
通过debug
菜单的相应命令仿真程序和电路的运行情况。
(2)Proteus
软件所提供的元件资源
Proteus
软件所提供了30
多个元件库,数千种元件。
元件涉及到数字和模拟、交流和直流等。
(3)Proteus
软件所提供的仪表资源
对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。
在Proteus
软件包中,不存在同类仪表使用数量的问题。
还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。
(4)Proteus
软件所提供的调试手段
提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
对于单片机硬件电路和软件的调试,Proteus
提供了两种方法:
一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。
本系统在Proteus软件上各状态的仿真效果如下所示:
图4-3初始状态0东西红灯亮,南北红灯亮,显示00
图4-4状态1东西红灯,南北绿灯,显示60
图4-5状态2南北绿灯灭,闪几次黄灯,东西仍红灯亮
图4-6状态3南北红灯亮,东西绿灯亮
图4-7状态4南北红灯亮,东西绿灯灭,闪几次黄灯
第五章设计总结
通过个多月毕业设计,我对单片机有了更深的体会。
我了解和掌握了一些编程思想和对I/O口的使用。
这次设计通过单片机的I/O口来控制交通灯。
在编程的过程中,可以说是比较顺利,只是摸仿其他的编程思路,在加上一些自己的思想来满足这次设计的任务。
这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,毕业设计让我把单片机的理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论的是实践的基础,实践有能检验理论的正确性,让我受益非浅,对我以后参加工作或者继续学习将会产生巨大的帮助和影响,为日后成为合格的应用型人才打下良好的基础。
致谢
本设计的完成,离不开我的导师们悉心指导和孜孜不倦地教诲。
老师给予我细心的关怀与指导。
在此表示衷心地感谢。
老师认真负责的工作态度、严谨的治学风格,使我深受启发;
同时,在和同学们之间的相互探讨也使我获益匪浅。
如果没有导师的督促指导,以及一起工作的同学们的帮助和支持,我想要完成这个设计不知道又要多出多少的困难。
参考文献
[1]刘高轈.单片机实用技术[M].北京:
清华大学出版社,2004.
[2]丽凤.单片机原理及接口技术[M].北京:
北京交通大学出版社,2004.
[3]何立民.单片机应用技术大全[M].北京:
北京航空航天大学出版社,1994.
[4]张毅坤.单片微型计算机原理及应用[M].西安:
西安电子科技大学出版社,1998.
[5]吴金戎,沈庆阳.8051单片机实践与应用[M].北京:
清华大学出版社,2003.
[6]余锡存.单片机原理及接口技术[M].陕西:
西安电子科技大学出版社,2000.
[7]雷丽文.微机原理与接口技术[M].北京:
电子工业出版社,1997.
[8]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,1993
[9]周航慈.单片机应用程序设计技术[M].北京:
北京航空航天大学出版社,1991.
[10]何立民MCS-51系列单片机应用系统设计[M].北京:
北京航空航天大学出版社,1995.
附录
交通信号灯单片机控制系统程序:
ORG0000H
JMPMAIN
ORG0003H
LJMPEXT0
ORG0030H
MAIN:
MOVSP,#60H;
设置堆栈
MOVIE,#10000001B;
INT0外部中斷
MOVIP,#00000001B
MOVP2,#00H
MOVP1,#0F6H;
状态0全红灯显示00
LCALLDELAY;
延时
JBP3.5,MAIN;
检测是否有按键输入,否则跳转
START:
LCALLZT1
LCALLZT2
LCALLZT3
LCALLZT4
AJMPSTART;
循环状态
ZT1:
状态1东西红南北绿
MOVP1,#0F3H
MOVR4,#50;
写50
MOVR3,#00;
写60秒
LCALLDIR;
显示程序
RET
ZT2:
状态2,东西红灯亮,南北绿灯灭,黄灯闪烁几次
MOVR3,#50;
设置闪亮时间10秒
MOVR4,#10
FLASH1:
MOVP1,#0f7H;
设置跳转显示
LCALLDELAY1
MOVP1,#0f5H
MOVA,R3
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP2,A
LCALLDELAY
INCR3
DJNZR4,FLASH1
RET
ZT3:
;
状态3,南北红灯亮,东西绿灯亮
MOVP1,#0DEH
显示程序
ZT4:
状态4,南北红灯亮、东西绿灯灭,黃灯闪烁
MOVR4,#10;
闪10次
FLASH2:
MOVP1,#0fEH
LCALLDELAY1
MOVP1,#0EEH
DJNZR4,FLASH2
EXT0:
PUSHACC;
將ACC的值存入堆棧保存
PUSHPSW;
將PSW的值存入堆棧保存
MOVA,#0F6H
MOVP1,A;
使東西、南北的紅燈都亮
LCALLDELAY
JBP3.2,LOOP;
P3.2按鍵放開時返回主程序
POPPSW
LOOP:
POPACC
RETI;
到1状态
DIR:
;
查表显示子程序
MOVA,R3
MOVDPTR,#TABLE
DJNZR4,DIR
DELAY1:
0.5s延時子程序
MOVR5,#10
D3:
D4:
MOVR7,#248
DJNZR7,$
TABLE:
DB60H,59H,58H,57H,56H,55H,54H,53H,52H,51H
DB50H,49H,48H,47H,46H,45H,44H,43H,42H,41H
DB40H,39H,38H,37H,36H,35H,34H,33H,32H,31H
DB30H,29H,28H,27H,26H,25H,24H,23H,22H,21H
DB20H,19H,18H,17H,16H,15H,14H,13H,12H,11H
DB10H,09H,08H,07H,06H,05H,04H,03H,02H,01H
END