基于单片机的智能交通红绿灯控制系统设计.docx
《基于单片机的智能交通红绿灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能交通红绿灯控制系统设计.docx(18页珍藏版)》请在冰点文库上搜索。
基于单片机的智能交通红绿灯控制系统设计
课题名称
指导教师(职称)
执行时间
2012~2013学年第2学期第9周
学生姓名
学号
承担任务
Protel制作
格式调制
内容设计
内容收集
设计目的
设计要求
设计基于单片机的智能交通红绿灯控制系统,要求能通过按键或遥控器设置系统参数,系统运行时,“倒计时等信息”能通过数码管或点阵发光管显示,设计时应考虑交通红绿灯控制的易操作性及智能性。
以单片机的最小系统为基础设计硬件,用汇编语言、或C语言设计软件。
通过本设计可以培养学生分析问题和解决问题的能力,掌握Mcs51单片机的硬件和软件设计方法,从而将学到的理论知识使用于实践中,为将来走向社会奠定良好的基础。
主干道(A)、支干道(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行,黄灯亮时车辆及行人小心通过。
主干道每次放行45S,支干道每次放行25S,黄灯每次亮5S
智能红绿灯控制器的设计
引言
红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
在交通红绿灯设计控制上,通过采用智能系统使用模式,尤其是基于单机片的智能控制系统,对于有效管制、疏导交通流量等方面具有明显的效果。
本文旨在探索设计基于单机片的智能交通控制系统,通过按键或者遥控的设置等方式,进行技术参数的全面使用。
。
第一章选题背景
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
关键词:
AT89C51;7448,LED
第二章方案论证
2.1方案介绍
方案1设计思想:
采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。
方案2设计思想:
由两个传感器监视主干道方向即A道和支干道方向即B道的车辆来往情况,设开关K=1为有车通过,K=0为没有车通过。
则有以下四种情况:
Ka=1时:
Kb=0,表示A有车B没有车,则仅通行B道;
Kb=1,表示A有车B有车,则优先通行A道;
Ka=0时:
Kb=0表示A没有车B也没有车,同样优先通行A道;
Kb=1表示A没有车B有车,则仅通行B道。
2.2方案比较:
方案1:
用了模块设计,而方案2采用逻辑设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。
2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。
我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
我们最终的设计应该尽量使用模块化设计。
对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。
第三章系统硬件设计
3.1总体电路框图
3.2系统构成
电路板一块,AT89S51单片机一片,7448芯片2片,七段数码管八个。
发光二极管20个(8个绿的,8个红的,4个黄的用于交通控制),100欧姆电阻20个,2个按键,2个开关,51K欧姆电阻2个,5V稳定电源1个,3个电容2个单刀单掷开关等。
系统工作流程:
(1)程序初始,通过两个传感器来判断南北和东西方向车辆通行情况。
(2)情况判定后由AT89S51单片机p1口及部分p2口输出二进制信号控制红绿黄灯亮的情况。
(3)确定那些灯亮后,由对应的七段数码管来进行到计时显示。
由p0口输出来控制七段数码管的显示,而p2口的高四位则用来控制数码管显示时的个位和十位
(4)系统是否需要紧急工作状态,而此任务由外部中断来实现。
(5)LED采用5V的直流电来驱动,低电平。
3.3显示电路的介绍
3.3.189C51芯片
选用的AT89S51和同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。
用于实现系统的总的控制。
其主要功能列举如下:
1)为一般控制使用的8位单片机
2)晶片内部具有时钟振荡器(传统最高工作频率可至33MHz)
3)内部程式存储器(ROM)为4KB
4)内部数据存储器(RAM)为128B
5)外部程序存储器可扩充至64KB
6)外部数据存储器可扩充至64KB
7)32条双向输入输出线,且每条均可以单独做I/O的控制
8)6个中断向量源
9)2组独立的16位定时器
10)1个全双工串行通信端口
11)8751及8752单芯片具有数据保密的功能
12)单芯片提供位逻辑运算指令
图3-1AT89C51芯片
3.3.27448芯片介绍
7448七段显示译码器输出高电平有效,用以驱动共阴极显示器。
该集成显示译码器设有多个辅助控制端,以增强器件的功能,可将单片机输出的四位二进制数转换成10进制数和七段数码管显示对应,用于显示0—9的数字。
图3-27448芯片
其中LT为测试输入。
3.3.3红绿LED信号显示灯及七段数码显示管
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点亮。
如下图:
图3-3红绿LED信号显示灯
而七段数码管的显示不同的字形如SP,g,f,e,d,c,b,a管角上加上OFEH所以SP上为0伏,不亮其余为TTL高电平,全亮则显示为8。
采用共阴极连接:
、
表3-4七段数码管的显示
显示数值
abcdefgdop
驱动代码(16进制)
0
11111111
0FCH
1
00000110
60H
2
11011010
0DAH
3
11110010
0F2H
4
01100110
66H
5
10110110
0B6H
6
10111110
0BEH
7
11100000
0E0H
8
11111110
0FEH
9
11110110
0F6H
3.3.4交通灯控制线路图
图3-5原理图
第四章交通灯软件设计
4.1程序设计流程图
程序设计框图
图4-1程序设计框图
4.2延时的设定
延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法.
实现1ms秒的方法:
我们采用在主程序中设定一个初值为0的软件计数器和使T1定时1毫秒
相应程序代码:
D1MS:
MOVR7,#250;1MS延时程序
DJNZR7,$
RET
4.3子程序的实现
A道通车情况:
START1:
MOVTEMP,#25
MOVP1,#0F3H
LOOP1:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START3
JNBP1.7,START11
CJNEA,#0,NEXT1
LJMPSTART2
NEXT1:
LJMPLOOP1
START11:
MOVTEMP,#65
MOVP1,#0F3H
LOOP11:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START33
JNBP1.7,START1
CJNEA,#0,NEXT11
LJMPSTART11
NEXT11:
LJMPLOOP11
START2:
MOVP1,#0F5H
MOVTEMN,#05
LOOP2:
ACALLDELAY1
DECTEMN
MOVA,TEMN
CJNEA,#0,NEXT2
LJMPSTART3
NEXT2:
LJMPLOOP2
B道通车情况:
START3:
MOVTEMP,#25
MOVP1,#0DEH
LOOP3:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START1
JNBP1.7,START33
CJNEA,#0,NEXT3
LJMPSTART4
NEXT3:
LJMPLOOP3
START33:
MOVTEMP,#65
MOVP1,#0DEH
LOOP33:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START11
JNBP1.7,START3
CJNEA,#0,NEXT33
LJMPSTART4
NEXT33:
LJMPLOOP33
START4:
MOVP1,#0EEH
MOVTEMN,#05
LOOP4:
ACALLDELAY1
中断情况即紧急情况:
ORG0000H
TEMPEQU24H
TEMNEQU25H
LJMPMAIN
ORG0003H
LJMPT0_INT
ORG0013H
LJMPTI_INT
T0_INT:
MOVA,P1
PUSHACC
MOVP1,#0FFH
MOVP1,#0F3H
MOVP0,#00H
JNBP3.2,$
POPACC
MOVP1,ACC
RETI
TI_INT:
MOVA,P1
PUSHACC
MOVP1,#0FFH
MOVP1,#0DEH
MOVP0,#00H
JNBP3.3,$
POPACC
MOVP1,A
RETI
第5章部分模块实现程序
程序代码分为几个模块:
中断模块,循环模块,延时模块。
原程序实现:
ORG0000H
TEMPEQU24H
TEMNEQU25H
LJMPMAIN
ORG0003H
LJMPT0_INT
ORG0013H
LJMPTI_INT
T0_INT:
MOVA,P1
PUSHACC
MOVP1,#0FFH
MOVP1,#0F3H
MOVP0,#00H
JNBP3.2,$
POPACC
MOVP1,ACC
RETI
TI_INT:
MOVA,P1
PUSHACC
MOVP1,#0FFH
MOVP1,#0DEH
MOVP0,#00H
JNBP3.3,$
POPACC
MOVP1,A
RETI
MAIN:
SETBEA
SETBEX0
SETBEX1
CLRF0
START1:
MOVTEMP,#25
MOVP1,#0F3H
LOOP1:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START3
JNBP1.7,START11
CJNEA,#0,NEXT1
LJMPSTART2
NEXT1:
LJMPLOOP1
START11:
MOVTEMP,#65
MOVP1,#0F3H
LOOP11:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START33
JNBP1.7,START1
CJNEA,#0,NEXT11
LJMPSTART11
NEXT11:
LJMPLOOP11
START2:
MOVP1,#0F5H
MOVTEMN,#05
LOOP2:
ACALLDELAY1
DECTEMN
MOVA,TEMN
CJNEA,#0,NEXT2
LJMPSTART3
NEXT2:
LJMPLOOP2
START3:
MOVTEMP,#25
MOVP1,#0DEH
LOOP3:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START1
JNBP1.7,START33
CJNEA,#0,NEXT3
LJMPSTART4
NEXT3:
LJMPLOOP3
START33:
MOVTEMP,#65
MOVP1,#0DEH
LOOP33:
ACALLDELAY
DECTEMP
MOVA,TEMP
MOVP0,TEMP
JNBP1.6,START11
JNBP1.7,START3
CJNEA,#0,NEXT33
LJMPSTART4
NEXT33:
LJMPLOOP33
START4:
MOVP1,#0EEH
MOVTEMN,#05
LOOP4:
ACALLDELAY1
DECTEMN
MOVA,TEMN
CJNEA,#0,NEXT4
LJMPSTART1
NEXT4:
LJMPLOOP4
RETI
DELAY:
MOVA,TEMP
MOVB,#10
DIVAB
MOVR5,A
MOVR6,B
MOVR0,#10
L0:
MOVR1,#250
L1:
MOVA,R5
MOVP0,A
CLRP2.4
ACALLDIMS
SETBP2.4
MOVA,R6
MOVP0,R6
CLRP2.5
ACALLDIMS
SETBP2.5
DECR1
DJNZR1,L1
DECR0
DJNZR0,L0
RETI
DELAY1:
MOVA,TEMN
MOVB,#10
DIVAB
MOVR5,A
MOVR6,B
MOVR2,#10
L2:
MOVR3,#250
L3:
MOVA,R5
MOVP0,A
CLRP2.4
ACALLDIMS
SETBP2.4
MOVA,R6
MOVP0,R6
CLRP2.5
ACALLDIMS
SETBP2.5
DECR3
DJNZR3,L3
DECR2
DJNZR2,L2
RETI
DELAY11:
MOVA,TEMP
MOVB,#10
DIVAB
MOVR5,A
MOVR6,B
MOVR0,#10
Y0:
MOVR1,#250
Y1:
MOVA,R5
MOVP2,A
CLRP2.6
ACALLDIMS
SETBP2.6
MOVA,R6
MOVP2,R6
CLRP2.7
ACALLDIMS
SETBP2.7
DECR1
DJNZR1,Y1
DECR0
DJNZR0,Y0
RETI
DIMS:
MOVR7,#250
DJNZR7,$
RET
END
第六章结论
本系统就是利用了AT89C51芯片的I/O引脚。
系统采用单片机AT89C51,以及其它芯片来设计交通灯控制器,实现了红灯亮45秒,绿灯亮40秒。
并通过AT89C51来控制7448芯片的输出口控制七段数码管上的时间显示;系统设计简便、实用性强、操作简单、程序设计简便。
系统不足:
时间设定中没有黄灯的等待闪烁时间,以及自动根据车流改变红绿灯时间,使城市的交通管理更加人性化。
使人们远离目前的交通拥塞的现象。
第七章参考文献
[1]胡汉才.单片机原理及其接口技术.清华大学出版.1996
[2]蔡美琴.MCS-51系列单片机系统及其使用.高等教育出版社.2004.2
[3]蒋万君.在论循环时序电路的简便设计.机电一体化.2005.5
[4]何立民.MCS-51系列单片机使用系统设计.北京航空航天大学出版社.1995.
[5]李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.1993
[6]周航慈.单片机使用程序设计技术.北京航空航天大学出版社.1991.
[7]张志良等.单片机原理和控制技术.机械工业出版社.2001
[8]陆坤.电子设计技术.电子科技大学出版社.1997
第八章答辩记录及评分表
课题名称
智能红绿灯控制器的设计
答辩教师(职称)
答辩时间
学年第学期第周
答
辩
记
录
评分表
学生姓名
学号
评分