第一篇:毕业论文之交通灯设计
毕业论文之交通灯设计
目录
摘要………………………………………………………………………
2引言………………………………………………………………………
概述……………………………………………………………………3
1.1 交通灯的背景与意义………………………………………………3
1.2 单片机发展概况……………………………………………………
单片机简介……………………………………………………………
52.1单片机简介…………………………………………………………5
2.2 单片机应用…………………………………………………………5交通灯硬件设计………………………………………………………6
3.1 交通灯工作方案……………………………………………………6
3.2 交通灯硬件设计及原理图…………………………………………7
3.2.1 工作原理…………………………………………………………8控制器的软件设计……………………………………………………9
4.1 程序设计流程图……………………………………………………9
4.2 主程序设计…………………………………………………………10结束语…………………………………………………………………12
致谢词……………………………………………………………………13
参考文献…………………………………………………………………14
交通灯设计
何超
摘要:随着时代的发展交通事故也急剧增加,为了改善交通秩序减少交通事故,交通灯起着越来越重要的作用。交通灯安装在各个路口上,然而控制交通灯一般采用单片机,单片机是微型计算机一个重要分支,具有体积小、价格低、指令系统简单、可靠性高工作范围广等特点。故特别适用于这里交通灯控制,采用汇编语言对80C51型单片机进行设计控制交通灯的工作,本系统实用性强能使交通灯更稳定的工作。
关键字:交通灯 单片机 汇编语言
Abstract:With the development of The Times traffic accident also sharp increase, to improve traffic lights reduce accidents, playing a more and more important role.Traffic lights installed in each intersection, however control traffic lights generally USES microcontroller, microcontroller is an important branch of micro computer, has small volume, price low, instruction system is simple, high reliability working range, etc.It is especially suitable for here, the assembly language lights control design for 80C51 SCM control type of traffic lights work, this system is strong practicability can make more stable job.Lights
Key Words: Traffic lights,MCU,assembly language
引言
随着经济的增长和人口的增加,人们生活方式不断变化,人们对交通的需求不断增加。城市中交通拥挤、堵塞现象日趋严重,由此造成巨大的经济与时间损失。资料显示,对日本东京268个主要交叉路口的调查估计表明:每年在交叉路口的时间延误,折成经济报失为20亿美元;而在我国北京市,当早晚交通高峰时,交叉路 口处的排队长度竟达1000多米,有的阻车车队从一个交叉路口延伸到另一个交叉路 口,这时一辆车为通过一交叉路口,往往需要半个小时以上,时间损失相当可观。我国是一个历史悠久、人口众多的国家,城市数量随着社会的发展不断增多。随着城市化进程的大大加快,诱发的交通需求急剧增长,供需矛盾不断激化,严重 的交通问题也随之而来。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制 与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,这一切要归功于城市交通控制系统中的交通灯控制系统。交通灯控制系统对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果,使城市交通得以有效管理。交通灯可以采用 pLC、单片机等控制方法。利用单片机实现对交通信号灯的实时控制,只要采用一块单片机,加上简单的接口与驱动放大电路,即可实现,具有成本低,可靠性高的特点概述
1.1 交通灯的背景与意义
从19世纪到现在不仅科技的不断发展,交通灯的发展是交通日渐繁华的必然产物,交通灯控制系统对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果,使城市交通得以有效管理。现如今交通灯已经成为人们生活中不可或缺的一部分,是维护交通秩序的重要工具,信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.2 单片机的发展概况
为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统。有的单片机内部设置了专门用于变频控制的脉宽调制控制电路,这些单片机有Fujitsu公司的MB89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在这些单片机中,脉宽调制电路有6个通道输出,可产生三相脉宽调制交流电压,并内部含死区控制等功能。特别引人注目的是:现在有的单片机已采用所谓的三核(TrCore)结构。这是一种建立在系统级芯片(System on a chip)概念上的结构。这种单片机由三个核组成:一个是微控制器和DSp核,一个是数据和程序存储器核,最后一个是外围专用集成电路(ASIC)。这种单片机的最大特点在于把DSp和微控制器同时做在一个片上。虽然从结构定义上讲,DSp是单片机的一种类型,但其作用主要反映在高速计算和特殊处理如快速傅立叶变换等上面。把它和传统单片机结合集成大大提高了单片机的功能。这是目前单片机最大的进步之一。这种单片机最典型的有Infineon公司的TC10Gp;Hitachi公司的SH7410,SH7612等。这些单片机都是高档单片机,MCU都是32位的,而DSp采用16或32位结构,工作频率一般在60MHz单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了“杀鸡用牛刀”了。要实现嵌入式设备和连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。
目前,为了把单片机为核心的嵌入式系统和Internet相连,已有多家公司在进行这方面的较多研究。这方面较为典型的有EmWare公司和TASKING公司。单片机简介
2.1单片机简介单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种,单片微型计算机简称单片机,特别适用于控制领域,故又称微控制器。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大pCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称pC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。2.2 单片机应用
一、单片机在智能仪器仪表领域的应用 在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。
二、单片机在机电一体化领域的应用 机电一体化是机械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。
三、单片机在日常生活及家用电器领域的应用 自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、空调器、电子玩具、电饭煲、视听音响设备等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方便、舒适、丰富多彩。
四、在实时过程控制领域的应用 用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。
五、办公自动化设备 现代办公室使用的大量通信和办公设备多数嵌入了单片机。如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。综合所述,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。3 交通灯硬件设计3.1 交通灯工作方案
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如表:
过程1
过程2
东西道
闪烁次数
红灯
绿灯
黄灯
15
12
3
南北道
闪烁次数
绿灯
黄灯
红灯
12
3
15
上表说明:
过程1;东西方向为红灯开始闪烁时南北方向绿灯开始闪烁,当闪烁第十二次时东西方向红灯持续闪烁三次但是南北方向转为绿灯闪烁三次。(一个过程共十五秒)。
过程2;南北方向为红灯开始闪烁时东西方向绿灯开始闪烁,当闪烁第十二次时南北方向红灯持续闪烁三次但是东西方向转为绿灯闪烁三次。(一个过程共十五秒)。
就以上述两种状态进行循环,行人和车辆就可以安全畅通的通行。
3.2 交通灯硬件设计及原理图
选用单片机80C51一片,导线若干,发光二极管12支(红、黄、绿各四对)电阻等元器件,电路原理图如下:
3.2.1 工作原理
如上图所示,此电路是由晶体振荡电路、复位电路以及交通灯模拟电路。
a,复位电路
复位电路:复位是使单片机或系统中的其他部件处于某种确定的初始状态。单片机的工作就是从复位开始的。80C51的复位引脚(RST)是第9脚,当此引脚连接高电平超过2个机器周期(一个机器周期为6个时钟脉冲),即可产生复位的动作。当在80C51单片机引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(如果RST引脚继续保持高电平,单片机就处于循环复位状态)。复位操作有两种基本形式:一种是上电复位,另一种是如a图所示的上电与按键均有效的复位。
b,晶体振荡电路
晶体振荡电路:80C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,此电路是用来给单片机控制系统提供时钟信号,振荡电路如b图所示。
c,交通灯模拟控制电路
如c图所示此电路的发光二极管采用灌电流接法,发光二极管正极接到电源正极,p0.0控制东西道一组的红绿灯,p2.0控制南北道一组的红绿灯。
LED1~LED6分别接到 红绿黄,红绿黄
LED7~LED12分别接到 红绿黄 红绿黄控制器的软件设计
4.1 程序设计流程图
否
否
否
是
是
是
是
东西红灯南北黄灯闪
结束
是否闪12次?
东西绿南北红灯闪
东西红灯南北黄灯闪
开始
初始化
设定初值
东西红灯南北绿灯闪
是否闪12次?
是否闪3次?
4.2主程序设计
ORG 0000H
SJMp MAIN
MAIN:MOV R0,#12;程序从主程序开始,分别给R0、p0、p2赋值,给R0赋值是为
;了语句的循环,p0、p2各个接口赋予高频信号“1”(全灭的信号)
MOV p0,#0FFH
MOV p2,#0FFH”
LOOp1:MOV p0,#0C6H;使交通灯LED1和LED3发光,LED亮后灭的信号
MOV p2,#4BH
CALL D_05S;调用延时子程序延时(0.5S)
MOV p0,#0FFH
MOV p2,#0FFH
CALL D_05S
DJNZ R0,LOOp
1MOV R0,#
3LOOp2:MOV p0,#0C6H;紧接这上面的状态后,LED闪三次 东西红灯闪,南北黄灯
MOV p2,#8DH
CALL D_05S
MOV p0,#0FFH
MOV p2,#0FFH
CALL D_05S
DJNZ R0,LOOp
2MOV R0,#12
LOOp3:MOV p0,#4BH
MOV p2,#0C6H
CALL D_05S
MOV p0,#0FFH
MOV p2,#0FFH
CALL D_05S
DJNZ R0,LOOp3 ;LED闪十二次,东西绿灯闪,南北红灯闪
MOV R0,#3
LOOp4:MOV p0,#8DH
MOV p2,#0C6H
CALL D_05S
MOV p0,#0FFH
MOV p2,#0FFH
CALL D_05S
DJNZ R0,LOOp4; LED闪三次,东西黄灯闪,南北红灯闪
AJMp MAIN ;循环,跳转到main主程序
D_05S:MOV R4,#50;延时子程序
S1:MOV R5,#40
S2:MOV R6,#123
DJNZ R6,$
DJNZ R5,S2
DJNZ R4,S1
RET
END
上述程序是控制交通灯的第一个状态,紧接后面的几个状态和上述程序规律相同只是输出的信号不同,就这样以此规律进行编写就可使交通灯工作。结束语
通过这次毕业设计,虽然在毕业合计前期我遇到了很多困难,甚至不知道如何下手,但是通过自己的亲手实践,不断的请教同学与老师,还有就是在课余实间上网收集资料等等不断的积累,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。使我完成了这次很有意义的毕业设计。
致谢词
在学校的生活即将话上句号时,在我们即将告别这个白衣飘飘的年代的时刻,我内心是如此的激动不已,如此的依依不舍,在这里我感谢几年来培养我的母校,感谢代课老师对我的指导,感谢所有的爱我的人和我爱的人。还要感谢110宿舍亲爱的兄弟们,我在你们身上学到了很多。在毕业设计即将完成之际,感谢学校2年来提供良好的学习环境,感谢电气系对本人提供施展才能的舞台,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们,祝你们永远幸福快乐!
参考文献
[1]单片机原理及其应用技术 李全利 高等教育出版社 2009.6
[2]单片机原理与应用 孙仅 北京大学出版社 2006.2
[3]单片机原理接口与应用 机械工业出版社 2005.4
[4]跟我薛永单片机 肖德才 西北大学出版社 2008.1
[5]单片机实验与实践教程 刘守义 国防工业出版社 2005.1
[6]雷丽文 等.微机原理与接口技术
.北京:电子工业出版社 2004.2
[7]单片机程序设计实例,先锋工作室,清华大学出版社 2004.6
第二篇:毕业论文---智能交通灯控制系统设计
目 录
摘 要...........................................................2 第一章 概述.....................................................3 1.1交通灯的发展及现状...........................................3 1.2 单片机说明.................................................3 第二章 智能交通灯的设计原理.....................................6 2.1 智能交通灯的设计框图........................................6 2.2智能交通灯的设计方案及改进措施...............................6 第三章 智能交通灯电路设计.......................................6 3.1控制器的系统框图.............................................7 3.2智能交通灯控制系统电路图.....................错误!未定义书签。3.3工作原理....................................................8 第四章 智能交通灯软件系统设计..................................14 4.1 智能交通灯的软件设计流程图.................................14 4.2 程序源代码.................................................14 第五章 智能交通灯方案的仿真....................................14 小结...........................................................18 致谢词.........................................................18 参考文献.......................................................18 附 录..........................................................21 附录A:智能交通灯控制程序:....................................21
摘 要
本文介绍的是一个基于PROTEUS的智能交通灯控制系统的设计与仿真,系统根据交通十字路口双车道车流量的情况控制交通信号灯按特定的规律变化。
本文首先对智能交通灯的研究意义和智能交通灯的研究现状进行了分析,指出了现状交通灯存在的缺点,并提出了改进方法。智能交通灯控制系统通常要实现自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。本文还对AT89C51单片机的结构特点和重要引脚功能进行了介绍,同时对智能交通灯控制系统的设计进行了详细的分析。最后利用PROTEUS软件,通过其平台对交通灯控制系统进行了仿真,仿真结果表明系统工作性能良好。
关 键 词:PROTEUS、AT89C51单片机、智能交通灯;
第一章 概述
1.1交通灯的发展及现状
中国车辆数量不断增加,交通管制的工作量越来越大,利用计算机代替人进行高效交通管理是必然的发展趋势,而让计算机控制的交通灯拥有类似人类的感知智能,具有很强的现实意义,比如通过摄像机让交通灯控制系统获得视觉感知功能,就可以代替人类的眼睛,使系统根据所“看到”交通情况自适应改变管制策略,提高了交通管理的自动化水平,使得交通更高效、更顺畅。
目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
1.2 单片机说明
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
1.2.1 AT89C51单片机硬件结构
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的单片机芯片,它采用静态CMOS 工艺制造8位微处理器,最高工作频率位24MHZ。AT89C5外形及引脚排列如图1所示:
图1
1.2.2管脚说明
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输 入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
XTAL1和XTAL2:反向振荡放大器的输入及内部时钟工作电路的输入。
第二章 智能交通灯的设计原理
2.1 智能交通灯的设计框图
2.2智能交通灯的设计方案及改进措施
交通灯系统由四部分组成:车检测电路,信号灯电路,时间显示电路,紧急转换开关。
针对道路交通拥挤,交叉路口经常出现拥堵的情况利用单片机控制技术提出了软件和硬件设计方案及两点改进措施。
1、根据各道路路口车流量的大小自动调节通行时间。
2、考虑特殊车辆通行情况,设计紧急切换开关。
AT89S51单片机有2计数器,6个中断源,能满足系统的设计要求。用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。
第三章 智能交通灯电路设计
根据设计任务和要求,可画出该控制器的原理框图, 为确保十字路口的交通安全,往往都采用交通灯自动控制系统来控制交通信号。其中红灯(R)亮,表示禁止通行;黄灯(Y)亮表示暂停;绿灯(G)亮表示允许通行。
3.1控制器的系统框图如图3所示
图3
3.2智能交通灯控制系统电路图 智能交通灯电路图如图4所示:
图4
交通灯系统由四部分组成:车检测电路,信号灯电路,时间显示电路,紧急转换开关。
3.3工作原理
绿灯的放行时间与车辆通过数量不成正比。比如说20秒内每车道可以通过20辆车,40秒内每车道却可以通过45辆车。因为这有一个起步的问题,还有一个黄灯等待问题。也就是说,绿灯放行时间越长,单位时间通过车辆的数量就越多。我们来计算一下,每车道通行20秒内可以通过20辆车,一个红绿灯循环是40秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要50秒,即50秒内通行的车辆为40辆。通过一辆车的平均时间是1.25秒。如果每次车辆通行的时间改为40秒,40秒内每车道可以通过45辆,一个红绿灯循环是80秒(单交叉路口),加上每次状态转换的黄灯5秒(一个循环要两次转换),即一个红绿黄灯循环要90秒,即90秒内通行的车辆为90辆。通过一辆车的平均时间只需1秒。显然在车辆拥挤的情况下绿灯的通行时间越长,单位时间内通行的车辆越多,可以有效缓解车辆拥堵问题。我设定了绿灯通行时间的上限为40秒。在非拥挤时段绿灯的通行时间的下限为20秒,当交叉路口双方车辆较少时通行时间设为20秒,这样可以大大缩短车辆在红灯面前的等待时间。当交叉路口双方车辆较多时通行时间设为40秒。3.3.1车检测电路
用来判断各方向车辆状况,比如:20秒内可以通过的车辆为20辆,当20秒内南往北方向车辆通过车辆达不到20辆时,判断该方向为少车,当20秒内北往南方向车辆通过车辆也达不到20辆时,判断该方向也为少车,下一次通行仍为20秒,当20秒时间内南往北或北往南任意一个方向通过的车辆达20辆时证明该状态车辆较多,下一次该方向绿灯放行时间改为40秒,当40秒内通过的车辆数达45辆时车辆判断为拥挤,下一次绿灯放行时间改仍为40秒,当40秒车辆上通过车辆达不到45辆时,判断为少车,下次绿灯放行时间改为20秒,依此类推。绿灯下限时间为20秒,上限值为40秒,初始时间为20秒。这样检测,某次可能不准确,但下次肯定能弥补回来,累积计算是很准确的,这就是人们常说的“模糊控制”。因为路上的车不可能突然增多,塞车都有一个累积过程。这样控制可以把不断增多的车辆一步一步消化,虽然最后由于每个路口的绿灯放行时间延长而使等候的时间变长,但比塞车等候的时间短得多。本系统的特点是成本低,控制准确。十字路口车辆通行顺序如图5所示:
图5十字路口车辆通行顺序
由于南往北,北往南时间显示相同,所以只要一个方向多车,下次时间就要加长东往西,西往东也一样,显示时间选择如表1。
表1 显示时间选择
车辆情况
本次该方向通行时间 20秒 20秒 20秒 20秒 20秒 20秒 20秒 20秒
下次该方向通行时间 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒
本次该方向通行时
间 40秒 40秒 40秒 40秒 40秒 40秒 40秒 40秒
本次该方向通行时间 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒 南往北少车,北往南少车
南往北少车,北往南多车
南往北多车,北往南少车
南往北多车,北往南多车
东往西少车,西往东少车
东往西少车,西往东多车
东往西多车,西往东少车
东往西多车,西往东多车
3.3.2信号灯电路
信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图6。每个路口的信号的的转换顺序为:绿—>黄—>红 绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为20秒,最长时间为40秒,红红最短时间为25秒,最长时间为45秒,黄灯时间为5秒。
图6交通信号灯运行状态
3.3.3时间显示电路
在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图7所示。
图7 数码管连接方法
下面我们用这种方法显示交通灯的时间,南北方向要显示20秒,东西方向要显示25秒,那么我们先给P0口送2的共阴极码即5BH,让第一位2要显示的 位码GND段为低电平,其它三位的控制端都接高电平,那么第一位就显示2,其它三位不亮。让其显示1MS后再给P0口送0的共阴极码即3FH,让第二位要显示0的位码GND段为低电平,其它三位的控制端都接高电平,那么第二位就显示0,其它三位不亮。依此类推分别送完第一位2,第二位0,第三位2,第四位5,每一位点亮1MS一个扫描周期为4MS,一秒时间就要扫描250次其程序如下: MOV R6,#250;显扫描次数 LOOP:
MOV P0,#5BH;送2的共阴极码 CLR P2.0;第一位显示2 ACALL D1MS;延时1MS SETB P2.0;灭第一位
MOV P0,#3FH;送0的共阴极码 CLR P2.1;第二位显示0 ACALL D1MS;延时1MS SETB P2.1;灭第二位
MOV P0,#5BH;送2的共阴极码 CLR P2.2;第三位显示2 ACALL D1MS;延时1MS SETB P2.2;灭第三位
MOV P0,#6DH;送5的共阴极码 CLR P2.3;第四位显示5 ACALL D1MS;延时1MS SETB P2.3;灭第四位
DJNZ R7,LOOP;不够一秒,继续扫描 NEXTNUMBER;到一秒显示下一个数 D1MS:;1MS延时程序
STAT1:MOV R4,#2 MOV R3,#250 DJNZ R3,$ DJNZ R4,STAT1 RET
3.3.4紧急转换开关电路
一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车通行车况,设计紧急通行开关,下面简述单片机的中断原理。
1、Mcs—51的中断源
8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制,其中5个中断源的程序 11 入口地址如表2所示:
表2 中断源程序入口 中断源的服务程序入口地址 中断源 外中断0 定时/计数器0 外中断1 定时/计数器0 串行口中断
2、中断的处理流程
CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述:
1)现场保护和现场恢复:
中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份——即保护现场。中断开始前需将有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢复。如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,单片机不能正常工作。
2)中断打开和中断关闭:
在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。
3)中断服务程序:
既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。
4)中断返回:
入口地址 0003H 000BH 0013H 001BH 0023H 执行完中断服务程序后,必然要返回,中断返回就是被程序运行从中断服务程序转回到原工作程序上来。在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。
5)交通灯中的中断处理流程:(1)现场保护和现场恢复:
有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。
(2)中断打开和中断关闭:
为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。
(3)中断服务程序:
有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。
(4)中断返回:
执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。
第四章 智能交通灯软件系统设计
4.1 智能交通灯的软件设计流程图
智能交通灯的软件设计流程图如图8所示:
图8交通灯的软件设计流程图
4.2 程序源代码
见附录
第五章 智能交通灯方案的仿真
PROTEUS嵌入式系统仿真软件在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil ,Wave6000等编译模拟软件结合使用。由于Wave6000使用方便,具备强大的软件仿真和硬件仿真功能。把Proteus和Wave6000结合起来调试硬件就方便多了,这里就是采用“Proteus+Wave6000”的仿真方法,具体步骤如下:
1)首先运行PROTEUS VSM 的ISIS,选择Source→Define Code Generation Tool 菜单项,将出现如图8所示定义代码生成工具对话框。
图9 定义代码生成工具对话框
在Tool下拉列表框中选择代码生成工具,在这一示例中,电路中的微处理器为8051系列单片机,因此选择ASEM51, 单击Browse按钮,选取Wave6000的安装路径。单击OK按钮,结束代码生成工具的定义。
选择Source→Add/Remove Source File 菜单项,将出现Add/Remove Source Code Files对话框,如图10所示:
图10添加/删除源文件对话框
2)在Code Generation Tool 选项区,单击下三角按钮,选择ASEM51工具 单击New按钮,将出现如图11所示对话框。
图11 创建源代码对话框
选择用Wave6000创建好的AA.ASM文件,即完成了文件的创建。就这样当用Wave6000对AA.ASM 文件进行更改时每一次运行PROTEUS VSM 的ISIS对电路进行仿真时Wave6000都会对AA.ASM进行编译,AA.HEX文件也会随时更新。
电路图绘制完成后, 再添加AT89C51 的应用程序。将鼠标移至AT89C51 上, 单击鼠标右键使之处于选中状态, 在该器件上单击左键, 打开如图12所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3 种格式的文件),给AT89C51输入晶振频率,此处默认为12MHZ,单击OK 按钮完成程序添加工作, 下面就可以进行系统仿真了。单击主界面下方的按钮开始系统仿真。PROTEUS VSM 所进行的是一种交互式仿真, 在仿真进行中可以对各控制按钮、开关等进行操作, 系统对输入的响应会被真实的反映出来如图13。
图12 AT89C51添加程序文件
图13 交通灯仿真界面
小
结
在毕业设计的整个过程中,我深切地体会到:实践是理论运用的最好检验。毕业设计是对我们3年所学知识的一次综合性测试和考验,无论是在动手能力方面还是理论知识的运用能力方面,都使得我有了很大的提高。
经过总结和分析,我意识到在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。本次毕业设计为我的大学生活画上了圆满的句号,为我即将的工作和生活奠定了坚实的基础。
致谢词
在整个毕业设计中,我得到了学校电子实验室的大力支持,为我提供了各种所需的仪器设备。感谢学校为我们安排了本次毕业设计,让我们的理论知识和实际操作经验更加紧密的结合了在一起;同时又拓展了我们的知识面。同时十分感激夏老师对我的悉心指导和帮助,使我能够顺利的完成此次毕业设计。此次毕业设计让我从中受益匪浅,最后再次感谢老师对我的培养和教育!
参考文献
[1] 徐爱钧 《智能化测量控制仪表原理与设计》(第二版)[M].北京:北京航空航天大学出版社,2004年;
[2] 吴金戌、沈庆阳、郭庭吉 《8051单片机实践与应用》[M].北京:清华大学出版社,2002年;
[3] 谢自美 《电子线路设计·实验·测试》(第三版)[M].武汉:华中科技大学出版社,2006年;
[4] 谢维成、杨加国 主编 《单片机原理与应用及C51程序设计》[M].北京:清华大学出版社,2006年;
[5] 杨立、邓振杰、荆淑霞 《微型计算机原理与接口技术》[M].中国铁道出版社,2006年;
[6] 黄智伟 《全国大学生电子设计竞赛技能训练》 [M].北京:北京航空航天大学出版社,2007年 [7] 高峰,《单片微型计算机与接口技术》[M].北京:科学出版社,2003; [8] 华成英、童诗白 主编,《模拟电子技术基础》(第四版)[M].高等教育出版社,2006年.[9] 黄海萍、陈用昌 编 《微机原理与接口技术实验指导》[M].北京:国防工业出版社,2004年
[10] 黄智伟: 《凌阳单片机设计指导》,北京: 北京航空航天大学出版社,2007年
附 录
附录A:智能交通灯控制程序:
ORG 0000H A_BIT EQU 20H;用于存放南北十位数 B_BIT EQU 21H;用于存放南北十位数 C_BIT EQU 22H;用于存放东西十位数 D_BIT EQU 23H;用于存放东西位数
TEMP1 EQU 24H;用于存放第一二南北状态要显示的时间 TEMP2 EQU 25H;用于存放第一二东西状态要显示的时间 TEMP3 EQU 26H;用于存放第三第四南北状态要显示的时间 TEMP4 EQU 27H;用于存放第三第四南北状态要显示的时间 LJMP MAIN ORG 0003H;外部中断0入口 LJMP INT0;跳转到外部0中断 ORG 0013H;外部中断1入口 LJMP INT1;跳转到外部1中断 INT0: MOV A,P1;外部0中断 PUSH ACC MOV A,P2;中断保护 PUSH ACC MOV P1,#0FFH;清除先前状态 MOV P2,#0FFH CLR P1.0 CLR P1.4;南北通行,东西禁止通行 CLR P1.6 CLR P2.3 JNB P3.2 ,$;判断是否还在中断状态 POP ACC MOV P2,A;返回中断前状态 POP ACC MOV P1,ACC RETI;中断返回 INT1:MOV A,P1;外部1中断 PUSH ACC;中断保护 MOV A,P2 PUSH ACC MOV P1,#0FFH;清除先前状态 MOV P2,#0FFH CLR P1.2 CLR P2.1 CLR P1.3;东西通行,南北禁止通行 CLR P1.5 JNB P3.3 ,$;判断是否还在中断状态 POP ACC MOV P2,A;返回中断前状态 POP ACC MOV P1,A RETI;中断返回 MAIN: ORG 0100H;初始情况 MOV P1,#0FFH MOV P2,#0FFH;灭所有灯
MOV TMOD,#55H;计数方式方式1 MOV IE,#85H;开中断 MOV TEMP1,#20;MOV TEMP2,#25 MOV TEMP3,#25 MOV TEMP4,#20 STAR: MOV P1,#0FFH MOV P2,#0FFH;灭所有灯 MOV A,24H;将显示时间送A CJNE A,#20,T40T;判断时间,选初始值
T20T:;南北通行要显示的时间为20的计数器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1 ,#0FFH;送20秒时的初始值
MOV TL1 ,#0FCH;在些设计20秒6辆为多车 MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP20;跳到20秒
T40T:;南北通行要显示的时间为40的计数器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1,#0FFH;送40秒时的初始值
MOV TL1 ,#0F8H;在些设计40秒8辆为多车 MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP40;跳到40秒 TEMP20:;TEMP1=20情况 SETB TR0;开始计数 SETB TR1 CLR P1.2 CLR P2.1;南北通行,东西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#20;南北要显示的时间,MOV TEMP2,#25;东西要显示的时间 STLOP: ACALL DISPLAY1;调用显示
DEC TEMP1;时间够一秒显示时间减1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT;若显示时间不为0保持现在状态 LJMP STAR2;若显示时间为 0跳到第二状态 NEXT: LJMP STLOP STAR2:;状态1 SETB P1.2 CLR P1.1;南北黄灯,东西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要显示的时间,MOV TEMP2,#05;东西要显示的时间,STLOP2: ACALL DISPLAY1;调用显示
DEC TEMP1;时间够一秒显示时间减1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT2;若显示时间不为0保持现在状态 JB TF1 ,T40;判断南北是否多车 JB TF0 ,T40;判断北南是否多车
MOV TEMP1,#20;少车下次显示时间为20秒 LJMP STAR3;跳到状态3 T40: MOV TEMP1,#40;多车下次显示时间为40秒 LJMP STAR3;若显示时间为 0跳到第三状态 NEXT2:LJMP STLOP2 TEMP40:;TEM=40 程序 SETB TR0;开始计数 SETB TR1 CLR P1.2 CLR P2.1;南北通行,东西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#40;南北要显示的时间,MOV TEMP2,#45;东西要显示的时间 STLOP11: ACALL DISPLAY1;调用显示
DEC TEMP1;时间够一秒显示时间减1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT11;若显示时间不为0保持现在状态 LJMP STAR22;若显示时间为 0跳到第二状态 NEXT11: LJMP STLOP11 STAR22:;状态1 SETB P1.2 CLR P1.1;南北黄灯,东西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要显示的时间,MOV TEMP2,#05;东西要显示的时间,STLOP22: ACALL DISPLAY1;调用显示
DEC TEMP1;时间够一秒显示时间减1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT22;若显示时间不为0保持现在状态 JB TF1 ,T401;判断是否多车 JB TF0 ,T401 MOV TEMP1,#20;少车下次显示时间为20秒 LJMP STAR3 T401:MOV TEMP1,#40;多车下次显示时间为40秒 LJMP STAR3;若显示时间为 0跳到第三状态 NEXT22:LJMP STLOP22 STAR3: MOV A,26H CJNE A,#25,T40T1;判断时间,选初始值
T20T1:;南北通行要显示的时间为20的计数器初始值 CLR TF0;清溢出位 CLR TF1 MOV TH1 ,#0FFH;给初值 MOV TL1 ,#0FCH MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP320 T40T1:;南北通行要显示的时间为40的计数器初始值 CLR TF0;CLR TF1 MOV TH1,#0FFH;给初值 MOV TL1 ,#0F8H MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP340 TEMP320:;状态三
SETB TR1;南北停止计数 SETB TR0;东西开始计数
SETB P1.1;东西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#25;南北要显示的时间,MOV TEMP4,#20;东西要显示的时间,STLOP33: ACALL DISPLAY;调用显示
DEC TEMP3;时间够一秒显示时间减1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT33;若显示时间不为0保持现在状态 LJMP STAR34;若显示时间为 0跳到第四状态 NEXT33:LJMP STLOP33 STAR34:;状态四 SETB P2.3 CLR P2.2 SETB P1.6;东西黄灯,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要显示的时间,MOV TEMP4,#05;东西要显示的时间,STLOP34: ACALL DISPLAY;调用显示
DEC TEMP3;时间够一秒显示时间减1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT34;若显示时间不为0保持现在状态 JB TF1 ,T402 JB TF0 ,T402 MOV TEMP3,#25 LJMP STAR T402: MOV TEMP3,#45 LJMP STAR NEXT34: LJMP STLOP34 TEMP340 : SETB TR1;南北停止计数 SETB TR0;东西开始计数
SETB P1.1;东西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#45;南北要显示的时间,MOV TEMP4,#40;东西要显示的时间,STLOP43: ACALL DISPLAY;调用显示
DEC TEMP3;时间够一秒显示时间减1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT43;若显示时间不为0保持现在状态 LJMP STAR44;若显示时间为 0跳到第四状态 NEXT43:LJMP STLOP43 STAR44:;状态四 SETB P2.3 CLR P2.2 SETB P1.6;东西黄灯,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要显示的时间,MOV TEMP4,#05;东西要显示的时间,STLOP44: ACALL DISPLAY;调用显示
DEC TEMP3;时间够一秒显示时间减1 DEC TEMP4 MOV A,TEMP3 CJNE A,#0,NEXT44;若显示时间不为0保持现在状态 JB TF1 ,T403 JB TF0 ,T403 MOV TEMP3,#25 LJMP STAR T403: MOV TEMP3,#45 LJMP STAR NEXT44: LJMP STLOP44;显示 DISPLAY1: MOV A,TEMP1;将南北要显示的数存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余数B MOV B_BIT,A;将A放到20H MOV A_BIT,B;将B放到21H MOV A,TEMP2;将东西要显示的数存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余数B MOV C_BIT,A;将A放到22H MOV D_BIT,B;将B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL11: MOV R1,#250;R1=250 DPLOP1: MOV A,A_BIT;将南北要显示的10位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示南北10位数 CLR P2.7 ACALL D1MS;延时1MS SETB P2.7;灭南北10位数
MOV A,B_BIT;将南北要显示的个位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示南北个位数 CLR P2.6 ACALL D1MS;延时1MS SETB P2.6;灭南北个位数
MOV A,C_BIT;将东西要显示的10位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示东西10位数 CLR P2.5 ACALL D1MS;延时1MS SETB P2.5;灭东西10位数
MOV A,D_BIT;将东西要显示的个位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示东西东西位数 CLR P2.4 ACALL D1MS;延时1MS SETB P2.4;灭东西个位数 DJNZ R1,DPLOP;循环扫描 DJNZ R0,DPL1 RET;;等待1秒返回 显示 DISPLAY: MOV A,TEMP3;将南北要显示的数存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余数B MOV B_BIT,A;将A放到20H MOV A_BIT,B;将B放到21H MOV A,TEMP4;将东西要显示的数存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余数B MOV C_BIT,A;将A放到22H MOV D_BIT,B;将B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL1: MOV R1,#250;R1=250 DPLOP: MOV A,A_BIT;将南北要显示的10位数送A MOVC A,@A+DPTR;查表 MOV P0,A;显示南北10位数 CLR P2.7 ACALL D1MS;延时1MS SETB P2.7;灭南北10位数
MOV A,B_BIT;将南北要显示的个位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示南北个位数 CLR P2.6 ACALL D1MS;延时1MS SETB P2.6;灭南北个位数
MOV A,C_BIT;将东西要显示的10位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示东西10位数 CLR P2.5 ACALL D1MS;延时1MS SETB P2.5;灭东西10位数
MOV A,D_BIT;将东西要显示的个位数送A MOVC A,@A+DPTR;查表
MOV P0,A;显示东西东西位数 CLR P2.4 ACALL D1MS;延时1MS SETB P2.4;灭东西个位数 DJNZ R1,DPLOP;循环扫描 DJNZ R0,DPL1 RET;等待1秒返回
D1MS: MOV R7,#250;1MS延时程序 DJNZ R7,$ RET;
1到10对应电路图数码管表
NUMT: DB 7EH,48H,67H,6BH,59H DB 3BH,3FH,68H,7FH,7BH
中英文摘要---目录---引言----研究现状---背景----思路---整体原理---部分电路介绍--程序介绍----总结---------------谢词==参考文献===附件 可以联系我,有程序。仿真,原理图,等
.南北方向绿灯和东西方向绿灯不能同时亮,如果同时亮,则立刻关闭信号灯系统,并报警。同理,东西向绿灯与南北向转弯灯也不能同时亮。
2.南北及南北转弯红灯亮并保持40秒,同时东西绿灯亮,但只保持35秒,到35秒时东西绿灯闪3次(每周期为1秒)后熄灭,继而东西黄灯亮,并保持2秒,到2秒后,东西黄灯灭,东西红灯亮,同时南北红灯熄灭和南北绿灯亮;南北转弯红灯继续亮着。
3.东西及南北转弯红灯亮并保持30秒,同时南北绿灯亮,但只保持25秒,到25秒时南北绿灯闪亮3次(每周期1秒)后熄灭,继而南北黄灯亮,并保持2秒,到2秒后,南北黄灯灭,南北红灯亮,同时南北向转弯红灯灭,绿灯亮。
4.南北向转弯绿灯亮25秒,同时南北向和东西向红灯亮并保持25秒,待南北向转弯绿灯亮25秒后,红灯亮起,东西向红灯灭,绿灯亮,并保持35秒,南北向红灯继续亮着,后接2.中继续循环。
5.各灯能手动控制也能自动转换,并且能周而复始的进行工作。绪论
1.1 道路交通控制的发展背景
随着经济发展,城市化速度加快,机动车辆占有量急剧增加,由此引发出日益严重的交通问题:交通拥挤甚至堵塞,交通事故频繁,空气和噪声污染严重,公共运输系统效率下降等。解决这一问题通常有两种办法,一种是修路造桥,这对道路交通状况的改善是一种最直接的办法,但它需要巨额的投资,且在城市中心区受拆迁的限制,很难实施.另一种是在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力,大量事实已经证明这种方法的有效性。
通常,一个经验丰富的交通警察能在极短的时间内把一个交叉路口的交通阻塞缓解或解除,但他的作用范围往往局限于单个交叉路口。而现代的道路交通非常复杂,常常是几个或几十个甚至是成百上千个路口互相关联,在这种情况下,任何一个经验丰富的交通警察都无能为力了.因此,人们越来越关注把先进的科学技术用于交通管理,从而促进了交通自动控制技术的不断发展。
1.2 道路交通控制的目的和作用
道路交通控制的目的可定义为:在确定的行政规定约束下,采用合适的营运 方法来确保公共和私人运输方式具有最佳的交通运行状态。围绕这一目的研制出的道路交通控制系统,把受控对象看成一个整体,采用对交通流科学地时间分割的方法,最大限度地保证交通流运动的连续性,使受控区域的交通流减少冲突,同时平稳地、有规则地运动。道路交通控制的作用主要表现为以下几个方面:
(1)改善交通秩序,增加交通安全。
(2)减少交通延误,提高经济效益。
(3)降低污染程度,保护生态环境。(4)节省能源和土地消耗。
1.3 我国城市交通特点分析
人、车、路是构成城市交通的三大要素,要探讨我国城市交通特点,必须从分析这三大要素的基本特点着手。
1.3.1 人的交通素质
人是交通的主体,与世界发达国家相比,我国人的社会交通意识还没有真正形成,少数领导部门交通观念淡薄,对城市交通建设在国民经济建设中的重要性认识不足,交通政策时有失误。机动车驾驶员文化水平低,又缺乏系统训练,尤其缺乏心理素质,感知能力和判断能力的培养,因而,对人,车的运动特征不能很好掌握。行人与非机动车驾驶员普遍不懂,甚至漠视交通法规。交通管理人员交通工程和心理学知识贫乏,感知,分析交通信息和处理特发性事件的能力不强。总的来看,我国人的交通素质距离现代化城市交通要求还相差甚远,而交通与人密切相关,城市交通中出现的问题几乎都离不开人的因素,因此,想方设法提高全社会的文化素质,健全交通法规,加强交通宣传教育,增强人的社会交通意识,培养良好的交通习惯,使参与交通的每个人都认识到交通的重要性,自觉顺应交通规律,是建立我国城市交通控制系统,使之有效运行的前提条件。
1.3.2 城市道路状况
路是交通的物质基础,有路才能通车,行人。我国是一个文明古国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近几年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是:
(1)路网密度低
(2)交通干道少
(3)路口平面交叉
1.3.3 我国城市交通的特殊性
道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表现是:
城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。
我国城市机动车车种繁杂,从50年代的老式车到80年代的新型车,从大货车到小轿车 30 都在一个平面上行驶,不少城市拖拉机还是一种主要运输工具,前面一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。
1.4 我国城市交通控制策略探讨
本着不盲目照搬现成系统的经验,或一味追求控制策略与原理的新颖性,而是根据我国城市交通的实际情况,从简从易,逐步完善的原则,我国城市交通控制策略宜采取:
(1)根据干道特征明显的特点,系统以线控制为主。
(2)根据干线上交通流有规律可循的特点,系统以定时控制为主。
(3)根据车种混杂和路网稀,路口间距相差悬殊,难以建立精确交通预测模型的特点,系统应加强路口应变能力,强化感应控制功能。
(4)根据机非混合交通特点,系统要处理好自行车交通,常用的方法有: 1)实现自行车与机动车的分离
自行车与机动车的突出矛盾在于混行,要在我国现有道路基础上,开辟出规模庞大的自行车道路网是不现实的,但各城市确有许多小街小巷可利用,对它们进行合理规划,造成自行车专用道,消除或减少自行车与机动车的相互干扰是可能的。
2)增设左转相位
对机动车干扰最大的是 左 转自行车,在自行车高峰时,对左 转自行车流较大的路口增设 左 转相位,时间不需很长便可利用自行车启动,疏散快的特点,使左转自行车基本通过。
3)控制信号分时使用
自行车与机动车高峰出现时间是交错的,在自行车高峰期间,自行车是构成交通流的主体,系统进行信号配时优化时,可优先考虑自行车。
(5)可能的系统结构
确定系统的硬件结构主要是依据系统控制策略要求,系统成本分析和城市的财政承受能力,同时也要受到系统管理维护人员技术水平的制约。纵合考虑,我国城市采用两级控制结构为宜,即由中心计算机和终端——交通信号控制器组成,信号配时方案存于终端中,终端将处理好的检测器数据和交叉口工作状态数据定时传送至中心计算机,中心计算机经优化计算后给出下一个配时方案指令,由交通信号控制器执行。这种结构形式的突出优点是:
1)减少数据传输量,控制中心与终端间只需低容量传输系统即可有效地进行数据通信。
2)主要控制和处理功能由终端——交通信号控制器完成,大大减轻了中心计算机的负担,只要配置功能稍强的微机系统即可建成一个相当规模的控制系统。
按上述设想建立起来的将是一个旨在解决机非混合交通问题,以线控制为主,方案选择型实时自适应城市交通控制系统。
(6)可能出现的动向
1)系统功能的缩小
我国建制市370多个,绝大多数还难以投入足够的资金建立一个功能齐备的控制系统,从几个引进系统的实施情况来看,并不需要,实际上也没有用到这些系统的全部功能,因此,系统发展的一个可能趋势是系统功能的缩小,国外也提出了基本系统的概念,基本系统不以交通应答作为基本设计依据,只是按照一天内划分的时段或根据控制中心的人工干预执行简单的时间表,因而不需车辆检测器和大量的数据处理。功能缩小后的系统不需配置动态地图显示板等外围设备,便于控制中心主机微机化,耗资少,使用方便,对我国大中城市有很吸引力。
2)交通信号控制器微机化、系列化
我国有2000多个县,每个县都有几个城镇,计算机区域控制目前对这些小城市来说是不现实的,以微机为基础的交通信号控制器功能灵活,便于实现无电缆协调控制,必将成为小城市交通控制的主体。大中小城市对信号控制器的使用要求不同,对交通信号控制器的微机化,系列化势在必行。
本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。
第三篇:基于单片机的交通灯控制系统设计毕业论文
毕 业 论 文
题 目 基于单片机的交通灯控制系统设计
姓 名 **** 学 号 所在系 专业年级 指导教师 职 称
二O一四 年 五 月 三十一日
151 series microcontroller ATSC51 and programmable parallel I/O interface chip 8255 a tao, a device for the center to design a traffic light control can realize the according to actual traffic by 8051 chip P1 mouth set function of red and green light burning time;Light traffic light cycle.The countdown with 5 seconds left yellow lights flashing warning;Vehicle running a red light alarm;Green time can detect the number of cars and can through digital tube display.The system practical, simple operation, strong extended functionality.Key words: single chip microcomputer;The traffic light
第一章
单片机的简介
1.1单片机的概述
单片机技术的发展对社会进步产生了巨大的影响。今天,单片机及其应用技术的发展速度、深度及其广度,在国防、科学研究、政治经济、教育文化等方面几乎无所不及。将之用于交通灯控制系统设计,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入,输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就际=缸单片(单芯片)机,单片机即微控制器有一些单片机中除了上述部份外,还集成了其它部份如AID,DIA,定时计数器,RTC,各种串行接口等。
1.2 单片机的发展
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机的发展分为4个阶段:
第一阶段(1974—76年):单片机初级阶段。因为受工艺限制,单片机采用单片的形式而且功能比较简单。例如美国仙童公司生产的F8单片机,实际上只包括了8位CPU,64个字节的RAM和2个并行接口
第二阶段(1976—78年):低性能单片机阶段。以Intel公司生产的MCS——48系列单片机为代表,该系列单片机片内集成有8位CPU,8位定时器/计数器,并行I/O接口,RAM和ROM等,但是最大的缺点就是无串行接口,中断处理比较简单而且片内RAM和ROM容量较小,且寻址范围不大与4KB。
第三阶段(1978—83)高性能单片阶段这个阶段推出的单片机普遍带有串行接口。
-多级中断系统,16位定时器/计数器,片内ROM,RAM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器。
第四阶段(1983年至今)8位单片机巩固发展以及16位单片机,32 位单片机推出阶段。此阶段的主要特征是:一方面发展16位单片机,32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,增加片内器件,以满足不同的客户要求。
1.3 单片机的特点
(1)高集成度,体积小,高可靠性
单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。(2)控制功能强
为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能。(3)低电压,低功耗,便于生产便携式产品
为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V~3.6V,而工作电流仅为数百微安。(4)易扩展
片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。(5)优异的性能价格比
单片机的性能极高。为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB。由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。、第三章 MSC-51芯片简介
3.1 MSC-51结构
8051是MCS-51系列单片机的典型产品,8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时,计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。中央处理器主要由运算部件和控制部件组成。运算部件包括算术、逻辑部件ALU、布尔处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字寄存器PSW以及十进制调整电路等。运算部件的功能是实现数据的算术逻辑运算、位变址处理和数据传送操作。控制部件是单片机的神经中枢,它包括时钟电路、复位电路、指令寄存器、译码以及信息传送控制部件。它以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来控制单片机各部分的运行。其中有一些控制信号线能简化应用系统外围控制逻辑,如控制地址锁存的地址锁存信号ALE,控制片外程序存储器运行的片内外存储器选择信号EA,以及片外取指信号PSEN。
3.2 8255芯片简介
8255可编程并行接口芯片有三个输入输出端口,即A口、B口和c口,对应于引脚PAT—PA0、PB7-PB0和PC7-PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
8255有两种控制命令字;一个是方式选择控制字;另一个是c口按位置位/复位控制字。
94.3系统总框图如下
4.4系统工作原理
(1)开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统
(2)由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。
(3)通过AT89C51单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。
(4)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。(5)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。(6)绿灯时间倒计时完毕,重新循环。
4.5 硬件延时 4.5.1 初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为c和计数初值设定为TC。
4.5.2秒的方法
在主程序中设定一个初值为20的软件计数器和使TO定时5O毫秒,这样每当TO到50毫秒时cPu就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子
-程序中,cPu先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。
4.6交通硬件线路图
第五章
控制器的软件设计
5.1软件延时
MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。其流程图如下图所示:
键盘事件处理 开始
初始化
等待键盘事件
定时器中断程序
5.2时间及信号灯的显示 5.2.1 8051并行口的扩展
8051虽然有4个8位I/0端口,但真正能提供借用的只有Pl口。因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8031通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/0端口,显然8031的端口是不够,需要扩展。
扩展的方法有两种:(1)借用外部RAM地址来扩展I/0端口;(2)采用I/0接口新片来扩充。我们用8255并行接口信片来扩展I/0端口。
5.4交通灯的软件设计如下
org 0000h ajmp main ;指向主程序 org 0003h ajmp intt0 org 0013h ajmp intt1 org 0100h main: setb px0 mov tcon,#00h mov tmod,#10h mov ie,#85h disp: mov p1,#0f3h mov r2,#6eh disp1: acall delay djnz r2,disp1 mov p1,#0f5h mov r2,#0Ah yel1: acall delay djnz r2,yel1 mov p1,#0deh mov r2,#6Eh disp2: acall delay djnz r2,disp2 mov p1,#0eeh mov r2,#0Ah yel2: acall delay djnz r2,yel2 ajmp disp intt0: push p1
;指向紧急车辆出现中断程序 ;指向一道有车而另一道无车中断程序;置外部中断0为高优先级中断 ;置外部中断0,1为电平触发 ;置定时器1为方式1
;开CPU中断,开外部中断0,1中断 ;A绿灯放行,B红灯禁止 ;置0.5s循环次数 ;调用0.5s延时子程序 ;55s不到继续循环 ;A黄灯警告,B红灯禁止 ;黄灯亮5s ;2s未到继续循环 ;A红灯亮,B绿灯亮 ;25s未到继续循环 ;A红灯亮,B黄灯亮 ;循环执行主程序 ;P1口数据压栈保护
push 03h ;R3寄存器压栈保护 push th1 ;TH1压栈保护 push tl1 ;TL1压栈保护 mov p1,#0f6h ;A,B道均为红灯 mov r5,#28h ;置0.5s循环初值 delay0:acall delay djnz r5,delay0 ;20s未到继续循环 pop tl1 pop th1 pop 03h pop p1 reti intt1:clr ea push p1 push 03h push th1 push tl1 setb ea jnb p3.0,bp mov p1,#0f3h sjmp delay1 bp: jnb p3.1,exit mov p1,#0deh delay1:mov r6,#0ah next: acall delay djnz r6,next exit: clr ea pop tl1 pop th1 pop 03h pop p1 setb ea reti delay:mov r3,#0ah
;弹栈恢复现场 ;返回主程序 ;关中断 ;压栈保护现场 ;开中断 ;A道无车转向 ;A绿灯,B红灯 ;转向5s延时子程序;B道无车退出中断 ;A红灯,B绿灯 ;置0.5s循环初值 ;5s未到继续循环 ;弹栈恢复现场 17 18
第六章
结论
本系统就是充分利用了8051和8255芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/0接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的Pl口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
第七章
致谢
本论文设计得到**老师的大力指导,提出来许多宝贵的意见,谨此表示衷心的感谢!初次拿到任务书是我们感到束手无策,多亏老师们耐心细致的讲解我们才能成功的完成任务。在设计过程中我遇到过很多难题,非常感谢老师能够耐心的给予我们讲解指导,比如一开始根本不知道毕业论文该怎么下手写幸亏老师不厌其烦的一步步的给予指点。最后通过老师和我的共同努力成功的完成了设计任务,为自己的大学学习画上了圆满的句号,由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正。
参考文献
[1] 张毅刚,新编MCS-51单片机应用系统设计[M]哈尔滨:哈尔滨工业大学出版社,2006 [2] 王义军,单片机原理及应用习题与实验指导书[M],北京:中国电力出版社,2006 [3] 陈明荧,8051单片机课程设计实训教材[M],北京:清华大学出版社,2004 [4] 张毅坤,单片微型计算机原理及应用,西安电子科技大学出版社,1998 [5] 赵秀珍,单永磊,单片微型计算机原理及其应用[M],北京:中国水利水电出版社,2001.8。[6] 余锡存 曹国华,单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7 [7] 雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2 [8] 高明,单片微机接口与系统设计[M],哈尔滨:哈尔滨工业大学出版社,1995.8。[9] 张志良,单片机原理和控制技术,机械工程出版社。[10]刘守义,《单片机应用技术》,西安电子大学出版社。-
第四篇:交通灯相关毕业设计,论文,毕业论文参考选题表
毕业论文参考选题表
1.基于单片机的交通灯控制器的设计与实现(字数:15367,页数:58148)
2.基于PLC的城市交通控制系统设计(字数:26796,页数:58118)
3.交通信号灯控制电路的设计(字数:9998,页数:2968)
4.基于单片机的交通信号灯控制电路设计(字数:7204,页数:3080)
5.基于PLC交通信号灯控制(字数:18190,页数:4382)
6.带有显示的十字路口交通信号灯控制器(字数:13358,页数:3782)
7.PLC实现十字路信号灯自动控制(字数:24575,页数:5268)
8.世纪星组态 欧姆龙PLC控制的交通灯系统(字数:9158,页数:35128)
9.组态控制交通灯(字数:13764,页数:32118)
10.基于FX2N-48MRPLC的交通灯控制(字数:7383,页数:2460)
11.欧姆龙PLC控制交通灯系统毕业论文(字数:21987,页数:4990)
12.西门子PLC交通灯毕业设计(字数:11073,页数:32118)
13.单片机控制交通灯系统设计(字数:14446,页数:3668)
14.交通灯89C51控制电路设计(字数:7387,页数:2359)
15.单片机控制交通灯设计(字数:8077,页数:2890)
16.基于PLC的交通灯控制系统的设计(字数:6579,页数:1860)
17.单片机交通灯控制系统设计--带仿真的(字数:7687,页数:2990)
18.交通灯定时控制系统(字数:24837,页数:4788)
19.基于PLC的智能交通灯监控系统设计(字数:19555.页数:61128)
20.用PLC对十字路口交通灯进行控制模拟(字数:16212,页数:2980)
21.基于MCGS和THPLC-D型PLC实训装置的交通灯模拟控制(字数:13846.页数:28
22.基于PLC和组态软件的交通灯监控系统的设计(字数:24307,页数:69128)
23.基于松下PLC的智能交通灯控制系统设计(字数:22442,页数:64128)
24.城市主干道十字路口交通灯PLC控制系统(字数:13814,页数:3888)
25.51单片机交通灯控制(字数:8545,页数:2160)
26.交通灯控制器的设计(字数:3980,页数:1660)
27.单片机交通灯控制系统的设计(字数:11422,页数:4068)
90)
第五篇:单片机:交通灯控制系统设计
交通灯控制系统设计
摘要:本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。关键词:AT89S51,交通规则
一、方案比较、设计与论证 1 电源提供方案
为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案
方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我们选择第二种方案。2 显示界面方案
该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案: 方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。
方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。
方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。3 输入方案:
题目要求系统能手动设灯亮时间、紧急情况处理,我们讨论了两种方案: 方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是:
使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。
方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。
二、理论分析与计算
1.交通灯显示时序的理论分析与计算
对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量= 车流 / 时间 来表示。
先设定一些标号如图2-1 所示。
说明:此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西 路口灯。
图2-2 所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四 的状态为一个周期,循环执行(见图2-3)。
请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在
一定的时间内达到较大的车流量,效率特别高。
依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图
是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3 可以看出,相邻路口的灯它
们的状态在相位上相差180°。因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。
如表2-1 所示。
表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上 的1),依上表,就可以向相应的端口送逻辑值。2.交通灯显示时间的理论分析与计算
东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且
S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下所示。T-S1+T-S2=T-S3 T-S2=T-S4 T-S1=T-S3 我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分
为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参 考。
三、电路图及设计文件 1.灯控制电路设计
由于32个LED 来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不
能实现,所以本次设计中采用一种新型的电路如图3-1 所示。
图中74LS04的作用是倒相和驱动,它输出的电流大约48mA,实际测试发现足以满足要
求,而且发光管也能达到足够的亮度。
观察图可以看出:两组发光管(一组红、一组绿)由于反相器的作用,其逻辑状态恰恰 相反。
图中和电阻串联的二极管的作用是为了分压,防止因上下两组发光管分压不同导致逻辑 的错误。
共四组和上述相同的电路分别代表东西南北四个方向的红绿灯,使用两片74LS04 作为 驱动。
2.倒计时显示电路设计
前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用两组四个数码管
作为倒计时的显示;同时为了节省口资源,采用串口显示的方式驱动数码管。见图3-2 所 示。
四、程序设计思路与流程图 1.主程序流程图
主程序中主要是一个死循环,不停的循环四个状态,如图4-1 所示。
2.按键子程序流程图
它包含倒计时调整和紧急状态两个状态。
主程序中放了一个按键的判断指令,当有按键按下的时候,程序就自动的跳转到按键子
程序处理。当检测到K2键按下的时候就自动返回到主程序。当出现紧急的情况的时候,按下K3或者K4 就切换到紧急状态,当紧急事件处理完毕 的时候,按下K2,就可以返回正常状态。
五、测试、数据及结果分析 1.状态灯显示测试
当电路连接完毕后,将写好的测试程序刷写到芯片内,K1 和K2分别给端口送高电平和
低电平,通电即可检测。2.数码管的测试
将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。
3.整体电路测试
系统上电,刷写好程序即可开始测试,观测一个周期(共计S1~S4四个状态,默认140 秒)灯的显示状态是否正常,同时观察倒计的计数是否正常。
六、总结
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅
速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。附录 系统总体电路图
1.满足南北向红绿灯亮,东西向红灯亮,占25秒——南北向黄灯亮,东西向红灯亮,占5秒——南北向红灯亮,东西向绿灯亮,占25秒——南北向红灯亮,东西向黄灯亮,占5秒。如此循环,周而复始。2.十字路口要有数字显示,提示行人把握时间:当某方向绿灯亮时,置显示器为24,然后以每秒减1计数方式工作,直到减为0,绿灯灭,黄灯亮。黄灯灭,红灯亮时,再次置显示器为29,并开始减计数,直到为0,十字路口红绿灯交换,完成一次工作循环。
3.可手动调整和自动调整,夜间为黄灯闪耀。下面是一个单片机交通灯程序 /*
****************************************************************************************** * *
* Keil C 89S51 交通信号控制程序 * *(C)版权所有 Dai_Weis@hotmail.com * * *
****************************************************************************************** */
#include “reg51.h” #define UINT unsigned int #define ULONG unsigned long #define UCHAR unsigned char /*
信号灯变量
南北方向绿灯
sbit n_bike_g = P1^0;//自行车
sbit n_right_g = P1^1;//右转
sbit n_up_g = P1^2;//直行
sbit n_left_g = P1^3;//左转 调头
南北方向红灯
sbit n_bike_r = P1^4;//自行车
sbit n_right_r = P1^5;//右转
sbit n_up_r = P1^6;//直行
sbit n_left_r = P1^7;//左转 调头 南北方向黄灯
sbit n_bike_y = P3^0;//自行车
sbit n_right_y = P3^1;//右转
sbit n_up_y = P3^2;//直行
sbit n_left_y = P3^3;//左转 调头
东西方向绿灯
sbit e_bike_g = P2^0;//自行车
sbit e_right_g = P2^1;//右转
sbit e_up_g = P2^2;//直行
东西方向红灯
sbit e_bike_r = P2^4;//自行车
sbit e_right_r = P2^5;//右转
sbit e_up_r = P2^6;//直行
东西方向黄灯
sbit e_bike_y = P3^4;//自行车
sbit e_right_y = P3^5;//右转
sbit e_up_y = P3^6;//直行
*/ //延时
void delay(UINT t, UINT s){ while(t){ UINT i;
for(i = 0;i < s;i++){ } t--;} }
//信号灯状态
void time_x(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3){
P1 = P_P1;P2 = P_P2;P3 = P_P3;delay(150, 65535);}
void time_s(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3, UCHAR P_P11, UCHAR P_P22){ UINT i;
for(i = 0;i < 3;i ++){
P1 = P_P1;P2 = P_P2;delay(5, 65535);P1 = P_P11;P2 = P_P22;delay(5, 65535);}
P1 = P_P1;P2 = P_P2;P3 = P_P3;delay(10, 65535);} //主程序
void main(){
P1 = P2 = P3 = 0x0;while(1){
time_x(0xA5, 0x38, 0x0);
time_s(0xA4, 0x38, 0x1, 0xA5, 0x38);time_x(0x96, 0x52, 0x0);
time_s(0x92, 0x52, 0x4, 0x96, 0x52);time_x(0x5A, 0x52, 0x0);
time_s(0x50, 0x50, 0x2A, 0x5A, 0x52);time_x(0xF0, 0x25, 0x0);
time_s(0xF0, 0x24, 0x20, 0xF0, 0x25);time_x(0xD2, 0x16, 0x0);
time_s(0xD0, 0x10, 0x62, 0xD2, 0x16);} }
给你一个定时控制的信号系统,我只做的简单的测试,至于延时我用的软件,你自己想办法。^_^
Dai_Weis 于 2005-5-4 13:43:23 重新给你说明
/*
*********************************************************************************** * *
* Keil C AT89S51 交通信号控制程序 * *(C)版权所有 Dai_Weis@hotmail.com * * *
*********************************************************************************** 开发说明:
固定时间信号变换,南北设置调头、左传、直行、右转、自行车。
东西设置左传、直行、右转、自行车。
时序状态:
红 绿 红 绿
序号 左 前 右 自 左 前 右 自 前 右 自 前 右 自1 0 1 0 0 1 0 1 1 1 1 0 0 0 2 1 0 0 1 0 1 1 0 1 0 1 0 1 0 3 0 1 0 1 1 0 1 0 1 0 1 0 1 0 4 1 1 1 1 0 0 0 0 0 1 0 1 0 1 5 1 1 0 1 0 0 1 0 0 0 1 1 1 0 */
另外修正个错误
while(1){
time_x(0xA5, 0x70, 0x0);time_s(0xA4, 0x70, 0x1, 0xA5, 0x70);
材料: 1、89S51 11.0592M 晶振
1K电阻、10UF电容
12个灯,红、黄、绿各四个,12个1K电阻
,十字路口嘛。蜂鸣器一个。
按键一个,按键复位
采用AT89s51型号的单片机,由于交通十字路口的对称性,所以一个引脚可以同时控制两个灯,将发光二极管分别接到P1各个引脚,在其中加入一个时振荡当电路,来控制时间,在P3.0引脚接入蜂鸣器只黄灯亮的时候发出声响,这里我们让每次黄灯亮的时候发出六声响,通过C程序的控制就可以实现,每次循环是10秒。2、9cm*15cm万用板 1片 单片机及IC座 1套 12M晶振 1只 22P电容 2只 10uF电容 1只 10K电阻 1只 1K排阻 1只 两位一体数码管 2只 DC座 1只 自锁开关 1只
发光二极管红绿黄
各4只 按键 7只 USB电源线 1条 导线
若干
1、基于51系列单片机(型号:STC89C52、AT89C51/C52、AT89S51/S52,随机选择,如有特
殊要求请与店主讨论)设计实现。(以上几种单片机全部为51系列单片机,除了名字不一样外,功能及应用完全一样,互相
兼容)
2、两个两位一体数码管显示东西、南北方向时间。
3、四方向各有红绿黄三颗灯。
4、七个按键操作,分别是:禁止通行、东西通行、南北通行、时间加、时间减、切换方向、确认。