交通灯控制系统.docx
- 文档编号:6971499
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:16
- 大小:109.90KB
交通灯控制系统.docx
《交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统.docx(16页珍藏版)》请在冰豆网上搜索。
交通灯控制系统
目录
第1章绪论1
1.1概述1
1.2设计目的1
第2章交通信号灯的硬件设计及工作原理2
2.1系统设计原理概述2
2.1.1系统组成2
2.1.2系统工作原理3
2.2系统的硬件设计3
2.2.1AT89S52的振荡器及时钟电路3
2.2.2复位及复位电路4
第3章交通灯控制系统的软件设计6
3.1软件系统功能概述6
3.2软件程序7
3.2.1主程序7
3.2.2一秒定时子程序9
3.2.3显示子程序10
第4章调试与故障分析11
4.1硬件调试、故障分析及解决方法11
4.2软件调试故障分析12
小结14
参考文献15
附录一电路原理图16
附录二源程序17
第1章绪论
1.1概述
随着经济发展,城市化速度加快,机动车辆占有量急剧增加,由此引发出日益严重的交通问题:
交通拥挤甚至堵塞,交通事故频繁,空气和噪声污染严重,公共运输系统效率下降等。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
基于单片机控制的交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1.2设计目的
(1)加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
(2)用单片机模拟实现具体应用,使个人设计能够真正使用。
(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。
(4)提高利用已学知识分析和解决问题的能力。
第2章交通信号灯的硬件设计及工作原理
2.1系统设计原理概述
本系统选择单片机AT89S52作为交通灯控制器,对LED交通灯和倒计时信号灯进行实时控制。
绿灯亮放行23秒,黄灯亮警告2秒,然后红灯亮禁止25秒,然后绿灯亮放行,交替闪烁,同时用两位数码管进行倒计时显示。
使用P1、P2口输出信号灯的控制码,串行口输出LED显示器的段码。
当使两条线路交替地成为放行线和禁止线时,就可以实现定时交通控制。
2.1.1系统组成
交通灯的原理电路以微处理器AT89S52为核心,实时地对LED交通信号灯,倒计时显示器进行控制。
大部分的功能都是由单片机软件编程来完成,一方面降低了系统的成本,一方面又提高了系统的稳定性和可靠性。
AT89S52这种单片机的内部集成了储存单元,可以用很少的外围元件来构成功能强大的系统,而且通过总线扩展和程序修改,可以很方便的进行功能的修改和扩展,拥有广泛的应用前景。
用单片机实现交通信号灯的控制,真正实现起来又会出现诸如信号的驱动,车辆到达的感知等许多具体问题。
由于实验室提供的实验设备和器材有限,在此我们仅以模拟的方式进行说明。
所谓模拟,就是一绿、黄、红三只共两组发光二极管表示交通灯信号。
2.1.2系统工作原理
本系统选用AT89S52作为交通灯控制器,对LED交通灯和倒计时信号灯进行实时控制。
绿灯亮放行23秒,黄灯亮警告2秒,然后红灯亮禁止通行25秒。
然后绿灯亮放行,交替闪烁,同时使用两位数码管进行秒数递减时间显示。
使用P1,P2口输出信号灯的控制代码,串行口输出LED显示器的段码。
当使两条路线交替的成为准行和禁止线时,就可以实现定时交通控制。
交通灯的总体框图如图2-1所示。
图2-1交通灯总体框图
2.2系统的硬件设计
2.2.1AT89S52的振荡器及时钟电路
时钟电路用于产生单片机所需要的时钟信号,单片机在时钟信号控制下各部件之间同步协调工作,时钟信号控制着计算机的工作节奏。
在MCS-51芯片内部都有一个用于构成振荡器的高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2,而在芯片的外部,XTAL1,XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自振荡器,在引脚XTAL2上输出3V左右的正弦波,这就是单片机的振荡电路,如图2-2所示。
图2-2振荡电路图
因为XTAL1和XTAL2之间外接的是石英晶体,所以电容C2和C3的值选择为30pF。
C2、C3对振荡频率有微调作用,石英晶体的频率范围可在1.2~12MHz之间选择。
本系统选用了12MHz的石英晶体。
为了减少寄生电容,更好的保证振荡器稳定、可靠的工作,本人在焊接时尽可能使振荡器和电容排得与AT89S52靠近。
实际上AT89S52也可使用外部振荡器。
这时,外部脉冲信号是经XTAL2引脚注入,由于XTAL2端逻辑电平不是TTL的,故需外接一个上拉电阻。
外部振荡脉冲源方式常用于多片AT89S52同时工作,以便于同步。
因为我没有使用这种方式,故AT89S52外接时钟源接法在此不再叙述了。
2.2.2复位及复位电路
1.复位操作
复位是单片机的初始化操作,单片机在启动运作时,都需要先复位,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的初始化之外,当由于程序出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。
除PC之外,复位操作还对其他一些寄存器有影响,复位状态如表2-1所示。
表2-1寄存器复位状态表
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
PMOD
00H
SBUF
不定
2.复位信号及其产生
RST脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机械周期)以上。
由于使用了12MHz的晶振,复位信号持续时间要超过2μs才能完成复位操作。
3.复位电路
复位操作上有上电自动复位和按键手动复位两种。
上电自动复位是通过外部复位电路的电容充电来实现的。
上电瞬间,RC电路充电,RST引脚断出现正脉冲。
这样,只要电源VCC的上升时间不超过1ms,就可以实现上电自动复位,即接通电源就可以完成系统的复位操作。
这种复位方式虽然简单,但是有它的缺点,即:
当当由于程序运行出错或操作错误使系统处于死锁状态时,我们没有复位键,所以无法重新启动,而只有再次接通电源。
考虑到这个原因,本系统没有采用上电自动复位方式,而是采用按键手动复位方式进行复位。
按键手动复位又分为按键电平复位和按键脉冲复位两种。
其中按键电平复位是通过复位端经电阻与VCC电源接通而实现的;而按键脉冲复位则是利用RC微分电路产生的脉冲来实现的。
由于按键脉冲复位电路比按键电平复位电路复杂一些,考虑到设计电路应该简单可靠,本系统采用了按键电平复位电路。
按键电平复位电路如图2-3所示。
图2-3单片机复位电路
上述电路图中的电阻电容参数恰好适宜于12MHz的晶振,它能保证复位信号高电平持续时间大于2个机械周期。
第3章交通灯控制系统的软件设计
3.1软件系统功能概述
从系统的最顶层来分析,系统的软件可划分为三大模块:
1.监控程序:
这一程序是系统的主程序,这一模块又可以分解为2个模块:
初始化模块和控制处理模块。
2.显示程序:
这一程序完成系统的显示功能,同时这一模块分解为延时子程序和显示子程序。
3.计时程序:
此程序是完成秒表的计时功能。
在编译的过程中没有用到定时器/计时器,而是将单片机划分为二种状态:
设置初值,计时循环。
3.2软件程序
从系统的设计要求可知,本系统的软件可划分为三大模块:
控制主程序、显示子程序、一秒钟延时子程序。
计算机能够识别的程序可以用很多种语言来编程。
本设计要用软件来实现秒计时,采用汇编语言来实现软件程序的设计。
3.2.1主程序
主程序是单片机系统控制程序的主框架,它是一个顺序执行的无限循环的程序,运行过程必须构成一个圈。
本交通灯主程序主要完成的是:
初始化,设置显示初始值,控制交通灯亮灭,调用延时子程序,循环。
其流程图如图3-1所示。
图3-1主程序流程图
3.2.2一秒定时子程序
如果一个系统中有多个定时需要,我们就可以写一个基本的定时程序。
然后以此程序作为子程序,通过调用的方法实现所需的不同定时。
1秒定时子程序流程图如图3-2所示。
N
Y
N
Y
图3-21秒定时子程序流程图
3.2.3显示子程序
移位寄存器74LS164没有译码功能仅有串入并出作用。
因此,LED要显示的系统字符必须通过软件查表译码法转换成段选码,然后由P3.0口送入74LS164的串行输入端,再并行输出到LED的段选端,显示子程序的流程图如图3-3所示。
N
N
Y
Y
图3-3显示子程序流程图
第4章调试与故障分析
调试是论证并实现设计的必要途径,一般来说,智能化的应用系统,要求实现的功能比较强大。
设计者在设计系统时,要完全考虑到所有方面,并预期到一切可能发生的情况是不大可能的,但这一切可以通过调试来实现。
本设计的调试主要分为两个步骤:
硬件调试和软件调试。
4.1硬件调试、故障分析及解决方法
调试的关键就是对硬件的调试。
因为设计的最终目的是硬件的实现。
硬件电路按设计的原理图,焊接完以后进行硬件电路的测试。
测试整个系统的工作电流,整个系统的工作电流大约在100~200mA左右。
测试显示器件能否正常工作:
把LED的地端与地相连,电源(+5V)接上300Ω的电阻,分别与LED的a、b、c、d、e、f、g相接触,观察各段是否点亮。
系统加上电后,分别给单片机、数码管、移位寄存器的VCC端口加上+5V的电源。
检查各个芯片的GND端是否连接正确。
在硬件仿真的过程中,同时也发现了很多的故障问题。
具体如下:
打开电源时,电路毫无反应,用电压表测量后,发现VCC与GND之间的电压为0,这说明他们之间短路了,经检查之后发现这是由于焊接工艺不精所造成的。
在硬件电路已调试完毕,软件程序也已编译无误,并且在仿真通过的情况下,再对单片机进行烧写后,发现秒表计时出现几个乱码,查出错误的原因是程序中的段码表有错。
改正段码表后,秒表运行正常。
接上电源后,数码管和信号灯都亮,但是一直没有发生变化。
用电压表去测量单片机的I/O口,发现电压没有发生变化。
于是在确定单片机没有烧坏之后,原因是单片机没有执行命令,重新对单片机进行烧录。
结果系统就开始运行了。
4.2软件调试故障分析
软件调试主要是通过WAVE仿真软件来进行。
利用WAVE软件仿真,可以通过单步和跟踪相结合的方法,将程序从头到尾走一遍,以此来验证设计是否正确。
软件的调试,按照在设计中的模块进行调试,调试过程中可以在每一个模块中再分为几个小模块。
从最基本,最简单的模块开始调试,调试通过以后,再调试下一个模块。
下面我们具体介绍软件调试的过程。
一秒定时子程序的调试:
本系统选择了软件计时,所以,倒计时调试的工作基本集中在软件中,运行程序时发现倒计时显示的数字完全是混乱的,没有任何规律,首先我先看了一下硬件电路板,看看有没有连线错误,经仔细检查,没发现错误,于是我断定问题一定在软件程序上,经过认真的检查,发现查表命令有错误,经改正,错误排除。
调试这一部分程序,采用跟踪运行方式,这样随着程序的开始,一个模块中也可以分为几部分,这样调试过程中出现问题,就很容易找到问题的原因。
调试某一个模块时,要注意其内部的总体结构,注意这一模块可分为几部分,并且注意各部分是否有相同的编程结构,如果存在着相同结构,我们只要调通一部分,其它各部分按照这已调好的进行复制就可以了,这样就可以大大缩短了调试时间。
信号灯显示程序的调试:
信号灯的控制数据由P1,P2口输出,在PROTEUS中进行仿真的时候发现信号灯的变化规律不满足设计要求。
这时就记录下来在那种情况的信号灯不满足要求,然后回到程序里找出相应的控制数据进行修改,这样信号灯控制部分就调好了。
小结
本系统硬件的设计采用了单片机AT89S52和移位寄存器74LS164为核心器件,实现了交通灯状态的循环显示和显示时间倒计时功能。
经过这次课程设计,我觉得自己学到了不少东西。
归纳起来,主要有以下几点:
1.经过这次智能仪器仪表课程设计与实践,我接触到了一些平时书本上没讲的知识和自己以前没有遇到过的问题、元器件以及相关的调试经验,发现了自己很多不足之处。
我还体会到了所学基本理论知识的重要性,知识掌握得越多越深入,设计就能做得就更全面、更顺利、更好。
2.学会了怎样查阅资料和利用工具书。
在设计过程中会遇到困难是必定的,在这个时候就要系统地去查找一下资料,学习一下别人的方案,然后加以吸收利用,以应用到自己的设计上。
这样不但能提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识。
3.课程设计对以前学过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。
还有就是使自己学到许多新的知识,使自己的知识面更广。
参考文献
[1]孙晓艳.基于单片机的交通灯控制系统设计与模拟.南宁职业技术学院学报.2007,(13):
108
[2]黄仁欣.马彪.单片机原理及应用技术.清华大学出版社.2005:
10-12.
[3]蓝厚荣.单片机驱动LED数码管的方法.电气时代.2008.(4):
94-95.
[4]张毅刚.刘杰.单片机原理及应用.哈尔滨工业出版社.2004:
158-178.
[5]林敏,于忠得.AT89C2051单片机串行口扩展的LED显示接口电路.计量技术.2002,
附录一电路原理图
附录二源程序
主程序MAIN:
MAIN:
MOVSP,#60H;置指针地址
MOVSCON,#00H;串行口置工作方式0
CLRTI;串行口接收中断标志,清零
H1:
MOVP1,#41H;B线直行放行A线禁止
MOVP2,#0F6H ;B线人行道放行A线禁止
MOVR2,#30;延时30秒
MOVR3,#25
LCALLDELAY;调用延时程序
MOVP1,#81H;B线左转放行A线禁止
MOVP2,#0FAH
;AB线都禁止
MOVR2,#13
MOVR3,#13
LCALLDELAY1
MOVP1,#21H;B线警告A线禁止
LCALLDELAY
MOVP1,#14H;A线人行道放行B线禁止
MOVP2,#0F9H;A线人行道放行B线禁止
MOVR2,#25
MOVR3,#12
LCALLDELAY
MOVP1,#18H;A线左转放行B线禁止
MOVP2,#0FAH;AB线都禁止
MOVR2,#13
MOVR3,#13
LCALLDELAY1
MOVP1,#12H;A线警告B线禁止
LCALLDELAY
LJMPH1
定时子程序
DL:
MOVR0,#20;延时20*50=1秒
MOVTMOD,#10H;置TMOD,T1定时器,方式2
MOVTH1,#3CH;高位置3CH
MOVTL1,#0B0H;低位置0B0H
SETBTR1;启动T1定时
LOOP1:
JBCTF1,NEXT0;位变量为1,执行下一条指令
SJMPLOOP1;短转移到LOOP
NEXT0:
MOVTL1,#0B0H;置低位080H
MOVTH1,#3CH;置高位3CH
DJNZR0,LOOP1
显示子程序:
DELAY:
LCALLDL
DECR2;数据传送
MOVDPTR,#CDATA;置表初地址
MOVA,R2;屏蔽R2的高位
MOVR4,A
MOVR6,#00H
MOVR5,#08H
LOOP0:
CLRC;进位位清零
MOVA,R4
RLCA;A循环左移
MOVR4,A
MOVA,R6
ADDCA,R6;将R6与A相加,结果存入A中
DAA;加法调整指令
MOVR6,A;把A送入R6中
DJNZR5,LOOP0;比较R5与LOOP1
MOVA,R6
ANLA,#0FH;屏蔽A的高四位
MOVCA,@A+DPTR
MOVSBUF,A;串行发送数据
AA0:
JBCTI,A0
SJMPAA0
A0:
MOVA,R6
SWAPA;A的高四位与低四位交换
ANLA,#0FH;屏蔽A的低四位
MOVCA,@A+DPTR
MOVSBUF,A;串行发送数据
AAB0:
JBCTI,M
SJMPAAB0
M:
RET
CDATA:
DB0FBH,61H,0DDH,0F5H,67H,0B7H,0BFH,0E1H,0FFH,0F7H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制系统