单片机SRAM扩展实例
扩展62C64静态RAM电路的连接如图8-3所示。
主要有下列控制信号。
存储器输入信号 接单片机 (P3.7)读输出信号。
存储器写输入信号 接单片机 (P3.6)写输出信号。
ALE连接方法与程序存储器相同。使用时应注意,访问内部和外部存储器时,应分别使用MOV和MOVX指令。
外部数据存储器的访问:
图8-3 扩展8KB SRAM 6264<?XML:NAMESPACE PREFIX = O />
读(数据输入)指令 MOVX A, @DPTR
MOVX A, @Ri
写(数据输出)指令 MOVX @DPTR , A
MOVX @Ri, A。
其中Ri为片内R0或R1寄存器、CPU与外部数据存储器间传送数据时,先要把访问的外部RAM高八位地址号送入P2中,然后才能执行上述读/写指令。
80C51系列单片机数据存储器的扩充与程序存储器的扩充类似,即完成3总线的连接,且其地址总线、数据总线、片选信号的连接方式与程序存储器完全相同。所不同的是数据存储器比程序存储器多了写信号 ,且其读信号 与程序存储器的连接方法也不同。
1.线选寻址
所谓线选寻址是指不使用译码器,而直接用单片机地址线产生片选信号。现举例如下:
例8-1 用线选寻址方式将80C51单片机与2片62C64的连接 。
解:(1)地址总线AB的连接:80C51的P0.0~P0.7经74LS373与62C64(1)与62C64(2)的地址线低8位A0~A7相连。80C51的P2.0~P2.4与62C64(1)与62C64(2)的地址线高5位A8~A12相连。如图8-4所示。
(2)数据线DB的连接:80C51的P0.0~P0.7与62C64(1)与62C64(2)的数据线D0~D7相连。如图8-4所示。
(3)控制线CB的连接:80C51的读信号 与62C64(1)、(2)的读信号 连接。用P2.7与62C64(1)的片选信号 连接,用P2.7经反相器后与62C64(2)的片选信号 连接。当P2.7=0 时选中62C64(1),当P2.7=1 时选中62C64(2)。见图8-4。
(4)存储器地址空间的分配
说明:线选连接后存储器单元的地址往往是不唯一的;程序存储器也可用类似方法扩展。
2.全译码寻址
全译码寻址是指使用译码器产生片选信号。现举例如下:
例8-2 用全译码寻址方式将80C51单片机与2片62C64的连接。
解:用P2.5、P2.6、P2.7与74LS 138译码器的输入端A、B、C连接,而将其输出端的 、 分别与62C64(1)、62C64(2)的片选信号 连接,见图8-5。在图8-5中,要使27C64(1)的片选信号有效,必须使 有效,要使 有效又必须使74LS138译码器输入端输入001,即P2.7P2.6P25=001,同样要使62C64(2)被选中,则P2.7P2.6P25=010。由此可推出二个芯片的地址空间范围如下:
存储器地址空间的分配
说明:由于采用了全译码方式,2个芯片的地址是唯一的;程序存储器也可用此方法扩展。
3.程序与数据存储器的混合扩展
在实际使用的单片机系统中,既有程序存储器又有数据存储器,因此程序与数据存储器的混合扩展是掌握单片机系统的重要技术之一,下面用例子来说明程序与数据存储器混合扩展的方法。
例8-3 将80C51与1片程序存储器27C64、2片数据存储器62C64进行全译码连接。解:连接图如8-6三个芯片的地址空间范围如下:
问题1 若要求存储器的地址空间分配如下:
62C64(1) 0000H~1FFFH
27C64 2000H~3FFFH
62C64(2) 4000H~5FFFH 应如何处理?
由此可见地址空间的分配,就是74LS 138译码器输出端 与片选信号 的连接问题,方法是:
①根据存储器芯片0号单元的二进制地址算出P2.7P2.6P2.5的取值。
②由P2.7P2.6P2.5的取值确定74LS138译码器输出信号 。
③将74LS138译码器输出信号 连接到存储器芯片的片选信号 即可 。
编辑:admin 最后修改时间:2018-05-08