⑴ 微机原理总的存储器字扩展问题
存储芯片的扩展包括位扩展、字扩展和字位同时扩展等三种情况。
1、位扩展
位扩展是指存储芯片的字(单元)数满足要求而位数不够,需对每个存储单元的位数进行扩展。
例: 用 1K × 4 的 2114 芯片构成 lK × 8 的存储器系统。
分析: 每个芯片的容量为 1K ,满足存储器系统的容量要求。但由于每个芯片只能提供 4 位数据,故需用 2 片这样的芯片,它们分别提供 4 位数据至系统的数据总线,以满足存储器系统的字长要求。
设计要点 :
(1) 将每个芯片的 10 位(1k=2^10)地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低 10 位。
(2) 数据线则按芯片编号连接,1 号芯片的 4 位数据线依次接至系统数据总线的 D0 -D3 , 2 号芯片的 4 位数据线依次接至系统数据总线的 D4 -D7 。
(3) 两个芯片的 端并在一起后接至系统控制总线的存储器写信号(如 CPU 为 8086/8088,也可由 和 /M 或 IO / 组合来承担)
(4) 引脚分别并联后接至地址译码器的输出,而地址译码器的输入则由系统地址总线的高位来承担。
当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。
2 、字扩充
字扩展用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展。
例 : 用 2K × 8 的 2716 A存储器芯片组成 8K × 8 的存储器系统
分析:
由于每个芯片的字长为 8 位,故满足存储器系统的字长要求。但由于每个芯片只能提供 2K 个存储单元,故需用 4 片这样的芯片,以满足存储器系统的容量要求。
设计要点 : 同位扩充方式相似。
(1) 先将每个芯片的 11(2* 2^10) 位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低 11 位。
(2) 将每个芯片的 8 位数据线依次接至系统数据总线的 D0 -D7 。
(3) 两个芯片的 端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),
(4) 它们的 引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。
当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输出。
3 、同时进行位扩充与字扩充
存储器芯片的字长和容量均不符合存储器系统的要求,需要用多片这样的芯片同时进行位扩充和字扩充,以满足系统的要求。
例 : 用 1K × 4 的 2114 芯片组成 2K × 8 的存储器系统
分析: 由于芯片的字长为 4 位,因此首先需用采用位扩充的方法,用两片芯片组成 1K × 8 的存储器。再采用字扩充的方法来扩充容量,使用两组经过上述位扩充的芯片组来完成。
设计要点 : 每个芯片的 10 根地址信号引脚宜接接至系统地址总线的低 10 位,每组两个芯片的 4 位数据线分别接至系统数据总线的高 / 低四位。地址码的 A 10 、 A 11 经译码后的输出,分别作为两组芯片的片选信号,每个芯片的 控制端直接接到 CPU 的读 / 写控制端上,以实现对存储器的读 / 写控制。
当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片组,低位地址码则同时到达每一个芯片组,选中它们的相应单元。在读 / 写信号的作用下,选中芯片组的数据被读出,送上系统数据总线,产生一个字节的输出,或者将来自数据总线上的字节数据写入芯片组。
⑵ 单片机RAM如何扩展
1、我用89s52有256的RAM,但也只能够用一半。个人猜测可能有点像电脑上的进程那样,每个进程都有4G的虚拟内存,但只有2G是用户空间,还有2G是系统空间。可能这个也一样。因为系统也要帮你做一些事,你都用完了RAM,系统怎么帮你做事呀?
2、这个没用过,不懂。
3、这个最后再讲。
4、5、像上面讲的一样,把你要显示的东西定义在ROM上面,
而不是定义在RAM上,定义的时候用个code 关键字就得了。
就拿89S52来说ROM有8K 而RAM 才256.就样的话还有必要扩展吗?数码管,点阵的显示代码定义在ROM上,用的时候和RAM上的一样,但要注意一点,定义的时候必须初始化,因为在ROM上定义的,你对他赋值是错误的,你可以写个小程序试下。
最后说下3、强烈建议楼主再好好看看书。
在子程序中定义的变量,可以理解为一种临时变量吧。
因为出了子程序它的生命周期就结束了,回到主函数是不能
再用了的。子函数里面的变量,和形参,是函数被调用时才对他们分配内存的。调用结束后它们的空间就被释放了,到下次调用时再分配。(申明为静态变量和外部变量除外,他们的生命周期是和主函数一样的)
你最好搞明白各种变量的在哪分配,生命周期是多长。不然你引用一个被销毁了的东西当然就会出错了。
还有个函数形参和实参之间的关系的。以前答的。你可以去看下,希望对你有帮助。
http://..com/question/97142601.html
⑶ 在已有的芯片基础上,如何进行位扩充、如何进行字扩充
1.位扩充:当使用的存储器芯片单元数目符合要求,但每单元的位数较少时,需要进行这种扩充。例如,使用4164(64K*1)扩充64KB存储系统,就需要进行位扩充。
连接示意图如下所示:
如图显示的是将两片32K*8芯片连接成64K*8的存储系统。采用字扩充,其连接要点是:两芯片的低位地址线分别并接在一起,接至系统地址总线的低位;两芯片的数据线分别并接在一起,接至系统数据总线;系统高位地址线,进行译码,译码的输出分别接至两芯片的片选端CS1,CS2。
⑷ 由扩展为2K*8的存储器芯片生成规格为4K*8的存储器子系统,采用什么扩展方式生
回答
由扩展为2K*8的存储器芯片生成规格为4K*8的存储器子系统,采用什么扩展方式生?
芯片(集成电路) 硬件
⑸ 由存储器芯片扩展成存储器由哪几种译码方式各由什么特点
容量扩展主要有两种方式,并位和串位,举个例子,有个2KB的存储器,我再扩展个2KB的存储器,如果是并位扩展方式,地址范围还是2k的空间,不过每次读出的是16bit;如果是串位方式,则直接扩展成4KB,有4k的地址范围,每次读出8bit,不知道你明白了没有?这个跟片选信号连接方式,以及地址、数据线连接方式有关. 一般来说是以Byte为读取单位,通常都是串行扩展,即地址线性扩展,2KB的空间,再增加2KB,一共就4KB的存储器,也是最常用的方式,地址线的高位通过译码电路构成片选信号,低位为每片的地址信号.
⑹ 问:什么是位扩展,什么是字扩展
存储芯片的扩展包括位扩展、字扩展和字位同时扩展等三种情况。1、位扩展位扩展是指存储芯片的字(单元)数满足要求而位数不够,需对每个存储单元的位数进行扩展。例:用1K×4的2114芯片构成lK×8的存储器系统。分析:每个芯片的容量为1K,满足存储器系统的容量要求。但由于每个芯片只能提供4位数据,故需用2片这样的芯片,它们分别提供4位数据至系统的数据总线,以满足存储器系统的字长要求。设计要点:(1)将每个芯片的10位(1k=2^10)地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低10位。(2)数据线则按芯片编号连接,1号芯片的4位数据线依次接至系统数据总线的D0-D3,2号芯片的4位数据线依次接至系统数据总线的D4-D7。(3)两个芯片的端并在一起后接至系统控制总线的存储器写信号(如CPU为8086/8088,也可由和/M或IO/组合来承担)(4)引脚分别并联后接至地址译码器的输出,而地址译码器的输入则由系统地址总线的高位来承担。当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。2、字扩充字扩展用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展。例:用2K×8的2716A存储器芯片组成8K×8的存储器系统分析:由于每个芯片的字长为8位,故满足存储器系统的字长要求。但由于每个芯片只能提供2K个存储单元,故需用4片这样的芯片,以满足存储器系统的容量要求。设计要点:同位扩充方式相似。(1)先将每个芯片的11(2*2^10)位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低11位。(2)将每个芯片的8位数据线依次接至系统数据总线的D0-D7。(3)两个芯片的端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),(4)它们的引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输出。3、同时进行位扩充与字扩充存储器芯片的字长和容量均不符合存储器系统的要求,需要用多片这样的芯片同时进行位扩充和字扩充,以满足系统的要求。例:用1K×4的2114芯片组成2K×8的存储器系统分析:由于芯片的字长为4位,因此首先需用采用位扩充的方法,用两片芯片组成1K×8的存储器。再采用字扩充的方法来扩充容量,使用两组经过上述位扩充的芯片组来完成。设计要点:每个芯片的10根地址信号引脚宜接接至系统地址总线的低10位,每组两个芯片的4位数据线分别接至系统数据总线的高/低四位。地址码的A10、A11经译码后的输出,分别作为两组芯片的片选信号,每个芯片的控制端直接接到CPU的读/写控制端上,以实现对存储器的读/写控制。当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片组,低位地址码则同时到达每一个芯片组,选中它们的相应单元。在读/写信号的作用下,选中芯片组的数据被读出,送上系统数据总线,产生一个字节的输出,或者将来自数据总线上的字节数据写入芯片组。
⑺ 什么是储存芯片连接中的位扩充和地址扩充
存储器是由芯片组成的,假设如果cpu需要8根数据线从存储器读取数据,但是一个存储器芯片如果只有4根数据线,很显然是不能交换数据的,这个时候就需要2个芯片来扩充存储器的位宽度,这种扩充就是位扩充。一个存储芯片的容量毕竟有限,如果存储器系统需要更大的存储容量,这个时候就需要多个存储芯片在地址方向上进行扩充,这就是地址扩充。
⑻ 为单片机拓展外部程序存储器时,多片ROM芯片的容量不同如何拓展
拓展外部存储器,通常都会选择相同容量的芯片,因为这样构建译码电路会比较简单。如果因一些特殊需要,必须使不同容量的器件,那要看扩展的存储空间是否要求连接的地址。若必须是连接地址,地址译码电路比较复杂,适合采用CPLD或FPGA等可编程器件来实现。如果每片扩展存储器之间,并不要求连续地址,也可考虑按最大容量器件的地址范围来设计译码。
⑼ 存储芯片扩展
内存按字节编址
--- 就是按byte,1byte=8bit
内存容量为32K*8比特
--- 就是32*8=256K比特(bit) = 32K字节
地址编号A0000H到DFFFFH
--- DFFFFH-A0000H+1 = 40000H = 262144字节
所以
--- 262144 / 32K = 262144 / (32*1024) = 8
需要8块