单片机外部存储器扩展
㈠ 为什么要对单片机系统进行存储器扩展
如果单片机系统原有的资源不够充足、不能满足应用所需的要求,那么就需要进行存储器的扩展。
可能需要扩展片外的程序存储器,也可能需要扩展片外的数据存储器,某些情况下还需要结合软件进行更复杂的存储器接口扩展(例如大容量的SPI Flash或者走SPI子协议的SD卡等等)。
㈡ 单片机外部扩展存储器的四个I/O接口各起什么作用
当单片机外部扩展存储器 一般要采用总线扩展:
1 P0口将作为总线的低8位地址线和8位数据线使用
2 P2口将作为总线的高8位地址线使用 没有使用的高位地址线 将作为存储器的片选信号
3 P3口的P3.6和P3.7将作为片外数据存储器的写信号、读信号 即做控制总线使用
单片机的29引脚 PSEN将作为片外程序存储器的读信号。
P3口其它引脚 可作为专用线使用 如定时计数器的输入、外部中断0和1的输入、串行口的
数据输入、输出线。
4 P1口可以做I/O口使用 连接输入/输出设备
㈢ 单片机程序存储器扩展电路问题
答:在设计片外程序存储器之前,首先要决定EA引脚的电平。
EA=0,单片机只访问外部程序存储器,对于8031单片机此引脚必须接地.EA=1,单片机访问内部程序存储器,对于内部有程序存储器的8XX51单片机,此引脚应接高电平,但若地址值超过4KB范围,单片机将自动访问外部程序存储器。
设定好EA后,单片机自动按程序所设定的次序执行。
在编程中不需要专门的语句指定调用的是外部程序存储器。比如设定EA接高电平,则程序在执行完片内的程序存储器指令后自动转入片外程序存储器,而无需特殊命令。这就是所谓的程序存储器是片内外统一编址,而数据存储器则用Mov和Movx分别对待的。
但楼主要知道程序在读取片外指令代码时的过程:先寻址,再取数。单片机会根据PC的值先给P2和p0送一个选通地址(PC的值),接下来从片外程序存储器读取代码。因为PC的值一般是连续的,这就要求片外的程序存储器空间要连续分布,这和数据存储器不同。如果不连续分布,就要用特殊的行号改变PC的值,使它和片外程序存储器分布能够对应。
㈣ 单片机扩展外部存储器
24C08是有寿命的,如果快速的循环写是会坏的,如果只是暂态的数据,你随便用一个外部RAM或者换一个内部RAM大点的,就可以了
㈤ 51单片机的外部存储器扩展
是的。
主流的单片机(不包括51)都已经不支持外部存储器扩展了,单片机自带128K的ROM也很常见。
而且51类中,也有不少是不支持外部存储器扩展的。
最后,做为学习,这部分看看就行,了解一下就好了。
对于trousers所说的。
51的外部存储器扩展是把单片机内部的总线外引化,I/O使用不少于8根线。对于一个你说的要完成不同工作的单片机系统,相对是很复杂的,剩下的IO还够用吗?
按你的意思,一个功能复杂到内部128K都装不下的程序,那还用单片机就太费劲了吧,应该用ARM了,但ARM的程序空间就又是一个量级的了,不过,ARM到还是有不少是保留了外部存储器扩展I/O的。
尽管目的是一样的,都是为了扩展外部存储器但你要知道,51刚出现时ROM贵的和金子似的,英特尔不敢在51结构里放ROM,所以才想出外部扩展的主意,现在FLASH ROM都白菜价了,51也不再是单片机的主力,单片机的外部扩展越来越多的变成了内部自带,就51的外部扩展而言早已是鸡肋了,知道有怎么个东西就行。
而ARM扩展只是以防万一,128M(不是128K)的ROM还不够用吗?
万一(岂止是万一,我想是千万分之一)用到了,不陌生,脸熟就行了。
对kxjs。
大哥,你知道51的外部存储器扩展具体是指什么吗?24C02是I2C通讯,51这个直接就是结内部是总线,不是一会事。
以上!
㈥ 高级语言编程时如何进行单片机外部数据存储器扩展
外部数据存储器扩展,是硬件电路的任务,需要增加实物存储器才行。不是编程能解决的,只要扩展了外部数据存储器,编程序才能使用外部数据存储器来读/写数据。至于怎么写,要看是什么单片机。
㈦ 为单片机拓展外部程序存储器时,多片ROM芯片的容量不同如何拓展
拓展外部存储器,通常都会选择相同容量的芯片,因为这样构建译码电路会比较简单。如果因一些特殊需要,必须使不同容量的器件,那要看扩展的存储空间是否要求连接的地址。若必须是连接地址,地址译码电路比较复杂,适合采用CPLD或FPGA等可编程器件来实现。如果每片扩展存储器之间,并不要求连续地址,也可考虑按最大容量器件的地址范围来设计译码。
㈧ 单片机外部存储器扩展 SPI
SPI总线不需要FSMC……而且用I/O口很容易仿的出来……只要你有3到4个I/O口以及足够的程序空间就肯定可以扩展……
㈨ 单片机存储器扩展
不应该这样问。。
首先51肯定是可以接flash存储器的。
容易最大是不是64K ,,看你问的具体意思
如果说指的是扩展的是程序存储器或者数据存储器呢。
那么确实是64K。
如果你那些所谓存储器。。想存的不是 代码而是一下 图片什么的资源
那么扩展到1M那也是可以的。
因为51是16位地址线 。所以程序数据存储器只能扩展到64K
c8051这种。他做了内部扩展。。属于非标准的51了
如果是单单是存储器。那些指用来存资源用的。。像电脑的硬盘一样。
什么时候用什么时候去读取的这种。
那么你扩个1M的 flash也没人说你。。只要你能买到1m的串口flash就可以了。
呵呵 o(∩_∩)o...哈哈
如果是程序存储器。。要1M 那么你也是n人了。
1024*1024/2 = 大约500,000行代码。。
㈩ 简述8031单片机外部扩展ROM与扩展RAM在硬件连线和软件访问方式上有何不同
硬件不同:
ROM 芯片,必须连接到 8031 的 /PSEN 引脚。
RAM 芯片,必须连接到 8031 的 /RD、/WR 引脚。
软件不同:
针对 ROM (不分片内片外),只有两条指令:
MOVCA,@A + DPTR;引脚 /PSEN = 0
MOVCA,@A + PC。 /PSEN = 0
针对片外 RAM,只有四条指令:
MOVXA,@DPTR;引脚 /RD = 0
MOVXA,@Ri; /RD = 0
MOVX@DPTR,A;/WR = 0
MOVX@Ri,A。 /WR = 0