交通灯控制系统.docx
- 文档编号:27561038
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:31
- 大小:230.53KB
交通灯控制系统.docx
《交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统.docx(31页珍藏版)》请在冰豆网上搜索。
交通灯控制系统
职业技术学院
毕业设计报告
交通灯控制系统
学生姓名
所在系
电子工程系
班级
电08微电1班
专业
微电子技术
指导教师
2010年11月X日
摘要3
第一章绪论4
1.1设计原因4
1.2交通灯颜色的选取机理4
1.3现代交通灯的控制技术4
第二章设计方案5
2.1.设计要求5
2.2选题依据5
2.3.单片机的特点5
2.4AT89S526
2.5AT89S52的组成8
2.6时钟震荡电路9
2.7复位电路9
第三章、交通灯的电路设计11
3.1数码管分类11
3.2CD451112
3.3指示灯电路设计13
第四章软件程序设计15
4.1指示灯的算法设计和端口连接15
4.2显示电路设计算法和接口17
4.3延时程序17
4.4中断19
4.5交通灯总体设计流程20
总结21
附录1:
交通灯控制系统仿真全图22
附录2:
交通灯控制系统源程序23
参考文献28
摘要
为了克服交通工具的迅速发展,给城市交通带来的一系列的问题。
在交通管理、交通控制系统方面采用了计算机自动化等新技术。
本篇论文就是为了有序管理交通而设计的,此设计是基于单片机来完成对交通灯的控制,达到准确、高效的控制目的。
现代科技最重要的是自动化,自动化的目的就是为了提高效率减少人力资源的耗散。
本设计采用了单片机为设计方法,基于keil和proteus为设计工具,运用数字电路和模拟电路的方法来完成设计。
论文主要分为四大章节,分别从交通灯的基本形式,设计方法,电路的设计和程序设计的等几个方向来进行。
本设计并非实际运用中的成品,考虑到成本和功能的限制,做出的产品是小型原理的实物实验品,运用的信号指示等是发光二极管,计数屏为七段数码显示管由于知识水平的局限性,其中可能有很多不足之处,还望读者多多提点,以求改进。
关键词:
交通灯、单片机
第一章绪论
1.1设计原因
近年来在快速城市化进程和经济发展的影响下城市交通迅速增长,交通问题成为了困扰许多城市发展的通病交通拥挤成为制约城市经济和社会发展的“瓶颈”而且随着机动车数量的增加而日趋严重,由于我国道路设施不足,路网设计不合理,道路建设空间受制约,城市车辆数量急速增加。
交通供应不能满足机动车迅速增长的需要。
出现上下班高峰期堵车塞车,交通事故频发等事件。
为了改善交通形式,减小管理负担,运用自动化的交通灯控制系统成为了必要的交通控制手段。
1.2交通灯颜色的选取机理
运用红、绿、黄三色来作交通讯号是和人的视觉机能结构和心理反应有关。
我们的视网膜含有杆状和三种锥状感光细胞。
杆状细胞对黄色的光特别敏感,三种锥状细胞则分别对红光、绿光及蓝光敏感。
由于这种视觉结构,人最容易分辨红色与绿色。
虽然黄色与蓝色也容易分辨,但因为眼球,对蓝光敏感的感光细胞较少,所以分辨颜色,还是以红、绿色为佳。
所以通常的交通灯都采用红、绿、黄三色信号灯来指挥交通,此外用红色来作为禁行的原因是红色光的穿透力很强,就算是在大雾天气也能够看见,而黄色的穿透力在红色后面所以用黄色来作为警惕信号,绿色则作为通行讯号。
1.3现代交通灯的控制技术
如今,在太阳能,风能,核能等新能源开发,集成电路的迅猛发展的前提下,交通控制系统已经呈现低能耗,高性能的发展。
比如在我国部分城市已经出现了太阳能的交通控制信号灯。
而且交通控制系统不只运用于城市道路等方面,现在某些高端汽车基本装有智能速度传感器、智能控速系统和车距测量系统,和自动驾驶系统等这些系统都是为城市交通安全服务的,而这些系统的运用,都离不开自动控制这一技术。
单片机就是比较好自动控制方式,由此本文将以单片机为主要方向讲述交通灯控制系统的开发过程。
第二章设计方案
2.1.设计要求
自动开关合上,东西绿灯亮4秒,闪2秒灭,黄灯亮2秒灭,红灯亮8秒,绿灯亮4秒,闪2秒灭,黄灯亮2秒灭,红灯亮8秒循环。
对应东西绿灯黄灯亮时,南北红灯亮8秒,接着绿灯亮4秒闪2秒灭,黄灯亮2秒后,红灯又亮8秒循环。
2.2选题依据
选择交通灯控制系统作为毕业设计的目的是因为其一:
能够和即将学习的单片机知识挂钩,能够促进对于新事物的专研程度。
其二:
交通灯控制系统可以从硬件和软件两方面的方向出发,能够对以前所学的知识达到综合的运用。
其三:
运用单片机来做来做其成本比较低廉,电路简单,而且单片机还有非常多的优点。
再加上能够运用proteus和keil两个软件来进行设计过程中的仿真,proteus的仿真功能非常强大,不仅可以对单片机内部进行仿真还可以对其外围电路进行仿真,KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.3.单片机的特点
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统,单片机的芯片作为作为控制系统的核心部件,除了具有通用微机CPU的数值计算功能外,还具有灵活的、强大的控制功能,以便完成对外部系统控制输入量检测,并控制输出量。
实现自动控制。
由于单片机是面向工业控制的,工作环境恶劣,单片机具有抗干扰能力强,工作温度范围宽。
可靠性高,控制功能很强,数值运算能力较差,指令系统比通用微机系统简单,更新换代速度比通用微处理器慢的多等优点。
2.4AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
此外,P1.0和P1.2分别作定时器/计数器T2的外部计数输入(P1.0/T2)和定时器/计数器T2的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。
图3-1单片机引脚封装图
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态,如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1.外接时钟震荡输入口XTAL2.外接时钟震荡输出口。
2.5AT89S52的组成
图3-2单片机组成框图
单片机AT89S52由时钟电路,内存储ROM,外存储RAM,定时器,并行口,串行口,CPU和中断系统等几大部分构成。
CPU由运算器和控制器构成,其中运算器由算术逻辑单元ALU、累加A、暂存1、暂存2、程序状态字PSW寄存器、B寄存器构成。
ALU:
可以在控制器的信号下进行算术和逻辑运算。
累加A:
最常用的专用寄存器,可存放操作数和操作结果。
程序状态字PSW:
PSW程序状态字寄存器是一个8位特殊功能寄存器,用于存放指令执行后结果的状态信息。
B寄存器:
B寄存器是8位特殊寄存器和累加A协同作用,完成乘除法运算。
在不做乘除法运算时候,可以作为通用寄存器使用。
控制器是单片机的控制和指挥中心,能根据不同的指令产生不同的操作信号。
控制器包括:
程序计数器PC、指令寄存器IR、指令译码器ID、振荡器、定时电路和控制电路等。
程序计数器:
是一个16位的寄存器,存放的是CPU将要执行的下一条指令。
地址,CPU每执行完一条指令,PC就自动加1。
地址寄存器AR:
存放将要执行的指令地址、存储单元地址或输入输出设备地址,属于暂存器。
数据寄存器DR:
存放正在译码的指令、从数据总线来的操作数、送往存储器的操作数、中间结果、最后结果等,也属于暂存器。
P1、P2、P3、P4几个端口是并行输出输入口。
FLASH:
8K可编程闪烁存储器。
RAM:
256B的内部存储器。
总线结构:
总线信息按传输性质能够分成控制总线、数据总线、地址总线。
成为三总线结构。
控制总线:
传送CPU发送的控制信号,也可以是其他部件输入到微处理器的信息,对于每一条控制线,其传送方向是固定的。
地址总线:
用于传送CPU发送的地址信息,以选择需要访问的存储单元和I/O端口,由于地址总线是单向的因此CPU只能向外传送地址信息。
数据总线:
用于CPU、I/O接口之间传送数据,属于双向传输线。
2.6时钟震荡电路
图3-4时钟振荡电路图3-5外部时钟源接法
XTAL1(19引脚)——接外部晶体的一个引脚,在片内,它是一个反向放大器的输入端,这个放大器构成了片内振荡器.(当采用外部振荡器时:
对HMOS单片机来讲,XTAL1脚应接地,);对CHMOS单片机来讲,XTAL1脚作为驱动端.
XTAL2(18引脚)——接外部晶体的另一端。
在片内,接到上述反向放大器的输出端。
(当采用外部振荡器时,对HMOS来讲,XTAL2脚接收振荡器的信号,即把此信号直接接到时钟发生器的输入端);对CHMOS,此引脚悬浮
2.7复位电路
单片机复位是使得单片机的CPU和其他的功能部件都处在一个确定的初始状态,并从这个状态开始工作。
其复位条件是复位引脚加上持续两个机器周期有的高电平
3-3.按键复位电路3-4.上电复位电路
如上图3-3是按键复位,如果要复位,只需按下开关此时电源Vcc经电阻,在RESE端产生一个复位高电平,图3-4是上电复位接电瞬间,RESET端电压和Vcc一样,随着充电电流的减少,RESET端电压下降,只要保证充电时间大于两个机器周期,电路就能正常复位。
第三章、交通灯的电路设计
3.1数码管分类
数码管引脚封装图共阴极数码管接法共阳极数码管接法
根据公共端接法的不同,数码管又分为共阴极和共阳极两种结构,分别如图(b)和图(c)所示。
共阳极就是将8个LED的阳极连接到一起组成公共端COM,接正极,当相应字段为低电平“0”时,可以点亮该字段;当相应字段为高电平“1”时,该字段不亮。
共阴极就是将8个LED的阴极连接到一起组成公共端COM,接负极,当相应字段为高电平“1”时,可以点亮该字段;当相应字段为低电平“0”时,该字段不亮。
为了节省单片机外接的管脚,本设计中采用了阴极数码管和CD4511共同组成显示电路,电路如图所示。
4-1.数码管和cd4511接线图
3.2CD4511
CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路,能提供较大的拉电流,可直接驱动LED显示器。
BI:
4脚是消隐输入控制端,当BI=0时,不管其它输入端状态是怎么样的,段数码管都会处于消隐也就是不显示的状态。
LE:
锁定控制端,当LE=0时,允许译码输出。
LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
LT:
3脚是测试信号的输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮全部显示。
它主要用来检测数7段码管是否有物理损坏。
A1、A2、A3、A4、为8421BCD码输入端。
a、b、c、d、e、f、g:
为译码输出端,输出为高电平1有效。
CD4511的里面有上拉电阻,可直接或者接一个电阻再与七段数码管接口。
4-2.CD4511引脚图4-3.CD4511封装图
在接阴极数码管显示数字的时候由于CD4511有消隐的功能因此在显示数字6的时候,a段LED不亮。
3.3指示灯电路设计
指示灯电路分为东西南北四个方向,每个方向各有红、黄、绿指示灯1个,人行横道红绿灯各一个。
指示灯均用红、绿、黄三色发光二极管代替。
发光二极管的阳极接5v直流电源,作为发光二极管的电源,阴极接AT89S52的P0口。
当P0口输出信号为高电平‘1’的时候,发光二极管熄灭,当P0口输出的是低电平‘0’的时候,发光二极管点亮。
发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子
相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。
发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光
由于发光二极管的反向击穿电压约5伏。
它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。
限流电阻R可用下式计算:
式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。
因为我们所用的是5V电源电压,发光二极管的接法是两个发光二极管串接,由此计算出的限流电阻为100欧姆。
二极管正向压降为2V,最大电流为20毫安,再用此公式计算一个二极管的电阻,大概为100欧姆,因此本设计采用两个二极管串联的方式来分压限流。
4-4.交通指示灯布局图
上图所示的是交通灯的指示灯的布局图,中间的12个LED代表的是东西南北四个方向上的红、绿、黄指示灯,图四角的十二个LED是人行横道的红绿灯。
第四章软件程序设计
交通信号灯采用的是红、绿、黄三色信号灯,红色代表停止,红灯一亮,所有车辆或行人都应立即止步,不再前行。
黄灯代表警示,越过斑马线的车辆或行人允许通过,未过斑马线的行人或车辆,应当禁止前行。
绿灯代表允许通行,此时车辆和行人可以随意通行。
4.1交通灯总体设计流程
4-1交通灯总设计流程图
4.2指示灯的算法设计和端口连接
交通灯控制系统的原理就是以倒计时方法显示时间,通过对红、绿、黄三色信号灯的不同次序的控制来达到交通控制的目的。
由于本设计中要求东西红灯亮8s,绿灯亮4s,闪两秒,黄灯亮2s。
同时南北绿灯亮4s,闪2s,黄灯亮2s,红灯亮8s由此我们认为十六秒为一个周期,其亮灯的顺序如下所述:
0-4s时刻东西路口车行道绿灯,人行道红灯,南北路口车行道红灯,人行道绿灯。
4-6s时刻东西路口车行道绿灯闪烁,人行道红灯,南北路口车行道红灯,人行道绿灯
6-8s时刻东西路口车行道黄灯,人行道红灯,南北路口车行道红灯,人行道绿灯。
8-12s时刻东西路口车行道红灯,人行道绿灯。
南北路口车行道绿灯,人行道红灯。
12-14s时刻东西路口车行道红灯,人行道绿灯。
南北路口车行道绿灯闪烁,人行道红灯
14-16s时刻东西路口车行道红灯,人行道绿灯。
南北路口车行道黄灯,人行道红灯。
循环往复的运行,达到了交通有序控制的目的,当然其中的间隔时间可以由不同的路口状况来设定,由于不同的路口有不同的设计方法在此只讲本设计中采用的方法。
按照上面的设计方法,因为我们用的是二极管的阴极接的AT89S52的P0口,阳极接高电平。
所以只要P0口输出为低电平,则指示灯点亮。
为了简化系统的开发,我们将东西和南北两个方向上的指示灯统一的去除一半来作为设计模型,既东西车行道有红、黄、绿三个指示灯,人行道有红绿灯各一个,南北红、绿、黄指示灯各一个,人行横道有红绿灯各一个,一共相加10个灯。
由于我们只运用P0口作为指示灯的显示输出口,因此必须简化路灯系统。
我们列出了各个时段人行横道上指示灯的亮灯真值表如下表所示:
表4-1人行道状态时间图
时间
东西人行绿灯
东西人行红灯
南北人行绿灯
南北人行红灯
0-4s
1
0
0
1
4-6s
1
0
0
1
6-8s
1
0
0
1
8-12s
0
1
1
0
12-14s
0
1
1
0
14-16s
0
1
1
0
从上表所示可以看出无论什么时候东西绿灯和南北红灯状态一致,东西红灯和南北绿灯状态一致。
由此我们将东西绿灯和南北红灯定为人行1,将东西红灯和南北绿灯定为人行2。
其随时间变化的真值表如下。
4-2人行道归纳状态表
时间
人行1
人行2
0-4s
1
0
4-6s
1
0
6-8s
1
0
8-12s
0
1
12-14s
0
1
14-16s
0
1
这样我们就能够将这些二极管指示灯接入P0口了其接入状态如下表所示。
4-3交通灯路口接法
端口
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
时间
人行1
人行2
东西车红
东西车绿
东西车黄
南北车红
南北车绿
南北车黄
十六进制
0-4s
1
0
1
0
1
0
1
1
AB
4-6s
1
0
1
0-1
1
0
1
1
---
6-8s
1
0
1
1
0
0
1
1
B3
8-12s
0
1
0
1
1
1
0
1
5D
12-14s
0
1
0
1
1
1
0-1
1
----
14-16s
0
1
0
1
1
1
1
0
5E
如此一来,东西南北四个路口上的所有的灯都接好了下面讨论计数电路接口问题。
4.3显示电路设计算法和接口
显示电路运用P1口输出,外接四个数码管,我将四个方向上的的数码管精简成为两个,一个代表东西方向的计时,另一个代表南北方向的计时。
因为要两个数码管直接接入P1口的话,则P1口的端口数不够用,所以选择了用CD4511来驱动两个数码管。
这样两个CD4511正好可以接P1口,但是出现的问题是我们的计数器是8位计数的,如何使得在计数的时候不不产生冲突呢?
这里采用了SWAP指令来使显示电路的高位和低位的调换来达到共用P1口的目的其程序如下:
MOVA,SECOND1;南北路口计时寄存器
MOVB,#0FH
ANLA,B;将SECOND1高4位消除
MOVB,A;将SECOND1变化后的值赋给B
MOVA,SECOND2;东西路口计时寄存器
SWAPA;将SECOND2低位和高位互换
ANLA,#0F0H;将SECOND2的低位消除
ORLA,B;将东西、南北路计时数合并到P1口输出,
东西路占(p4-p7),南北路占(p0-p3)
MOVP1,A;输出数字显示
其处理的办法是将南北路口计时寄存器中的数送人寄存A,然后给寄存B送数0FH,然后将A和B相与,这样就屏蔽掉了高四位数字,然后再将东西路口计时寄存器中的数送到累加A中,先用SWAP命令让累加A中的高位数和低位数相互调换,然后把累加A中的数和F0H相与,这样就屏蔽掉了东西路口寄存器中的低四位数,然后将累加A中的数和B寄存中的数进行或,最后把得到的数送到P1口。
处理好了数字显示问题,下面看看延时的问题。
4.4延时程序
单片机中延时的方法很多,但是最为准确的是用定时器和计数器来达到延时的目的。
本设计中采用的是定时器计数的方法,定时计数方式是方式1,为了达到开关效应,使GATE为高电平的做法,下面介绍定时/计数器方式寄存器TMOD和定时/计数器控制寄存器TCON
表4-1寄存器TMOD的内部参数
TMOD(89H)D7D6D5D4D3D2D1D0
GATE
C/
M1
M0
GATE
C/
M1
M0
C/
为0时设定为定时器工作方式,为1的时候设定为计数器方式。
GATE为0时软件控制位TR0或TR1置1即可启动定时器/计数器,GATE为1时除了TR0或TR1需要置1外外中断INT0或INT1为1方可以启动定时器。
M1和M0是设定定时器工作方式的量其选择情况如下表所示。
表4-2M1和M0控制的计数方式
M1M0
工作方式
功能说明
00
方式0
13位定时/计数器
01
方式1
16位定时/计数器
10
方式2
自动重装8位定时计数器
11
方式3
定时器0分成两个8位计数器
因为本设计中采用的是16位定时器,而且要求控制定时器的启动在合上开关后,所以要让计时器TMOD的GATE为高电平‘1’这样TMOD初值为09H计数方式为十六进制计数
TCON是定时/计数器控制寄存器,TCON的作用是控制定时器的启动,停止,标志定时器的溢出和中断情况。
格式如下:
表4-3TCON内部参数
8FH8EH8DH8CH8BH8AH89H88H
TF1
TR1
TF0
TR0
IE1
IT1
I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制系统