임베디드 시스템-SFR 레지스터

특수 기능 레지스터 (또는 특수 목적 레지스터 또는 단순히 특수 레지스터)는 마이크로 프로세서의 다양한 기능을 제어하거나 모니터링하는 마이크로 프로세서 내의 레지스터입니다. 특수 레지스터는 프로세서의 일부 특수 기능 또는 상태와 밀접하게 관련되어 있으므로 일반 명령 (예 : 추가, 이동 등)으로 직접 쓸 수 없습니다. 대신, 일부 프로세서 아키텍처의 일부 특수 레지스터는이를 수정하기위한 특수 명령이 필요합니다.

8051에서 레지스터 A, B, DPTR 및 PSW는 일반적으로 SFR (특수 기능 레지스터)이라고하는 레지스터 그룹의 일부입니다. SFR은 이름이나 주소로 액세스 할 수 있습니다.

다음 표는 SFR 및 해당 주소 목록을 보여줍니다.

바이트 주소 비트 주소
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 - D0 PSW
B8 - - - 기원전 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 사이의 주소를 가질 수 있습니다. 00에서 7FH까지의 주소는 8051 내부의 RAM 메모리 주소이기 때문에이 주소는 80H 이상입니다.

  • 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 사용자 정의 가능한 FLAG
PSW.0 패리티 플래그. 누산기에서 1 비트의 짝수 / 홀수를 나타 내기 위해 명령주기 동안 하드웨어에 의해 설정 / 삭제됩니다.

다음 예에서는 SFR 레지스터의 이름이 해당 주소로 대체됩니다.

CY AC F0 RS1 RS0 OV -

RS0 및 RS1 비트를 사용하여 해당 레지스터 뱅크 비트를 선택할 수 있습니다.

RS1 RS2 은행 등록 주소
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 18H-1FH

PSW (Program Status Word)에는 CPU의 현재 상태를 반영하는 상태 비트가 포함되어 있습니다. 8051 변형은이 상태 정보와 함께 하나의 특수 기능 레지스터 PSW를 제공합니다. 8251은 PSW1이라는 두 번째 특수 기능 레지스터에서 사용할 수있는 두 개의 추가 상태 플래그 Z 및 N을 제공합니다.