1、 第 I 页基于单片机的交通灯控制摘要本系统采用 MSC-51 系列单片机 Intel8051 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过 8051 芯片的 P1 口设置红、绿灯燃亮时间的功能;交通灯信号通过 PC 口输出;交通灯的点亮采用 VT 双向晶闸管来控制,直接采用 220V交流电源驱动,系统实用性强、操作简单、扩展性强。 关键词:单片机;交通灯;控制器; 第 II 页Microcontroller-based Traffic Light Control AbstractThe system uses the MSC-51 series micro controller
2、Intel8051 design-centric device to the traffic light controller , have realized can measure according to actual wagon flow the P1 installation bonus and green light that passes through 8051 chips burn to light the function of time; The signal of traffic lights is exported through usually PC mouth; T
3、he point of traffic lights light to adopt VT two-way Jing floodgate pipe come to control, directly drive with the alternating current source of 220 V, practicality is strong, operating is simple. Keywords: Only flat machine;Traffic lights;Controller;目 录第 III 页1 绪论 .12 系统的设计方案 .23 系统硬件设计 .33.1 MSC-51
4、 芯片简介 .33.2 系统原理图 .74 控制器的软件设计 .94.1 每秒钟的设定 .94.2 计数器硬件延时 .94.3 时间及信号灯的显示 .114.4 程序设计 .115 调试分析 .135.1 调试平台 .135.2 调试步骤 .135.3 系统编程信息 .13结论 .26致谢 .27参考文献 .28附录 .29第 1 页1 绪论今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年,英国
5、机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂被取消。1914 年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表示“通行” 。1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行
6、人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。交通灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进
7、入交叉路口。第 2 页2 系统的设计方案A、B 两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为 A、B 两干道的公共停车时间。设 A 道比 B道的车流量大,指示灯燃亮的方案如表 2.1。表 2.1此表 2.1 说明:(1)当为黄灯时 A、B 两道同时为黄灯;以提示行人或车辆下一个灯色即将到来时间 5 秒。 (2)当 A 到为红灯,A 道车辆禁止通行,A 道行人可通过;B 道为绿灯,B 道车辆通过,行人禁止通行。时间为 25 秒。(3)当 A 道绿灯,A 道车辆通行;B
8、 道为红灯,B 道车辆禁止通过,行人通行。时间为 30 秒。 A 道车流大 通行时间长(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表可根据车流量动态设定第 3 页3 系统硬件设计3.1 MSC-51 芯片简介MCS-51 单片机内部结构8051 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:3.1.1 中央处理器:中央处理器
9、(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。3.1.2 数据存储器(RAM )8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。图 3.1 8051 内部结构图第 4 页3.1.3 程序存储器(ROM):8051 共有 4096 个 8 位掩
10、膜 ROM,用于存放用户程序,原始数据或表格。3.1.4 定时/计数器(ROM):8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。3.1.5 并行输入输出(I/O)口:8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。3.1.6 全双工串行口:8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。3.1.7 中断系统:8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有 2 级
11、的优先级别选择。3.1.8 时钟电路:8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8051 单片机需外置振荡电容。图 3.2 时钟电路图单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛第 5 页(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。图3.3 是 MCS-51 系列单片机的内部结构示意图图 3.3 MCS-5
12、1 结构框图MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明:如图 2.4第 6 页图 3.4 单片机引脚图Pin9:RESET/Vpd复位信号复用脚,当 8051 通电,时钟电路开始工作,在 RESET引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC 指向 0000H,P0-P3 输出口全
13、部为高电平,堆栈指针写入 07H,其它专用寄存器被清“0” 。RESET 由高电平下降为低电平后,系统即从 0000H 地址开始执行程序。然而,初始复位不改变 RAM(包括工作寄存器 R0-R7)的状态,8051 的初始态。8051 的复位方式可以是自动复位,也可以是手动复位,见下图 3.5。此外,RESET/Vpd还是一复用脚,V cc掉电其间,此脚可接上备用电源,以保证单片机内部RAM 的数据不丢失。图 3.5 复位电路Pin30:ALE/ 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号
14、可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个第 7 页特点,当访问外部程序存储器,ALE 会跳过一个脉冲。如果单片机是 EPROM,在编程其间, 将用于输入编程脉冲。Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的 8031,EA 端必须接地。在编程时,EA/V pp脚还需加上 21V 的编程电压。3.2 系统原理图选用设备 8051 单片机一片选用设备:8051 单片机一片,8255 并行通用接口芯片一片,74LS07 两片,共阴极的七段数码管两个双向晶闸管若干,7805 三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。系统模块图如下:图 3.6 系统模块图