发布网友 发布时间:2022-03-26 10:17
共2个回答
热心网友 时间:2022-03-26 11:46
第一步:将16进制的地址码转换为2进制地址码,确定其总容量
系统程序区:6000H~67FFH
6000:0110 0000 0000 0000
67FF:0110 0111 1111 1111
因为有16根地址线,所以排列为A0~A15
A15
A14
A13
A12
A11
A10
A9
A8
0 1 1 0 0 0 0 0
0 1 1 0 0 1 1 1
(后面的用不到了,做题的时候表格要体现<最好是全部都写出>)
同理用户程序区:6800H~6BFFH
A15
A14
A13
A12
A11
A10
A9
A8
0 1 1 0 1 0 0 0
0 1 1 0 1 0 1 1
第二步:选择合适的芯片
RAM用来存储当前运行的程序和数据,并可以在程序运行中反复的更改其内容,所以用户程序一般选用RAM芯片,而ROM基本上存储不变或基本不变的程序和数据,所以系统程序一般选用ROM芯片。
接下来就是选择芯片大小的问题
系统程序区:A0~A10编码从全0变为全1,一共11根地址线,也就是2k,8根数据线,系统程序区总容量2k x 8位,所以我们就选取一片2k x 8位的ROM芯片
用户程序区:A0~A9编码从全0变为全1,一共10根地址线,也就是1k,8根数据线,用户程序区总容量为1k x 8位,但根据题干未给出1k x 8位的RAM芯片,此时我们需要进行位扩展(如果对于字扩展和位扩展不熟悉,就去找一下其他博客了解一下吧,或者评论我也可以),我们就选取2片1k x 4位的RAM芯片。
第三步:分配地址线画图
说明:
A0~A10接2k x 8位的ROM
A0~A9分别接1k x 4位的RAM
A11~A15作为片选线
38译码器:A11、A12、A13分别连接A、B、C
G1 高电平(A14根据那个表可以看到始终为1->高电平)
G2A、G2B需要高电平工作(A15始终为高电平,但是连接的位置注意有个小圈圈哦–取反的是意思 MREQ低电平有效)
输出Y4、Y5(这个需要看连接A、B、C的A11、A12、A13的编码,将其三位二进制转换为十进制就是其下标)
接下来就是看A10这根地址线,在连接ROM之后就空闲了,所以进行片选(至于为什么,抱歉学疏才浅)通过最后异或门变换输出低电平有效,说一下变换过程:A10(此时要看RAM那个表是0,38译码器输出Y5后紧接着取反为0,两个电平走到门电路首先都取反变成1,再进行与门运算为1,输出再取反为0)
拓展:对于不同的题目,38译码器的连接是不同的,因为用户和系统程序空间是不一样的,他们可能连接A0~A12。。。。
(直接上图)(这个题的一个扩张的题目,没有讲解,你们不会不能举一反三吧,不会吧,不会吧)
就像这样,当然你需要去看大量的题来看不同的38译码器的连接情况。
热心网友 时间:2022-03-26 13:04
你好