水电之家讯:当单片机内部程序存储器容量不足时,就需要进行程序存储器的扩展。单片机的程序存储器扩展使用只读存储器芯片。只读存储器ROM中的信息一旦写入之后就不能随意更改,即不能在程序运行过程中写入新的内容,而只能读存储单元内容。因为掉电后ROM中存放的数据不会丢失,所以ROM适宜存放程序、常数、表格等。存储器扩展的核心问题是存储器的编址问题。所谓编址就是给存储单元分配地址。由于存储器通常由多片芯片组成,因此存储器的编址分为两个层次,即存储器芯片的选择和存储器芯片内部存储单元的选择。一、存储器编址技术 编址就是给存储单元分配地址。使用系统提供的地址线,通过适当的连接,使得一个地址唯一对应存储器中一个存储单元。存储器芯片的选择有两种方法:
1.线选法----直接以系统的地址作为存储芯片的片选信号。优点是简单不需增加额外电路,适用于小规模单片机系统的存储器扩展;缺点是存储空间不连续。
2.译码法---使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号。优点是存储空间连续,适用于大容量多芯片存储器扩展;缺点是硬件设计需要增加译码器。
3.译码器
译码法时需要采用译码芯片,常见译码芯片有:74LS139(双2-4译码器)和74LS138(3-8译码器)等,它们的CMOS型芯片分别是74HC139和74HC138。74LS138如图1所示。
图1 74LS138芯片74LS138的真值表说明了其输入输出以及控制信号的关系,如图2所示。
图2 74LS138的真值表
二、EEPROM接口设计 以2764为例来说明存储器的扩展接口设计方法。2764是一种8K×8位的紫外线擦除电可编程只读存储器,单一+5V供电,工作电流为100mA,维持电流为50mA,读出时间最大为250ns。2764为双列直插式28引脚的标准芯片,容量为8K×8位。其引脚见图3。
2764在使用时,只能将其所存储的内容读出。即首先送出要读出的单元地址,然后使和均有效(低电平),则在芯片的D0~D7数据线上就可以输出要读出的内容。其过程的时序关系如图4所示。
图3 2764引脚图 图4 2764时序图 以下两个例子均采用2764,分别采用线选法和译码法来进行程序存储器扩展。
例1.采用线选法,使用两片2764,一共构成8K×2=16K的有效地址。
解:2764有13根地址线,分别由P0.0~P0.7、P2.0~P2.4提供,系统的P2.5~P2.7没有用,采用2片2764构成系统,则可以使用P2.5~P2.7中的任何2根作为线选线,在本设计中采用P2.5和P2.6作为线选线,则可分析得到这2块芯片的基本地址范围。
假设未用地址线取0,则2764(1)的基本地址范围:4000H~5FFFH。
假设未用地址线取0,则2764(2)的基本地址范围:2000H~3FFFH。
图5 线选法扩展 例2.用EPROM2764扩展生成24KB的程序连续存储空间,采用74LS138译码,要求该24KB的地址空间从8000H开始编码。
解:由于1块2764芯片是8KB,所以要生成24KB的程序存储空间需要3块2764芯片;由于生成的是连续的存储空间,所以采用译码法。地址空间要求从8000H开始编码,则
2764(1)的基本地址范围:8000H~9FFFH:
2764(2)的基本地址范围:A000H~BFFFH:
2764(3)的基本地址范围:C000H~DFFFH:
观察3块芯片的高位地址线A15~A13,并考虑74LS138译码器的输入与输出之间的关系(见图2)可知,3块2764芯片应依次接Y4、Y5、Y6输出端。扩展电路图见图6。
图6 译码法扩展水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/