单片机课程设计报告定时器控制交通指示灯.docx
《单片机课程设计报告定时器控制交通指示灯.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告定时器控制交通指示灯.docx(28页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告定时器控制交通指示灯
课程设计
课程单片机课程设计
题目定时器控制交通指示灯
院系
专业班级
学生XX
学生学号
指导教师
2013年7月8日
东北石油大学课程设计任务书
课程单片机课程设计
题目定时器控制交通指示灯
专业学号
一、任务
以AT89C51单片机为控制核心,利用单片机部定时器资源设计出一种可编程的交通指示灯模拟演示系统。
二、设计要求
[1]掌握单片机部定时器部分的基础知识;
[2]东西向绿灯亮5秒后,黄灯闪烁,闪烁5次亮红灯;红灯亮后,南北向由红灯变成绿灯,5秒后南北向黄灯闪烁,闪烁5次亮红灯,东西向绿灯亮,如此反复;
[3]基本电路包括:
单片机最小系统、LED指示灯电路等;
[4]提交设计报告、电路图及程序源码。
三、参考资料
[1]国钧,绍业,王凤翥.图书馆目录[M].:
高等教育,1957.15-18.
[2]润华,立山.模拟电子技术[J].:
石油大学,2003.
[3]成富.彩灯控制器[J].:
电机电器技术,2000,(01).
[4]祝富林.音乐彩灯电路CS9482[J].:
电子世界,1995,(12).
[5]介华.电子技术课程设计指导[J].:
高等教育,1997.
完成期限2013.7.1-2013.7.10
指导教师
专业负责人
2013年6月29日
3.3其它器件......................................................6
3.4交通信号模拟控制系统原理图....................................8
第1章绪论
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故[1]。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.1交通灯概述
交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。
绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。
用两个数码管来显示被点亮的指示灯还将点亮多久。
往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。
当南北方向为绿灯和黄灯时,东西向的红灯点亮禁止通行;而东西方向为绿灯和黄灯时,南北向的红灯亮禁止通行。
1.2交通灯控制技术状况
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,紧急处理等功能。
驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。
1.2.1倒计时显示
倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。
驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全[2]。
1.2.2时间手动设置
键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。
本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。
1.3本设计任务
单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
第2章总体方案论证与设计
本设计系统以AT89C51单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块接受输出。
2.1按键设置模块
键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中还要实时捕捉紧急按键信号,以达到对异常状态进行实时控制的目的。
急停按键随时调用中断。
2.2信号灯状态模块
采用串行EEPROM(如24C256等)存储LED显示屏要显示的信息。
串行EEPROM技术是一种非易失性存储技术,它几乎具有所有类型存储器的优点:
不挥发性、可更新性、高密度、低功耗和高性价比,非常适合应用于各类工业测控系统。
它克服了常用的2816、2817、2864等并行EEPROM器件价格高、体积大、可靠性低(这些器件如不采取措施,在上电、下电时常会丢失数据)等不足,在速度要求不是很高的情况下,该器件是最理想的选择[3]。
2.3总体硬件组成框图
图2-1总体硬件组成框图
第3章系统硬件设计
实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和紧急按钮等。
3.1AT89C51单片机模块的硬件设计
AT89C51是美国ATMEL公司推出的系列单片机,将各种功能的8位CPU与FPEROM(快闪可编程/擦除只读存储器)结合在一个芯片上,是一种低功耗、高性能的CMOS控制器,为很多嵌入式控制应用提供了非常灵活而又价格便宜的方案,其性能价格比远高于同类芯片[4]。
AT89C51单片机为40引脚双列直插芯片,有4个I/O口,P0 ,P1, P2, P3,单片机的最小系统如图所示,18引脚和19引脚接时钟脉冲电路,XTAL1接外部晶振和微调电容的一端,在片它是震荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片她是振荡器倒相放大器的输出端,第9引脚为复位输入端,接上电容,电阻及开关后构成上电复位电路,20引脚为接地端,40引脚为电源端(图中未显示)。
如图所示:
图3-1AT89C51最小系统连接电路
3.1.1AT89C51的部结构功能
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器:
数据存储器用于存放变化的数据。
AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。
程序存储器:
程序存储器用于存放程序和固定不变的常数等。
通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。
AT89C51部配置了4KB闪存。
定时/计数器:
定时/计数器用于实现定时和计数功能。
AT89C51共有2个16位定时/计数器。
并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
每个口都由1个锁存器和一个驱动器组成。
它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。
全双工串行口:
A89C51置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
时钟电路:
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
中断系统:
中断系统的作用主要是对外部或部的终端请求进行管AT89C51共有5个中断源,其中有2个外部中断源和3个部中断源[5]。
3.1.2单片机的串行接口工作方式
51单片机的串行接口有四种工作方式。
方式0是将SBUF作为8位同步移位寄存器使用(固定波特率);方式1是10位异步通信方式(可变波特率);方式2是11位异步通信方式(固定波特率);方式3是11位异步通信方式(可变波特率)。
3.2控制部分――74LS164芯片简介
3.2.174LS164芯片的引脚图和说明
图3-274LS164芯片与51单片机的连接
3.3其它器件
3.3.1发光二极管
根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。
每个方向上设置红绿黄灯,总共4组。
如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如下图3-3所示。
图3-3信号灯的连接
在本设计中,实际控制的灯只有6个,即:
东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯,其中均是低电平有效。
共有4钟状态:
东西红灯亮,南北绿灯亮(11011101/DDH);东西红灯亮,南北黄灯亮(10111101/BDH);东西绿灯亮,南北红灯亮(11101101/EDH);东西黄灯亮,南北红灯亮(11100111/E7H)。
括号中是P1端口8个引脚值P1.7,P1.6,P1.5,P1.4,P1.3,P1.2,P1.1,P1.0以及对应的十六进制码。
在用于显示发光二极管时,直接由MOV指令将十六进制码送入P1口。
刚才的4个状态是依次变换的,这就要涉及到状态的判断和衔接了。
先把P1端口的值与所有的4个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P1即可[6]。
3.3.28段LED数码管
LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。
LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。
以八段共阴管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示sP,即点),每个发光二极管的阴极连在一起。
这样,一个LED数码管就有I根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。
为方便起见,本文主要讨论共阴八段LED数码显示管,其他类形的显示管与其类似。
图3-4LED数码管
表3-1驱动代码表
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如dp,g,f,e,d,c,b,a全亮显示为8(采用共阴极连接)。
显示数值
abcdefgdop
驱动代码(16进制)
0
11111111
0FCH
1
00000110
60H
2
11011010
0DAH
3
11110010
0F2H
4
01100110
66H
5
10110110
0B6H
6
10111110
0BEH
7
11100000
0E0H
8
11111110
0FEH
9
11110110
0F6H
相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后用DPTR调取LEDMAP的代码。
图3-58段LED数码显示管
LED8段数码管的设置为每个方位上的一对2为显示器。
四个方位上总共用8个LED接在单片机的I/O口上。
虽然路口不一样,但是显示的时间在数字上是一样的,所以两边连接的I/O口是对称的。
因为输出口较少的原因,所以每个十位,个位的数据的传输必须采用动态扫描的方式,因为人眼的视觉原因,人们会认是同时点亮的[7]。
下面我们用这种方法显示交通灯的时间,南北方向要显示20秒,东西方向要显示25秒,那么我们先给P0口送2的共阴极码即5BH,让第一位2要显示的位码GND段为低电平,其它七位的控制端都接高电平,那么第一位就显示2,其它七位不亮。
让其显示1MS后再给P0口送0的共阴极码即3FH,让第二位要显示0的位码GND段为低电平,其它七位的控制端都接高电平,那么第二位就显示0,其它七位不亮。
依此类推分别送完第一位2,第二位0,第三位2,第四位5……每一位点亮1MS一个扫描周期为8MS,一秒时间就要扫描125次。
3.4交通信号模拟控制系统原理图
本系统以单片机为核心,系统硬件电路由单片机违规,状态灯,LED显示,按键组成。
其具体的硬件电路总图如图3-6所示。
图3-6系统原理图
3.5硬件资源及其分配
主要用到的硬件:
P1口、P3口、LED数码管、LED发光二极管、定时器T0。
3.5.1硬件分配
表3-2P1口状态对应十六进制值
P1口:
做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:
方向
状态
无
南北
东西
16进制值
说明
P1.7P1.6
P1.5P1.4P1.3
P1.2P1.1P1.0
0
00
001
001
09H
都为红灯亮
1
00
001
100
0CH
东西绿南北红
2
00
001
010
0AH
东西黄闪
南北红
00
001
000
08H
3
00
100
001
21H
东西红南北绿
4
00
010
001
11H
南北黄闪
东西红
00
000
001
01H
P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。
74LS164和LED发光二极管用来显示灯亮情况。
定时/计数器T0用来产生1秒的定时。
74LS164和数码管用来显示时间[8]。
3.5.2运行步骤
接硬件图接线,为了确保东西南北红黄绿灯能够对应显示,实验时,对P1口的接线做了调整。
即,P1.0接L3,P1.1接L2,P1.2接L1,P1.3接L6,P1.4接L5,P1.5接L3。
S/P区DATA插孔接BUS3区P3.0;S/P区CLK插孔接BUS3区P3.1;S/P区CLR接/SP插孔。
从0030H单元开始连续运行,观察六个LED灯是否与交通显示情况对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。
调试完灯的显示后,从0030H开始连续运行,观察数码管显示的是否正常,如果不正常,则运用单步运行或断点运行进行分析和调试,直至满足要求。
整体运行,观察灯显示和时间显示是否都符合要求,如果不符合,则再调试。
直至满足要求[9]。
第4章系统的软件设计
软件是该交通灯控制系统的重要组成部分,在系统的软件设计中我们也采用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
4.1程序框图设计
4.2程序流程图
图4-2主程序流程图
第5章系统调试与测试结果分析
5.1使用的仪器仪表
单片机 AT89C51
移位寄存器 74LS164*4
LED显示器7SEGK*4
交通指示灯 LED-RED*4、LED-YELLOW*4、LED-GREEN*4
5.2系统调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试。
5.2.1硬件调试
硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。
硬件调试可分为静态调试与动态调试两步进行。
静态调试是在用户系统未工作时的一种硬件检测。
第一步:
目测,检查外部的各种元件或者是电路是否有断点;第二步:
用万用表测试,先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象;第三步:
加电检测,给板加电,检测所有的插座或是器件的电源端是否符合要求的值;第四步:
联机检查,因为只有用单片机开发系统才能完成对用户系统的调试[10]。
动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件部故障、器件连接逻辑错误等的一种硬件检查。
动态调试的一般方法是由近及远、由分到合。
由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障围限定在某个局部的电路上。
当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。
由分到合的调试既告完成。
由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。
调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了[11]。
5.2.2软件调试
软件调试是通过对拥护程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
程序后,编辑,查看程序是否有逻辑的错误[12]。
5.3测试结果
此次系统设计结果较好,交通灯能实现指挥交通的功能。
交通灯控制系统由单片机AT89C51,十二个交通灯(红黄绿各四个),4块7段LED倒计时显示器组成,通过不同颜色灯的亮灭状态控制车辆的前进或停止,倒计时显示器帮助司机决定该前进还是停止。
结论
交通灯控制在交通运输领域有着非常重要的作用。
本设计完成了基于单片机的交通灯控制系统的设计与模拟。
包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。
在设计完成过程中,主要做的工作有:
(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的实现。
(2)以ATMEL公司的AT89C51单片机为核心进行系统硬件设计,输入量包括:
按键状态;输出控制交通信号灯亮灭状态及时间,以及LED数码管倒计时显示。
(3)在车流量检测系统中采用模糊控制方法,这需要知道被控对象的数学模型,进行清晰化,具体化。
因此,必须实施调查确定车流量少,中,多所要求具 体数量,然后经过单片机控制器的相关算法及处理确定红绿灯亮灭时间。
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
在此次课程设计过程中,我把单片机的理论知识用于实践中,使理论与实践相结合,使我的理论知识的到了巩固,在查资料翻阅资料的过程中也丰富了我的知识和阅历。
参考文献
[1]毅坤.单片微型计算机原理及应用.电子科技大学,1998.
[2]余锡存.单片机原理及接口技术.电子科技大学,2000.
[3]雷丽文等.微机原理与接口技术.电子工业,1997.
[4]吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术.科学,2005.
[5]克,柳秀山,等.电子技能与EDA技术.暨南大学,2004.
[6]毅坤.单片微型计算机原理及应用.电子科技大学,1998
[7]周润景.丽娜.基PROTEUS的电路及单片机系统设计与仿真.航空航天大学,2006.
[8]鸿恩,熊国奎.数字电子技术.大学,1994
[9]《单片机原理与应用技术》主编:
家健等高等教育出版
[10]RD.Middlebrook,Small-SignalModelingofPulse-WidthModulatedSwitched-ModePowerConverters,ProceedingsoftheIEEE,1988.
[11]F.DongTan,RD.Middlebrook,AUnifiedModelforCurrent-ProgrammedConverters,IEEETrans.onPowerElectronics,1995.
[12]杜树春.基于Proteus和KeilC51的单片机设计与仿真[M].:
电子工业.2012
附录1程序
SECOND1EQU30H;东西路口计时寄存器
SECOND2EQU31H;南北路口计时寄存器
DBUFEQU40H;显示码缓冲区1
TEMPEQU44H;显示码缓冲区2
LED_G1BITP2.1;东西路口绿灯
LED_Y1BITP2.2;东西路口黄灯
LED_R1BITP2.3;东西路口红灯
LED_G2BITP2.4;南北路口绿灯
LED_Y2BITP2.5;南北路口黄灯
LED_R2BITP2.6;南北路口红灯
ORG0000H
LJMPSTART
ORG0100H
START:
MOVTMOD,#01H;置T0为工作方式1
MOVTH0,#3CH;置T0定时初值50ms
MOVTL0,#0B0H
CLRTF0
SETBTR0;启动T0
CLRA
MOVP1,A;关闭不相关的LED
LOOP:
MOVR2,#20;置1S计数初值,50ms*20=1s
MOVR3,#20;红灯亮20S
MOVSECOND1,#25;东西路口计时显示初值25s
MOVSECOND2,#25;南北路口计时显示初值25s
LCALLDISPLAY
LCALLSTATE1;调用状态1
WAIT1:
JNBTF0,WAIT1;查询50ms到否
CLRTF0
MOVTH0,#3CH;回复T0定时初值50ms
MOVTL0,#0B0H
DJNZR2,WAIT1;判断1S到否未到继续状态1
MOVR2,#20;置50MS计数初值
DECSECOND1;东西路口显示时间减1s
DECSECOND2;南北路口显示时间减1s
LCALLDISPLAY
DJNZR3,WAIT1;状态1维持20s
MOVR2,#5;置50MS计时初值5*4=20
MOVR3,#3;路灯闪3s
MOVR4,#4;闪烁间隔200ms
MOVSECOND1,#5;东西路口计时显示初值