基于单片机的交通灯设计Word格式.docx
《基于单片机的交通灯设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
![基于单片机的交通灯设计Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/14/15b63694-d08e-4bf7-ace1-d6445941f576/15b63694-d08e-4bf7-ace1-d6445941f5761.gif)
随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
同时也随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。
然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。
而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。
所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
为此,本次设计完成的就是交通灯设计。
以下就城乡交通灯控制系统的电路原理、设计计算和实验调试等问题来进行具体分析讨论。
二、总体设计方案
2.1设计思路
2.1.1红绿灯端口个数
十字路口共四个方向,其中东西方向与南北方向各自灯亮灭是一致的。
所以,采用六位信号控制各方向红、黄、绿灯即可。
3.2红绿灯显示电路的设计
红绿灯显示电路使用P0口低六位,通过一片74LS245驱动芯片进行功率放大,然后送给对应红绿灯,使其按照程序熄灭。
74ls245的AB/BA端接低电平,表示数据由B端向A端输送。
发光管的公共端接到VCC,因此为低电平有效。
在设计方案中提到,南向和北向,东向和西向的红绿灯显示一致,所以南向和北向,东向和西向的红绿灯应接到相同的I/O口,在本电路中,南向和北向,东向和西向的红绿灯相串联接如P0口。
其中,P0.0、P0.1、P0.2输出控制南北向红灯、绿灯、黄灯;
P0.3、P0.4、P0.5输出控制东西向红灯、绿灯、黄灯。
图1交通灯的状态和变化顺序
2.1.2通行时间设计
红绿灯显示时间:
以南北向为例,南北方向绿灯,东西方向红灯,倒计时25s,到5s时,南北向绿灯灭,黄灯亮。
倒计时结束后,南北方向红灯,东西方向绿灯,倒计时从新开始,如此循环运行。
2.1.3数码管显示设计方案
为使倒计时显示代码更简洁直观,倒计时显示采用静态显示,直接由I/O接口输出给对应数码管。
在数码管显示中,通常有两种显示方式:
静态显示和动态显示,动态显示中硬件电路较为简单,但是程序复杂,容易被外界干扰,为使倒计时显示代码更简洁直观,方便后期系统扩展,倒计时显示采用静态显示,直接由I/O接口输出给对应数码管;
其中P1口控制个位显示,P2口控制倒计时的十位显示。
2.2方案确立
红绿灯、数码管输出采用并口输出,在需要延时时CPU进行调用延时子程序延时。
各方向红绿灯的亮灭用传送指令给相应端口赋值。
在十字路口需要红绿黄灯共12个灯,但考虑到东方和西方、南方共和北方的红绿灯工作状态相同,故本次设计中采用6个发光二级管来代替12个灯,数码管显示程序采用静态显示,采用每调用一秒延时程序,为数码管对应端口赋一次值的算法。
当需要结束强通时,只需按下复位键,单片机即可从新工作。
采用P0口低六位来控制东西方向和南北方向的红、黄、绿灯。
P1、P2口经过译码器输出到数码管。
考虑到硬件设施的局限性,即按键难免抖动,故本次设计没有用中断模式,所采用的就是查询模式,如果需要改变可
2.3设计方框图
2.3.1电路方框图
图2电路方框图方框图
电路方框图有单片机、复位电路、时钟电路、警报电路、倒计时驱动电路、倒计时显示电路、红绿灯驱动电路、红绿灯显示电路构成,其各部分的主控与被控关系如电路中箭头所示。
2.3.2程序方框图
89S51单片机
警报电路
LED显示
复位电路(已省)
驱动数码管显示
晶振电路
图3程序方框图
单片机上电后,从0000H开始执行,程序直接跳往主程序。
在主程序中,首先对单片机进行初始化,初始化包括开启中断服务,并打开中断0、中断1,以便按下强通按钮后可以跳转到中断程序(中断程序在后面做详细介绍)。
然后执行程序主体,先为P0口赋值,使南北方向绿灯,东西方向红灯亮,再调用延时1子程序。
延时1子程序采用循环与查表指令每隔一秒为P2口赋值一次,从而显示出从25递减的倒计时。
当倒计时为3时,返回主程序并调用南北绿灯闪烁子程序,在本子程序中,先调用一次一秒钟的闪烁子程序,再P2口赋值使倒计时显示04,然后再调用一次一秒中的闪烁子程序,然后返回主程序。
接着向P1口赋值,使南北方向黄灯,东西方向红灯亮,再调用延时2子程序,每隔一秒为P2口赋值一次,以便显示除由3到1的倒计时显示。
南北方向通行结束,为P1口赋值,使南北方向红灯,东西方向绿灯,再调用延时1子程序。
当倒计时为3时,返回主程序并调用东西绿灯闪烁子程序,返回主程序后,向P1口赋值,使南北方向红灯,东西方向黄灯,再调用延时2子程序。
此时,程序主体执行一遍,南北各通行25s,由跳转指令使程序跳往程序主体开始地址,循环执行程序主体。
警报电路由STC89S51的P3.2脚P3.3脚及外部开关按扭组成,当外部开关按扭按下时,进入中断,单片机执行中断指令,使东西或南北方向强行绿灯。
2.3.3原理图
图4电路总原理图
图3中六个发光二极管的连接方式被称为共阳极连接,即所有二极管的N极连在一起再与地线相连。
对于这种连接方式,如果P0口的某个引脚输出逻辑1,即高电平,则对应的发光二极管被点亮。
反之,则对应的二极管被熄灭。
表1P1口引脚与发光二极管的连接关系
东西方向
南北方向
黄
绿
红
P1.6
P1.5
P1.4
P1.2
P1.1
P1.0
所有发光二极管的另一端和74ls245之间还存在一个电阻R,即限流电阻,用来防止电流过大损坏电路器件。
由不同型号的二极管的参数不同,可根据具体情况来确定限流电阻的阻值。
R2的取值范围为1Ω~1KΩ。
为保证电路的安全,阻值可选的大些,如发光二极管的亮度不够,阻值可适当选的小些,直到发光二极管的亮度满足要求。
三、设计原理分析
3.1芯片74LS245的功能
图574LS245引脚图
74LS245是我们常用的芯片,用来驱动led或者其他的设备,用法很简单如上图,他是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;
(接收)DIR=“1”,信号由A向B传输;
(发送)当/CE为高电平时,A、B均为高阻态。
表274LS245功能表
输入
功能
E
DIR
B口为输入A口为输出
1
A口为输入B口为输出
x
A口与B口隔离
3.2复位电路和震荡电路的设计
图6复位电路和震荡电路
复位电路采用按键电平复位式复位电路。
如复位电路所示,单片机正在工作时,当按下RESET键时,RST端相当于接高电平,从而单片机即可复位。
震荡电路使用一个12M晶振和两个30PF电容,配合片内振荡器产生12MHZ片内时钟信号,供单片机正常工作使用。
3.3码管引脚图
图7七段数码管引脚图
数码管常识:
a、段及小数点上加限流电阻
b、使用电压:
段:
根据发光颜色决定;
小数点:
根据发光颜色决定
c、使用电流:
静态:
总电流80mA(每段10mA);
动态:
平均电流4-5mA
峰值电流100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的
四、使用说明
本实验板模拟的是城市街道的交通灯控制系统,十字路口共四个方向,其中东西方向与南北方向各自灯亮灭是一致的。
本交通灯系统工作模式分为三个模式,分别是:
白天模式、夜间模式、急车通道模式。
其中白天模式倒计时为30秒,夜间模式倒计时采用20秒,当有急救车、消防车等急车通过时所有路口都为红灯,同时警报(蜂鸣器)响以提示有急车通过。
当开关S1、S2断开时系统工作在白天模式,此时数码管显示倒计时时间,到5秒时显示绿灯的方向会转换为黄灯起警示作用,开关S1闭合时转换到急车通道模式。
当S1断开、S2闭合时系统工作在夜间模式。
开关控制明细如下表:
表3开关状态与工作状态之间的关系
开关状态
工作状态
S1断开S2断开
白天模式
S1断开S2闭合
夜间模式
S1闭合S2断开
夜间急车通道模式
白天急车通道模式
五、心得体会
,通过一次次反复的实验,最终还是能实现基本功能。
通过这次实习,使我的理论知识上升到了一个实践的过程。
同时在实践中也加深了我们对理论知识的理解。
本次课程设计做了十多天,通过这十多天每天在电脑上查质料、画电路图、买元器件、焊接电路,我更加了解到自己对专业知识的不足,在课堂上我只能学习到理论知识,但实际动手能力却很差。
在硬件设计中还是没有很大困难的。
最困难的就是编写程序,加上对汇编程序的生疏,根本就不知道从何入手。
对于所编写的程序,自己感觉从理论上是可以的,但一应用到硬件上就不行了。
觉得这十多天里学到的东西比以往要多。
金工实习、电工实习都是十多天,但以往心态较浮躁,只是为了完成老师布置的任务,很多比较实质性的东西并未真正领会。
这十多天里一天里以还算平静的心态面对此次课程设计,发现自己忽略了很多比较重要的东西。
本次课程设计还让我深刻的感受到,会查阅资料也是一种很重要并且需要不断锻炼的能力。
很多时候不是找不到资料,而是面对大量的资料不会从中提取有用的信息。
本次课程设计也提醒我学过的知识很大一部分都让我忘了,因此对于某些在实际应用很重要的知识应抽出时间复习。
在这次设计中我得到了同学的很多的帮助,我真的是非常的感谢他们!
六.参考文献
[1]李朝青.单片机原理及接口技术(修订版)[M].北京:
北京航空航天大学出版社,1998
[2]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1992
[3]赫建国,郑燕,薛延霞.单片机在电子电路设计中的应用[M].北京:
清华大学出版社,2006
[4]康华光.电子技术基础.[M].北京;
高等教育出版社,2006
[5]张佐光,张晓宏,仲伟虹,等.多相混杂纤维复合材料拉伸行为分析[A].见:
张为民编.第九届全国复合材料学术会议论文集(下册)[C].北京:
世界图书出版公司,1996.410~416
[6]康华光.电子技术基础.[M].北京;
[7]余小平等.电子系统设计.[M].北京:
北京航空航天大学出版社,2007
[8]邱关源.电路.[M].北京:
附录一
附录二
程序设计
ORG0000H
AJMPSTART
ORG0003H
AJMPAMBULANS;
强通程序
ORG0061h
START:
MOVSP,#60H
SETBIT0;
外部中断0边沿触发
SETBEX0;
允许外部中断0
SETBEA;
开总中断
MOVIP,#01H;
外部中断0为高级中断
;
DAYTIME:
;
(控制红绿黄灯及数码管显示程序)白天
JNBP3.3,NIGHT;
判断夜晚控制按键是否按下
MOV2AH,#1FH;
送显示初值
MOVP0,#0DEH
MOVR7,#19H
DAYTIME1:
LCALLDEL1
DJNZR7,DAYTIME1
MOVP0,#0eeH
MOVR7,#05H
DAYTIME2:
DJNZR7,DAYTIME2
JNBP3.3,NIGHT
MOVP0,#0f3H
MOV2AH,#1FH
DAYTIME3:
DJNZR7,DAYTIME3
MOVP0,#0f5H
DAYTIME4:
DJNZR7,DAYTIME4
LJMPDAYTIME
NIGHT:
(控制红绿黄灯及数码管显示程序)夜晚
JBP3.3,DAYTIME
MOV2AH,#15H
MOVR7,#00FH
NIGHT1:
DJNZR7,NIGHT1
MOVP0,#0EEH
NIGHT2:
DJNZR7,NIGHT2
NIGHT3:
DJNZR7,NIGHT3
NIGHT4:
DJNZR7,NIGHT4
AJMPNIGHT
RET
显示程序
DEL1:
DEC2AH
MOVA,2AH
MOVB,#0AH
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVp2,A
MOVA,B
MOVp1,A
lcalldelay
表
TABLE:
DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
AMBULANS:
(控制红绿黄灯及数码管显示程序)强通程序
PUSHACC
PUSHPSW
蜂鸣程序
fengming:
MOVR2,#08H
DLV1:
MOVR3,#0FAH
CLRP3.0
LCALLDELAY1;
延时
DJNZR3,DLV2
DJNZR2,DLV1
MOVR2,#10H;
改变循环初值
DLV3:
DLV4:
CPLP3.0
LCALLDELAY2
DJNZR3,DLV4
DJNZR2,DLV3
ajmpfengming
delay1:
movr7,#00h
LLA:
DJNZR7,LLA
ret
delay2:
movr7,#128
LLB:
DJNZR7,LLB
红灯全亮
MOV2AH,#10H
MOVP0,#0f6H
MOVR5,#10H
AMBULANS1:
MOVA,2AH
CJNEA,#01H,AMBULANS1
SETBP3.0
DJNZR5,AMBULANS1
POPPSW
POPACC
RETI
下面为延时程序
DELAY:
延时时间1S误差0us
MOVR4,#17H
DL1:
MOVR3,#98H
DL0:
MOVR2,#46H
DJNZR2,$
DJNZR3,DL0
DJNZR4,DL1
END
元器件选择表
编号
名称
型号
数量
电阻
电解电容
2
瓷片电容
二极管
2
三极管
1
运放
扬声器