2
基于单片机的交通灯的设计与实现
1.2 概述
单片机微型计算机是微型计算机一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用控制领域,故又称为微控制器。 单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件,中央处理器,存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过 1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在不断增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
本设计是采用 MSC-51系列单片机 STC89C52为中心器件来设计交通灯控制器,再设计之前,必须要先了解实际交通灯的变化规律,假设一个路口为东西南北走向,即十字路口,初始状态零为东西南北灯都熄灭,然后转状态一东西绿灯通车,南北为红灯。过段时间转状态二,东西绿灭转黄灯,延时5秒,南北仍为红灯。再转状态三南北绿灯通车,东西红灯。过段时间转状态四南北绿灯灭转黄灯,延时5秒,东西仍为红灯,最后循环至状态一。利用MSC-51系列单片机STC89C52为中心器件,发光二极管和数码管实现了设置红、绿灯燃亮时间和显示的功能,控制十字路口红绿灯交替亮和熄灭。
第二章 芯片简介
3
第二章 芯片简介
2.1 MSC-51芯片简介
2.1.1 MCS-51单片机内部结构
8051作为MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器,程序存储器(ROM),数据存储器(RAM),定时/计数器,并行接口,串行接口和中断系统等几大单元及数据总线,地址总线和控制总线等三大总线,现在我们分别加以说明。 2.1.2 中央处理器
中央处理器(CPU)是整个单片机的核心,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制,指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 2.1.3 数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128 个专用寄存器单元,它们是统一编址,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图2.1
4
基于单片机的交通灯的设计与实现
2.1.4 程序存储器(ROM)
8051有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 2.1.5 定时/计数器(ROM)
8051有两个16位可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
2.1.6 并行输入输出(I/O)口
8051有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 2.1.7 全双工串行口
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可用作异步通信收发器,也可当同步移位器使用。 2.1.8 中断系统
8051具备较完善的中断功能,有两个外中断,两个定时/计数器中断和一个串行中断,可满足不同控制要求,并具有2级的优先级别选择。 2.1.9 时钟电路
8051内置最高频率达12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需要外置振荡电容。
单片机的结构有两种,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton )结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则是采用普林斯顿结构。
下图是MCS-51系列单片机的内部结构示意图 (图2.2)。
第二章 芯片简介
5
图2.2
2.2 MCS-51的引脚说明
MCS-51系列单片机中8031,8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40 个引脚,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O 口,中断口线与P3口线复用。现在对这些引脚的功能加以说明: 如图2.3
图2.3
Pin9: RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位,初始化后,程序计数器PC 指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄
6
基于单片机的交通灯的设计与实现
存器被清“0”,RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。但是,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式即可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM 的数据不丢失。
图2.4
Pin30: ALE/
当访问外部程序器时,ALE (地址锁存)的输出用于锁存地址
的低位字节。而访问内部程序存储器时,ALE 端将有一个1/6时钟频率的正脉冲信号,这个信号可用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE跳过一个脉冲。
如果单片机是EPROM ,在编程其间,Pin29:
将用在输入编程脉冲。
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16
位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU 读入并执行。
Pin31: EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB程序存储器,EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA 端必须接地。
在编程时,EA/Vpp 脚还需加上21V的编程电压。