基于十字路口交通灯控制的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理及接口技术
课程设计
基于十字路口交通灯控制的研究
姓 名: 学 号: 指导教师:
院系(部所):
机电工程学院
专 业: 机械设计制造及其自动化 完成日期:
2012年12月20日
摘要
本设计介绍了一种以单片机AT89C51为核心,结合数码管显示屏,12个led 灯管,等交通灯。

本文详细研究了交通灯的控制部分、显示部分,存储系统的设计方案。

以及硬件系统和软件系统的设计。

整个过程不需要相关人员的参与,达到方便而实用的效果,提高交通的安全性目的。

经过不断的调试和改进本设计能准确的指示交通。

且该系统功能强,成本低,为交通服务提供了很大方便,具有很大的应用价值。

关键词:AT89C51单片机;LED灯;数码管显示
目录
第1章绪论 (1)
1.1选题的目的及意义 (1)
1.2设计要求 (1)
1.3 实用价值与理论意义 (1)
第2章硬件设计 (3)
2.1 硬件功能的设计 (3)
2.2 硬件原理图 (3)
第3章软件设计 (7)
第4章仿真结果 (9)
第5章课程设计总结 (12)
参考文献 (13)
致谢 (14)
附录 (15)
第1章绪论
1.1选题的目的及意义
交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。

随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发,环境污染加剧等一系列问题,因此设计一个灵活、稳定、便捷的多功能交通灯控制系统具有必要性和现实性。

本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。

在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。

1.2设计要求
利用AT89C51单片机控制交通灯,实现三种情况下的控制:
正常情况下双方向轮流点亮交通灯,如表1-1所示
表1-1 交通灯亮变顺序
1.3 实用价值与理论意义
随着我国城市现代化进程的不断推进,交通问题是影响我国社会经济发展的一个大问题,而城市道路交通问题的核心就是对十字交叉路口交通信号的控制。

因此,国外一些发达国家把城市交通信号控制研究的重点放在城市交通干线和区域的控制上,可是控制效果并不明显。

人们对十字路口交通信号的控制方法大致有如下两种方式:其一是建立城市交通流的数学模型,提出优化算法,但由于十字路口不同时刻车辆的流量是复杂的、随机的和不确定的,所以数学模型难以建立,控制策略中的最优目标也很难实现,且算法复杂、计算量大,实践证明控制效果不理想,实时性较差;二是根据模糊控制的方法,根据十字路口交通的车辆数确定某一相位的绿灯初始时间和绿灯延长时间,对交通灯的控制实现了一定的
模糊化,但是在控制过程中相位转换的顺序不变,因而面对我国城市如此复杂的交通系统,难以保证其灵活性和实时性。

因此,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统是当前的主要任务,以最大限度地减少了十字路口的车辆平均延误时间,提高了路口通行能力,从而达到缓解交通拥挤的目的。

本次设计的模拟交通灯控制系统是以MCS-51系列AT89C51单片机为核心,通过Proteus professional软件进行模拟仿真,完成了交通灯控制系统的基本功能,东西南北四个方向各有红绿黄三只发光二极管,由发光二极管显示红绿黄灯,并且通过按键来实现紧急情况和特殊情况的处理。

从而,完成了对十字路口交通运行状态的智能模拟。

该系统具有运行可靠,成本低,操作方便,适用性强的特点,可以得到广泛应用。

第2章硬件设计
2.1 硬件功能的设计
硬件部分由AT89C51单片机、红黄绿LED灯、数码管、电容等部件组成。

1、用二极管显示红绿黄等;
2、用数码管显示十字路口两个方向的剩余时间;
3、用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭;
2.2 硬件原理图
图2-1 硬件连接图
如图2-1所示:
P0.1~P1.7口分别接RX8的9~16引脚,而数码管的a~g分别接RX8的8~2引脚,dp接RX8的1引脚,从而控制数码管的断选,此数码管为共阳极。

P2.1~P2.0分别接数码管的2~1引脚控制数码管的位选。

P2.2~P2.4分别接东西方向的绿灯、
黄灯、红灯,P2.5~P2.7分别接南北方向的绿灯、黄灯、红灯。

图2-2 芯片AT89C51图
如图2-2所示,本次所用AT89C51相关引脚的介绍:
VCC:供电电压。

GND:接地。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

E保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不E:当A
A
管是否有内部程序存储器。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作
为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

图2-3红绿灯连接图
如图2-3所示:
东西方向和南北方向的红黄绿灯分别对应相连,东西南北方向上的每两个相同颜色灯有一个端口控制,这样可以起到同步亮灭的效果。

图2-4 数码管连接图
如图2-4所示:
数码管显示有数据端口和控制端口组成。

首先给控制口一个信号选中数码管,再向数码管送入数据,使其显示相关的数字,从而达到数字显示的效果。

图2-5 外接电路图
如图2-5所示:
外接电路主要是控制时钟频率的大小、复位功能和片选功能。

第3章软件设计
设计流程图:
如图3-1所示:
首先,对P0和P2口进行初始化赋值,
P0口和P2口都赋值00H,然后计算器初
化赋值,TH0赋值0DB,TL0 赋值0EFH,
TMOD 赋值01H(即开中断T0方式1),
打开计数器中断,程序如下:
SETB PT0
SETB ET0
SETB EA
SETB TR0
图3-1 主程序流程图
如图3-2所示:
主要是数码管显示数字及其调用。

