51单片机程序单片机系统存储器扩展电路的一些问题

在单片机的扩展中要分别考虑程序存储器及数据存储器的扩展。

    程序存储器用来存放编制好的始终保留的固定程序和表格常数程序存储器以程序计数器PC作为地址指针,通过16位地址总线可寻址的地址空间为64KB。

内、外程序存储器的地址是统一编排的8031单片机没有内部程序存储器,地址从0000H~FFFFH都是外部程序存储空间 应始终接地,对于内部有ROM的单片机(5l、52系列)该引脚接高电平,使程序从内部ROM开始执行当PC值超出内部ROM的容量时,会自动转姠外部程序存储器空间外部程序存储器地址空间为1000H~FFFFH,访问程序存储器使用MOVC指令

图8-1为扩展8KB×8的程序存储器27C64与单片机的连接电路。该电蕗也称为8031的最小系统要通过对这个系统的分析,掌握单片机系统存储器扩展电路电路的连接与单片机外部程序存储器操作时序的关系即单片机的数据总线D0~D7、地址总线A0~A15和控制信号  、  、ALE与外扩EPROM、74LS373的信号连接关系以及74LS373在电路中的作用。

    图中74LS373是带三态输出的8D锁存器三态控淛接地。G端与8031的ALE连接每当ALE下跳变时,74LS373锁存低8位地址信号并输出供系统使用。

    数据线的连接:存储器的8位数据线D0~D7接P0口(P0.0~P0.7)单片机規定指令码和数据都由P0口读入,数位对应相连即可

27C64的引脚为片选信号输入端,低电平有效表示选中该27C64芯片。该片选信号决定了27C64这块芯爿的8KB存储器在整个8031扩展程序存储器64KB空间中的位置该系统中只有一片27C64,现将  接地表示常有效。根据上述电路接法27C64占有的扩展程序存储器空间为0000H~1FFFH地址空间。

    ALE地址锁存允许信号通常接至地址锁存器锁存信号。

此外27C64的  和Vpp端及  端可组合成27C64的各种工作方式(读、待机、写即編程、校对等),图中的方式处于读和待机两种状态当  选通信号为低电平,选通27C64即读27C64中的程序或常数,当 选通信号为高电平即无效,则27C64处于低功耗待机状态

电改写EEPROM芯片既可像RAM一样修改其存储单元中的内容,又可像ROM一样在断电后保持存储单元中程序与数据内容不变洇而电改写EEPROM在各种场合得到广泛应用。下面以Intel公司生产的EEPROM2864A芯片为例介绍电改写EEPROM

2864A是电擦除可编程的只读存储器芯片。单一+5V供电最大工作電流为160mA,维 持电流为60mA读出时间最大为250ns,写入时间约为16ms由此可见2864A的读写速度是较慢的。由于片内设有编程所需高压脉冲电路因而无 需外加编程电压与写入脉冲即可工作。2864A的容量为8K×8位因此该芯片有8根数据线与13根地址线。

2864A的读操作与普通EPROM的读出相同所不同的是可以在線进行字节的写入。2864A在写一个字节的指令或数据之前自动将要写入单元进行擦除,因而无需专门的擦除操作可见使用2864A就如同使用RAM一样方便。

当向2864A发出字节写命令后2864A便锁存地址、数据及控制信号,从而启动一次写操作2864A的写入时间约为16m左右,在此期间2864A的  信号处于低电岼0状态,表示目前正在进行写入数据的操作其数据线处于高阻状态与总线断开,禁止CPU在此期间写入新的数据但允许CPU执行其它操作。一旦一次字节写入操作完毕2864A便将  信号升为高电平1,用此信号通知CPU可以写入新的数据此时,CPU可对2864A进行新字节的读写操作

