MCS-51存储器扩展技术详解

外部扩展的基本知识

片内的资源如不满足需要,需外扩存储器和I/O功能部件。

系统扩展主要内容有:

(1)外部存储器的扩展(外部RAM、ROM)

(2)I/O接口部件的扩展

最小应用系统:晶振、复位系统、程序存储器和I/O口。

MCS-51单片机外部存储器结构:哈佛结构:程序空间与数据空间是分开的。

MCS-51 RAM和ROM的最大扩展空间各为64KB。

系统扩展首先要构造系统总线。

按功能吧系统总线分为三组:

  1. 地址总线(Address Bus,简写AB)

  1. 数据总线(Data Bus,简写DB)

  1. 控制总线(Control Bus,简写CB)

系统总线:是连接计算机各部件的一组公共信号线,MCS51的系统总线可分为地址总线、数据总线和控制总线。

地址总线:它是用来传输单片机所发出的地址信号,以便进行存储单元和I/O端口的选择。地址总线的数目决定着可直接访问的存储单元及I/O端口的数目。

数据总线:单片机与存储单元及I/O口之间传输数据信号。

控制总线:是一组控制信号线,包括单片机发出的也包括从外部存储单元或者I/O端口发送给单片机的。

优点:总线结构大大减小了单片机系统中传输线的数目,增加了系统的可靠性。

  1. 以P0口作为数据总线(8位)。

  1. 以P0口经8位锁存器锁存后的信号作为地址总线的低8位。

  1. 以P2口作为地址总线高8位。

  1. 控制信号线。

*ALE——-低8位地址锁存信号

*PSEN*—-扩展程序存储读选通信号

*EA*——-内外程序存储器选择信号

*RD*和WR*—–扩展RAM和I/O口的读选通、写选通信号。

优点:串行接口器件体积小,与单片机接口时需要的I/O口线少,可靠性提高。

缺点:串行接口器件速度较慢。

存储器扩展的读写控制

RAM芯片:读写控制引脚OE*和WE*,与MCS51的RD*和WR*引脚相连。

EPROM芯片:只有读出引脚OE*,与MCS51的PSEN*引脚相连。

存储器分类介绍

只读存储器

–ROM

–PROM

–EPROM

可读写存储器

–SRAM静态数据存储器(不断电的情况下可一直保存数据)

–DRAM动态数据存储器(需要不断定时刷新才能保存数据)

不挥发性读写存储器

–E²PROM

–NOVRAM:不挥发随机访问存储器,如背装锂电池的SRAM(当有外部电源时切换到外部电源,没有外接电源时切换到电池)

特殊存储器:

–加密型ROM:双端口RAM;先进先出RAM;

–快擦写型存储器

程序存储器扩展所使用的芯片

采用只读存储器,非易失性。

(1)掩膜ROM:在制造过程中编程,值适合于大批量生产。

(2)可编程ROM(PROM):用独立的编程器写入,只能写入一次。

(3)EPROM:电信号编程,紫外线擦除的只读存储器芯片。

(4)E²PROM(EEPROM):电信号编程,电擦除。读写操作与RAM相似,写入速度稍慢。断电后能够保存信息。

(5)Flash Rom:又称闪烁存储器,简称闪存。电改写,电擦除,读写速度快(70ns),读写次数多(1万次)。

常用EPROM介绍

2764 (8KB * 8)

27128 (16KB * 8)

27256 (32KB * 8)

27512 (64KB * 8)

27后面的数字表示其位存储量。扩展程序存储器时,应尽量用大容量的芯片。

  1. 常用的EPROM芯片

引脚功能如下:

A0~A15:地址线引脚。数目决定存储容量。

D7~D0:数据线引脚。

CE*:片选输入端。

OE*:输出允许控制端。

PGM*:编程时,加编程脉冲的输入端。

Vpp:编程时,编程电压(+12V或+25V)

Vcc:+5V,芯片的工作电压。

GND:数字地。

NC:无用端。

  1. EPROM芯片的工作方式

(1)读出方式

