交通灯设计说明书.docx
《交通灯设计说明书.docx》由会员分享,可在线阅读,更多相关《交通灯设计说明书.docx(31页珍藏版)》请在冰豆网上搜索。
![交通灯设计说明书.docx](https://file1.bdocx.com/fileroot1/2023-2/24/c102f304-b69a-4ea6-a36c-cdc42bf3e9bc/c102f304-b69a-4ea6-a36c-cdc42bf3e9bc1.gif)
交通灯设计说明书
单位代码
学 号
分类号
密级
毕业设计(论文)
单片机的交通灯设计
院(系)名称
工学院机械系
专业名称
机械设计制造及其自动化
学生姓名
田军行
指导教师
何春霞
2013年4月20日
黄河科技学院课程设计任务书
工学院机械系机械设计制造及其自动化专业09级三班
学号090122040姓名田军行指导教师何春霞
题目:
基于单片机的交通灯设计
课程:
单片机应用技术
课程设计时间2012年4月15日至2012年4月25日共2周
课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)
1.设计要求
利用单片机AT89C51设计一个交通灯系统,程序南北段东西段直行40s绿灯显示,各段路直行时人行道路口绿灯显示。
交通灯亮的时间用数码管显示,并增加拐弯方向控制,合理分配各段路口拐弯时间。
2.设计任务与要求
2.1系统硬件电路设计
根据该系统设计的功能要求选择所用元器件,设计硬件电路。
要求用Proteus绘制整个系统电路原理图。
2.2软件设计
根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。
2.3Proteus仿真
用Proteus对系统进行仿真并进行软硬件调试。
2.4编写设计说明书
内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前加程序功能注释。
4.工作计划
序号
设计内容
所用时间
1
布置任务及调研
4天
3
制作与调试
8天
4
撰写设计报告书
2天
合计
14天
5.主要参考资料
单片机课程设计指导书皮大能北京理工大学出版社2010.7
8051单片机实践与应用吴金戎清华大学出版社2003.8
单片机技术基础教程与实践夏路易电子工业出版社 2008.1
MCS-51单片机原理接口及应用王质朴北京理工大学出版社2009.11
基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社
2009.7
指导老师签字:
日期:
目录
1课题背景1
1.1交通现状1
1.2交通灯控制方法1
1.3交通灯控制系统的总体方案设计1
2设计方案分析2
2.1过程分析………………………………………………………………………..2
2.2特殊情况…………………………………………………………………...2
3交通灯系统控制硬件设计3
3.1单片机AT89C513
3.2各模块电路…………………………………………………………………..…5
3.2.1主控制系统5
3.2.2交通灯输出显示系统5
3.2.3时间显示电路6
3.3电源电路6
3.4LED显示接口电路6
3.4.1LED显示器简介.6
3.4.274HC244缓冲器芯片介绍.6
3.574HC244缓冲器芯片介绍…………………………………………..7
3.6系统硬件组成及原理图……………………………………………7.
4交通灯控制系统软件设计…………......................................8
4.1.交通灯显示时序的理论分析……………………………………….....8
4.2交通灯显示的理论分析9
4.3PROTEUS仿真图:
11
4.4交通灯程序12
5仿真测试、数据及结果分析17
总结20
参考文献:
21
1课题背景
1.1交通现状
由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:
交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。
日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。
随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。
1.2交通灯控制方法
目前,国内的交通灯设计方案有很多,有应用PLC对交通灯控制系统实现控制的设计;有应用CPLD实现对交通灯控制系统的设计;有应用单片机对交通灯控制系统实现控制的设计[4]。
交通灯一般设置在十字路口,用红、绿两种颜色的指示灯,并加上显示倒计时的计时器来控制车辆通行。
本设计采用标准AT89C51单片机作为控制器,采用3位LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用的是高亮发光二极管;LED显示采用动态扫描,以节省端口数。
特种车辆通行采用红外线发射及接收识别方法实施中断完成,采用霍尔车辆检测传感器检测电路完成车流量大小的检测。
由于AT89C51单片机自身带有2个定时/计数器、5个中断源,端口刚好满足要求。
该系统具有电路简单,设计方便,显示亮度高,耗电少,可靠性高等优点。
1.3交通灯控制系统的总体方案设计
本设计研究的是基于AT89C51单片机的交通灯智能控制系统。
根据交通控制系统的设计原理,阐述了硬件和软件方面开发的整个过程。
主控系统采用AT89C51单片机作为控制器,控制通行倒计时及右拐、右拐、直行、行人的通行,占用端口少,耗电也最小。
系统电源采用独立的+5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定[5]。
该设计可直接在I/O口上接按键开关,精简并优化了电路。
结合实际情况,显示界面采用点阵LED数码管动态扫描的方法,满足了倒计时的时间显示输出和状态灯提示信息输出的要求,减少系统的复杂度。
2设计方案分析
利用单片机AT89C51设计一个交通灯系统,程序南北段东西段直行40s绿灯显示,各段路直行时人行道路口绿灯显示。
交通灯亮的时间用数码管显示,并增加拐弯方向控制,合理分配各段路口拐弯时间。
2.1过程分析
南北段直行通行(绿灯)、东西段禁止(红灯)40s,南北段人行道通行(绿灯),东西段人行道禁止(红灯),同时南北段和东西段方向的数码管分别从40s和60s开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后东西段左右拐(左右拐灯亮)通行、南北段禁止(红灯)20s,南北段、东西段人行道都禁止(红灯),同时南北段数码管从80s和东西段方向的数码管20s开始倒计时,至最后5s时南北段左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯)40s,东西段人行道通行(绿灯),南北段人行道禁止(红灯),同时东西段和南北段方向的数码管分别从40s和60s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)20s,东西段、南北段人行道都禁止(红灯),同时东西段数码管80s和南北段方向的数码管从20s开始倒计时,至最后5s时东西段左拐灯变成黄灯闪烁。
依次循环。
2.2特殊情况
交通十字路口往往会有意外发生,为了处理交通意外设计附加了道路禁止。
3交通灯系统控制硬件设计
3.1单片机AT89C51
AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)和128×8位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域[9]。
3.1.1AT89C51的主要性能
·内含4Kb可重编程的FPEROM;
·与MCS-51产品指令系统完全兼容;
·128×8位的内部RAM;
·4个8位(32根)双向可位寻址的I/O端口;
·2个16位的计数/定时器;
·全双工方式的串行通道(UART);
·6个中断源;
·5个向量二级中断结构;
·最高时钟振荡频率可达12MHz;
·指令集中64条为单周期指令,支持6种寻址方式,共111条指令;
·低功耗空闲和掉电方式;
·片内振荡器和时钟电路。
3.1.2AT89C51的引脚功能
AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图3.2所示。
图3.289C51单片机引脚图
各引脚功能说明如下:
(1)主电源引脚
Vcc(40脚):
接+5(1±20﹪)V电源正端;
Vss(20脚):
接地。
(2)I/O引脚
P0口(39~32脚):
P0.0~P0.7统称为P0口。
P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。
作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。
P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在Flash编程和校验时,P1口作为第八位地址接收。
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般作为准双向I/O使用。
P2是一个带内部上拉电阻的8位双向I/O口。
P2的输出缓冲器可驱动4个TTL逻辑门电路。
当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。
当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。
在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。
当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。
此时由于外部下拉为低电平,P3口将输出电流(IIL)。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
3.2各模块电路
3.2.1主控制系统
主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-51系列产品指令系统及引脚。
片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(1±20﹪)V的电源电压,128×8位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。
单片机的P1口及P2口分别应用于控制南北及东西方向的通行灯,P0口及P3.0~P3.2口应用于4组LED计时器的控制,T0和T1分别作为东西方向和南北方向和车流量流量控制,INT0和INT1分别用于东西方向和南北方向的特种车辆通行紧急转换电路[1
3.2.2交通灯输出显示系统
交通灯显示直接选用红黄绿灯简单明了
3.2.3时间显示电路
红绿灯通行时间采用数码管显示,这是一种很好的方法。
通行剩余时间采用高亮7段LED发光数码管,采用共阳数码管。
由于每个道口时间显示相同,4组三极管就需192mA,所以设计中采用三极管9012。
因为每段输出口需吸收24mA电流,所以电路设计中使用驱动集成块74HC244。
LED显示接口硬件电路由74HC244缓冲器、LED显示器组成。
如图3.9所示74HC244用来提高LED显示器的驱动能力
3.3电源电路
整个系统采用的是+5V电压,因此采用不可调的3端稳压器件,用LM7850就可以满足系统电源的要求。
LM7850内部是由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成的三端集成稳压电源,且其低功耗,高效率,纹波系数小,输出电压稳定。
3.4LED显示接口电路
3.4.1LED显示器简介
通常所说的LED显示器由7个发光二极管组成因此也称之为七段LED显示器,其排列形状如图3.10所示。
此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。
通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他符号。
LED显示器中的发光二极管共有两种连接方法:
(1)共阳极接法
把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。
(2)共阴极接法
把发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。
使用LED显示器时要注意区分这两种不同的接法。
为了显示数字或符号,要为LED显示器提供代码,这些代码是为显示字形的,因此称之为字形代码。
七段发光二极管,再加上一个小数点位,共计八段。
因此提供给LED显示器的字形代码正好一个字节。
各代码位的对应关系如表3.4。
表3.4代码对应关系表
代码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
A
3.5.74HC244缓冲器芯片介绍
74HC244是一种三态输出的八缓冲器和线驱动器,该芯片的引脚图如图3-8所示。
由图可见,该缓冲器有8个输入端,分为两路——1A1~1A4,2A1~2A4,同时8个输出端,也分为两路——1Y1~1Y4,2Y1~2Y4,分别由1G和2G作为它们的选通工作信号。
当记为低电平时,1Y1~1Y4的电平与1A1~1A4的电平相同,即输出反映输入电平的高低;同样,当2G为低电平时,2Y1~2Y4的电平与2A1~2A4的电平相同。
而当1G(或2G)为高电平时,呈高阻态,输出1A1~1A4(或2A1~2A4)为高阻态。
经74HC244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。
3.6系统硬件组成及原理图
根据要实现的具体功能,经过比较,我选用AT89C51单片机及外围器件构成最小控制系统,4组双色灯构成信号灯指示模块,东西南北方向分别构成倒计时显示模块,CCD采集车辆数量数据,红外线接收器接收中断信号,使实时中断来响应特种车辆的通行要求,接LED显示器[8]。
硬件原理图如图3.1所示:
图3.1硬件电路原理图
4交通灯控制系统软件设计
交通道口交通灯控制系统的控制程序主要包括以下几个部分:
主程序、红绿灯时间动态调节程序、显示程序、定时中断程序、车辆检测延时程序和特种车辆实时响应程序等。
4.1.交通灯显示时序的理论分析
下图所示为一种红绿灯规则的状态图。
图4.1状态S1南北直行通行
图4.2状态S2南北左拐通行
图4.4状态S4东西左拐通行
图4.3状态S3东西直行通行
依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如下表所示(其中逻辑值“1”代表直行通行,逻辑值“0”代表禁止通行,逻辑值“L”代表左拐通行):
S1的状态
E
S
W
N
逻辑值
0
1
0
1
显示时间
正常模式下为40S
S2的状态
E
S
W
N
逻辑值
0
L
0
L
显示时间
正常模式下为20S
S3的状态
E
S
W
N
逻辑值
1
0
1
0
显示时间
正常模式下为40S
S4的状态
E
S
W
N
逻辑值
L
0
L
0
显示时间
正常模式下为20S
程序就是在上述四种状态下循环转化的。
一个周期四个状态,在正常模式下共花费2分钟。
4.2交通灯显示的理论分析
4.2.1倒计时显示的理论分析
利用定时器中断,设置TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。
每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。
4.2.2状态灯显示的理论分析
黄灯闪烁同样可以利用定时器中断。
每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。
4.3程序图设计
图4.1主程序流程图
图4.2外部中断0中断流程图
4.3PROTEUS仿真图:
图4.3PROTEUS仿真图
.
4.4交通灯程序
;------------------------------------
;程序实现功能
;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。
;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。
;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。
;工作寄存器及存储单元分配
;1.工作寄存器
;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器
;2.片内存储单元
;30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元
;3.标志位
;00H:
南北通行标志位;01H:
东西通行标志位;02H:
紧急事件标志位
;-----------------------------------
SNFEQU00H;;;南北通行标志位
EWFEQU01H;;;东西通行标志位
URFEQU02H;;;紧急事件标志位
ORG0000H
LJMPMAIN;;;上电转主程序
ORG000BH;;;定时中断入口
LJMPDSZD
ORG0003H;;;紧急中断入口
LJMPURZD
ORG0030H
MAIN:
LCALLINIT;;;调用初始化子程序
LOOP:
LCALLDIS;;;循环执行显示子程序
AJMPLOOP
;///////////初始化程序
INIT:
SETBSNF
SETBEWF
SETBURF
MOVR2,#20;;;定时器中断20次为1s
MOVTMOD,#01H;;;初始化定时器
MOVTL0,#0B0H
MOVTH0,#3CH
SETBEA;;;开定时中断与紧急中断
SETBET0
SETBTR0
SETBEX0
SETBIT0;;;设置中断程控方式
MOVDPTR,#TAB;;;数值首地址放入DPTR中
MOV40H,#40;;;东南西北通行时间设置
MOV41H,#40
MOV30H,#40;;;通行时间初始化
MOV31H,#60
MOVP0,#4CH;;;初始化时南北通行并把交通灯状态分别放在32H和33H中
MOV32H,#4CH
MOVP2,#15H
MOV33H,#15H
RET
;////////////显示子程序
DIS:
MOVP3,#0DFH;;;选中南北方向的十位数码管
MOVA,30H;;;把显示数据送人数码管显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP1,A;;;
LCALLD1MS
MOVP3,#0EFH;;;选中南北方向的个位数码管
MOVA,B;;;送入数码管显示
MOVCA,@A+DPTR
MOVP1,A
LCALLD1MS
MOVP3,#7FH;;;选中第东西方向的十位数码管
MOVA,31H;;;送入数码管显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP1,A
LCALLD1MS
MOVP3,#0BFH;;;选中第东西方向的个位数码管
MOVA,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
AJMPDIS_R
DIS_E:
LCALLD5MS;;;按键去抖
JNBP3.1,DIS_EW
AJMPDIS_R
DIS_EW:
MOV40H,#30;;;东西通行时间加长
MOV41H,#50
DIS_R:
RET
;///////定时中断处理程序
DS_C:
LJMPDS_R;;;接力跳转
DSZD:
PUSHACC;;;保护现场
PUSHPSW
CLRTR0;;;关定时器及中断标志位并重新赋值
CLRTF0
MOVTL0,#0B0H
MOVTH0,#3CH
DJNZR2,DS_C;;;判断1m时间是否到达
MOVR2,#20;;;到达重新赋值
DEC30H;;;南北方向通行时间减一
MOVA,30H;;;把减一后的时间送入显示存储单元
;;;;;;;南北通行到达最后4秒时黄灯闪烁
DS_10:
CJNEA,#4,DS_11;;;如果通行时间剩余4秒
JNBSNF,DS_11;;;判断是否是南北通行
MOVP0,#8AH
MOV32H,#8AH;;;把交通灯状态存入存储单元(后面类似)
DS_11:
CJNEA,#3,DS_12;;;不是剩余3秒,返回
JNBSNF,DS_12;;;不是南北通行时间,返回
MOVP0,#88H
MOV32H,#88H
DS_12:
CJNEA,#2,DS_13
JNBSNF,DS_13
MOV