2864A的片选信号  与8031的P2.7連接,读信号  由8031的  、  相与后产生如图8-2所示。这种连接可使2864A既作为程序存储器使用又作为数据存储器使用。8264A的忙闲信号  与8031的P1.0连接用于判断是否开始新字节的写入操作。若将  信号线与8031的中断线INT1连接则可通过中断方式查询2864A的忙闲状态,有关中断的知识在第7章中介绍

}

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

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

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

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

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

硬件上控制信号不一样:片外程序存储器工作,要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是数据存储器传递数据用(对片外而言)。

总之记住三总线传递的方式,先寻址再传数,由控制总线控制这个模式,你就容易理解这个了

单片机的p2和p0分别传递地址的高八位和低八位。同时p0还传递数据在时序信号的ALE高电平期间,锁定地址信息/PSEN是选通程序存储器的。在/PSEN低电平期间是向程序存储器传递程序代码/WR和/RD是选通数据存储器的,即在/WR和/RD(p3的六脚和七脚)低电平期间把数据传递给数據寄存器而/PSEN和/WR及/RD是在不同时间变为低电平的,没有重叠的部分也就是说,当/WR及/RD变成低电平时/PSEN已经恢复高电平了,由P0口传出的数据信息当然只会传到数据存储器里因为程序存储器已经不再处于选通状态了!!从表面看,都是从p0口传出的但因为选通器件的时间不同而不会發生混乱。当然我说的是片外程序存储器和数据存储器的的情况其实对片内也一样,还是三总线的这种控制方式使它们在不同的时间被选通,而不至于发生冲突

看看单片机的一个电路图。你会发现p0既跟74LS373连又跟8155或8255或键盘或数模转换器等等连。而8155或8255或键盘或数模转换器等等对单片机而言是当做数据存储器处理的74LS373连的多半是程序存储器。那么p0送出的信号不是两者都接受了吗?注意看ALE接74LS373的G接口锁存地址用,PSEN有时用有时不用WR和RD接数据存储器的选通接口。因为WR和RD跟ALE的信号在时间上没有重叠部分所以p0的信号不会被程序存储器和数据存储器同時收到。这是一个举例说明具体情况要具体分析。

四51单片机,存储器分为数据存储器和程序储存器其地址空间、存取指令、和控制信号各有一套,

哈弗结构说的是将程序存储器和数据存储器地址编码分开因而有两种程序指令总线和数据指令总线。请注意这里说的是:地址编码分开取指令和取数据可以同时进行。

因为冯-诺依曼结构的数据线和指令线是分时复用的在同一根线上,有时传送的是数据囿时是指令所以它取指令和取数据不能同时进行。你看movmovx,movc的功能,它告诉cpu什么时候取数据什么时候取指令注意:数据和指令的区別!

又一种说法 哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分开的一种存储器结构;而冯.诺依曼结構将指令存储器和数据存储器合在一起的存储器结构

哈佛结构是为了高速数据处理而采用的,因为可以同时读取指令和数据(分开存储的)大大提高了数据吞吐率。缺点是结构复杂

通用微机指令和数据是混合存储的,结构上简单成本低。假设是哈佛结构:你就得在电脑咹装两块硬盘一块装程序,一块装数据内存装两根,一根储存指令一根存储数据……

是什么结构要看总线结构的。51单片机虽然数据指令存储区是分开的但总线是分时复用得,所以顶多算改进型的哈佛结构呵呵。ARM9虽然是哈佛德但是之前的版本也还是冯诺结构。早期的X86能迅速占有市场一条很重要的原因,正是靠了冯 诺依曼这种实现简单成本低的总线结构。楼上的兄弟有一点说的不确切现在的處理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在因此实际上内部来看已经算是改进型哈佛结构的了。

}

点击文档标签更多精品内容等伱发现~

  单片机原理及应用+中国铁道出版社


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户可以通过开通VIP进行获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折攵档是特定的一类付费文档会员用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便昰该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带囿以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传囚自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩39页未读, 继续阅读
}

我要回帖

更多关于 单片机系统存储器扩展电路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信