• c51存储器数据存取 > 这是一本关于
  • 这是一本关于

    免费下载 下载该文档 文档格式:PDF   更新时间:2006-11-03   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:pdf
    文档作者:SUSAN
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    3
    2.2 DATA 区 第二个存储区是 8051 内 128 字节的内部 RAM 或 8052 的前 128 字节内部 RAM 这部分 主要是作为数据段 称为 DATA 区 指令用一个或两个周期来访问数据段 访问 DATA 区比 访问 XDATA 区要快 因为它采用直接寻址方式 而访问 XDATA 须采用间接寻址 必须先初 始化 DPTR 通常我们把使用比较频繁的变量或局部变量存储在 DATA 段中 但是必须节省 使用 DATA 段 因为它的空间毕竟有限 在数据段中也可通过 R0 和 R1 采用间接寻址 R0 和 R1 被作为数据区的指针 将要恢 复或改变字节的地址放入 R0 或 R1 中 根据源操作数和目的操作数的不同 执行指令需要 一个或两个周期 数据段中有两个小段 第一个子段包含四组寄存器组 每组寄存器组包含八个寄存器 共 32 个寄存器 可在任何时候通过修改 PSW 寄存器的 RS1 和 RS0 这两位来选择四组寄存器 的任意一组作为工作寄存器组 8051 也可默认任意一组作为工作寄存器组 工作寄存器组 的快速切换不仅使参数传递更为方便 而且可在 8051 中进行快速任务转换 另外一个子段叫做位寻址段 BDATA 包括 16 个字节 共 128 位 每一位都可单独寻 址 8051 有好几条位操作指令 这使得程序控制非常方便 并且可帮助软件代替外部组合 逻辑 这样就减少了系统中的模块数 位寻址段的这 16 个字节也可像数据段中其它字节一 样进行字节寻址 2.3 特殊功能寄存器 中断系统和外部功能控制寄存器位于从地址 80H 开始的内部 RAM 中 这些寄存器被称 做特殊功能寄存器 简称 SFR 其 中很 多寄 存器 都 可位寻址 可通过名字进 行引用 如果要对中断使 能寄存器中的 EA 位进行 寻址 可使用 EA 或 IE.7 或 0AFH SFRs 控制定时/ 计数器 串行口 中断源 及中断优先级等 这些寄 存器的寻址方式和 DATA 取中的其它字节和位一样 可位寻址 SFR 如表 A-1 所示 可进行位寻址的 SFR 表 A-1
    4
    2.4 IDATA 区 8051 系列的一些单片机如 8052 有附加的 128 字节的内部 RAM 位于从 80H 开始的地址 空间中 被称为 IDATA 因为 IDATA 区的地址和 SFRs 的地址是重叠的 通过区分所访问的 存储区来解决地址重叠问题 因为 IDATA 区只能通过间接寻址来访问 2.5 XDATA 区 8051 的最后一个存储空间为 64K 和 CODE 区一样 采用 16 位地址寻址 称作外部数 据区 简称 XDATA 区 这个区通常包括一些 RAM 如 SRAM 或一些需要通过总线接口的外 围器件 对 XDATA 的读写操作需要至少两个处理周期 使用 DPTR R0 或 DPTR R1 对 DPTR 对于 R0 来说 至少需要两个处理周期来装入地址 而读写又需要两个处理周期 同样 或 R1 装入需要一个以上的处理周期 而读写又需两个周期 由此可见 处理 XDATA 中的数 据至少要花 3 个指令周期 因此 使用频繁的数据应尽量保存在 DATA 区中 如果不需要和外部器件进行 I/O 操作或者希望在和外部器件进行 I/O 操作时开关 RAM 则 XDATA 可全部使用 64K RAM 关于这方面的应用将在以后介绍
    5
    3 位操作和布尔逻辑 8051 可分别对 BDATA 和 SFRs 中 128 个可寻址位 32 个 I/O 口进行位逻辑操作 这些位进行与 或 异或 求补 置位 清零等操作 并可像转移字节那样转移位 列表 A-1 把位地址 22H 中的数移入进位位中 MOV C 22H 把位地址 23H 中的数和进位位中的数相或 ORL C 23H 把进位位中的数移入位地址 24H 中 MOV 24H C
    可对
    可寻址位也可作为条件转移的条件 一条很有用的指令就是 JBC 通过判断可寻址位 是否置位来决定是否进行转移 如果该位置位则转移 并清零该位 这条指令能够在两个 处理周期中完成 比在两个代码段中分别使用跳转和清零指令要节省一到两个处理周期 比如说 你要编写一个过程 等待 P0.0 置位 然后跳转 但是等待有时间限制 这样就需 要设置一个时间 时间到达后跳出查询 检测到 P0.0 置位后跳出 并清零 P0.0 一般的 逻辑流程如下 例 A-2 L2 L1 MOV JB DJNZ CLR RET timeout #TO_VALUE P0.0 L1 timeout L2 P0.0 设置查询时间 P0.0 置位则跳转 查询时间计数 P0.0 清零 退出
    当使用 JBC 时程序如下 例 A-3 设置查询时间 MOV timeout #TO_VALUE P0.0 L1 P0.0 置位则跳转并清零 L2 JBC 查询时间计数 DJNZ timeout L2 退出 L1 RET 利用 JBC 不但节省了代码长度 而且使程序更加简洁美观 以后在编制代码时要习惯 使用这条指令

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • c51数据存储器存取  按内容存取存储器  随机存取存储器  存取周期最短的存储器  存储器存取速度最快的  直接存取存储器  c51数据类型表  创维存储器数据大全  dvd存储器数据下载