1 引言
在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿色两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
2 单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。
3 芯片的选择与简介
3.1 方案设计与论证
(1)显示界面方案
该系统要求完成倒计时功能,我考虑了两种方案:
方案一:完全采用点阵式 LCD显示。这种方案功能强大,可方便的显示各种英文字符,汉字,图形等。但实现复杂,且须完成大量的软件工作。
方案二:采用 LED显示。因为设计只要求倒计时数字输出,考虑到现实情况,信捷职称论文写作发表网,用LED显示时间既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,决定采用方案二以实现系统的显示功能。
(2)输入方案
题目要求系统能手动设灯亮时间、紧急情况处理,我考虑了两种方案:
方案一 :采用8155扩展I/O口及键盘,显示等。该方案的优点是:使用灵活且可编程,并且有 RAM,及计数器。若用该方案,可提供较多I/O口,解决I/O口不足的难题。
方案二: 采用 ZLG7289来控制键盘及数码管显示。由于7289是串行控制方式,有专用的命令字,控制起来简单,占用较少口线,但成本高,且不能提供更多的I/O口。
综上所述,故选择方案二。
(3)交通灯演示方案:
采用在面板上焊接三色发光二极管模拟交通红绿灯,以发光二极管拼出箭头状作为左右转提示,简单明了,但由于市面上没有三色发光二极管卖,所以只好选择了单色发光二极管模拟交通红绿灯。
(4)单片机控制方案:
由于系统所需资源少,一片8031足以胜任系统的要求。但由于市场对8031的需求不大,造成性价比低,因而,本次设计选用了功能更强大,价格更便宜,且具有8KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)的AT89S52。
3.2 AT89S52芯片简介
AT89系列单片机是以8051单片机为内核,结合自己的技术优势构成的产品,所以它和8051是兼容的系列。
AT89系列单片机具有下列很明显的优点:
(1) AT89S52具有下列主要性能
.8KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)
.全静态工作:0Hz-24MHz
.三级程序存储器保密
.128 8字节内部RAM
.2个16位定时器/计数器
.6个中断源
.片内时钟振荡器
(2) 控制或与其它电源复用引脚RST、ALE/ /Vpp
① RST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。
② ALE/ 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲( )。
如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。
③ 程序存储允许( )输出是外部程序存储器的读选通信号。当AT89S52/LV51由外部程序存储器取指令(或常数)时,每个机器周期两次 有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的 信号将不出现。
④ /Vpp 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则 端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存 端的状态。
当 端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp。