当内部程序存储器容量不足时,就需要进行程序存储器的扩展。单片机的程序存储器扩展使用只读存储器芯片。只读存储器rom中的信息一旦写入之后就不能随意更改,即不能在程序运行过程中写入新的内容,而只能读存储单元内容。因为掉电后rom中存放的数据不会丢失,所以rom适宜存放程序、常数、表格等。存储器扩展的核心问题是存储器的编址问题。所谓编址就是给存储单元分配地址。由于存储器通常由多片芯片组成,因此存储器的编址分为两个层次,即存储器芯片的选择和存储器芯片内部存储单元的选择。
一、存储器编址技术
编址就是给存储单元分配地址。使用系统提供的地址线,通过适当的连接,使得一个地址唯一对应存储器中一个存储单元。存储器芯片的选择有两种方法:
1.线选法----直接以系统的地址作为存储芯片的片选信号。优点是简单不需增加额外电路,适用于小规模单片机系统的存储器扩展;缺点是存储空间不连续。
2.译码法---使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号。优点是存储空间连续,适用于大容量多芯片存储器扩展;缺点是硬件设计需要增加译码器。
3.译码器
译码法时需要采用译码芯片,常见译码芯片有:74ls139(双2-4译码器)和74ls138(3-8译码器)等,它们的cmos型芯片分别是74hc139和74hc138。74ls138如图1所示。
图1 74ls138芯片
74ls138的真值表说明了其输入输出以及控制信号的关系,如图2所示。
图2 74ls