找回密码
 立即注册
查看: 2620|回复: 11

内部扩展RAM和扩展功能寄存器XFR访问区分

[复制链接]

12

主题

15

回帖

174

积分

注册会员

积分
174
发表于 2023-2-26 16:21:05 | 显示全部楼层 |阅读模式
在STC8A8K64D4的内部包含了内部扩展RAM和扩展功能寄存器XFR,两者都可以用:  MOVX      A,     @DPTR   和   MOVX      @DPTR,     A 指令访问,   那这两个指令是如何识别访问的是内部扩展RAM还是扩展功能寄存器XFR呢?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-2-26 17:09:07 | 显示全部楼层
P_SW2 |= 0x80;  //允许访问扩展寄存器
P_SW2 &= ~0x80;  //禁止访问扩展寄存器

12

主题

15

回帖

174

积分

注册会员

积分
174
发表于 2023-2-27 00:31:57 | 显示全部楼层
MOVX      @DPTR,       A指令既可访问扩展寄存器,也可访问内部扩展RAM,当P_SW2=0X80,  AUXR=0X00时, 那MOVX      @DPTR,       A 指令访问的是扩展寄存器还是内部扩展RAM呢?
也就是当扩展寄存器和内部扩展RAM都被允许时,MOVX      @DPTR,       A指令访问的是扩展寄存器还是内部扩展RAM?

12

主题

15

回帖

174

积分

注册会员

积分
174
发表于 2023-2-27 01:31:31 | 显示全部楼层
疑问在图中
扩展RAM和扩展寄存器.png
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15626
发表于 2023-2-27 07:32:23 | 显示全部楼层
扩展xram 区的 扩展SFR, 简写成 xsfr 或 xfr
  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-2-27 09:21:37 | 显示全部楼层
地址也决定了你访问哪里,地址不落在XSFR,则都会访问XDATA SRAM。

12

主题

15

回帖

174

积分

注册会员

积分
174
发表于 2023-2-27 13:33:32 | 显示全部楼层
明白,谢谢
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-03-02 17:47:48

0

主题

11

回帖

95

积分

注册会员

积分
95
发表于 2023-5-2 11:26:41 | 显示全部楼层
梁*** 发表于 2023-2-26 17:09
P_SW2 |= 0x80;  //允许访问扩展寄存器
P_SW2 &= ~0x80;  //禁止访问扩展寄存器

这个在程序中需要关闭吗 不关闭是不是逻辑上也没有问题,会影响其他的内部寄存器操作吗???

点评

不需要关闭,一直允许即可。我一般在程序开头允许,程序中没有关闭动作。 即使外挂64K的XDATA。只需要将最后的与XFR地址重叠的一小部分保留不使用,即可。实际上即使外挂XDATA,一般也是挂一片32K的,不需要任何处理  详情 回复 发表于 2023-5-3 14:06
正确的地方放正确的数据
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15626
发表于 2023-5-2 11:28:52 | 显示全部楼层
允许访问扩展寄存器后,养成习惯,不要关闭他,没听说 STC8 谁在外部扩展满到 64K的

点评

对 要的就是这个明示 现在已经不流行扩展了  发表于 2023-5-2 11:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-5-3 14:06:57 | 显示全部楼层
waitm*** 发表于 2023-5-2 11:26
这个在程序中需要关闭吗 不关闭是不是逻辑上也没有问题,会影响其他的内部寄存器操作吗??? ...

不需要关闭,一直允许即可。我一般在程序开头允许,程序中没有关闭动作。
即使外挂64K的XDATA。只需要将最后的与XFR地址重叠的一小部分保留不使用,即可。实际上即使外挂XDATA,一般也是挂一片32K的,不需要任何处理。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:46 , Processed in 0.122677 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表