嵌入式系统 - SFR 寄存器



  • 简述

    特殊功能寄存器(或特殊用途寄存器,或简称为特殊寄存器)是微处理器内的寄存器,用于控制或监视微处理器的各种功能。由于特殊寄存器与处理器的某些特殊功能或状态密切相关,因此它们可能无法由普通指令(如添加、移动等)直接写入。相反,某些处理器架构中的某些特殊寄存器需要特殊指令来修改它们。
    在 8051 中,寄存器 A、B、DPTR 和 PSW 是通常称为 SFR(特殊功能寄存器)的寄存器组的一部分。可以通过名称或地址访问 SFR。
    下表显示了 SFR 及其地址的列表。
    Byte Address Bit Address
    FF
    F0 F7 F6 F5 F4 F3 F2 F1 F0 B
    E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
    D0 D7 D6 D5 D4 D3 D2 - D0 PSW
    B8 - - - BC BB BA B9 B8 IP
    B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
    A2 AF - - AC AB AA A9 A8 IE
    A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
    99 没有位可寻址 SBUF
    98 9F 9E 9D 9C 9B 9A 99 98 SCON
    90 97 96 95 94 93 92 91 90 P1
    8D 没有位可寻址 TH1
    8C 没有位可寻址 TH0
    8B 没有位可寻址 TL1
    8A 没有位可寻址 TL0
    89 没有位可寻址 TMOD
    88 8F 8E 8D 8C 8B 8A 89 88 TCON
    87 没有位可寻址 PCON
    83 没有位可寻址 DPH
    82 没有位可寻址 DPL
    81 没有位可寻址 SP
    80 87 87 85 84 83 82 81 80 P0
    考虑以下关于 SFR 地址的两点。
    • 特殊功能寄存器的地址可以在 80H 到 FFH 之间。这些地址都在 80H 以上,因为 00 到 7FH 的地址是 8051 内部 RAM 存储器的地址。
    • 并非 80 到 FF 的所有地址空间都被 SFR 使用。未使用的位置,80H 到 FFH,是保留的,不得由 8051 编程器使用。
    CY PSW.7 进位标志
    AC PSW.6 辅助进位标志
    F0 PSW.5 标志 0 可供用户用于一般用途。
    RS1 PSW.4 寄存器组选择器位 1
    RS0 PSW.3 寄存器组选择器位 0
    OV PSW.2 溢出标志
    - PSW.1 用户可定义的标志
    P PSW.0 奇偶标志。在指令周期内由硬件置位/清零以指示累加器中 1 位的偶数/奇数。
    在以下示例中,SFR 寄存器的名称替换为其地址。
    CY AC F0 RS1 RS0 OV - P
    我们可以使用 RS0 和 RS1 位选择相应的 寄存器组 位。
    RS1 RS2 寄存器组 地址
    0 0 0 00H-07H
    0 1 1 08H-0FH
    1 0 2 10H-17H
    1 1 3 18H-1FH
    程序状态字 (PSW) 包含状态位以反映 CPU 的当前状态。8051 变体提供了一个特殊功能寄存器 PSW,其中包含此状态信息。8251 提供了两个额外的状态标志 Z 和 N,它们在称为 PSW1 的第二个特殊功能寄存器中可用。