基于ATS单片机交通灯控制系统的设计.docx
《基于ATS单片机交通灯控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于ATS单片机交通灯控制系统的设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于ATS单片机交通灯控制系统的设计
文件管理序列号:
[K8UY-K9IO69-O6M243-OL889-F88688]
基于ATS单片机交通灯控制系统的设计
单片机系统开发与应用工程实习报告
选题名称:
基于AT89S52单片机交通灯控制系统的设计
系(院):
计算机工程学院
专业:
计算机科学与技术(嵌入式软件设计)
班级:
姓名:
学号:
指导教师:
学年学期:
2009~2010学年第2学期
2010年5月30日
摘要:
随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国交通系统带来沉重的压力,很多大城市都不同程度地受到交通阻塞问题的困扰。
下面以AT89S52单片机为核心,设计出以人性化、智能化为目的的交通信号灯控制系统
我用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
正常情况下,A、B两车道轮流放行,A车道放行45s,其中5s用于警告;B车道放行25s,其中5s用于警告。
交通灯繁忙时,可人为地改变信号灯状态,以缓解交通拥挤状况。
遇到紧急情况时,A、B两车道均为红灯,禁行20s。
本设计主要做了如下几方面的工作:
一是确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,二是显示电路等的设计和基本功能要求。
三是进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,总体上完成了软件的编写。
关键词:
交通控制;AT89S52;汇编语言;
1绪论
1.1单片机交通控制系统的选题背景
随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。
自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。
交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。
要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。
现代人类科学技术,特别是电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面要求的技术难题。
目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。
交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。
随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,交通自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的交通控制措施。
1.2单片机交通控制系统选题的现实意义
城市道路交通自动控制系统的发展是以城市交通信号控制技术为前导,与汽车工业并行发展的。
在其各个发展阶段,由于交通的各种矛盾不断出现,人们总是尽可能地把各个历史阶段当时的最新科技成果应用到交通自动控制中来,从而促进了交通自动控制技术的不断发展。
早在1850年,城市交叉口处不断增长的交通就引发了人们对安全和拥堵的关注。
世界上第一台交通自动信号灯的诞生,拉开了城市交通控制的序幕,1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,但一次煤气爆炸事故致使这种交通信号灯几乎销声匿迹了近半个世纪。
1914年及稍晚一些时候,美国的克利夫兰、纽约和芝加哥才重新出现了交通信号灯,它们采用电力驱动,与现在意义上的信号灯已经相差无几。
1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。
早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早期交通流量不大的情况曾起过一定的作用。
但随着汽车工业的发展、交通流量增加、随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。
20世纪30年代初,美国最早开始用车辆感应式信号控制器,之后是英国,当时使用的车辆检测器是气动橡皮管检测器。
车辆感应控制器的特点是它能根据检测器测量的交通流量来调整绿灯时间的长短,使绿灯时间更有效地被利用,减少车辆在交叉口的时间延误,比定时控制方式有更大的灵活性。
车辆感应控制的这一特点刺激了车辆检测器技术的发展。
继气动橡皮管式检测器之后,雷达、超声波、光电、地磁、电磁、微波、红外以及环形线圈等检测器相继问世。
当今在城市道路交通自动控制、交通监测和交通数据采集系统中,应用最广的是环形线圈车辆检测器。
超声波检测器主要在日本等少数国家得到广泛应用。
计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。
1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。
这是道路交通控制技术发展的里程碑。
可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。
交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。
2项目概述
随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国交通系统带来沉重的压力,很多大城市都不同程度地受到交通阻塞问题的困扰。
下面以AT89S52单片机为核心,设计出以人性化、智能化为目的的交通信号灯控制系统。
2.1项目要求
用AT89S52单片机控制一个交通信号灯系统,晶振采用12MHz。
设A车道与B车道交叉组成十字路口,A是主车道,B是支道。
设计要求如下:
(1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
(2)正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。
(3)交通灯繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯状态,以缓解交通拥挤状况。
在B车道放行期间,若A车道有车而B车道无车,按下开关K1使A车道放行15s;在A车道放行期间,若b车道有车而A车道无车,按下开关K2使B车道放行15s。
(4)有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。
2.2系统设计
2.2.1总体设计思想
交通灯控制系统主要控制A、B两车道的交通,以AT89S52单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。
根据设计要求,制定总体设计思想如下:
(1)正常情况下运行主程序,采用0.5s延时子程序的反复调用来实现各种定时时间。
(2)一道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置该中断为低优先级中断。
(3)有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置该中断为高优先级中断,实现二级中断嵌套。
2.2.2框图设计
基于AT89S52单片机的交通信号灯控制系统由电源电路、单片机主控电路、按键控制电路和道路显示电路几部分组成,框图如图1-1所示。
图2-1基于AT89S52单片机的交通灯控制系统框图
3硬件设计
3.1电路图原理
用12只发光二极管模拟交通信号灯,以AT89S52单片机的P1口控制这12只发光二极管,由于单片机带负载能力有限,因此,在P1口与发光二极管之间用74LS07作驱动电路,P1口输出低电平时,信号灯亮;输出高电平时,信号灯灭。
在正常情况和交通繁忙时,A、B两车道的6只信号灯的控制状态有5种形式,即P1口控制功能及相应控制码如表1-1所示。
分别以按键K1、K2模拟A、B道的车辆检测信号,开关K1按下时,A车道放行;开关K2按下时,B车道放行;开关K1和K2的控制信号经异或取反后,产生中断请求信号(低电平有效),通过外部中断1向CPU发出中断请求;因此产生外部中断1中断的条件应是:
=K1+K2(3-1),可用集成块74LS266(如无74L266,可用74LS86与74LS04组合代替)来实现。
采用中断加查询扩展法,可以判断出要求放行的是A车道(按下开关K1)还是B车道(按下开关K2)。
以按键K0模拟紧急车辆通过开关,当K0为高电平时属正常情况,当K0为低电平时,属情况直接将K0信号接至INT0(P3.2)脚即可实现外部中断0中断。
表3-1交通信号灯与控制状态对应关系
控制状态
P1口
控制码
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
未用
未用
B道绿灯
B道黄灯
B道红灯
A道绿灯
A道黄灯
A道红灯
A道放行,B道禁止
F3H
1
1
1
1
0
0
1
1
A道警告,B道禁止
F5H
1
1
1
1
0
1
0
1
A道禁止,B道放行
DEH
1
1
0
1
1
1
1
0
A道禁止,B道警告
EEH
1
1
1
0
1
1
1
0
A道禁止,B道禁止
F6H
1
1
1
1
0
1
1
0
3.2单片机控制交通信号灯模拟系统的电路图
图3-1单片机控制交通信号灯模拟系统的电路图
4软件设计
主程序采用查询方式定时,由R2寄存器确定调用0.5延时子程序的次数,从而获取交通灯的各种时间。
子程序采用定时器1方式1查询式定时,定时器定时50ms,R3寄存器确定50ms循环10次,从而获取0.5s的延时时间。
有车车道放行的中断服务程序首先要保护现场,因需用到延时子程序和P1口,故需保护的寄存器有R3、P1、TH1、TL1,保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现导致程序混乱。
开中断,由软件查询P3.0口和P3.1口,判别拿哪一道有车,再根据查询情况执行相应的服务。
待交通灯信号出现后,保持15s的延时,然后,关中断,恢复现场,再开中断,返回主程序。
紧急车辆出现时的中断服务程序也需保护现场,但无须关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20s,确保紧急车辆通过交叉路口,然后,恢复现场,返回主程序。
4.1程序流程图
交通信号灯模拟控制系统程序流程图如图4-3所示
图4-1交通信号灯模拟控制系统程序流程图
4.2程序清单
ORG0000H
LJMPMAIN;转向主程序
ORG0003H
LJMPINTT0;转向紧急车辆中断服务程序
ORG0013H
LJMPINTT1;转向有车车道中断服务程序
ORG0200H
MAIN:
MOVSP,#30H
SETBPX0;置外部中断0为高优先级中断
MOVTCON,#00H;置外部中断0、1为电平触发
MOVTMOD,#10H;置定时器1为方式1
MOVIE,#85H;开CPU中断,开外中断0、1中断
LOOP:
MOVP1,#0F3H;A道绿灯放行,B道红灯禁止
MOVR1,#90;置0.5秒循环次数(0.5×90=45S)
DIP1:
ACALLDELAY;调用0.5秒延时子程序
DJNZR1,DIP1;45秒不到继续循环
MOVR1,#06;置A绿灯闪烁循环次数
WAN1:
CPLP1.2;A绿灯闪烁
ACALLDELAY
DJNZR1,WAN1;闪烁次数未到继续循环
MOVP1,#0F5H;A黄灯警告,B红灯禁止
MOVR1,#04H;置0.5秒循环次数(0.5×4=2S)
YL1:
ACALLDELAY
DJNZR1,YL1;2秒未到继续循环
MOVP1,#0DEH;A红灯,B绿灯
MOVR1,#32H;置0.5秒循环次数(0.5×50=25S)
DIP2:
ACALLDELAY
DJNZR1,DIP2;25秒未到继续循环
MOVR1,#06H
WAN2:
CPLP1.5;B绿灯闪烁
ACALLDELAY
DJNZR1,WAN2
MOVP1,#0EEH;A红灯,B黄灯
MOVR1,#04H
YL2:
ACALLDELAY
DJNZR1,YL2
AJMPLOOP;循环执行主程序
INTT0:
PUSHP1;P1口数据压栈保护
PUSHACC;ACC寄存器压栈保护
PUSHTH1;TH1压栈保护
PUSHTL1;TL1压栈保护
MOVP1,#0F6H;A、B道均为红灯
MOVR2,#40;置0.5秒循环初值(20S)
DEY0:
ACALLDELAY
DJNZR2,DEY0;15秒未到继续循环
POPTL1;弹栈恢复现场
POPTH1
POPACC
POPP1
RETI;返回主程序
INTT1:
CLREA;关中断
PUSHP1;压栈保护现场
PUSHACC
PUSHTH1
PUSHTL1
SETBEA;开中断
JBP3.0,BOP;A道无车转向B道
MOVP1,#0F3H;A道绿灯,B道红灯
SJMPDEL1;转向15秒延时
BOP:
JBP3.1,EXIT;B道无车退出中断
MOVP1,#0DEH;A红灯,B绿灯
DEL1:
MOVR5,#30;置0.5秒循环初值(15S)
NEXT:
ACALLDELAY
DJNZR5,NEXT;15秒未到继续循环
EXIT:
CLREA
POPTL1;弹栈恢复现场
POPTH1
POPACC
POPP1
SETBEA
RETI
DELAY:
MOVR3,#0AH;0.5秒子程序(50ms×10=0.5s)
MOVTH1,#3CH;置50ms初值X=3CB0H
MOVTL1,#0B0H
SETBTR1;启动T1
LP1:
JBCTF1,LP2;查询计数溢出
SJMPLP1
LP2:
MOVTH1,#3CH;置50ms初值X=3CB0H
MOVTL1,#0B0H
DJNZR3,LP1
RET
END
5系统仿真及调试
单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误时在软件调试的过程中被发现和纠正的。
但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。
可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从做起。
硬件的调试主要是把电路各种参数调整到符合设计要求。
先排除硬件电路故障,包括设计性错误和工艺性故障。
一般原则是先静态后动态。
利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否正确,是否有短路故障。
先要将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,这些都没有问题后,接上仿真器进行联机调试观察各接口线路是否异常。
在一切都正常后,在将单片机AT89S52芯片插在底座上,进行通电试验,看是否跟预先的目标现象一致。
单片机AT889S52是系统的核心,利用万用表检测单片机电源VCC是否为(40脚)+5V、晶振是否正常工作(可用万用表检测,两引脚电压一般为1.8~2.3之间)、复位引脚RST(复位时为高电平,单片机工作时为低电平)、EA是否为+5V(高电平),这样一来单片机就能工作了,再结合电路图,检测故障就很容易了。
总结
交通灯控制在交通运输领域有着非常重要的作用。
本文完成了基于单片机的交通灯控制系统的设计与模拟。
包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。
在课程设计完成过程中,主要做的工作有:
(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的实现。
(2)以ATMEL公司的AT89C52单片机为核心进行系统硬件设计,输入量包括:
车流量,按键状态;输出控制交通信号灯亮灭状态及时间。
本次课程设计的过程是艰辛的,不过收获却是很大的。
在设计过程中,会出现了一些问题,但都是常见的小问题,如:
代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。
在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。
当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在网络编程这方面有一个大的发展。
本次课程设计,我们深深体会到仅仅依靠课本知识是远远不够的。
在查找资料和实践的过程中,老师为我们指点了许多我们难以解决的问题,使我们的知识水平大大提高。
特别是在编程的过程中,戴老师丰富的经验也使得我们受益匪浅,少走许多弯路。
最后,此次单片机课程设计过程使我们认识到自身知识及能力的薄弱,更让我们知道实践的重要性。
在以后的学习过程中,我们会更加努力学习单片机的相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。
参考文献
1黄智伟.凌阳单片机课程设计指导.北京:
北京航空航天大学出版社,2007,
2杨居义.单片机课程设计指导.北京:
清华大学出版社,2009
3李广弟.单片机基础.北京:
北京航空航天大学出版社,2002
4李朝青.单片机原理及接口技术(修订版).北京:
北京航空航天大学出版社,1998
5何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,1994
6张毅刚.单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,1990
7谭浩强.单片机课程设计.北京:
清华大学出版社,1989
指导教师评语
学号
姓名
班级
选题
名称
基于AT89S52单片机的交通灯控制系统设计
序号
评价内容
权重(%)
得分
1
考勤记录、学习态度、工作作风与表现。
5
2
自学情况:
上网检索机时数、文献阅读情况(笔记)。
10
3
论文选题是否先进,是否具有前沿性或前瞻性。
5
4
成果验收:
是否完成设计任务;能否运行、可操作性如何等。
20
5
报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。
30
6
文献引用是否合理、充分、真实。
5
7
答辩情况:
自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。
25
合计
指导教师(签章):
年月日