首先,
将数字的个位和十位查分出来,再把数字分
别送给对应的数码管显示。

图3-2 子函数
图3-3 红绿的亮灭的判断
第4章仿真结果
南北方向绿灯和东西方向红灯都亮80秒后,南北方向黄灯开始亮并且绿灯灭,同时东西方向红灯继续亮,亮三秒后,南北方向的黄灯和东西方向的红灯同时灭,并且南北方向的红灯和东西方向的绿灯亮,亮灯60秒后,东西方向绿灯灭黄灯亮,南北方向红灯继续亮,亮灯3秒后。

再返回开始。

周而复始地循环下去。

效果图片:
图4-1 南北绿灯亮东西红灯亮时的效果图
图4-2 南北黄灯亮东西红灯亮时的效果图
图4-3 南北红灯亮东西绿灯亮时的效果图
图4-4 南北红灯亮东西黄灯亮时的效果图
第5章课程设计总结
通过此次单片机课程设计,我感慨颇多,从理论到实践,在两个多星期里,可以说是苦尽甘来,让我学到很多关于单片机的知识,让我更加对单片机有了深刻的认识,提高了我对单片机的兴趣。

不仅让我不仅在学习上有所增进的,而且还让我在关于做人做事方面有所感悟。

通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不透彻。

还有,这次的设计让我明白了求人不如求己,虽然我们要讲究合作,但更重要的是自己,只有自己懂,自己做,才不会在关键时刻掉链子。

别人终究是一个陪衬,路总是要自己走,属于自己的任务就要自己搞。

所以,我们必须要时刻强大自己。

虽然这个过程不是很平坦,肯定会遇到各种各样的问题,但一旦征服了它,那它就必是自己的东西了,当这样的厚积达到一定程度那你就能享受到薄发那刻的辉煌。

参考文献
[1]蔡美琴.MCS-51系列单片机系统及其应用.北京:高等教育出版社,2011.12
[2]杨志忠.数字电子技术.北京:高等教育出版社,2003.12
[3]胡宴如.模拟电子技术.北京:高等教育出版社,2008.6
[4]汪文,陈林.单片机原理及应用.湖北:华中科技大学出版社,2007
[5]康华光.电子技术基础数字部分.北京:高等教育出版社,2008.
[6]杨欣.电子设计从零开始.北京:清华大学出版社,2005.
本次的课程设计已告一段落,在这里首先我要感谢卢纪丽老师给我这次亲自动手的机会,并监督指导我们按时完成这次课设,才使我能顺利完成任务,由于自己的缺陷可能会导致设计中难免出现遗漏与错误,希望老师给予指导批评与谅解。

通过本次课设让我明白了自己动手和团体合作的的必要性,学会了很多课本上学不到的知识,明白了理论结合实践才是最重要的。

还让我对毕业的毕业论文的格式有了一定的了解,为了更好的毕业打下了良好的基础。

在此我再次感谢我敬爱的老师们。

程序清单:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0INT
ORG 0090H
/***********************
主程序
***********************/ MAIN:MOV R0,#100
MOV R1,#83
MOV R2,#1
MOV 30H,#3
MOV P2,#00H
MOV DPTR,#TABLE
MOV TH0,#0DBH
MOV TL0,#0EFH
MOV TMOD,#01H
SETB PT0
SETB ET0
SETB EA
SETB TR0
SJMP $
/***********************
计数器中断
***********************/
T0INT:
ACALL DISPLAY //调取显示函数
MOV A,R1
CJNE R2,#0,LOOP1//跳转为南北亮灯
CJNE A,30H,LOOP4//跳转为东西绿灯亮
DEC 30H//东西黄灯亮,南北红灯亮
CLR P2.2
SETB P2.3
CJNE A,#-1,LOOP3//黄灯亮灯时间是否结束
MOV R1,#5
MOV 30H,#3
MOV R2,#1
RETI
LOOP4:CLR P2.4
CLR P2.6
SETB P2.2
SETB P2.7
SJMP LOOP3
LOOP1:CJNE A,30H,LOOP2 //跳转为南北绿灯亮DEC 30H
CLR P2.5
SETB P2.6
CJNE A,#-1,LOOP3 //黄灯亮灯时间是否结束
MOV R1,#63
MOV 30H,#3
MOV R2,#0
RETI
LOOP2:CLR P2.3
CLR P2.7
SETB P2.5
SETB P2.4
LOOP3:DJNZ R0,LOOP//是否计数一秒MOV R0,#100
DEC R1
RETI
LOOP:MOV TH0,#0DBH
MOV TL0,#0EFH
RETI
/***********************
数码管显示函数
***********************/
DISPLAY:MOV A,R1
MOV B,#10
DIV AB
SETB P2.0
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
CLR P2.0
MOV A,B
SETB P2.1
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
CLR P2.1
RET
XIANSHI:
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H //0123456789
/*********************
延时函数
*********************/
DELAY: MOV R6,#20
D0: MOV R7,#100
D1: DJNZ R7,D1
DJNZ R6,D0
RET
END。

相关文档
最新文档