单片机原理及应用第2章8051存储器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  ? 借助于A,直接使用互换指令:     MOV A,52H ;把52H单元中的数据07H送到A     XCH A,53H ;把53H单元中的数据18H与A中的数据07H交换   再次强调,完成同样的任务可以有不同的方法,而不同的方法会占用不同的字节数和不同的执行时间。所以在程序编制过程中,需要注意指令的选择:在高效和精确定时的程序中,要注意不同指令执行需要的机器周期数;在强调存储空间的节约和查表程序设计时,要从手册中查找指令的字节数。 2.4 存储器的扩展   存储器的扩展分为程序存储器的扩展和数据存储器的扩展。51系列单片机的程序寻址空间为64 KB,但市场上51系列单片机内部自带的程序存储器空间大部分是8 KB Flash,能够满足一般用户的需要(有些自带的程序存储器空间为16 KB、32 KB和64 KB Flash)。现在程序存储器的扩展不是关键的问题,大部分用户不用扩展就已够用。但是,对于数据存储器却依然是个关键问题,这一方面是因为单片机内部的数据存储器空间太小,另一方面是因为外部设备和外部I/O空间的扩展都是按照外部RAM的空间范围来访问的。   这里为了保持存储器扩展的完整性,分成三个部分予以介绍:程序存储器的扩展、数据存储器的扩展和存储器空间地址的分配。 2.4.1 外部程序存储器的扩展   由图2-2已经知道,程序存储器的空间可以扩展到64 KB,这时需要将单片机的  引脚接高电平。在程序存储器扩展的情况下,程序可以首先从片内的程序存储器开始顺序执行,当访问超过内部程序存储器空间时,单片机会自动转向外部程序存储器执行程序。   访问外部程序存储器的时序如图2-21所示。   在CPU访问外部程序存储器时,P0口作为地址/数据总线分时复用端口,先送出外部ROM低8位地址A0~A7,在ALE的下降沿将其锁存到锁存器得到PCL,P2口输出的A8~A15不用锁存,这样形成的16位的PC指针便指向外部程序存储器的相应存储单元,在   有效后,指令就出现在数据总线上。在 2.2 寻 址 方 式   在指令系统中,操作数是一个重要的组成部分,它指出运算或操作中的数据或数据所在单元的地址。一般来说,单片机CPU在规定的寻址空间快速获得操作数的方式称为寻址方式。寻址方式越丰富,程序设计越方便,在某些时候可以提高程序的执行速度;但是也将导致指令系统越复杂,给程序的学习带来不便。   51系列单片机的指令系统中提供了7种寻址方式,这是单片机汇编语言程序设计的基础。下面分别介绍这几种寻址方式。 2.2.1 立即寻址   当指令中的源操作数为常数时,操作码与操作数一起存放在程序存储器中,即操作数存放的单元紧跟在操作码存放的单元之后。在取指令时,直接从程序存储器中取得该操作数。这种寻址方式称为立即寻址。通常把出现在指令中的操作数称为立即数,并用“#”符号予以标记,以说明是立即进行操作的数,而非地址。   例如:MOV A,#48H,表示将常数48H送入累加器A,执行过程如图2-7所示。从该图可以看出,MOV A,#48H是一条双字节指令,74H是操作码,48H是操作数,紧跟操作码之后。 图2-7 立即寻址方式(8位立即数)   另外,立即数可以是8位的,也可以是16位的。例如:MOV DPTR,#1234H,其中,“1234H”为16位立即数,该指令将立即数的高8位12H送入DPH,将低8位34H送入DPL。该指令的操作码是90H,操作数是1234H。其执行过程如图2-8所示。从该图可以看出,这条指令是3字节指令。   由于立即数存放在程序存储器中,不占用数据存储空间,因此只能作为源操作数。   下面给出查看指令的机器码和字节数等汇编代码的方法。   前面已经说明我们要使用的环境是μV3,并且已经做了介绍。要查看某条指令的机器代码和编码形式,可先编写一个简单的程序,包含你要查看的指令;编译成功后,启动调试(  ,找到这个工具,点击);然后在菜单“View”中找到“Disassembly Window”选项,如图2-9所示;这个时候就可以根据设定的地址找到相关的指令,如图2-10所示。建议读者采用这种方法来观察和研究指令,这对深入学习汇编指令很有帮助。 图2-8 立即寻址方式(16位立即数) 图2-9 设置反汇编窗口显示 图2-10 观察指令代码 2.2.2 直接寻址   直接寻址方式就是在指令中直接给出操作数的地址。此时,指令的操作数部分就是操作数所存放的地址。这里给出的操作数地址为8位二进制地址。   例如:MOV A,48H,操作过程如图2-11所示。其中,“48H”表示直接地址。该指令的功能是把内部RAM地址为48H中的内容5DH传送给累加器A。指令的操作码是E5H。 利用直接寻址方式可寻址的

文档评论(0)

autohhh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档