4.1.3 数据存储器扩展
单片机片内数据存储器容量满足不了使用要求时,同样可采用三总线结构原则作外部并行扩展(也可以采用后述的串行存储器扩展),通常采用读写速度较快、扩展电路简单的静态数据存储器(SRAM)来实现。常见的8位芯片有6116(2KB)、62C64(8KB)、62C256(32KB)等。62C64型数据存储器引脚见图4-7,地址线数目与字节容量均与程序存储器芯片(27C64)相同,同样具有片选线
和读允许线
,只是多了一条写允许线
。片选可采用线译码法或全译码法。因要进行读/写操作,单片机的写控制线
和读控制线
要分别连接数据存储器的写允许线WE和读允许线OE,PSEN线不用。

图4-7 62C64型数据存储器引脚
外扩的数据存储器读/写时序见图4-8。读/写指令属双机器周期指令,每个机器周期含6个S状态,每个S状态有两个节拍P1和P2(详见1.2.3节)。
图4-8a为读操作时序。P2口提供外部数据存储器的高8位地址A15~A8,P0口分时提供低8位地址A7~A0。地址锁存允许信号ALE从低电平变为高电平,开始读周期。在ALE为高电平时,低8位地址有效;图中(1)表示机器周期1的S2状态,由ALE下降沿把低8位地址锁存进锁存器后,P0口浮空。图中(2)~(3)表示机器周期1的S4~S6状态,读信号
低电平有效时,P0口转为输入方式,同时外部数据存储器被选通;
上升沿时存储单元的数据输入P0口,并由CPU读入累加器,然后P0口浮空。读数据期间,取指控制线
不起作用,呈高电平状态。
图4-8b为写操作时序,与读操作过程类似。P2口同样提供数据存储器的高8位地址。ALE为高电平时,P0口分时提供的低8位地址有效;图中(1)表示机器周期1的S2状态,由ALE下降沿把低8位地址锁存进锁存器后,P0口释放作为数据线。图中(2)~(3)表示机器周期1的S4~S6状态,写信号
低电平有效时,累加器A的数据从P0口输出,在
的上升沿把数据写入外部数据存储器。写数据期间取指控制线
同样不起作用,呈高电平状态,所以取指令操作和读/写操作不会发生冲突。可采用如下两组指令对外扩的数据存储器进行读/写操作。
(1)由8位指针寻址片外256B数据存储器(https://www.daowen.com)

(2)由16位指针寻址片外64KB数据存储器

图4-9为数据存储器扩展电路示例,通过全译码法扩展3片8位62C64(8KB)静态数据存储器。其中,62C64芯片具有两种极性的片选信号线可供选择,CE1为低电平有效而CE2为高电平有效。通常采用CE1作片选信号,把CE2接高电平。图中用74HC138译码器进行地址译码,最大可供8条片选线。数据存储器62C64(1)~(3)的地址范围依次为:0000H~1FFFH,2000H~3FFFH,4000H~5FFFH。

图4-8 外扩的数据存储器读/写时序

图4-9 数据存储器扩展电路示例