1MCS-51单片机扩展存储器的设计2MCS-51单片机扩展存储器的设计一.概述二.系统总线及总线构造三.读写控制、地址空间分配和外部地址锁存器四.程序存储器EPROM的扩展五.静态数据存储器的扩展六.EPROM和RAM的综合扩展七.E2PROM的扩展34一.概述1.单片机扩展的基本概念单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。MCS-51系列单片机有很强的外部扩展功能,大部分常规芯片可用于其外围扩展电路中。扩展的内容主要有总线、程序存储器、数据存储器、I/O口扩展等。52.系统扩展分类单一功能的扩展综合功能的扩展3.系统扩展需要解决的问题单片机与相应芯片的接口电路连接(即地址总线、数据总线、控制总线的连接)与编程。651系列单片机没有专用的对外地址总线和数据总线,其P0口和P2口既是通用I/O口,同时P0口还是分时复用的双向数据总线和低8位地址总线(一般需要加一级锁存器),而P2口则是高8位地址总线。4.单片机的地址总线和数据总线要进行系统扩展,首先要构造系统总线。7二.系统总线及总线构造所谓总线,就是连接计算机各部件的一组公共信号线。MCS-51使用的是并行总线结构,按其功能分三类:1.地址总线地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外送出。地址总线的数目决定着可以直接访问的存储单元的数目。如MCS-51系列单片机地址总线宽为16位,所以可寻址范围为216=64KB。其中,P0口作低8位,P0口作地址线时要锁存,P2口作高8位。82.数据总线数据总线用于在单片机与存储器之间或单片机与I/O之间传送数据。单片机系统数据总线的位数与单片机处理数据的字长一致。MCS-51单片机是8位字长,所以数据总线的位数也是8位的。数据总线是双向的,可以进行两个方向的传送。3.控制总线控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其他部件传送给单片机的。对于一条具体的控制信号线来说,其传送方向是单向的,但是由不同方向的控制信号线组合的控制总线则表示为双向。94.构造系统总线由于单片机的扩展系统是并行总线结构,因此单片机系统扩展的首要问题是构造系统总线,然后再往系统总线上“挂”存储器芯片或I/O接口芯片。MCS-51单片机受引脚数目的限制,数据线和低8位地址线是复用的,由P0口线兼用。为了将他们分离出来,需要在单片机外部增加地址锁存器,从而构成与一般CPU相类似的片外三总线。如图1所示。地址锁存器一般采用74LS373,P0口送出的低8位有效地址信号是在ALE(地址锁存允许)信号变高的同时出现的,并在ALE由高变低时,将出现在P0口的地址信号锁存到外部地址锁存器74LS373中,随后,P0口又作为数据总线口。10P2口P0口ALERDWRPSENP1.7P3.6EA+5V或地8051高8位地址线低8位地址线地址锁存器88位数据总线控制总线16位地址总线图1MCS-51扩展的三总线11构造系统总线的具体方法地址总线:以P0口作为低8位地址总线(必须外接一个锁存器74LS373)。以P2口的口线作为高位地址线。需用几位就引几条口线。数据总线:以P0口的口线作为数据总线。控制总线:使用ALE信号作为低8位地址的锁存控制信号。用/PSEN信号作为扩展程序存储器的读选通信号。用/EA信号作为内外程序存储器的选择控制信号。用/RD和/WR信号作为扩展数据存储器和I/O的读选通信号。12三.读写控制、地址空间分配和外部地址锁存器3.1存储器扩展的读写控制外扩的RAM芯片的读、写控制引脚/OE和/WE分别与MCS-51的/RD和/WR引脚相连。外扩的EPROM正常使用时只能读,不能写,故芯片无写控制引脚,只有读出引脚/OE,与51的/PSEN相连。3.2存储器地址空间分配存储器的地址空间分配,实际上就是通过地址线,与存储器芯片的地址引脚适当连接,最终达到一个存储器单元对应一个地址的要求。13存储器地址空间分配通常把单片机系统的地址笼统地分为低位和高位地址,存储器芯片的某一存储单元选择使用低位地址,剩下的高位地址才作为芯片选择使用,因此芯片的选择都是使用高位地址线。在16根地址线中,高、低位地址线的数目并不是固定的,我们只是把用于存储单元选择所使用的地址线,都称为低位地址线,其余的就为高位地址线。存储器地址空间分配除了考虑地址线的连接外,还需考虑各存储器芯片在整个存储空间中所占据的地址范围,以便在程序设计时正确地应用它们。常用的存储器地址分配方法有:线选法、译码法。14存储器地址空间分配a.线选法线选法就是直接利用系统的高位地址线作为存储器芯片(或I/O接口芯片)的片选信号。为此,只需要把用到的地址线与存储器芯片的片选端直接连接即可。线选法的优点是电路简单,不需要地址译码器硬件,体积小,成本低。缺点是可寻址的器件数目受到限制,故只用于不太复杂的系统中,另外,地址空间不连续,每个存储单元的地址不惟一,这会给程序设计带来一些不方便。外部程序存储器和数据存储器的地址空间可以重叠,由控制信号区分。(外部程序存储器-/PSEN;数据存储器-/RD,/WR)15A12~A8CEOEA7~A0A12~A8CEOEA7~A0A12~A8CEOEA7~A074LS373885558882764(1)2764(2)2764(3)P2.7P2.6P2.5P2.4~P2.0EAPSENP0ALE8031线选法存储器地址空间分配16典型存储器的扩展器件(1)6116静态RAM的扩展A10~A0:地址线D7~D0:数据线/CE:片选信号/OE:数据输出允许信号/WE:写选通信号VCC:电源(+5V)GND:地123456789101112136116D0A1D2A7A2A3A0D1A4A5A6D7CEVCCA8A9WEOEA10GND1415161718192021222324D3D4D5D6存储器地址空间分配17D7D6D5D4D3D2D1D0G74LS373GND+5VEQ7Q6Q5Q4Q3Q2Q1Q0D0~D6数据输入E输出允许G数据输出Q0~Q7使能端当E=0,G=1时,输出Q=输入D(透明);当E=0,G=0时,输出Q端不变(锁存)当E=0,输出高阻态(2)74LS373锁存器18扩展6116静态RAM74LS3738051P0ALEGRDWRWEOE6116EA+5V0~7D0~7A8~10A0.2~2.2PCE存储器地址空间分配192764引脚功能A0~A12地址线CE选片OE读D0~D7数据线编程脉冲输入PGM编程电源Vpp(3)EPROM27648KEPROMVPPA12A7A6A5A4A3A2A1A0D0D1D2GNDVccPGMN.CA8A9A11OEA10CED7D6D5D4D32764存储器地址空间分配20扩展电路连接图7-4扩展电路单片机8031P2.0:.A8...ALEPSEN74LS373G2764A7..A0O0..O7P0.0:P0.7OECEQ0..Q7D0..D780312764数据总线的连接:P0.0-P0.7(数据总线)--------------------------------------O0-O7地址总线的连接:P0.0-P0.7(地址总线低8位)--------------------------------A0-A7P2.0-P2.4(地址总线高8位中的5位)-------------------------A8-A12控制总线的连接:PSEN(程序存储器允许,即读指令)--------------------------OEALE(地址锁存允许)--------------------------------接373的使能端G经过锁存器373A12P2.4216264----8KSRAM6264引脚功能A0~A12地址线CE选片OE读D0~D7数据线N.CA12A7A6A5A4A3A2A1A0D0D1D2GNDVccWECSA8A9A11OEA10CED7D6D5D4D36264写WE(4)数据存储器6264存储器地址空间分配22扩展电路连接图7-9扩展电路数据总线的连接:P0.0~P0.7(数据总线)---------------------D0~D7地址总线的连接:P0.0~P0.7(地址总线低8位)---------------A0~A7P2.0~P2.4(地址总线高8位中的5位)-------A8~A12控制总线的连接:RD(读外部数据)-------------------------OEWR(写外部数据)-------------------------WEALE(地址锁存允许)--------------接373的使能端G经过373A86264WE单片机8031P2.0:.A8..ALERD74LS373GA7..A0P0.0:P0.7OECEQ0..Q7D0..D7A12P2.4WR8031626423存储器地址空间分配b.译码法译码法就是使用译码器对MCS-51的高位地址进行译码,译码器的译码输出作为存储器芯片的片选信号。这是一种最常用的存储器地址分配方法,能有效的利用存储器空间,适用于大容量多芯片的存储器扩展。译码电路可以使用现有的译码器芯片。最常用的芯片有:74LS138(3线-8线译码器)、74LS139(双2线-4线译码器)、74LS154(4线-16线译码器)。若全部高位地址线都参加译码,称为全译码;若仅仅部分高位地址线都参加译码,称为部分译码,部分译码存在着部分存储器地址空间相重叠的情况。24地址译码法A12~A8CEOEA7~A0A12~A8CEOEA7~A0A12~A8CEOEA7~A074LS373885558882764(1)2764(2)2764(3)P2.7P2.6P2.4~P2.0EAPSENP0ALE译码8031存储器地址空间分配25常用译码器芯片介绍-3-8地址译码器:74LS138存储器地址空间分配26Y0、Y1、Y2分别连接三片存储器的片选端CE1CE2、CE3各片存储器芯片分配地址:AB13AB14AB15+5VAY0BY1CY2G1…G2A.BY774LS138CE1CE2CE3Ⅰ:0000H~1FFFHⅡ:2000H~3FFFHⅢ:4000H~5FFFH存储器地址空间分配273.3外部地址锁存器由于引脚的限制,数据线和地址线复用,因此,需要用外部地址锁存器将它们分离出来。常见的地址锁存器芯片有:74LS373、8282、74LS573等。74LS373与74LS573只是引脚布置的不同。74LS273的11脚G逻辑与以上相反。28单片机复用总线结构,数据与地址分时共用一组总线。ALE地址锁存地址锁存地址输出数据有效地址输出数据有效AD0~n数据采样数据采样R/W单片机AD0~7ALER/WD0~7A0~7R/W存储器DiQiG地址锁存器AD8~nA8~n29四.程序存储器EPROM的扩展工作时,ROM中的信息只能读出,要用特殊方式写入(固化信息),失电后可保持信息不丢失。按编程方式分为:1.掩膜ROM:不可改写ROM由生产芯片的厂家固化信息。在最后一道工序用掩膜工艺写入信息,用户只可读。2.PROM:可编程ROM用户可进行一次编程。存储单元电路由熔丝相连,当加入写脉冲,某些存储单元熔丝熔断,信息永久写入,不可再次改写。303.EPROM:可光擦除PROM用户可以多次编程。编程加写脉冲后,某些存储单元的PN结表面形成浮动栅,阻挡通路,实现信息写入。用紫外线照射可驱散浮动栅,原有信息全部擦除,便可再次改写。4.EEPROM:可电擦除PROM既可全片擦除也可字节擦除,可在线擦除信息,又能失电保存信息,具备RAM、ROM的优点。但写入时间较长。5.