解答:0000H~03FFFH的地址范围为214=16K, ,而6264芯片的容量为8*8K, 所以需要连接2片,其中,第一片的地址为00000H~01FFFH,第二片的地址为02000H~03FFFH,这里用74LS138的Y0、Y1 作为两个芯片的片选。
4.4
叙述EPROM的编程过程,说明EEPROM的编程过程。
EPROM编程通常采用两种模式:标准编程和快速编程:
标准编程是在VCC、VPP、CE、OE、地址信号、数据信号有效并稳定后加入50毫秒的PGM编程负脉冲,可以在写入一个数据后使OE变高而立即校验,也可以在所有数据写入后逐一校验。
标准编程有两大缺陷:一是时间过长,比如2764全片编程约需7分钟,时间过长;再是编程脉冲宽度稍大容易造成芯片因功耗过大而烧毁。
快速编程将PGM的宽度减小到100微妙左右,显然速度加快了500倍左右。 能否使用快速编程取决于芯片的型号。
EEPROM 由于可以在线擦除信息,所以可以单字节编程或自动按页编程。 在单字节写入时,CE为低,OE为高,在WE加入100纳秒的负脉冲,写入时间包括擦除原有内容和写入新内容的时间,一般为10毫秒以内,可以通过查询READY/BUSY的状态判定。
自动按页编程用高位线决定页地址,低位线决定页容量,然后一次写入一页内容,写完后查询READY/BUSY状态,此一过程耗时在300微秒左右,所以速度较快。
4.5已有两片6116,现欲将其接到8088系统中去,其地址范围为40000H~40FFFH,试画出电路连接图;写入某数据并读出与之比较,若有错,则在DL中写入01H,若全对,在DL中写入EEH,试编写此检测程序。 解答:电路连接如图示:
检测程序定义为一个过程,编程如下: CHKRAM
PROC FAR
SI; DL; CX; AX;
CX,10000H;
待检验的单元个数
PUSH PUSH PUSH PUSH
MOV MOV MOV MOV MOV MOV MOV
SI,4000H; 存储体段地址 DS,SI; SI,0000H; AL,0FFH; [SI],AL; AL,[SI];
存储体首地址
写入检验数据FFH 读出
CHK:
ADD JNZ
AL,01H RAMERR
写入另一格检验数据 读出
MOV AL,0; MOV MOV AND JNZ
[SI],AL; AL,[SI]; AL,AL RAMERR
MOV DL,0EEH; JMP MOV
RAMCHKOUT DL, 01H;
所有单元全对
RAMERR: 发现错误单元
RAMCHKOUT: POP
POP
AX; CX;
POP DL; POP SI;
RET ENDP CHKRAM
4.6 利用全地址译码将EPROM27128接到首地址为A0000H的内存区,试画出电路图。 解答:EPROM27128 的容量为8* 16K,所以有14根地址线, 那么如果将其接到首地址为A0000H 内存区,高6位地址线的排列应该为:1010 00B,所以有如下的连接:
4.7 内存地址从40000H到BBFFFH共有多少K?
解答:从40000H到BBFFFH的地址空间应该为 BBFFFH-40000H= 7BFFFH 每K为210,即3FFH,7BFFFH/3FFH=1F0H=496D
所以,该地址空间的范围应该为496KByte。
4.8 试判断8088系统中存储器译码器74LS138的输出Y0、Y4、Y6和Y7所决定的内
存地址范围,电路连接见附图。 解答:
根据示意图,A19、A18、A17、A16 的电平值为 1X00B,由于采用的是部分译码(A18未使用),所以每个地址译码输出对应的两个地址范围。
Y0对应 A15、A14、A13 均为0,所以其地址范围应该为: 当A18=0时,地址范围为:
1000 0000 0000 0000 ~ 1000 0001 1111 1111 1111 B 即80000H~ 81FFFH 当 A18=1时,地址范围为:
1100 0000 0000 0000 ~ 1100 0001 1111 1111 1111B 即C0000H~ C1FFFFH
Y4 对应的 A15、A14、A13 为 100,所以其地址范围应该为:
当A18=0 时,地址范围为:
1000 1000 0000 0000 0000B~ 1000 1001 1111 1111 1111B 即88000H~ 89FFFH 当A18=1时,地址范围为:
1100 1000 0000 0000 0000 ~1100 1001 1111 1111 1111B 即C8000H~C9FFFH