⑴ 为单片机拓展外部程序存储器时,多片ROM芯片的容量不同如何拓展
拓展外部存储器,通常都会选择相同容量的芯片,因为这样构建译码电路会比较简单。如果因一些特殊需要,必须使不同容量的器件,那要看扩展的存储空间是否要求连接的地址。若必须是连接地址,地址译码电路比较复杂,适合采用CPLD或FPGA等可编程器件来实现。如果每片扩展存储器之间,并不要求连续地址,也可考虑按最大容量器件的地址范围来设计译码。
⑵ 为什么要对单片机系统进行存储器扩展
如果单片机系统原有的资源不够充足、不能满足应用所需的要求,那么就需要进行存储器的扩展。
可能需要扩展片外的程序存储器,也可能需要扩展片外的数据存储器,某些情况下还需要结合软件进行更复杂的存储器接口扩展(例如大容量的SPI Flash或者走SPI子协议的SD卡等等)。
⑶ 单片机内存扩展是怎么回事请仔细讲解
最早的标准51单片机8051片内只有128字节RAM,4KROM
如果内存空间不够,特别是ROM不能容下全部程序,就需要扩展外部的ROM,51单片机支持扩展最大64KROM,64KRAM.
扩展外部内存需要用到P2P0口和P3口的一部分及PSEN,ALE等引脚,占用比较多的I/O口。
现在很多的增强型的51单片机已经做到内存足够大,基本上不再需要扩展。
⑷ 单片机在外扩存储器的作用
单片机片内存储器包括片内ROM和片内RAM,片内ROM用于存储程序代码,片内RAM包括寄存器和片内扩展RAM,比如STC的很多型号都有片内扩展EEPROM。
片外存储器包括片外ROM和片外RAM,片外ROM用户存储程序代码,片外RAM用于存储用户的可改写数据。
⑸ 51单片机能扩展内部内存吗如果能怎么扩展,求大神指导
不能,内部内存不够的话,只能增加外部硬件内存了。还有你用的是什么的,一般同一品牌的单片机都有内存不一样的(比如,SCT80C52就比STC80C51内存大)
⑹ 51单片机外扩存储器时如何确定存储器的地址范围
51单片机外扩存储器时,用地址线确定存储器的地址范围。
用一个IO口的口涎作为数据存储器的片选信号。比如8051单片机,P2:P0口提供的地址A15~A0(实际是A12~A0)用来访问8K的数据存储器。
用单片机的P1口作为存储器的片选信号:P1.0接一个存储器的CS,P1.1接另一个存储器的CS,这样8个存储器正好用完P1口,当要访问其中一个时,只把相应的P1.x=0而其他为1,这样就可以了。
工作原理
存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。
主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。
⑺ 单片机的内存不够用如何来扩展
一个是外倍扩散,参考51单片机,占用不少的I/O口,
二是换大容量的单片机,比如说C8051F020,指令和51完全兼容,有64K的程序ROM.
⑻ 单片机内存不够,应该外扩还是内扩
你所说的“内存”是一个奇妙的概念,具体看你指的是 RAM/数据存储器 还是 ROM/程序存储器……
所谓内扩,也得有内部潜力才能挖掘,比如很多单片机片内其实有多个可用的RAM段,很多初学者并不知道如何全部利用。
外扩会使得设计变得复杂、空间占用增多、BOM成本上升,所以应当经过慎重考虑。先确定你的设计是不是真的需要那么多资源、同系列单片机是否有资源更多的型号。
存储器不足,无非两个方式,一个开源,一个节流。节流主要是通过充分的优化,例如减少额外的库函数调用、程序代码充分优化、减少无用的缓冲区、精确计算按需分配、精打细算而不是豪爽地一掷千金……
⑼ 51单片机定义数组太大RAM不够用如何扩展
选用内存比较大的单片机或按8080总线扩展内存
不管是片上256B以外的内存还是外扩内存,编程中变量前都要加xdata 修饰
其实你只要用xdata 修饰,编译就能通过,但如果你实际上没有扩展内存,运行时才会出错
⑽ 当EA电平为1时,S52单片机可以扩展的外部程序存储器的最大容量为什么是56KB
因为S52片内已经有2000h也就是8kB的程序存储器,而程序寻址空间只有64kB,所以外扩程序存储器再大也只能用到56kB。不过,借助分页技术,51单片机能很容易地实现超过64kB的程序空间,例如Keil默认支持的分页就能实现最大 64 kB × 256 Pages = 16 MB 的外部程序存储器。