交通灯控制电路实验设计报告.docx
- 文档编号:17202899
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:30
- 大小:283.86KB
交通灯控制电路实验设计报告.docx
《交通灯控制电路实验设计报告.docx》由会员分享,可在线阅读,更多相关《交通灯控制电路实验设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
交通灯控制电路实验设计报告
单片机原理及应用
课程设计报告书
题目:
城市道口交通灯控制系统的设计
姓名:
张晶邱佳平左凡容
学号:
093621001093621018093621058
专业:
电子信息科学与技术
指导老师:
徐武雄
设计时间:
2011年12月
目录
1.引言2
1.1.设计意义2
1.2.系统功能要求2
1.3.本组成员所做的工作3
2.方案设计3
3.硬件设计5
4.软件设计8
5.系统调试13
6.设计总结15
7.附录A;源程序15
8.附录B;作品实物图片26
9.参考文献27
城市道口交通灯控制系统的设计
1.引言
1.1.设计意义
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本系统采用单片机AT89SS52为中心器件来设计交通灯控制器,系统实用性强、操作简单交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体、扩展性强。
本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用C51编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
关键字:
电子线路AT89S52LED交通灯
1.2.系统功能要求
1.2.1.系统功能:
城市道口交通灯控制系统模型采用单片机作为主控制器,用于十字路口的车辆及行人的交通管理,每个方向既有左拐、右拐、直行及行人4种通行指示灯,计时牌显示路口通行转换剩余时间。
1.2.2.设计要求:
1.进一步熟悉和掌握单片机的结构和工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。
1.3.本组成员所做的工作
邱佳平(093621018):
主要负责元器件的检查、电路板的排版、元器件的焊接
左凡容(093621058):
主要负责电路的检查、协助焊接工作、电路的连线
张晶(093621001):
主要负责电路的分析测试、实验设计报告的完成
1.4实验原材料
电阻:
10k1个电容:
30p2个电解电容:
10u1个
51035个0.01u5个100u1个
47k3个
数码管3个三极管3个单片机AT89S521个
集成块74LS2443个IC插座:
40脚2个20脚3个
发光二级管:
红17个绿16个按键开关2个
导线7m焊锡3m印刷版帽针4个排针3p晶振1个
2.设计方案
方案1:
采用标准AT89S52单片机作为控制器;显示倒计时显示采用3位LED数码管;左拐、右拐、直行及行人4中通行指示灯采用双色高亮发光二极管;LED显示采用动态扫描,以节约端口数。
按以上系统构架设计,单片机端口资源刚好满足要求。
该系统具有电路简单,设计方便,显示亮度高,耗电较少,可靠性高等特点。
整个电路组成框图如图2-1所示。
图2-1采用LED动态扫描的交通灯控制系统
方案2:
采用AT89C2051单片机作为控制器;通行倒计时显示采用16×16点阵LED发光管,左拐、右拐、直行及行人4种通行指示灯也采用16×16点阵LED发光管。
该系统设计框架如图2-2所示。
列驱动采用74LS595以实现串行端口扩展,行驱动采用4/16译码器74LS154动态扫描,译码器74LS154生成16条行选通信号线,再经过驱动器驱动对应的行线。
每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管。
这种设计方案的图案显示逼真,单片机占用端口资源少;缺点是需要大量的硬件,电路复杂,耗电量大,在模型制作中较少采用。
图2-2采用16×16点阵LED发光管设计的交通灯控制系统
方案3:
采用AT89C2051单片机作为控制器,通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。
这种方案设计占用单片机的端口最少,硬件也少,耗电量也最小;虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,所以较少采用。
通过以上综合分析可以看出,方案1具有综合设计优点,因此城市道口交通灯控制系统采用方案1设计。
3.硬件设计
整套电路系统由控制系统模块、通行灯输出控制显示模块和时间显示模块。
主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。
AT89S52具有1个8KB的Flash程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位的定时/计数器及一个串行口和6个向量二级中断结构。
单片机P0.0~P0.7及P3.0~P3.2用于4组3位LED计时器的控制,手动自动转换采用P3.7口按键,P1.0~P1.7及P2.0~P2.7分别控制南北和东西方向的红绿灯。
3.1主控制系统
图3-1-1单片机控制
图3-1-2南北方向红绿灯控制
图3-1-3东西方向红绿灯控制
图3-1-4数码管控制
3.2通行灯输出控制
道口交通灯指示采用高亮度红绿双色放光二极管,左拐、直行、右拐及行人各一个。
当发光电流为6mA时,按公式R=(5-1.8)/0.006计算,限流电阻应为510欧姆。
由于南北通行是双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。
另外,人行道口按4个灯算需24mA的吸收电流。
这样在单片机的输出喽需接驱动电路74HC244,以保护单片机的输出端口。
图3-2所示为道口指示灯电路图。
图3-2城市道口交通指示灯电路
3.3时间显示模块
道口通行剩余时间采用高亮红色7断LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”每个数码管6mA×8=48mA。
由于时间显示每个道口相同,4组需192mA,因此设计中采用中功率三极管9012。
由于单片机每个段码输出口需吸收24mA电流,因此在电路设计中也使用了驱动集成块74HC244.其显示驱动电路如图3-3。
图3-3时间显示驱动电路
3.4复位电路
3.5时钟电路
时钟倒计时初值通过键盘输入。
倒计时使用52单片机
内部定时器1实现计数,时钟控制部分是使用定时、计数器2
实现计时,以秒为基本单位在数码管中显示。
时钟部分:
当秒的
个位计时到了10,则秒个位清0,同时十位进一,以此类推;倒
计时部分显示是则递减显示。
此过程通过判断语句实现。
4.软件设计
道口交通控制系统程序主要分为以下几个模块:
初始化程序、主程序、定时中断程序和特种车实时响应程序等。
4.1初始化程序
初始化程序主要完成内存规划,定时器的工作模式、中断方式等的设定。
由于程序调用较多,因此初始化时堆栈指针设于80H处。
定时器T0、T1设为16位定时器模式,定时时间为50ms,T0为妙计时用,T1为通行结束闪烁用。
4.2主程序
主程序主要负责总体程序管理功能,实现人机交互设定。
由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。
主程序流程图如4-1所示。
图4-1主程序流程图
4.3定时器中断服务程序
定时中断服务程序主要用于行车及行人的通行指示,按照通行规则,红绿灯控制转换逻辑表如表4-1所示。
南
北
方
向
端口
控制功能
120~110s
110~70s
70~60s
60~10s
10~0s
P*.7
左拐红
0
0
0
1
1
P*.6
左拐绿
1
1
1
0
0/1
P*.5
直行红
1
1
1
0
0
P*.4
直行绿
0
0
0/1
1
1
P*.3
右拐红
0
1
1
1
1
P*.2
右拐绿
1
0
0
0
0/1
P*.1
行人红
1
1
1
0
0
P*.0
行人绿
0
0
0/1
1
1
道口控制字
66H
6AH
6AH/7BH
99H
99H/DDH
东
南
方
向
P*.7
左拐红
0
0
0
0
0
P*.6
左拐绿
1
1
1
1
1
P*.5
直行红
0
0
0
0
0
P*.4
直行绿
1
1
1
1
1
P*.3
右拐红
0
1
1
1
1
P*.2
右拐绿
1
0
0
0
0/1
P*.1
行人绿
0
0
0
0
0
P*.0
行人红
1
1
1
1
1
道口控制字
55H
59H
59H
59H
59H/5DH
表4-1道口通行方式控制码数据表
通行规则如下:
车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1min,各路右拐比直行滞后10s开放;车辆南北向左拐、各路右拐,行人禁行。
通行时间为1min;车辆东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1min,各路右拐比直行滞后10s开放;车辆东西向左拐、各路右拐,行人禁行。
通信时间为1min。
交通灯的4种通行规则,是以给控制红绿灯端口送控制码的方式实现的。
它的原理是,将按不同规则通行的个路口的红绿灯亮灭情况转换为单片机端口控制码。
其指示灯功能通过T0定时中断服务程序实现。
定时器T0定时益出中断周期设为50ms,中断累计20次(即1s)时对120s倒计时单元减1操作。
设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。
控制码分为5个时间段:
120~110s、110~70s、70~60s、60~10s、10~0s。
交通管理定时功能程序流程图如图4-3所示。
图4-3T0定时中断服务程序流程图
5.系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对交通灯通行方式功能的调试,行人通行指示功能调试,倒计时功能调试。
单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。
最后将各模块组合后在交道口模型上进行整体测试,使系统的所有功能得以实现。
5.1硬件调试
交道口交通灯控制系统的电路板焊接工作量非常大,并且采用万用板,电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行:
①通行方式功能调试:
包括对四种通行方式控制调试,行人和行车方向指示灯调试
②倒计时功能调试:
数码管显示值调试
③紧急情况手动控制功能调试:
包括按键功能及规则调试
5.2软件调试
本系统的软件系统很大,选用一般的仿真器对AT89S52进行调试。
除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。
采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。
5.3软硬联调
系统做好后,进行系统的完整调试。
主要任务是检验实现的功能及其效果并校正数值。
根据实测数据,逐步校正数据,使测量结果更准确。
单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。
5.4各模块调试
5.4.1交通灯通行方式功能的调试:
显示倒计时采用3位LED数码管;左拐、右拐、直行及行人4组通行指示灯采用双色高亮发光二极管。
接线繁琐,极易出错.检查二极管无故障,导线无断线,连线接头无互相搭联后可先写一个软件调试程序,依次检查东南西北方向的指示灯(发光二极管)是否点亮;若未点亮,则可能是连线接错.根据灯的亮灭情况依次查找直到电路正常工作为止。
我们主要出现的是数码管不亮的问题,后来通过检查,为连接线接错。
改正后数码管亮度也达到最佳了。
值得注意的是,南北方向、东南方向的指示灯要同时调试。
设计中将4种通行规则分成几种不同的亮灯方式,分成5个时间段:
120~110s、110~70s、70~60s、60~10s、10~0s。
经过调试指示灯的亮灭符合控制要求。
5.4.2紧急情况手动控制功能调试:
当按下手动开关时,南北方向和东西方向的红灯灭掉,绿灯亮起。
则说明该模块符合要求。
6.设计总结
本系统以AT89S52单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试速度。
设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用3位7段数码管,可以很直观地显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式,120s倒计时适用于车流量较大的大城市,60s倒计时可用于中小型城市。
在此次设计中,我们得到以下体会:
这这次时钟计时器设计的过程让我进一步熟悉各种芯片、元器件的功能,将从书本上的知识应用于实践,使我对各种芯片有了更深刻的了解。
经过这次试验我们又重新复习了各种电路如时钟电路、定时电路、LED显示电路的原理。
在电路板排版的设计时,既要考虑到各芯片与元器件之间的连接,又要考虑排版的美观;在焊接方面,我们了解到焊接某些器件时,要先消去电烙铁上的静电,防止静电对芯片特别是放大器件造成伤害,焊接晶振、三极管等芯片时要快,防止持续高温损坏芯片。
我们在焊接时争取一次性焊接成功,当焊接好时再去检查时非常困难,所以要非常的仔细。
而且要焊实,不能出现虚焊的情况,但也不要使电路板受热太长时间,以免铜盘被焊掉;从中我们学习到了大家的团结是非常重要的,组里的每一个成员都是必不可少的,因此团结合作的精神是非常的重要的。
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
7.附录A:
源程序
以下是城市道口交通灯控制系统模型控制用汇编程序:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;交通灯;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIMEEQU50H;秒计数用
TIMESFREQU51H;临时寄存器
CONR5EQU52H;T11秒定时计数用
TIMED0EQU55H;单向最大定时时间,直行开始,人行开始120
TIMED1EQU56H;各路右转开始时间110
TIMED2EQU57H;前行结束提醒70
TIMED3EQU58H;前行结束,人行结束,左转开始60
TIMED4EQU59H;左转结束提醒
TIMED5EQU5AH;左转结束
TIMED6EQU5BH;
TIMED7EQU5CH;
SNEQUP1;南北口
EWEQUP2;东西口
SCANEQUP3;扫描口
LEDOUTEQUP0;段码口
SNEWFLAGBIT09H;东西口与南北口转换标志
;按键在扫描口的最高位,按一下,全红灯,再按一下,恢复原状态
;
;定时器T0、T1溢出周期为50MS,T0为秒计数用,
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;中断入口程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG0000H;程序执行开始地址
LJMPSTART;跳到标号START执行
ORG0003H;外中断0中断程序入口
RETI;外中断0中断返回
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTTO执行
ORG0013H;外中断1中断程序入口
LJMPINT11;外中断1中断返回,119.120中断
ORG001BH;定时器T1中断程序入口
LJMPINTT1
ORG0023H;串行中断程序入口地址
RETI;串行中断程序返回
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;主程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
START:
MOVSP,#80H
MOVR0,#00H;清70H-7AH共11个内存单元
MOVR7,#8FH;
CLEARDISP:
MOV@R0,#00H;
INCR0;
DJNZR7,CLEARDISP;
MOVTIMED0,#78H;单向最大定时时间,直行开始,人行开始120
MOVTIMED1,#6EH;各路右转开始时间110
MOVTIMED2,#46H;前行结束提醒70
MOVTIMED3,#3CH;前行结束,人行结束,左转开始60
MOVTIMED4,#0AH;左转结束提醒
CLRSNEWFLAG;南北先通行标志位
MOVTMOD,#11H;设T0、T1为16位定时器
MOVTL0,#0B0H;50MS定时初值(T0计时用)
MOVTH0,#3CH;50MS定时初值
MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)
MOVTH1,#3CH;50MS定时初值;
JBSCAN.7,SSST;120秒管理
;以下为60秒管理
LCALLDL1MS
LCALLDL1MS
LCALLDL1MS
JBSCAN.7,SSST;干扰
MOVTIMED0,#60;单向最大定时时间,直行开始,人行开始60
MOVTIMED1,#55;各路右转开始时间55
MOVTIMED2,#35;前行结束提醒35
MOVTIMED3,#30;前行结束,人行结束,左转开始30
MOVTIMED4,#05;左转结束提醒
SSWAIT:
JNBSCAN.7,SSWAIT
LCALLDL1MS
LCALLDL1MS
LCALLDL1MS
JNBSCAN.7,SSWAIT
;
SSST:
MOVTIME,TIMED0;120秒
LCALLTUNBCD
MOVSN,#66H;
MOVEW,#55H;
SETBEA;总中断开放
SETBPX1
SETBEX1
SETBET0;允许T0中断
SETBTR0;开启T0定时器
MOVR4,#14H;1秒定时用初值(50MS×20)
MOVCONR5,#20
START1:
LCALLDISPLAY;调用显示子程序
JNBSCAN.7,KEYFUN;手动状态
SJMPSTART1;P1.0口为1时跳回START1;
KEYFUN:
LCALLDISPLAY
LCALLDISPLAY
JBSCAN.7,START1
CLRET0
CLRTR0
MOVSN,#056H;全车道停,行人通
MOVEW,#056H;
MOVTIME,#00H;时间显示0
LCALLTUNBCD
KEYWAIT:
LCALLDISPLAY;
JNBSCAN.7,KEYWAIT;
KEYY:
LCALLDISPLAY;等待按键按下
JBSCAN.7,KEYY
LCALLDISPLAY
JBSCAN.7,KEYY
KEYWAIT1:
LCALLDISPLAY;
JNBSCAN.7,KEYWAIT1;
MOVTIME,TIMED0;从新开始计时初值
LCALLTUNBCD
CLRSNEWFLAG;南北先通行标志位
SETBTR0
SETBET0
AJMPSTART1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;1秒计时程序;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;T0中断服务程序
INTT0:
PUSHACC;累加器入栈保护
PUSHPSW;状态字入栈保护
CLRET0;关T0中断允许
CLRTR0;关闭定时器T0
MOVA,#0B7H;中断响应时间同步修正
ADDA,TL0;低8位初值修正
MOVTL0,A;重装初值(低8位修正值)
MOVA,#3CH;高8位初值修正
ADDCA,TH0;
MOVTH0,A;重装初值(高8位修正值)
SETBTR0;开启定时器T0
DJNZR4,OUTT00;20次中断未到中断退出
MOVR4,#14H;20次中断到(1秒)重赋初值
JBSNEWFLAG,INT22
DECTIME
MOVA,TIME
CJNEA,TIMED1,LOOP11;判断是否小于110秒
LOOP11:
JCLOOP22;120-110
MOVSN,#66H;I
MOVEW,#55H;I
LJMPOUTT0;120-110
LOOP22:
MOVA,TIME
CJNEA,TIMED2,LOOP33;判断是否小于70秒
LOOP33:
JCLOOP44;110-70
MOVSN,#6AH;I
MOVEW,#59H;I
LJMPOUTT0;110-70
LOOP44:
MOVA,TIME
CJNEA,TIMED3,LOOP55;判断是否小于60秒
LOOP55:
JCLOOP66;70-60
MOV20H,SN;
CPL04H;
CPL00H
MOVSN,20H;I
MOVEW,#59H;I
LJMPOUTT0;70-60
LOOP66:
MOVA,TIME
CJNEA,TIMED4,LOOP77;判断是否小于10秒
LOOP77:
JCLOOP88;60-10
MOVSN,#99H;I
MOVEW,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制电路 实验设计 报告