【问题标题】:Why does some sfr in 8051 are bit addressable?为什么 8051 中的一些 sfr 是位可寻址的?
【发布时间】:2010-06-19 03:21:45
【问题描述】:

据此:http://www.8052.com/tutsfr.php,地址可被 8 整除的 sfrs 是位可寻址的。您可以对它们执行 SETB 或 CLR 之类的操作。但是它们不是与其他内存地址重叠吗?我的意思是,例如,P0 在 80 小时内。所以 P0.0 将是 80h,P0.1 将是 81h。但是81h是SP的地址。它们不是重叠的吗?

【问题讨论】:

    标签: memory 8051


    【解决方案1】:

    您将位地址与字节地址混淆了。它们不重叠或指代相同的物理位置。采用位地址的指令(例如 SETB)知道如何将位地址解码为字节地址和位号。字节地址是通过屏蔽位地址中的 3 个最低位来获得的。位号是通过屏蔽最高5位得到的。

    例如。位地址 87h --> 字节地址 80h,位 #7

    【讨论】:

    • 非常感谢您的解释。对于 SFR 来说确实如此。但是如果SETB 01h 呢?它应该是字节地址#20 和位#1。我可以说位可寻址内存和字节可寻址内存在不同的内存空间,可以由硬件(或引入)自动处理吗?
    • 是的,正如您所指出的,该过程对于非 SFR(地址
    【解决方案2】:

    P0.0 和 P0.1 仅指 8 位 P0 寄存器的各个位(据我了解)。

    【讨论】:

    • 是的,但如果它们是位可寻址的,它们最终会有一个地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多