第8章 89C51单片机扩展存储器的设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程器 (5)编程禁止方式 输出呈高阻状态,不写入程序。 8.3.2 程序存储器的操作时序 1. 访问程序存储器的控制信号 (1)ALE (2)PSEN* (3)EA* 如果指令是从片外EPROM中读取,ALE用于低8位地址锁存,PSEN*接外扩EPROM的OE*脚。 P0口:分时低8位地址总线和数据总线,P2口:高8位地址线。 2. 操作时序 (1) 应用系统中无片外RAM 图8-12(a) (2) 应用系统中接有片外RAM 图8-12(b) 由图8-12(b)可看出: (1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个脉冲。 (2)只有在执行MOVX指令时的第二个机器周期期间,地址总线才由数据存储器使用。 8.3.3 AT89C51与EPROM的接口电路设计 1. 硬件接口电路 设计时,由于EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制脚,只有读出控制脚,记为OE*,它与89C51单片机的PSEN*相连,地址线、数据线分别与89C51的地址线、数据线相连,片选端的控制可采用线选法或译码法。图8-13为外扩一片27128的接口电路图 。 图8-13 3. 使用多片EPROM的扩展电路 AT89C51扩展4片27128。 图8-14 图8-14中的片选控制信号由译码器产生。4片27128各自所占的地址空间,请读者自己分析。 8.4 静态数据存储器的扩展 在单片机应用系统中,外扩的数据存储器都采用静态数据存储器(SRAM),所以只讨论SRAM与89C51的接口。 所扩展的数据存储器空间地址由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。片外数据存储器RAM的读和写由89C51的RD*(P3.7)和WR*(P3.6)信号控制,而片外程序存储器EPROM的输出允许端(OE*)由89C51的程序存储器读选通信号PSEN*控制。 尽管与EPROM的地址空间范围都是相同的,但由于控制信号不同,故不会发生总线冲突。 8.4.1 常用的静态RAM(SRAM)芯片 典型型号有:6116、6264、62128、62256。+5V电源供电,双列直插封装,6116为24引脚封装,6264、62128、62256为28引脚封装,引脚如图8-15。 各引脚功能: A0~A14:地址输入线。 D0~D7:双向三态数据线。 CE*:片选信号输入。对于6264芯片,当26脚(CS)为高电平时,且CE*为低电平时才选中该片。 OE*:读选通信号输入线。 WE*:写允许信号输入线,低电平有效。 图8-15 Vcc:工作电源+5V GND:地 工作方式有读出、写入、维持三种,这些工作方式的操作控制如表8-6(P148)。 8.4.2 外扩数据存储器的读写操作时序 1.读片外RAM操作时序 图8-16 2. 写片外RAM操作时序 写是CPU主动把数据送上P0口总线。故在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线。 图8-17 8.4.3 AT89C51与RAM的接口电路设计 图8-18为线选法扩展外部数据存储器的电路。 图8-18 地址线为A0~A12,故8031剩余地址线为三根。用线选法可扩展3片6264。3片6264对应的存储器空间如表8-7。 表8-7 译码选通法扩展,如图8-19所示。 图8-19 各62128芯片的地址分配见表8-8。 例8-1 编写程序将片外数据存储器中5000H~50FFH单元全部清零 方法1: 用DPTR作为数据区地址指针,同时使用字节计数器。 MOV DPTR,#5000H ;设置数据块指针的初值 MOV R7,#00H ;设置块长度计数器初值 CLR A LOOP: MOVX @DPTR,A ;把某一单元清零 INC DPTR ;地址指针加1 DJNZ R7,LOOP ;数据块长度减1,若不为 ;0则继续清零 HERE: SJMP HERE ;执行完毕,原地踏步 方法2: 用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址。 MOV DPTR,#5000H CLR A LOOP: MOVX @DPTR,A INC DPTR MOV R7,DPL CJNE R7,#0,LOOP ;与末地址+1比较 HERE: SJMP HERE

文档评论(0)

love1987421 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档