南北红灯 南北绿灯 南北黄灯 0 1 0 0 0 1 1 0 0 1 0 0 东西南北四个交通口都含有红绿灯以及数码管,无论是哪一个交通口,凡是看到红灯的应该禁止通行,看见转了绿灯就可以通过,如果黄灯亮了表示红绿灯状态即将发生变化。各方向的状态以及红绿灯状态如上表。(说明:0表示灭,1表示亮)
3硬件设计
系统硬件总电路构成:
为了满足这次的交通灯设计所需要实现的功能,本人选用了STC89C52RC芯片和外围设备组成的最小系统,代表红、绿、黄三种颜色的led交通灯总共14个,4个2位LED数码管和包括复位键、紧急控制按键等,红外线接受器,驱动电路模块,若干导线、电阻和电容。构成了此次设计的各个模块。其具体的硬件电路总图如图所示。
本系统把单片机最小系统作为关键核心,由各个硬件模块软件为控制主体组成一个处理、智能控制为一体的封闭操控系统。
其中P0用来送显LED数码管的段选和位选,P1用来操控红绿灯的亮暗,12MHz晶振接在单片机芯片引脚的XTAL1和XTAL2上,REST引脚接连接复位电路,P3端口用来实现按钮的控制。
单片机系统及其历史
单片机是一块集成在芯片上的微型计算机,它的内部包括有CPU、存储器,定时/计数器以及中断系统,基本输入/输出(简称I/O)接口电路等。因为它的结构与指令功能都是按照工业控制要求设计的,所以又称作微控制器(简称MCU)。它在各方面都有良好的优势,例如结构简单,控制效果好,可靠性高、体积小、价格低,单片机技术作为计算机技术的一个非常重要的分支,广泛地应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个不同的领域。
单片机诞生于上世纪70年代,经历了三个阶段:SCM、MCU、SOC。一开始的SCM单片机都是8位或4位的。其中英特尔公司的8051发展迅速。之后的MCS51系列的MCU单片机得到了广泛的应用。现在高端的32位SOC单片机性能已经达到了上世纪90年代中期专用处理器的水平,且价格低廉。所以越来越多的制作业、工业离不开单片机。
单片机的应用系统必须包含硬件部分和软件部分,只有这样才是完整的单片机应用系统。软件部分是指导硬件工作的指令集。没有软件部分,系统将无法正常工作。硬件部分则是交通灯系统的基础。没有硬件系统则没有所谓的交通灯系统。只有将两者结合,才能实现功能齐全的及交通灯系统。
单片机内部组成以及引脚介绍
8052是MCS-52系列单片机的典型芯片,不同型号一般程序存储器结构不同,其余内部结构都是完全相同,引脚也全部兼容。Atmel公司的89系列发展很快,应用也最为广泛,和8052引脚也完全相同,插座也相互兼容。所以用89C52代替8051时,只要封装相同就可以直接代换。
中央处理器(CPU):
交通灯系统的控制核心是单片机,而单片机的控制核心是中央处理器。它与计算机的处理器一样分为4字长、8字长、16字长和32字长等处理器,它与单片机的处理数据能力、控制功能、运算速度等性能等性能有关,因此,字长是衡量CPU功能的主要指标。CPU由运算器和控制器组成。各一个8位的算术逻辑单元(简称ALU)、累加器(简称ACC)、暂存器B和程序状态寄存器(简称PSW)构成了CPU的运算器。所述控制器包括程序计数器(PC) ,指令寄存器(IR) ,指令译码器(ID)和一个控制电路等。
内存数据存储器RAM:
单片机89C52芯片内部数据存储器通常是指低128个单位,可以读也可以写,是分配给用户使用的,在断电后数据会消失。高128个单位则是内部专用寄存器使用的存储单位,用户无法对其进行操作,所以芯片内部一共包含256个RAM单元。
内部程序存储器ROM:
89C52芯片的内部程序存储器使用的是只读存储器,这样有利于系统的可靠及稳定性且能节省成本。它有4KB掩摸ROM,只能读不能写程序将不会在断电后丢失。这样则不会改变程序的原始数据,通常称为只读程序存储器 并行I/O端口:
89C52芯片内部有4个8位并行I/O端口(P0口、P1口、P2口和P3口),通过I/O端口实现数据并行输入输出,是人机交互的接口。 串行口:
89C52芯片内部串行实现单片机与外围设备之间的数据通信是通过一个全双工异步串行口。该串行口既可以作为同步移位器使用,扩展外部I/O端口,又可以作为全双工异步通信收发器使用。
定时/计数器:
89C52芯片内部的2个16位定时/计数器可以控制单片机的内部时钟,使单片机按照一定的机器时钟进行状态控制。还可以进行外部定时或计数功能,是芯片的重要组成部分。
中断系统:
8052内部共有5个中断源,2个优先级别分别是高优先级和低优先级,在同级的情况下,外部中断0大于定时器T0中断大于外部中断1大于定时器中断T1大于串行口中断。
时钟电路:
89C51芯片单片机内部具有时钟电路,只需要在XTAL1和XTAL2引脚之间接上石英晶体和微调电容就能构成完整的时钟电路。此系统选用的晶振频率为12MHz。相应的机器周期是1us。
引脚介绍:
VCC:STC89C52电源接入端,接+5V。 GND:电源接地端。
XTAL1和XTAL2:当需要使用外部时钟时,则连接外部的时钟电路;若要使用内部时钟则连接电容和晶振。本系统所使用的是内部时钟,所以在两引脚间连接了电容和12MHz的晶振。
RESET:STC89C52芯片的重置引脚,当连续输入这个引脚2个机器周期以上的高电平即有效电平时,芯片将进行系统的复位操作,各个寄存器都恢复到最初的状态重新运行程序。
EA:EA的E的英文是External ,A的英文是Access ,合在一起是外部程序存储器的意思。上面的横线则代表低电平有效。所以这个引脚接高电平则使用内部程序存储器,低电平则使用外部的程序存储器。在此系统中,由于程序下载到内部程序存储器中,因此该引脚与+5V电源相连接。
ALE:ALE是编程脉冲的输入端。它以晶振频率的1/6的固定频率输出,所以也可以作为时钟电路使用。同时这个引脚也是P0口低8位 的地址锁存器,将低8位数据与地址相互隔离,用于系统扩展。
PSEN:此为\的缩写,其意为程序储存启用。低电平有效,当引脚输入低电平时实现对外部ROM单元的读操作。在执行指令的取指阶段和从程序存储器中取数据时有效。
P0口(~):端口0可以作为通用I/O端口使用和地址/数据线使用。共有8个位,表示位0,表示位1,依此类推。一个数据输出D锁存器、两个三态数据输入缓冲器、一个输出控制电路和一个数据输出的驱动电路共同构成了P0口的逻辑电路。如果EA引脚的电平为低时(即取用片外RAM扩展或数据存储器),P0就以双向口的工作方式提供地址总线(A0~A7)及数据总线(D0~D7)。在此设计中,P0口是作为通用I/O口将各个共阴极数码管相应的段选控制端并联在一起,用驱动器74HC245驱动。
P1口(~):是89C51单片机唯一的单功能端口,仅仅能用作通用的数据输入/输出口。
P1口的逻辑电路与P2口相似,但其内部没有输出控制电路,而且具有上拉电阻。
所以其只能作为通用I/O端口使用。在此系统中,P1口是用来控制数码管的公共端,也称作为“位选端”。
P2口(~):端口2也具有2个功能:一个是具有内部提升电路的双向I/O端口,与P0口相似;另一功能也跟P0口相似,P0口的第2功能是作为地址/数据线使用,而
——
P2口是单一的地址线使用。系统扩展时作为高8位的数据线使用。当没有在89C51单片机芯片外扩展ROM和RAM,且P2口高8位地址总线没有全部用到时,P2口的口线就可以全部作为通用I/O口线使用。P2口属于准双向口。在本系统中,P2口用于控制LED信号灯的亮灭。
P3口(~):作为通用I/O口,作为输出时,锁存器的状态端(Q)与输出引脚的状态相同;作为输入端口时,为使引脚处于高阻输入状态,需向锁存器输入程序数据“1”。输入的数据在“读引脚”信号的作用下,进入内部数据总线。所以,P3口在作为通用I/O口时,也属于准双向口。在本系统,P3口作为第二功能使用,主要利用按键模块实现系统的中断跳转。
P3端口使用第二功能时: 其引脚分配如下:
:RXD,串行通信数据的接收。 :TXD,串行通信数据的发送 :INT0,外部中断0申请。 :INT1,外部中断1申请。 :定时/计时计数器0的外部输入。 :定时/计时计数器1的外部输入。 :WR:外部数据存储器的写入信号。 :RD,外部数据存储器的读取信号。 单片机引脚图如图所示:
————
单片机最小系统
上面提到单片机的应用系统可以分为硬件部分和软件部分。软件部分指挥各个硬件执行烧录进单片机内的程序,如果没有程序那么它显然是无法工作的的。但如果它仅仅只是烧录了程序,它还是同样无法工作。原因是除了单片机和软件部分外,要使单片机能够正常工作,还需要时钟电路和复位电路。芯片加上时钟和复位电路,这样才是完整的最小单片机系统。在XTAL1引脚和XTAL2引脚间跨接一定频率的晶振构成时钟电路为单片机的正常工作提供基本时钟,机器周期则由晶振频率决定。复位电路则将系统恢复初始化。就如同此系统中,将系统恢复至东西通行,南北禁止的刚启动系统的状态。