Embedded-systems-es-sfr-registers

提供:Dev Guides
移動先:案内検索

組み込みシステム-SFRレジスタ

特殊機能レジスタ(または特殊目的レジスタ、または単に特殊レジスタ)は、マイクロプロセッサのさまざまな機能を制御または監視するマイクロプロセッサ内のレジスタです。 特殊レジスタは、プロセッサの特別な機能またはステータスに密接に関連しているため、通常の命令(add、moveなど)で直接書き込みできない場合があります。 代わりに、一部のプロセッサアーキテクチャの一部の特殊レジスタは、それらを変更するための特別な命令を必要とします。

8051では、レジスタA、B、DPTR、およびPSWは、一般にSFR(特殊機能レジスタ)と呼ばれるレジスタグループの一部です。 SFRは、名前またはアドレスでアクセスできます。

次の表に、SFRとそのアドレスのリストを示します。

バイトアドレス

ビットアドレス

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アドレスに関する次の2つの点を考慮してください。

  • 特殊機能レジスタは、80HからFFHのアドレスを持つことができます。 00から7FHのアドレスは8051内のRAMメモリのアドレスであるため、これらのアドレスは80Hを超えています。
  • 80からFFのすべてのアドレス空間がSFRによって使用されるわけではありません。 80HからFFHまでの未使用の場所は予約されており、8051プログラマーが使用してはなりません。
CY PSW.7 Carry Flag
AC PSW.6 Auxiliary Carry Flag
F0 PSW.5 Flag 0 available to user for general purpose.
RS1 PSW.4 Register Bank selector bit 1
RS0 PSW.3 Register Bank selector bit 0
OV PSW.2 Overflow Flag
- PSW.1 User definable FLAG
P PSW.0 Parity FLAG. Set/cleared by hardware during instruction cycle to indicate even/odd number of 1 bit in accumulator.

次の例では、SFRレジスタの名前がアドレスに置き換えられます。

CY AC F0 RS1 RS0 OV - P

RS0およびRS1ビットを使用して、対応するレジスタバンクビットを選択できます。

RS1 RS2 Register Bank Address
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH

プログラムステータスワード(PSW)には、CPUの現在の状態を反映するステータスビットが含まれています。 8051バリアントは、このステータス情報を備えた1つの特殊機能レジスターPSWを提供します。 8251は、PSW1と呼ばれる2番目の特殊機能レジスターで使用可能な2つの追加のステータスフラグZとNを提供します。