基于AT89S51单片机的数显交通灯设计.docx
- 文档编号:5136052
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:23
- 大小:501.16KB
基于AT89S51单片机的数显交通灯设计.docx
《基于AT89S51单片机的数显交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S51单片机的数显交通灯设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于AT89S51单片机的数显交通灯设计
基于AT89S51单片机的数显交通灯设计
基于AT89S51单片机的数显交通灯设计
Designofdigitaltrafficlightsbasedon
AT89S51microcontroller
总计毕业设计(论文)页
表格个
插图幅
摘要
现代社会交通发达,东西南北往来穿梭车辆人群很多,特别是在十字路口,那么怎么样来更好维持交通秩序有条不紊,确保车辆和行人的安全呢?
这就要求有一种信号系统来指挥车辆和行人的行动,这就是我设计数显交通灯的依据。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
该智能交通灯控制系统可以实现的功能有:
对某市区的四个主要交通路口进行监控;东西南北路口直行与转弯交替通行,数码管显示直行通行倒计时;红绿黄灯显示包括人行道在内的道路交通状态;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间;紧急情况时,各路交通灯显示红灯,数码管保持数据不变。
关键词:
交通灯单片机数码管
Abstract
ModernsocietydevelopedtransportandshuttlevehiclesbetweenEastandWestaremanypeople,especiallyatthecrossroads,thenhowtomaintaintrafficordertobebetterorganized,toensurevehicleandpedestriansafety?
Thisrequiresasignalsystemtodirecttheactionsofvehiclesandpedestrians,andthisismydesignbasedonthenumberofsignificanttrafficlights.Lightshaveenabledtheeffectivecontroloftraffic,foreasetrafficflowandimproveroadcapacityandreducetrafficaccidentshaveademonstrableeffect.Theintelligence'stransportationlightcontrolthesystemcancarryoutofthefunctionhave:
Carryonsupervisiontofourmaintransportationstreetcornersofsomedowntown;Gostraightandturnthingsturnnorth-southtrafficintersection,passstraightdigitaldisplaycountdown;red,greenandyellowlightshow,includingthesidewalktraffic,includingthestate;roadcongestioninonedirection,youcanmanuallycontrolthepassageoftimetoadjustthedirectionofEastandWest;emergencysituations,Andthebrightestredtrafficlightshows,digitalcontroltokeepthedataunchanged.
Keyword:
TrafficlightSCMLED
第一章引言…………………………………………………………………………………
第二章系统硬件设计………………………………………………………………………
2.1芯片简介…………………………………………………………………………
2.1.1单片机概述…………………………………………………………………
2.1.2AT89S52单片机介绍………………………………………………………
2.1.374LS245芯片简介…………………………………………………………
2.1.4LED的特性及使用…………………………………………………………
2.2系统硬件设计……………………………………………………………………
2.2.1系统框图……………………………………………………………………
2.2.2电源电路设计………………………………………………………………
2.2.3单片机复位电路工作原理及设计…………………………………………
2.2.4单片机晶振电路工作原理及设计…………………………………………
2.2.5按键电路的设计……………………………………………………………
2.2.6时间倒计时显示电路………………………………………………………
2.2.7电路原理图及工作原理……………………………………………………
第三章系统软件设计………………………………………………………………………
3.1系统主程序流程图………………………………………………………………
3.2系统子程序………………………………………………………………………
3.2.1延时子程序…………………………………………………………………
3.2.2紧急中断子程序……………………………………………………………
3.2.3显示子程序…………………………………………………………………
3.3系统程序清单……………………………………………………………………
第四章结论…………………………………………………………………………………
结束语…………………………………………………………………………………………
参考文献………………………………………………………………………………………
第一章引言
纵所周知,交通信号灯是控制交叉路段车辆行驶的指挥棒,当今社会缺少了交通信号灯往往会造成道路拥堵,通行不畅,甚至威胁到人们的生命财产安全,因此更合理的交通灯的设计会给我们的生活带来极大的方便。
第一盏交通灯的出现是在1868年的伦敦,由当时英国机械师德·哈特设计。
虽然在它出现的23天里,伦敦议会大厦广场的交通得到了很好的改善,却因为煤气灯的突然爆炸自灭而被取缔。
直到1914年,交通灯才又被设计师们想起以控制日益严峻的交通问题。
随着各种交通工具的发展及交通控制的需要,1918年出现了世界上第一盏名副其实的三色交通灯。
黄色灯的发明者是我国的胡汝鼎,黄色信号灯的出现解决了红绿灯突变时产生的危险,因此直到现在全世界依然使用着这一套以红、黄、绿三色信号灯为一体的完整的指挥系统。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
社会在发展,道路也越来越宽阔,车流量和人流量也越来越大,因此交通信号灯不能只根据程序在灯的颜色变换上面来控制,未来的交通信号指挥系统应该往更加智能化的方向发展,不仅可以按照程序进行三色切换,还能够根据实时车流量、人流量、车的载重来判断交通灯的时间长短,做到更加的人性化。
第二章系统硬件设计
2.1芯片简介
2.1.1单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单
片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中
央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
2.1.2AT89S52单片机介绍
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
1)引脚介绍
图1AT89S52单片机引脚图
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2)主要功能
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
2.1.374LS245芯片简介
图274LS245芯片引脚图
74LS245是常用的芯片,用来驱动LED或者其他的设备,它是8路同相三态双向
总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,/E端接地,保证数据现畅通。
8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.i←Di),其它时间处于输出(P0.i→Di)。
2.1.4LED的特性及使用
发光二极管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是PN结。
因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。
此外,在一定条件下,它还具有发光特性。
在正向电压下,电子由N区注入P区,空穴由P区注入N区。
进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。
图3七段LED数码管引脚图
交通灯倒计时显示部分为共阴LED数码管,如图3。
即LED的阴极全部接低电平,阳极接高电平的LED亮,这样就能显示数字。
2.2系统硬件设计
2.2.1系统框图
图4数显交通灯系统组成框图
工作原理:
按照系统设计的要求和功能,将系统分为主控模块、LED显示模块、电源电路、复位电路、晶振电路、驱动电路等几个模块,系统组成框图如图4所示。
主控模块采用AT89S52单片机,显示模块采用七段共阴LED数码管。
晶振电路为单片机提供稳定、高频率的实基脉冲,使得单片机能够准确的执行命令指挥交通灯得工作。
按键电路可以再必要时转换交通灯的工作方式,适应实时交通情况。
复位电路作用于发生意外的情况下,可以使交通灯迅速回到正常工作状态。
2.2.2电源电路的设计
图5电源电路原理图
如图5,该电路输入为220V交流电,经过整流滤波实现稳定的直流5V电压输出。
原理:
220V交流电通过变压器降压后通过二极管桥式整流电路得到一个电压波动很大的直流电源,再通过330uF的电解电容滤波实现电压的平稳输出,此时得到大约11V的直流电压。
为了得到稳定的5V电压输出,在这里接一个7805三端稳压器。
7805最大输出电流为1A,从而使负载得到保护。
仿真测试:
按照电路设计,在输入端加上220V的交流电源之后,LED发光显示工作状态,使用万用表对输出进行开路测试,显示输出为5.02V。
输出端接入10K左右负载后,显示输出为4.85V。
2.2.3单片机复位电路工作原理及设计
图6单片机复位电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按键复位和上电复位。
此处电路采用手动按键复位的方式。
如图6,当按键按下时,RST端直接接5V电源电压,由于人按键时间最短也要数十毫秒,因此完全满足复位的时间条件。
2.2.4单片机晶振电路工作原理及设计
图7单片机晶振电路
晶振是晶体振荡器的简称。
它用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
如图7,在XTAL1和XTAL2两引脚接入晶体振荡器,在晶振的两端并联两个30pF的电容,对振荡器频率有微调的作用,震荡范围为1.2~12MHz。
2.2.5按键电路的设计
图8按键电路
为了可以人工控制调节东西南北方向通行时间,因此在此电路中加入按键电路。
如图8,当按下S2时,南北通行时间加长;当按下S3时,东西通行时间加长。
S4为执行中断程序按键,当按下时,单片机执行中断服务程序。
2.2.6时间倒计时显示电路
图9显示电路
如图9所示,电路共有四组两位数码管和交通灯组。
J6,J7为人行道交通灯,J8,J9,J10为左右转和直行交通指示灯,数码管显示直行倒计时。
同方向的交通灯组显示相同。
同方向直行交通灯显示与人行道交通灯显示时间长短相同。
2.2.7电路原理图及工作原理
按照设计要求,系统分为主控模块,LED显示模块,复位电路,晶振电路,按键电路几个部分。
如图10,主控模块即AT89S52单片机,P0口和P2口控制东西南北交通灯显示,P1口控制数码管的倒计时显示。
复位电路为按键复位,按键按下,单片机开始工作。
晶振电路为无源晶振,使用12MHz晶体振荡器。
按键电路三个按键分别为南北通行时间加长,东西通行时间加长,中断服务程序入口。
图10电路原理图
第三章系统软件设计
3.1系统主程序流程图
图11主程序流程图
主程序即交通灯正常运行状态下单片机执行的命令,如图11,通过主程序流程图可以看出,在正常工作状态下,东西道和南北道的通行时间和停止时间是相同的,人行道的通行时间也相同。
若交通状况一切良好则单片机一直按照此流程循环执行。
3.2系统子程序
3.2.1延时子程序
单片机延时程序的编写有以下两种常用指令:
空操作指令NOP,循环转移指令DJNZ。
NOP为单周期指令,功能只是消耗一个机器周期,而DJNZ为双周期指令,其功能是将第一个操作数减1,并判断是否为0,不为0则转移到目标地址,为0则往下顺序执行。
这样就可以利用循环嵌套实现时间较长的延时。
在此程序中利用的是定时器的中断进行延时,定时器中断20次为1秒。
定时中断子程序:
PUSHACC
PUSHPSW
CLRTR0
CLRTF0
MOVTL0,#0B0H
MOVTH0,#3CH
DJNZR2,DS_C
MOVR2,#20
DEC30H
MOVA,30H
3.2.2紧急中断子程序
当十字路口发生紧急事件或者有紧急车辆需要通行时需要执行紧急中断子程序。
当事件处理完毕恢复正常交通。
PUSHACC
PUSHPSW
CLRIE0
CLRTR0
CPLURF
JBURF,UR_CON;紧急结束;跳转到正常交通状态
MOVP0,#49H
MOVP2,#15H
AJMPUR_R
3.2.3显示子程序
由于数显交通灯需要一直显示倒计时,因此显示子程序一直处于循环执行状态,并且每次都扫描按键电路,当有按键按下时执行时间加长程序来调整十字路口交通灯显示时间,若没有按键按下,则返回继续执行显示程序。
显示子程序:
MOVP3,#0DFH;选中南北方向的十位数码管
MOVA,#30H
MOVB,#10
DIVA,B
MOVCA,@A+DPTR
MOVP1,A
LCALLD1MS
……
SETBP3.0
SETBP3.1
JNBP3.0,DIS_S;查询是否第一个按键按下
JNBP3.1,DIS_E;查询是否第二个按键按下
AJMPDIS_R;没有键按下则返回
若有按键按下:
(设为第一个按键按下)
DIS_S:
LCALLD5MS;按键去抖
JNBP3.0,DIS_SN
AJMPDIS_R
DIS_SN:
MOV40H,#50;对通行时间重新分配,南北通行时间加长
MOV41H,#30
AJMPDSI_R
3.3系统程序清单
程序分主程序和中断程序,计时采用延时程序进行,延时程序的执行时间为1s,用特殊功能寄存器PSW的第6位FO作A、B道的放行标志,PSW15=0时,A道放行;PSW15=1时,B道放行。
工作寄存器R4作为计数器(对1s计数)。
A道放行时,R4中存放立即数#5AH(十进制数90),R4计数90次时,A道放行正好90s;B道放
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S51 单片机 交通灯 设计