内部扩展RAM和扩展功能寄存器XFR访问区分
在STC8A8K64D4的内部包含了内部扩展RAM和扩展功能寄存器XFR,两者都可以用:MOVX A, @DPTR 和 MOVX @DPTR, A 指令访问, 那这两个指令是如何识别访问的是内部扩展RAM还是扩展功能寄存器XFR呢? P_SW2 |= 0x80;//允许访问扩展寄存器P_SW2 &= ~0x80;//禁止访问扩展寄存器
MOVX @DPTR, A指令既可访问扩展寄存器,也可访问内部扩展RAM,当P_SW2=0X80,AUXR=0X00时, 那MOVX @DPTR, A 指令访问的是扩展寄存器还是内部扩展RAM呢?
也就是当扩展寄存器和内部扩展RAM都被允许时,MOVX @DPTR, A指令访问的是扩展寄存器还是内部扩展RAM? 疑问在图中 扩展xram 区的 扩展SFR, 简写成 xsfr 或 xfr 地址也决定了你访问哪里,地址不落在XSFR,则都会访问XDATA SRAM。 明白,谢谢 梁工 发表于 2023-2-26 17:09
P_SW2 |= 0x80;//允许访问扩展寄存器
P_SW2 &= ~0x80;//禁止访问扩展寄存器
这个在程序中需要关闭吗 不关闭是不是逻辑上也没有问题,会影响其他的内部寄存器操作吗??? 允许访问扩展寄存器后,养成习惯,不要关闭他,没听说 STC8 谁在外部扩展满到 64K的 waitmoney 发表于 2023-5-2 11:26
这个在程序中需要关闭吗 不关闭是不是逻辑上也没有问题,会影响其他的内部寄存器操作吗??? ...
不需要关闭,一直允许即可。我一般在程序开头允许,程序中没有关闭动作。
即使外挂64K的XDATA。只需要将最后的与XFR地址重叠的一小部分保留不使用,即可。实际上即使外挂XDATA,一般也是挂一片32K的,不需要任何处理。
页:
[1]
2