资源描述
前 言
19世纪初,在英国中部的约克城,红绿装分别代表女性的不同身份。其中着红妆的女人代表我已经结婚了,而着绿装的女人则是未婚者。后来,英国伦敦议会大厦前经常发生马车扎人的事故,于是人们受到红绿装的启发,1868年12月10日,信号灯家族的第一个成员就在英国伦敦议会大厦的广场上诞生了,由当时英国机械师师德.哈特设计,制造的灯柱高7米,身上挂着一盏红绿两色的提灯—煤气交通信号灯,这是城市街道的第一盏信号灯。在灯的脚下,一名手持长杆的警察随心所欲的牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面试23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。
从此,城市的交通灯被取缔了。知道1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。
随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红黄绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生使城市交通大为改善。
黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电气公司任职员。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一声冷汗。回到宿舍,他反复琢磨,终于想到了在红绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红黄绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。
中国最早的马路红绿灯,是于1928年出现在上海英租界。从最早的手牵皮带到20世纪50年代的电气控制,从采用计算控制到现代化的电子定时监控,交通信号灯在科学化,自动化上不断地更新,发展和完善。
第一章 绪论
随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
目前,有一种“自动控制”控制交通灯的方法。利用事先编制好的程序输入单片机,再利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。
第二章 设计方案
第一节 设计要求
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯此道车辆通过,行人禁止通行。时间为60秒。
(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。 东西方向车流大 通行时间长。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
第二节 设计方案优选
方案一 PLC控制交通灯 PLC主要应用于强电方面的工业控制,或者整条流水线的控制。虽然比较稳定,但是功耗要大。
方案二 单片机控制交通灯 单片机具有结构简单、编程方便、经济、易于连接等优点, 特别是其内部定时器计数器、中断系统资源丰富, 可对交通灯进行精确的控制, 有应用价值。
第三节 系统总框图
1 系统总框图如下
图1
2 系统工作原理
(1)开关键盘输入交通灯初始时间,通过80C51单片机P1输入到系统。
(2)由80C51单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。
(3)80C51通过设置各个信号等的燃亮时间、通过80C51设置,绿、红时间分别为60秒、80秒循环由80C51的 P0口向8255的数据口输出。
(4) 通过80C51单片机的P3.0位来控制系统是工作或设置初值,当牌位0就对系统进行初始化,为1系统就开始工作。
(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。
(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。
(7)绿灯时间倒计时完毕,重新循环。
3 交通灯控制器系统框图
图2 交通灯控制器系统框图
第三章 硬件设计
第一节 80C51芯片
(一)、80C51的引脚说明:
下图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3
图3
p0口:双向8位三态态I/O口,访问外存时,作为低8位地址线,8位双向数据线。可分时复用,工作最繁忙。
P1口:8位双向I/O口。
P2口:8位双向I/O口,扩展电路高8位地址总线。
P3口:8位双向I/O口,及第二功能。
(二) 、80C51的复位
80C51的复位方式可以是上电复位,也可以是上电与按键均有效的复位,见下图4。
图4
(1)Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,将用于输入编程脉冲。
(2)Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
(3)Pin31:EA/Vpp程序存储器的内外部选通线,80C51和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。
在编程时,EA/Vpp脚还需加上21V的编程电压。
(三) 、80C51的时钟产生方式
图5
(1) 内部时钟电路。 在80C51内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体,就构成了自激震荡器并在单片机内部产生时钟脉冲信号。上图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF。
(2) 外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片80C51单片机同时工作,以便于个单片机的同步.一般要求外部信号高电平的持续时间大于20ns,并为频率低于12MHz的方波。
第二节8255芯片
8255可编程并行接口芯片简介:
8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
图6
(1)A口、B口和C口。均为8位I/O数据口,但结构上略有差别。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。
(2) A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。
(3) 数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。
(4) 读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255的读/写。
(5) 数据线(8条):D0~D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。
(6) 控制线和寻址线(6条)
RESET:复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。
WR和RD: 读/写信号线,输入,低电平有效。当为0时(必为1),所选的8255处于读状态,8255送出信息到CPU。反之亦然。
(7)CS:片选线,输入,低电平有效。
(8) A0、A1:地址输入线。当为0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。
(9)I/O口线(24条):PA0~PA7、PB0~PB7、PC0~PC7为24条双向三态I/O总线,分别与A、B、C口相对应,用于8255和外设之间传送数据。
(10) 电源线(2条):VCC为+5 V,GND为地线。
第三节74LS373芯片
74LS373 是一种带三态门的8D锁存器,其管脚示意图7如下示:
其中:1D-8D为8个输入端。
1Q-8Q为8个输出端。
图7
LE为数据打入端:当LE为“1”时,锁存器输出
状态同输入状态;当LE由“1”变“0”时,数据打入锁存器
OE为输出允许端:当OE=0时,三态门打开;当OE=1时,三态门关闭,输出高阻。
第四节 时间及信号灯的显示
1 80C51并行口的扩展
80C51有4个8位I/O端口,P0接口和P2接口用来作为外部ROM,RAM和扩展I/O接口的地址线,而不能作为I/O接口,只有P1接口和P3的某些位线可直接用作I/O线。因此,单片机提供给用户的I/O接口线并不多,对于复杂一些的应用系统都需要进行I/O的扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O端口,显然80C51的端口是不够,需要扩展。
2 显示原理:
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入循环。
3 8255PA口输出信号接信号灯:
由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。
4 8255输出信号与数码管的连接:
LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8
采用共阴级连接:
其中 PC0\PB0-a,
PC1\PB1-b,
PC2\PB2-c,
PC3\PB3-d,
PC4\PB4-e,
PC5\PB5-f,
PC6\PB6-g
PC7\PB7 -SP接地
表 3 驱动代码表
显示数值
dop g f e d c b a
驱动代码(16进制)
0
0 0 1 1 1 1 1 1
3FH
1
0 0 0 0 0 1 1 0
06H
2
0 1 0 1 1 0 1 1
5BH
3
0 1 0 0 1 1 1 1
4FH
4
0 1 1 0 0 1 1 0
66H
5
0 1 1 0 1 1 0 0
6DH
6
0 1 1 1 1 1 0 0
7DH
7
0 0 0 0 0 1 1 1
07H
8
0 1 1 1 1 1 1 1
7FH
5 8255与80C51的连接:
用80C51的P0 口的 p0.7 连接8255的片选信号cs 我们用80C51的地址采用全译码方式,当p0.7 =0 时片选有效, 其他无效, p0.1 p0.1 用于选择8255端口
P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0
A7 A6 A5 A4 A3 A2 A1 A0
1 X X X X X 0 0 00H为8255 的PA口
1 X X X X X 0 1 01H 为8255的PB口
1 X X X X X 1 0 02H 为8255的PC口
1 X X X X X 1 1 03H 为8255的控制口
由于80C51是分时对8255和储存器进行访问所以80C51的P0口不会发生冲突
第四章 软件设计
一、每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
二、计数器硬件延时
1 1秒的方法
我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。
2 相应程序代码
(1)主程序
定时器需定时50毫秒,故T0工作于方式1。 初值:
TC=M-T/ T计数 =216 -50ms/1us=15536=3CBOH
ORG 1000H
START: MOV TMOD, #01H ; 令T0为定时器方式1
MOV TH0, #3CH ;装入定时器初值
MOV TL0, #B0H ;
MOV IE, #82H ;开T0中断
SEBT TR0 ;启动T0计数器
MOV R0, #14H ;软件计数器赋初值
LOOP: SJMP $ ;等待中断
(2)中断服务子程序
ORG 000BH
AJMP BRT0
ORG 00BH
BRT0:DJNZ R0,NEXT
AJMP TIME ; 跳转到时间及信号灯显示子程序
DJNZ:MOV R0,#14H ;恢复R0值
MOV TH0, #3CH ;重装入定时器初值
MOV TL0, #B0H ;
MOV IE, #82H
RET1
END
三、 软件延时
MCS-51的工作频率为2-12MHZ,我们选用的80C51单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序分析:
DELAY:MOV R4,#08H 延时1秒子程序
DE2:LCALL DELAY1
DJNZ R4,DE2
RET
DELAY1:MOV R6,#0 延时125ms 子程序
MOV R5,#0
DE1: DJNZ R5,$
DJNZ R6,DE1
RET
MOV RN,#DATA 字节数数为2 机器周期数为1
所以此指令的执行时间为2ms
DELAY1 为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=131072us 约为125us
DELAY R4设置的初值为8 主延时程序循环8次,所以125us*8= 1秒
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
四、 程序设计
1 流程图如图8所示
开始
初始化
等待键盘事件
显示程序处理
键盘事件处理
图8
总结语
本系统就是充分利用了80C51和8255芯片的I/O引脚。系统统采用MSC-51系列单片机80C51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能通过80C51芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
参考文献
[1]张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社 1998
[2]余锡存 曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7
[3]雷丽文 等.微机原理与接口技术[M].北京:电子工业出版社,1997.2
[4]赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.3
[5]徐惠民、安德宁. 单片微型计算机原理接口与应用. 第1版. 北京:北京邮电大学出版社,1996
[6]何立民. 单片机高级教程. 第1版.北京:北京航空航天大学出版社,2001
[7]夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001
[8] 郭磊. 电能质量实时监测装置的研究与设计[D]. 西安科技大学 , 2008
[9] 张娟. 单片机原理及接口技术[M]. 广西大学 , 2005
[10] 陈森. 单片机高级教程. 南京理工大学 , 2004
致 谢
在本次毕业设计中,我得到了指导老师程辉的热心指导。自始至终关心督促毕业设计进程和进度。帮助解决毕业设计中遇到的许多问题。还不断向我们传授分析问题和解决问题的办法,并指出了正确的努力方向,使我在毕设过程中少走很多弯路。在这里非常感谢程老师的指导和帮助,并致以诚挚的谢意!
同时,身边的同学给了我许多的帮助。在此,我向身边关心我的同学致以诚挚的谢意!另外,系里的领导和老师也给了我们必要的指导,我也向系和年级的领导们表示衷心的感谢!最后感谢学院对我这几年的培养。
展开阅读全文