第8章 存储扩展P55
- 格式:pdf
- 大小:1.80 MB
- 文档页数:55
第8 章MCS-51单片机存储空间的扩展本章将讨论如何为MCS-51单片机扩展存储空间的问题。
8.1 MCS-51单片机存储空间扩展概述单片机存储空间扩展目的:在单片机片内的存储空间不满足应用需要时,提供所需要的片外程序和数据存储空间。
先介绍扩展51单片机外部程序存储器的方法,再讨论扩展51单片机外部数据存储器的方法。
8.1.1单片机最小应用系统8051/8751/89C51 最小应用系统8031最小系统的组成:1、单片机芯片80312、地址锁存器芯片(常用:74LS373)3、存储器芯片(2716~27512芯片)单片机系统扩展的三总线结构按功能把系统总线分为三组:1.地址总线(Adress Bus,简写AB)2.数据总线(Data Bus,简写DB)3.控制总线(Control Bus,简写CB)8.1.2 单片机系统扩展的三总线结构单片机系统扩展说明:1. 以P0口作为低8位地址/数据总线。
2.以P2口的口线作高位地址线。
3.控制信号线。
8.2 地址锁存器74LS373: 也叫8D锁存器,是一个20条引脚、DIP封装、带有三态门的的芯片锁存器74LS373的引脚8.2.2 地址译码器•单片机系统在需要扩展程序/数据存储器的时候,还经常要用到地址译码器。
•地址译码器的功能是:利用单片机地址总线的数根高位线,进行状态译码,用来分离出若干各地址空间块。
•常用的地址译码器是:•74LS138 ---3-8线地址译码器•74LS139 ---双2-4线地址译码器74LS138的功能真值表( 2) 74LS139(双2-4线译码器)真值表如下。
在芯片中包含了2个功能特性完全一样的2-4线译码器8.3 单片机系统中常用的程序存贮芯片8.3.1 常用的程序存贮芯片有:1、27系列芯片,该系列为EPROM芯片,容量有2KB~4MB2、28系列芯片,该系列为EEPROM芯片,容量有2KB~4MB3、29系列芯片,该系列为FLASH ROM芯片,容量有2KB~4MB27系列EPROM芯片价廉物美,现仍被广泛使用。
缺点是需要用紫外线进行数据擦除。
27系列EPROM芯片常用的型号有:2716 (2KB×8),2732(4KB×8)2764 (8KB×8),27128(16KB×8)27256(32KB×8),27512(64KB×8),27020(256KB×8),27040(512KB×8)“27”后面的数字表示芯片的“位”存储容量。
在扩展单片机程序存储器时,应尽量用大容量的芯片。
对程序存储器的要求:1、具有非易失性;2、易于制造,价廉;3、数据存储可靠;4、数据读/写速度快。
(1)EPROM ------27系列是电信号编程(写入)、紫外线擦除的只读存储器芯片。
(2)E2PROM( EEPROM)--28系列是电信号编程、电信号擦除的只读存储器芯片。
读写操作与RAM相似,但写入速度稍慢。
断电后能够保存信息。
(3)Flash ROM ----29系列又称快闪存储器,简称闪存。
电写入、电擦除,读写速度快(70ns),读写次数多(>10万次)。
是存储芯片技术的发展趋势。
E2PROM芯片具有在线改写,掉电后仍能保存数据的特点,可为用户的特殊应用提供便利。
但是,擦除和写入对于要有数据高速吞吐的应用还显得时间过长,其读/写速度还远远慢于RAM芯片。
这是E2PROM的主要缺陷。
例如:E2PROM AT28C64的“读”时间为:120nS而字节擦除时间和写入时间约0.2~1ms。
8.3.2 EPROM2764(一)芯片参数:1、紫外线可擦除的ROM,8KB容量。
2、+5V电源;3、21-25V写入电压,(对CMOS是12.5V;)4、读写速度250ns,工作电流:I0=75mA;5、芯片未选中时,工作电流35mA。
(二)芯片引脚及说明:1、芯片引脚数量:28,其中第26脚未用;2、DB:8根,D0-D7,当芯片未选中时,DB 为3态。
3、AB:13根,A0-A124、CB:/PGM, /CE, /OE5、电源:Vcc=5V, GND,VppEPROM存储器2764引脚图(8KB×8)8.3.3 其他的EPROM芯片2732/27256/275122732: 4KB×827256: 32KB×827512: 64KB×81.常用的EPROM芯片引脚图。
A0~A15:地址线引脚。
数目决定存储容量。
D7~D0:数据线引脚/CE:片选输入端/OE:输出允许控制端/PGM:编程时,加编程脉冲的输入端Vpp:编程时,编程电压(+12V或+25V)输入端Vcc:+5V,芯片的工作电压。
GND:数字地。
NC:未用端8.4 单片机系统中常用的数据存贮芯片介绍8.4.1 常用的典型程序存贮芯片有:1、61系列芯片,该系列为SRAM芯片,容量有2KB~4MB2、62系列芯片,该系列也是SRAM芯片,容量有2KB~4MB 61/62系列芯片价廉物美,被广泛使用。
典型SRAM芯片有:6116 (2KB×8),6132 (4KB×8)6164 (8KB×8),61128(16KB×8)61256(32KB×8),61512(64KB×8),61010(128KB×8),61020 (256KB×8)等62系列芯片的编号与特性与62系列芯片情况基本一样。
61/62系列芯片后面的数字表示芯片的“位”存储容量。
在扩展单片机数据存储器时,应尽量用大容量的芯片。
8.4.2 SRAM 6264介绍(一)芯片参数:•静态RAM,8K容量。
•CMOS/NMOS工艺;•+5V电源,28Pin;•读写速度:200ns,功耗200 mW•地址线:13根,A0-A12•数据线:8根,D0-D7(二)芯片引脚及说明:28Pin, Pin 1 未用•DB:8根,D0-D7,DB具有3态功能。
•AB:13根,A0-A12•CB:/RD, /WR, /CE1, CE2•电源:Vcc=5V, GNDSRAM 6264的引脚8.4.3 SRAM 6116/62256 的引脚8.5 程序存贮器扩展程序存贮器扩展主要事项:1、8031必须外扩程序存贮器;故其P0口、P2口只能作为DB,AB使用,不能作为通用I/O线使用。
(/EA=0).2、8751/89C51含4KB片内存贮器,如用户程序大于4KB,则也须外扩EPROM;3、只使用片内程序存贮器时(8751/89C51),P0-P2可作I/O用,P3兼作CB用;4、只要使用片外程序存贮器(/EA=0),用户就不能把P0/P2用作I/O口;程序存贮器扩展5、存贮器芯片选取须注意的问题:(1)容量:需满足需求,有所富裕;(2)速度:存取速度不得低于MCU的数据读写速度(3)地址分配:合理,不得有地址交叉、重叠或无意义的分段(4)地址译码:简单、实用,价廉物美(5)尽量用单芯片程序存贮器;6、地址译码问题:常用的地址译码芯片为LS138、LS139等。
7、通常使用74LS373分离出单片机地址总线的低8位。
8.5.1 程序存贮扩展电路范例典型的EPROM接口电路1.尽量使用单片EPROM的扩展电路▲目前2716、2732 EPROM芯片容量小,性价比较低,且难以买到。
▲故这里仅介绍2764、27128、27256、27512等芯片的接口电路。
▲下图为外扩8KB EPROM 2764的接口电路图和外扩16KB EPROM 27128的接口电路图。
2764与8031的连接,扩展8KB程序存贮器该电路程序存储器的地址范围是:0000H~1FFFH, 存储容量为8KB。
但是由于单片机的P2.7/P2.6/P2.5未与2764存储器的地址线连接,无论这3根线取27128与8031的连接,扩展16KB程序存贮器该电路程序存储器的地址范围是:0000H~3FFFH, 存储容量为16KB。
该27128存储器的地址空间也存在“重码”27256与8031连接,扩展32KB程序存贮器该电路程序存储器的地址范围是:0000H~7FFFH,存储容量为32KB•一般而言,只要单片机使用单片的程序(或数据)存储芯片,则该存储芯片的选片端可以设置为“始终有效”,因为此时在单片机应用系统中并不存在“选片”的问题!•但是要注意,系统中若使用多片程序(或数据)存储芯片,则必须恰当的控制存储芯片的选片端,以便恰当的为这≥2片的程序(或数据)存储芯片分配好存储空间地址范围!8.5.2 多片存储器的连接方法:可以使用线选法(即利用1根或2根高位的)地址线来选择存储芯片),或地址译码法(即利用地址译码器74LS138/74LS139来进行地址译码),以唯一的确定存储器的地址。
(1) 线选法线选法的优/缺点:简单、使用方便,但地址利用率不高,容易产生重码。
适宜在地址空间富裕的时候使用。
例:8031与2764的线选连接在该图中,8031的P2.5(即A13)必须=0,才能选中2764芯片使其开始工作。
•程序存储器2764的/CE端接在P2.5(A13)上,P2.6、P2.7(A14、A15)悬空,就是利用P2.5(A13)线来选择程序存储器2764芯片。
此时程序存储器的地址范围为:•A15 A14 A13 A12,A11 A10 A9 A8,A7 A6 A5 A4,A3 A2 A1 A0•××00,0 0 0 0,0 0 0 0,0 0 0 0 B = 0000H •××01,1 1 1 1,1 1 1 1,1 1 1 1 B = 1FFFH •(将××视为0 0),•但是若将××视为0 1,则程序存储器的地址范围也为:•0 100,0 0 0 0,0 0 0 0,0 0 0 0 B = 4000H•0 101,1 1 1 1,1 1 1 1,1 1 1 1 B = 5FFFH •若将××视为1 0,则程序存储器的地址范围也可为:• 1 000,0 0 0 0,0 0 0 0,0 0 0 0 B = 8000H • 1 001,1 1 1 1,1 1 1 1,1 1 1 1 B = 9FFFH •若将××视为1 1,则程序存储器的地址范围也可为:• 1 100,0 0 0 0,0 0 0 0,0 0 0 0 B = C000H • 1 101,1 1 1 1,1 1 1 1,1 1 1 1 B = DFFFH •也就是说,CPU访问0000H~1FFFH、4000H~5FFFH、8000H~9FFFH、C000H~DFFFH,都是访问电路中的这个2764程序存储器芯片,所以此时在CPU的寻址空间中存在着“重合地址”(即存在地址重码现象)。