新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 51单片机存储器扩展问题

51单片机存储器扩展问题

作者:时间:2013-01-30来源:网络收藏

一.51的从功能上来说可以分为程序和数据,至于到底能扩展多少存储空间,要看你扩展的是哪一类存储器。

访问存储空间时,需要用到两个指针变量,为DPTR和PC。其中pc为程序计数器,指向下一条需要执行的指令的地址,DPTR为数据指针寄存器,这两个变量的长度都为16位,这是内部结构决定的,无法改变。所以这两个指针的寻址能力都为64K。这样看来,两类存储器的扩展能力都为64K 。但是,如果你实际扩展过存储器,你就可以发现程序存储器的扩展能力并没有64K!!!

这是为什么呢?

这得从的存储空间的编址说起。这里仅作简单说明,具体可以看教科书。简单地说,内部程序存储器和外部程序存储器是一起编址的,它们分别占用64K地址的一部分,所以外部扩展时要减去内部的地址空间,当然小于64K啦。而数据存储器是内外部分别编址,内外部数据存储器用不同的指令进行访问,所以不用担心单片机会混淆内外部数据存储器,所以外部数据存储器扩展能力有64K

扩展阅读:单片机存储器的配置

二.MCS-扩展系统中,片外程序存储器和片外数据存储器共处同一个地址空间,为什么不会发生总线冲突?

硬件上,控制信号不一样:片外程序存储器工作,要PSEN信号有效;片外数据存储器工作,要RD或WR信号有效;

软件上,寻址不一样,片外程序存储器工作,要用MOVC,

片外数据存储器工作,要用MOVX;

虽然说他们的地址都是0000H~FFFFH,不会发生冲突的

因为控制信号线的不同:

外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。外扩RAM的读、写控制引脚分别与MCS-51的RD和WR引脚相连。

外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51单片机的PSEN相连

三.单片机中外接程序存储器和数据存储器公用16位地址线和8根数据线为什么不会起冲突

建议你阅读一下单片机关于选通地址、传递数据方面的叙述。

下面我简略的说一下大概过程,希望对你有所帮助。

第一,单片机采用三总线结构传递数据。地址总线、数据总线、控制总线。传递数据的过程是先寻址,再传递数据。即先送一个地址信息(由微处理器向总线写一个地址信息),由寄存器(也可能是程序存储器,也可能是数据存储器)根据这个地址,把微处理器要读取的数据写到总线上,微处理器再读取这个数据。整个过程由控制总线控制。所以每次读的数据是针对那个地址对应的寄存器操作的,不会发生混乱。写数据时一样,先寻址,再写数据,数据就写入刚才寻址时的地址对应的那个寄存器里去了。

第二、程序存储器、数据存储器有不同的选通信号,在一个指令周期里,是不同的时间选通的,所以不会混乱。

第三。选通的引脚不同。拿片外数据存储器来说,是P3的第6和第7引脚做选通信号,程序存储器是PSEN做选通信号,他们接在各自器件的选通引脚上,所以不会混乱。

第四,指令不同。拿汇编指令来说。MOV是程序存储器传递数据用,MOVX是数据存储器传递数据用(对片外而言)。

51单片机相关文章:51单片机教程


存储器相关文章:存储器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