基于单片机的交通灯方案设计书报告.docx
《基于单片机的交通灯方案设计书报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯方案设计书报告.docx(15页珍藏版)》请在冰豆网上搜索。
基于单片机的交通灯方案设计书报告
摘要:
随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
交通信号灯控制方式很多,本系统采用ATS51和8位移位寄存器74LS164为中心器件来设计交通灯控制器,不仅实现了红黄绿灯分别燃亮,通过双位共阳数码管显示倒计时间的交通灯的基本功能而且扩展出当有救护车等紧急任务车辆通过时两个路口红灯同时燃亮的功能。
本系统实用性强,操作简单,价格便宜。
关键字:
51单片机交通灯救护车通过
1、引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
2、概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗节能化。
3、方案的选择
方案选择主要是基于数码管驱动的选择
方案1:
利用8255通过74LS373锁存器对8051的I/O口进行扩展,用8051的P0口控制交通灯部分,用扩展出来的端口通过74LS245总线驱动控制控制数码管的输出。
该方案硬件接线麻烦,花费较大,且软件编程困难,但是由于8255的扩展端口,所以系统有很大的功能扩展空间。
方案2:
利用两片74LS164对并行的I/O口进行扩展,用于驱动两个7段数码管,用8051的P1口直接控制交通灯部分,此方案硬件实现简单,软件实现也相对容易,它极大能力的节省了8051I/O口的使用,为系统功能扩展提供了必要的条件。
因此选择方案2.
4、系统的原理框图
图一.系统原理框图
5、芯片简介
5.1MSC-51芯片介绍
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
5.2 74LS164芯片介绍
在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。
在没有富余端口的情况下,可以用74LS164来扩展并行IO口,节约单片机资源。
74LS164是一个串行输入并行输出的移位寄存器。
并带有清除端。
其中;Q0—Q7并行输出端。
A,B串行输入端。
MR清除端,为0时,输出清零。
CP时钟输入端。
74LS164为普通的TTL电路,价格低,显示驱动均可使用该芯片完成
74ls164如何驱动数码管原理:
传入并出移位寄存器,在每个时钟的上升沿采样数据,使用的时候用一个IO口做数据线串行输入,再用一个口做时钟来拉高拉低控制采样数据即可。
例如:
图二.74LS164数码管驱动电路32
根据硬件可知,P3.0接在74LS164的数据输入端,P3.1接在74LS164的时钟端。
而74LS164的功能为:
第一个时钟来了将数据输入端的状态移位到Q7端,Q7的状态到Q6端……依次类推最后Q1的状态到Q0端,Q0状态丢失。
第二个时钟脉冲来到再作一次全体移动。
所以当来了8个时钟脉冲后。
原来第一次Q7的状态就到了Q0。
也就是当数据端随着时钟脉冲同步输出00111111时,8个时钟脉冲过后74LS164的Q7……Q0输出也为00111111,这时会使共阴数码管显示一个“3”。
6、模块介绍
6.18051控制模块
图三.8051控制模块
6.1.18051的P3.3口外接外部中断,此中断通过按键S1实现,实现功能为紧急车辆的优先通过。
6.1.28051的XTAL1与XTAL2接外部时钟电路,用于控制单片机的工作周期。
6.1.3RXD,TXD接外部编程线路,用于对8051进行编程,方便其控制应用电路。
6.1.4p1口p1.0-p1.5连接发光二极管,具体作用通过编程实现。
6.1.5P3.0,P3.1分别连接74LS164的A,B串行输入口以及CLK接口,用于数码管的动态显示控制。
6.2发光二极管控制模块
图四.发光二极管控制模板
P1.0-p1.5用于连接发光二极管,另外由于8051管脚输出电流太大,所以必须加0.3K排阻用于限流,发光二极管共阳极连接+5V
6.3数码管控制模块
图五.数码管控制模块
由于数码管显示交通灯的倒计时,东西方向,南北方向数码管显示相同,因为是课程设计作业,为方便电路,仅接两个数码管显示,具体由程序实现
通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形。
由于选共阳极数码管,所以A端接高电平。
7、系统功能
本设计可以实现交通灯的基本功能,包括了数码管的动态显示倒计时以及发光二极管的红绿黄灯通行指示,另外还添加了一个按键实现紧急车辆通过时双向红灯全亮的功能。
8、使用说明
将单片机最小系统与设计电路用排线连接,确定无误之后,打开最小系统电源,交通灯开始正常运行,当有紧急车辆通过时,按中断按键。
9、程序流程图
图六.程序流程图A
程序流程图B
程序包括两个部分,主程序以及调用程序。
主程序包括了定时器初值设定和开外部中断的部分。
X1是中断程序的主要部分,它实现的是当有紧急车辆通过时的两个方向红灯同时亮的功能。
它设定了中断过程所要执行的具体指令。
调用部分包括了F1-F4及DELY,TANK,DISP两部分的程序,其中F1-F4实现的是交通灯红绿黄灯的转换,DELY实现的是倒计时设定,TANK是倒计时显示中的二转十,DISP是数码管显示部分。
10、参考文献:
【1】大学生电子设计联盟.
【2】柴钰单片机原理及应用【M】.西安市太白南路2号,西安电子科技大学出版社.2009年2月.
【3】柴钰,刘晓荣,杨良煜.QTH-2008XS单片机实验指导书【M】.西安科技大学.2007年3月.
附录
附录1总的硬件原理图:
附录2程序设计
ORG0000H;程序入口地址
AJMPSTART
ORG0100H
ORG0020H
AJMPX1
ORG0013H;中断1入口地址
AJMPIINT1
X1:
MOVIE,#10000101B;开中断1,紧急车通过两个方向红灯亮
CLRIT1
SETBEA
SETBEX1
IINT1:
PUSHPSW;中断过程现场保护
PUSHACC
MOVA,#0F6H
MOVP1,A
POPACC;现场恢复
POPPSW
RETI
START:
MOVSP,#53H
MOVTMOD,#01H;定时器初始化
BEGIN0:
MOVR0,#14H;倒计时初值
MOVP1,#0FFH
LCALLX1
F1:
MOVA,#0DEH;东西方向绿灯亮,南北方向红灯亮
MOVP1,A
MOV23H,#14H;赋计数器初值
MOVA,R0
LCALLTRAN;调用二转十子程序
LCALLDISP;调用显示子程序
LCALLDELAY;调用延时程序
DECA;倒计时自减1
DJNZR0,F1
MOVR0,#02H;设定黄灯倒计时初值
MOVP1,#0FFH
F2:
MOVA,#0EEH;东西方向黄灯亮,南北方向红灯亮
MOVP1,A
MOV23H,#14H
MOVA,R0
LCALLTRAN
LCALLDISP
DECA
LCALLDELAY
DJNZR0,F2
MOVR0,#14H
F3:
MOVA,#0F3H;东西方向红灯亮,南北方向绿灯亮
MOVP1,A
MOV23H,#14H
MOVA,R0
LCALLTRAN
LCALLDISP
LCALLDELAY
DECA
DJNZR0,F3
MOVR0,#02H
MOVP1,#0FFH
F4:
MOVA,#0F5H;东西方向红灯亮,南北方向黄灯亮
MOVP1,A
MOV23H,#14H
MOVA,R0
LCALLTRAN
LCALLDISP
LCALLDELAY
DECA
DJNZR0,F4
LJMPBEGIN0
DELAY:
SETBTR0;延时子程序
AGAIN:
MOVTH0,#3CH
MOVTL0,#0B0H
LOOP2:
JBCTF0,LOOP3
JMPLOOP2
LOOP3:
DJNZ23H,AGAIN
CLRTR0
RET
TRAN:
PUSHACC;二转十子程序
MOVR2,A
MOVR6,#00H
MOVR7,#08H
LOOP:
CLRC
MOVA,R2
RLCA
MOVR2,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
DJNZR7,LOOP
POPACC
RET
ORG0300H
DISP:
MOVR1,A;显示子程序
MOVA,R6
ANLA,#0FH
ACALLSEND
MOVA,R6
SWAPA
ANLA,#0FH
ACALLSEND
MOVA,R1
RET
SEND:
MOVDPTR,#SGTB1
MOVCA,@A+DPTR;取字符
MOVSBUF,A
JNBTI,$
CLRTI ;发送字符
RET
SGTB1:
DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H;字符表
END
附录3元件清单
元件型号
数量
74LS164
2
7段数码管(共阳)
2
0.3K排阻
1
200Ω电阻
16
发光二极管(红黄绿)
各两个
按键
1