《交通信号灯课程设计.doc》由会员分享,可在线阅读,更多相关《交通信号灯课程设计.doc(25页珍藏版)》请在三一办公上搜索。
1、目录摘 要第1章 设计目的1 1.1课程性质1 1.2 课题目的1 1.3设计任务与要求1第2章 设计原理分析2第3章具体设计3 3.1问题分析3 3.2总体设计思路5第4章 硬件资源及其配置8第5章 程序设计11第6章仿真与分析 17 6.1系统仿真17 6.2调试运行分析20总结22参考文献23致谢24第1章 设计目的通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。1.1课程性质单片机原理及运用课程设计。
2、1.2课程目的训练学生综合地运用所学的单片机原理及运用的基本知识,包括熟悉集成电路的引脚安排、各芯片的逻辑功能及使用方法,了解面包板结构及其接线方法,通过使用Proteus仿真技术,独立完整地设计一定功能的电子电路,以及仿真和调试等的综合能力。1.3设计任务与要求任务:设计一个能够控制十二盏交通信号灯的模拟系统要求:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。第2章 设计原理分析人行道人行道人行道 人行道 图2.1(1)首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图2.1为东南西北走向。初始状态0为东西南北都红灯亮。然后转状态1东西绿灯通车,
3、南北红灯亮。过一段时间后,转状态2,东西绿灯灭,黄灯闪几下,南北还是红灯。再转状态3,南北绿灯通车,东西红灯亮。过一段时间后转状态4,南北绿灯灭,闪几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)状态北西南东绿黄红绿黄红绿黄红绿黄红00010010010011001100001100200101000101031000011000014010001010001(2)对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引
4、脚即可来控制6个信号灯。(3)通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。(4)通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。第三章 具体设计3.1.问题分析:信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行
5、横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器PLC、等方案来实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。因此,在本次设计中采用单片机技术,应用目前广泛应用的汇编语言描述,实现交通灯系统控制器的设计,完成系统的控制作用。本系统选用AT89C51单片机,配合一些外围电路完成交通控制系统。由于该单片机具有简单实用、高可靠性、良好的性能价格
6、比以及体积小等优点,已经在各个技术领域得到了迅猛发展。实现同样的功能,这个方案既简单又经济!该灯控制逻辑可实现3种颜色灯的交替点亮、时间的倒计时,指挥车辆和行人安全通行,实时地控制当前交通灯时间,使LED显示器进行倒计时工作并与状态灯保持同步,可在保证交通安全的前提下最大限度地提高交通效率,而且允许处理紧急情况的发生.由于本设计还有计时调整功能,最大限度提高了本设计的交通灯应用的范围。经PROTEUS仿真模拟的试验,该系统得到了预期的实时控制效果。图3.1根据设计要求得出交通灯的变化情况和规律:现将一个十字路口模拟出来,如图3.1所示,为东南西北走向根据课程设计的要求初始状态S0为东西南北都红
7、灯亮。然后转状态S1东西绿灯通车,南北红灯亮。过一段时间后,转状态S2,东西绿灯灭,黄灯闪几下,南北还是红灯。再转状态S3,南北绿灯通车,东西红灯亮。过一段时间后转状态S4,南北绿灯灭,闪几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态S1。对于交通信号灯来说,本来应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,以此节省单片机的I/O口的使用。因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。3.2、总体设计思想P0口的P0.0P0.7口分别与数码管的A,B,C,D,E,F,G,DP各管脚相连,做输出数字显示。 P2口做
8、为位选输出口,与发光二极管公共端相连接。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
9、、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。改进后的型号更加省电。52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。Inter公司停止生产MCS-51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是AT89C51/AT89s51等。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统
10、。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。单片机的特点:(1)性价比高,开发周期短,易于产品化。(2)集成度高,可靠性好,抗干扰性强。(3)功能完善,接口多样。(4)低功耗、低电压一般电源供电电压在53V范围内单片机都能正常工作,供电的下限可达12V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了I2C及SPI等串行总线方式, 可根据需要进行并行或者串行扩展。AT89C51单片机引脚图如下图3.2.1所示:图3.2.1 AT89
11、C51单片机引脚图80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。 80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部
12、连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图3.2.2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。图3.2.2 LED数码管每一笔划都是
13、对应一个字母表示 DP是小数点.LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。A、 静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5840根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。B、 动态显示驱动: 数码管动
14、态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂
15、留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。第4章 硬件资源及其分配主要用到的硬件:P1口、P3口、LED数码管、LED发光二级管、定时器T0硬件分配:(1)P1口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下: 方向状态无南 北东 西十六进制值说 明P1.7 P1.6P1.5 P1.4 P1.3P1.2 P1.1 P1.000000100109H都为红灯亮1000011000CH东西绿南北红2000010100AH
16、东西黄闪南北红0000100008H30010000121H东西红南北绿40001000111H南北黄闪东西红0000000101H(2)P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。(3)74LS240和LED发光二极管用来显示灯亮情况。(4)定时/计数器T0用来产生1秒的定时。(5)74LS240和数码管用来显示时间。图4.1 交通灯控制电路原理图图4.2 交通灯控制电路实验图第5章 程序设计初始化,全灭延时并将时间送显示东西绿灯亮,南北红灯亮东西黄灯闪,南北红灯亮延时,将时间送显示延时,将时间送显示东西红灯亮,南北绿灯亮延时,
17、将时间送显示东西红灯亮,南北黄灯闪延时,将时间送显示图5.1.1 程序流程图源程序ORG 0000H ;定时时间均以单片机晶振为12MH计算LJMP STARTORG 000BHLJMP DISPORG 001BHLJMP TIMEORG 0030H;*初始化*START:MOV SP,#60H MOV P1,#0 MOV R3,#0 MOV TMOD,#11H MOV TH0,#0D8H ;10MS定时 MOV TL0,#0F0H SETB EA ;开总中断 SETB ET0 ;开定时中断0 SETB ET1 ;开定时中断1 SETB TR0 ;开启定时器0 SETB TR1 ;开启定时器1
18、;*主程序*MAIN: SETB P1.0 ;开东西绿灯 SETB P1.5 ;开南北红灯 MOV R2,#25 ;东西绿灯25SLOOP: MOV 30H,R2 MOV A,R2 ADD A,#3 MOV 32H,ANEXT: CJNE R2,#0,LOOP MOV 30H,#0 MOV 32H,#3 CLR P1.0 ;关东西绿灯 SETB P1.1 ;开东西黄灯 MOV R2,#3 ;东西黄灯闪3SLOOP1:MOV 30H,R2 MOV 32H,R2NEXT1:ACALL DELAY1 ;延时0.08S SETB P1.1 ACALL DELAY1 ;延时0.08S CLR P1.1
19、;关黄灯 CJNE R2,#0,LOOP1 ;时间未到,继续循环 MOV 30H,#0 MOV 32H,#0 CLR P1.1 ;关东西黄灯 CLR P1.5 ;关南北红灯 SETB P1.2 ;开东西红灯 SETB P1.3 ;开南北绿灯 MOV R2,#48 ;东西红灯48S,南北绿灯45SLOOP2:MOV 30H,R2 MOV A,R2 SUBB A,#3 MOV 32H,ANEXT2:CJNE R2,#3,LOOP2 MOV 32H,#0 CLR P1.3 ;关南北绿灯 SETB P1.4 ;开南北黄灯闪3SLOOP3:MOV 30H,R2 MOV 32H,R2NEXT3:ACALL
20、 DELAY1 SETB P1.4 ACALL DELAY1 CLR P1.4 CJNE R2,#0,LOOP3 MOV 30H,#0 MOV 32H,#0 CLR P1.2 ;关东西红灯 CLR P1.4 ;关南北黄灯 LJMP MAIN;*0.08延时子程序*DELAY1:MOV 55H,#200 YS: DJNZ 55H,YS RET;*显示中断处理程序*DISP: CLR EA CLR TR0 PUSH ACC PUSH PSW ACALL HEXBCD ;把十六进制转化成十进制 MOV A,30H JNZ QING1 ;为零不显示 MOV 40H,#10 MOV 41H,#10QIN
21、G1:MOV A,32H JNZ QING2 ;为零不显示 MOV 42H,#10 MOV 43H,#10QING2:MOV R0,#40H ;R0指向显示缓冲区首指 MOV R1,#01H ;首位位选字送R1 LD0: MOV P2,R1 ;从P2口输出位选码 MOV DPTR,#TAB MOV A,R0 ;取要显示的数 MOVC A,A+DPTR ;查表获得七段码 MOV P0,A ;从P0口输出段选码 ACALL DELAY ;调用延时子程序 INC R0 ;指向缓冲区下一单元 MOV A,R1 ;位选码送A JB ACC.3,EXIT1 ;叛六位是否显示完,显示完毕返回 RL A ;未
22、显示完,将位选码变下一个字 MOV R1,A ;修改后的位选码送R1 LJMP LD0 ;循环显示EXIT1:MOV TH0,#0D8H ;定时10MS MOV TL0,#0F0H POP PSW POP ACC SETB TR0 ;开启定时器0 SETB EA ;开中断总开关 RETI ;中断返回;*十六进制转十进制子程序*HEXBCD:MOV A,30H MOV B,#10 DIV AB MOV 40H,B MOV 41H,A MOV A,32H MOV B,#10 DIV AB MOV 42H,B MOV 43H,A RET;*1MS延时子程序*DELAY:MOV R5,#10DEL:
23、MOV R6,#50 DJNZ R6,$ DJNZ R5,DEL RET;*定时中断处理程序*TIME: CLR EA CLR TR1 PUSH ACC PUSH PSW INC R3 CJNE R3,#20,EXIT0 MOV R3,#0 DEC R2EXIT0:MOV TH1,#03CH MOV TL1,#0B0H POP PSW POP ACC SETB TR1 SETB EA RETITAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END第6章 仿真与分析6.1 系统仿真本设计的调试过程是用proteus 7profes
24、sional 进行仿真的过程,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,
25、P1.4接L5,P1.5接L32、S/P区DATA插孔接BUS 3区P3。0 S/P区CLK插孔接BUS 3区P3。1 S/P区 CLR接/SP插孔3、从0030H单元开始连续运行,观察六个LED灯是否与交通显示情况对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。5、调试完灯的显示后,从0030H开始连续运行,观察数码管显示的是否正常,如果不正常,则运用单步运行或断点运行进行分析和调试,直至满足要求。6、整体运行,观察灯显示和时间显示是否都符合要求,如果不符合,则再调试。直至满足要求。总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要
26、环节。自从拿到题目到完成整个编程,从理论到实践,我们可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次单片机课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解。通过这次的课程设计让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得
27、不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵。通过这次交通灯的课程设计,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过
28、查阅相关书籍、资料以及和周围同学交流得到解决。还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。总之在此次程序设计中,学会了做程序设计我们必须要有钻研精神,还需要有的就是求知欲望。这样才能够不断进取,不断提高自己。我们也要一丝不苟的去思考,去动手。参考文献1 江世明,单片机原理与应用M.北京:中国铁道出版社,20010.122 周润景等,proteus 入门实用教程M.北京:机械工业出版社,2007.3 张迎新、雷道振.单片机初级教程M.北京航天航空大学出版社, 2006.致谢在这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们为我解决了很多问题。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。