交通信号灯课程设计正文文档格式.docx
- 文档编号:18473787
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:19
- 大小:282.45KB
交通信号灯课程设计正文文档格式.docx
《交通信号灯课程设计正文文档格式.docx》由会员分享,可在线阅读,更多相关《交通信号灯课程设计正文文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
(3)通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。
每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。
(4)通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。
第三章具体设计
3.1.问题分析:
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器PLC、等方案来实现。
但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。
因此,在本次设计中采用单片机技术,应用目前广泛应用的汇编语言描述,实现交通灯系统控制器的设计,完成系统的控制作用。
本系统选用AT89C51单片机,配合一些外围电路完成交通控制系统。
由于该单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点,已经在各个技术领域得到了迅猛发展。
实现同样的功能,这个方案既简单又经济!
该灯控制逻辑可实现3种颜色灯的交替点亮、时间的倒计时,指挥车辆和行人安全通行,实时地控制当前交通灯时间,使LED显示器进行倒计时工作并与状态灯保持同步,可在保证交通安全的前提下最大限度地提高交通效率,而且允许处理紧急情况的发生.由于本设计还有计时调整功能,最大限度提高了本设计的交通灯应用的范围。
经PROTEUS仿真模拟的试验,该系统得到了预期的实时控制效果。
图3.1
根据设计要求得出交通灯的变化情况和规律:
现将一个十字路口模拟出来,如图3.1所示,为东南西北走向根据课程设计的要求初始状态S0为东西南北都红灯亮。
然后转状态S1东西绿灯通车,南北红灯亮。
过一段时间后,转状态S2,东西绿灯灭,黄灯闪几下,南北还是红灯。
再转状态S3,南北绿灯通车,东西红灯亮。
过一段时间后转状态S4,南北绿灯灭,闪几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态S1。
对于交通信号灯来说,本来应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,以此节省单片机的I/O口的使用。
因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。
3.2、总体设计思想
P0口的P0.0~P0.7口分别与数码管的A,B,C,D,E,F,G,DP各管脚相连,做输出数字显示。
P2口做为位选输出口,与发光二极管公共端相连接。
P2.0,P2.1口分别与东西数码管的1,2脚相连,P2.2,P2.3口分别与南北数码管的1,2脚相连,分别对东西南北数码管进行显示控制。
这次设计以AT89C51单片机为核心,外加共阴极数码管组成交通灯系统。
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
在MCS-51系列单片机中,有两个子系列:
51子系列和52子系列。
每个子系列有若干中型号。
51系列有8051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;
52系列有5021、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。
改进后的型号更加省电。
52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。
Inter公司停止生产MCS-51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。
现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。
我们现在使用比较的多的是AT89C51/AT89s51等。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
单片机的特点:
(1)性价比高,开发周期短,易于产品化。
(2)集成度高,可靠性好,抗干扰性强。
(3)功能完善,接口多样。
(4)低功耗、低电压一般电源供电电压在5~3V范围内单片机都能正常工作,供电的下限可达1~2V。
(5)总线多样,易于扩展
单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。
外部总线增加了I2C及SPI等串行总线方式,可根据需要进行并行或者串行扩展。
AT89C51单片机引脚图如下图3.2.1所示:
图3.2.1AT89C51单片机引脚图
80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。
80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图3.2.2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
LED数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
图3.2.2LED数码管
每一笔划都是对应一个字母表示DP是小数点.
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
A、静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×
8=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。
故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。
B、动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。
第4章硬件资源及其分配
主要用到的硬件:
P1口、P3口、LED数码管、LED发光二级管、定时器T0
硬件分配:
(1)P1口:
做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:
方向
无
南北
东西
十六进制值
说明
P1.7P1.6
P1.5P1.4P1.3
P1.2P1.1P1.0
00
09H
都为红灯亮
0CH
东西绿南北红
0AH
东西黄闪
南北红
000
08H
21H
东西红南北绿
11H
南北黄闪
东西红
01H
(2)P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。
(3)74LS240和LED发光二极管用来显示灯亮情况。
(4)定时/计数器T0用来产生1秒的定时。
(5)74LS240和数码管用来显示时间。
图4.1交通灯控制电路原理图
图4.2交通灯控制电路实验图
第5章程序设计
图5.1.1程序流程图
源程序
ORG0000H;
定时时间均以单片机晶振为12MH计算
LJMPSTART
ORG000BH
LJMPDISP
ORG001BH
LJMPTIME
ORG0030H
;
**************初始化*******************
START:
MOVSP,#60H
MOVP1,#0
MOVR3,#0
MOVTMOD,#11H
MOVTH0,#0D8H;
10MS定时
MOVTL0,#0F0H
SETBEA;
开总中断
SETBET0;
开定时中断0
SETBET1;
开定时中断1
SETBTR0;
开启定时器0
SETBTR1;
开启定时器1
**************主程序*********************
MAIN:
SETBP1.0;
开东西绿灯
SETBP1.5;
开南北红灯
MOVR2,#25;
东西绿灯25S
LOOP:
MOV30H,R2
MOVA,R2
ADDA,#3
MOV32H,A
NEXT:
CJNER2,#0,LOOP
MOV30H,#0
MOV32H,#3
CLRP1.0;
关东西绿灯
SETBP1.1;
开东西黄灯
MOVR2,#3;
东西黄灯闪3S
LOOP1:
MOV30H,R2
MOV32H,R2
NEXT1:
ACALLDELAY1;
延时0.08S
SETBP1.1
ACALLDELAY1;
CLRP1.1;
关黄灯
CJNER2,#0,LOOP1;
时间未到,继续循环
MOV32H,#0
CLRP1.1;
关东西黄灯
CLRP1.5;
关南北红灯
SETBP1.2;
开东西红灯
SETBP1.3;
开南北绿灯
MOVR2,#48;
东西红灯48S,南北绿灯45S
LOOP2:
SUBBA,#3
NEXT2:
CJNER2,#3,LOOP2
CLRP1.3;
关南北绿灯
SETBP1.4;
开南北黄灯闪3S
LOOP3:
NEXT3:
ACALLDELAY1
SETBP1.4
ACALLDELAY1
CLRP1.4
CJNER2,#0,LOOP3
CLRP1.2;
关东西红灯
CLRP1.4;
关南北黄灯
LJMPMAIN
****************0.08延时子程序************************
DELAY1:
MOV55H,#200
YS:
DJNZ55H,YS
RET
****************显示中断处理程序***********************
DISP:
CLREA
CLRTR0
PUSHACC
PUSHPSW
ACALLHEXBCD;
把十六进制转化成十进制
MOVA,30H
JNZQING1;
为零不显示
MOV40H,#10
MOV41H,#10
QING1:
MOVA,32H
JNZQING2;
MOV42H,#10
MOV43H,#10
QING2:
MOVR0,#40H;
R0指向显示缓冲区首指
MOVR1,#01H;
首位位选字送R1
LD0:
MOVP2,R1;
从P2口输出位选码
MOVDPTR,#TAB
MOVA,@R0;
取要显示的数
MOVCA,@A+DPTR;
查表获得七段码
MOVP0,A;
从P0口输出段选码
ACALLDELAY;
调用延时子程序
INCR0;
指向缓冲区下一单元
MOVA,R1;
位选码送A
JBACC.3,EXIT1;
叛六位是否显示完,显示完毕返回
RLA;
未显示完,将位选码变下一个字
MOVR1,A;
修改后的位选码送R1
LJMPLD0;
循环显示
EXIT1:
MOVTH0,#0D8H;
定时10MS
MOVTL0,#0F0H
POPPSW
POPACC
SETBTR0;
SETBEA;
开中断总开关
RETI;
中断返回
******************十六进制转十进制子程序*******************
HEXBCD:
MOVA,30H
MOVB,#10
DIVAB
MOV40H,B
MOV41H,A
MOVA,32H
MOV42H,B
MOV43H,A
********************1MS延时子程序**********************
DELAY:
MOVR5,#10
DEL:
MOVR6,#50
DJNZR6,$
DJNZR5,DEL
*******************定时中断处理程序*******************
TIME:
CLRTR1
INCR3
CJNER3,#20,EXIT0
DECR2
EXIT0:
MOVTH1,#03CH
MOVTL1,#0B0H
POPACC
SETBTR1
SETBEA
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
END
第6章仿真与分析
6.1系统仿真
本设计的调试过程是用proteus7professional进行仿真的过程,Proteus是一款专业的电子仿真软件,具有相当多的方便的功能。
打开该软件后,在编辑窗口中,按线路图连线。
调试内容如下图所示:
图6.1.1东西方向绿灯亮,南北方向红灯亮
图6.1.2东西方向黄灯闪烁,南北方向红灯亮
图6.1.3东西方向红灯亮,南北绿灯亮
图6.1.4东西方向红灯亮,南北方向黄灯闪烁
经分析与总结,系统在各个状态下均满足要求,且能按要求循环工作,因此,系统是符合总体要求的。
6.2调试运行分析:
1、接硬件图接线,为了确保东西南北红黄绿灯能够对应显示,实验时,对P1口的接线做了调整。
即,P1.0接L3,P1.1接L2,P1.2接L1,P1.3接L6,P1.4接L5,P1.5接L3
2、S/P区DATA插孔接BUS3区P3。
S/P区CLK插孔接BUS3区P3。
S/P区CLR接/SP插孔
3、从0030H单元开始连续运行,观察六个LED灯是否与交通显示情况对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。
5、调试完灯的显示后,从0030H开始连续运行,观察数码管显示的是否正常,如果不正常,则运用单步运行或断点运行进行分析和调试,直至满足要求。
6、整体运行,观察灯显示和时间显示是否都符合要求,如果不符合,则再调试。
直至满足要求。
总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。
自从拿到题目到完成整个编程,从理论到实践,我们可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次单片机课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解。
通过这次的课程设计让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。
通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵。
通过这次交通灯的课程设计,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。
使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。
综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。
在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。
还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。
总之在此次程序设计中,学会了做程序设计我们必须要有钻研精神,还需要有的就是求知欲望。
这样才能够不断进取,不断提高自己。
我们也要一丝不苟的去思考,去动手。
参考文献
[1]江世明,单片机原理与应用[M].北京:
中国铁道出版社,20010.12
[2]周润景等,proteus入门实用教程[M].北京:
机械工业出版社,2007.
[3]张迎新、雷道振.单片机初级教程[M].北京航天航空大学出版社,2006.
致谢
在这次课程设计的撰写过程中,我得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们为我解决了很多问题。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通 信号灯 课程设计 正文
![提示](https://static.bdocx.com/images/bang_tan.gif)