片选控制线CE为低,输出允许OE为低,Vpp为+5V,指定地址单元的内容从D7~D0上读出。

(2)未选中方式

片选控制线为高电平。

(3)编程方式

Vpp端加规定高压,CE*和OE*端加合适电平,就能将数据线上的数据写入到指定的地址单元。

(4)编程校验方式

(5)编程禁止方式

输出呈高阻状态,不写入程序。

3. EPROM使用的一点注意事项

工作电压为5V,但不同厂家的芯片编程电压会有所不同。

存储器的扩展方法

扩展存储器即分配地址空间给每个芯片,注意要避免地址和数据的冲突。

芯片的片选端口为避免数据的冲突提供了方便,如何通过MCS51的地址线产生片选信号是避免地址冲突的有效途径。

片选控制

–线选法

适用于系统芯片数目较少

利用高端地址线(未用到的地址线)直接作为外扩芯片的片选线,线路简单

地址空间有重叠,即同一存储空间可能对应多个地址

–译码选通法

适用于多片存储器扩展

高端地址线经译码器译码后作为存储器片选线,线路需增加译码器芯片

地址空间连续,存储芯片空间对应地址唯一。

芯片译码选通法的分类

全译码方式:所有片选地址线(高端地址线)全部参加译码。

部分译码方式:片选地址线(高端地址线)部分参加译码,剩下部分悬空。

2 * 16 * 16 * 16 = 2^13

程序存储器的外扩

74L139的输出在0000H~3FFFH之间时,控制的是第一个27128芯片,C000H~FFFFH对应的是第四个27128芯片。每个27128芯片有不同的地址。

数据存储器的外扩

RAM芯片6264的相关总线介绍

控制总线

–存储器读选通OE

–存储器写选通WE

–存储器片选控制CS1(CE)CS2(CS)

数据总线

–数据接口D0~D7

地址总线

–地址总线接口A0~A12

用线选法扩展多片外部数据存储器6264的电路

地址线位A0~A12,故剩余地址线为三根。用线选法可扩展3片6264.3片6264对应的地址空间如下:

译码法扩展

数据存储器扩展

上图中各片62128地址分配

单片62256与8031的接口电路,地址范围为0000H~7FFFH

E²PROM芯片的外扩

保留信息时间长

程序存储器和数据存储器的地址是可以重叠的,通过不同的控制线和不同的指令加以区分。

编程举例

例1 编写程序将片外RAM中5000H~50FFH单元全部清“0”

方法1:用DPTR作为数据区地址指针,同时使用字节计数器。

MOV DPTR, #5000H; 设置数据块指针的初值

MOV R7, #00H; 设置块长度计数器初值

CLR A

LOOP: MOVX @DPTR, A; 把某一单元清0

INC DPTR; 地址指针加1

DJNZ R7, LOOP; 数据块长度减1,0则继续清0

HERE: SJMP HEREL; 执行完毕,原地踏步

方法2: 用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址。

MOV DPTR, #5000H

CLR A

LOOP: MOVX #DPTR, A

INC DPTR

MOV R7, DPL

CJNE R7, #0, LOOP; 与末地址加1比较

HERE: SJMP HERE

外扩存储器的软件设计

  1. 单片机片外程序区读指令过程(MOVC指令)

  1. 单片机片外数据区读写数据过程(MOVX指令)

例如,把片外程序存储器1000H单元的数送到片内RAM 50H单元,程序如下:

MOV A, #00H

MOV DPTR, #1000H

MOVC A, @A+DPTR

MOC 50H, A

例如,把片内50H单元的数据送到片外数据存储器1000H单元中。

MOV A, 50H

MOV DPTR, #1000H

MOVX @DPTR, A

提高: MCS-51单片机读写片外数据存储器中的内容,除用MOVX A, @DPTR和MOVX @DPTR, A外,还可使用MOVX A, @Ri和MOVX @Ri, A。这时通过P0口输出Ri中的内容(低8位地址),而把P2口原有的内容作为高8位地址输出。

物联沃分享整理
物联沃-IOTWORD物联网 » MCS-51存储器扩展技术详解

发表评论