8051マイクロコントローラーで使用されるさまざまなタイプのレジスタ

問題を排除するために楽器を試してください





レジスターはの主要部分です マイクロコントローラーとプロセッサー データを収集して保存するための高速な方法を提供します。加算や減算などを実行してコントローラーまたはプロセッサーでデータを操作する場合、メモリー内で直接操作することはできませんが、データを処理および格納するためのレジスターが必要です。マイクロコントローラには、その内容またはマイクロコントローラで動作する命令に従って分類できるいくつかのタイプのレジスタが含まれています。

8051マイクロコントローラのさまざまなタイプのレジスタ

登録




レジスタはCPU内の小さな場所であり、加算や乗算などのさまざまな操作を実行するために使用される少量のデータを格納し、結果のデータをメインメモリにロードできます。レジスタには、データが格納されるメモリ位置のアドレスが含まれています。レジスタのサイズは、 最新のコントローラー 。たとえば、64ビットレジスタの場合、CPUは2つの32ビット数値を加算しようとし、64ビットの結果を返します。

レジスタの種類

8051マイクロコントローラには、主に2種類のレジスタが含まれています。



  • 汎用レジスタ(バイトアドレス可能レジスタ)
  • 特殊機能レジスタ(ビットアドレス指定可能レジスタ)
8051RAMメモリ

8051RAMメモリ

ザ・ 8051マイクロコントローラー 256バイトのRAMで構成され、汎用用の128バイトと特殊機能レジスタ(SFR)メモリ用の128バイトなどの2つの方法に分割されます。汎用に使用されるメモリはRAMと呼ばれ、SFRに使用されるメモリには、アキュムレータ、「B」レジスタ、タイマーまたはカウンタ、割り込み関連レジスタなどの周辺関連レジスタがすべて含まれています。

汎用レジスタ

汎用メモリ

汎用メモリ

汎用メモリは8051マイクロコントローラのRAMと呼ばれ、バンク、ビットアドレス可能領域、スクラッチパッド領域の3つの領域に分かれています。バンクには、R0〜R7などのさまざまな汎用レジスタが含まれており、そのようなレジスタはすべて、1バイトのデータのみを格納または削除するバイトアドレス指定可能なレジスタです。


銀行と登録簿

B0、B1、B2、およびB3はバンクを表し、各バンクには「R0」から「R7」までの8つの汎用レジスタが含まれています。これらのレジスタはすべてバイトアドレス指定可能です。汎用レジスタから汎用レジスタへのデータ転送はできません。これらのバンクは、プログラムステータスワード(PSW)レジスタによって選択されます。

汎用レジスタ

汎用レジスタ

PSW(プログラムステータスワード)レジスタ

PSWレジスタは、ビットおよびバイトアドレス可能なレジスタです。このレジスタは、コントローラで実行される操作のステータスを反映します。 PSWレジスタは、以下に示すように、RS1とRS0によるバンク選択を決定します。 PSWの物理アドレスはD0hから始まり、個々のビットはD0hからD7hでアクセスされます。

PSWレジスタ

PSWレジスタ

キャリーフラグ(C) :キャリーフラグのアドレスはD7です。このキャリーフラグは、ビットが7番目の位置から生成されるときに影響を受けます。
C = 0の場合キャリーリセット
C = 1キャリーセット

キャリーフラグ

キャリーフラグ

補助フラグ(AC) :補助キャリーのアドレスはD5です。この補助キャリーは、ビットが3番目の位置から4番目の位置に生成されるときに影響を受けます。
AC = 0補助がリセットされます
AC = 1補助が設定されています

補助キャリー(AC)

補助キャリー(AC)

オーバーフローフラグ(OV) :オーバーフローフラグのアドレスはD2です。 6番目の位置から7番目の位置にビットが生成されると、オーバーフローフラグが影響を受けます。

OV = 0オーバーフローフラグのリセット
OV = 1オーバーフローフラグセット

オーバーフローフラグ

オーバーフローフラグ

パリティフラグ(P) :パリティフラグのアドレスはD0です。算術演算の実行中に、結果が1の場合、パリティフラグが設定されます。それ以外の場合は、リセットされます。
RS1とRS0
PSWレジスタのビットであるRS1とRS0は、RAM内の異なるメモリ位置(bank0からbank4)を選択するために使用されます。

銀行選択レジスタ

銀行選択レジスタ

以下は、このレジスタの使用例です。

次の例は、2つの数値を加算してから、アセンブリレベルのプログラムを使用してBank1レジスタに最終値を格納する方法を示しています。

組織0000h
MOV PSW、#00h
MOV A、15
追加A、20
MOV 00h、A
終わり

bank0レジスタR0-R5の6つの自然数を移動するアセンブリプログラム

Org 0000h(開始アドレス宣言)
MOV PSW、#00h(bank0メモリを開く)
MOV r0、#00h(bank0メモリの開始アドレス)
MOV r1、#01h
MOV r2、#02h
MOV r2、#03h
MOV r3、#04h
MOV r4、#05h
終わり

bank1レジスタR0-R7の6つの自然数を移動するアセンブリプログラム

Org 0000h(開始アドレス宣言)
MOV PSW、#08h(bank1メモリを開く)
MOV r0、00h(値はbank1メモリに送信されます)
MOV r1、02h
MOV r2、02h
MOV r2、03h
MOV r3、04h
MOV r4、05h
MOV r5、06h
MOV r6、07h
MOV r7、08h
終わり

特殊機能レジスタ(SFR)

特殊機能レジスタは上位RAMです 8051マイクロコントローラーで 。これらのレジスタには、P0、P1、P2、P3、タイマーまたはカウンター、シリアルポート、割り込み関連レジスタなど、周辺機器に関連するすべてのレジスタが含まれています。 SFRメモリアドレスは80hからFFhまでです。 SFRレジスタは、ビットアドレスレジスタとバイトアドレスレジスタによって実装されます。

特殊機能レジスタ(SFR)


特殊機能レジスタ(SFR)

アキュムレータ、Bレジスタ、Po、P1、P2、P3、IEレジスタはビットアドレス指定可能なレジスタであり、残りはすべてバイトアドレス指定可能なレジスタです。

アキュムレータ

ACCまたはAとも呼ばれるアキュムレータは、ビットであると同時に、アキュムレータのアドレスによるバイトアドレス指定可能なレジスタです。ビットアドレス指定可能なレジスタを使用する場合は、レジスタの1ビット(E0)を使用でき、アキュムレータの8ビットをバイトアドレス指定可能なレジスタとして使用できます。アキュムレータは、ほとんどの算術演算および論理演算の結果を保持します。

アキュムレータレジスタ

アキュムレータレジスタ

アキュムレータで使用される減算用のアセンブリプログラム

組織0000h
MOV R0、#09h
MOV A、#03h(1バイトデータ)
SUBB A、01h(1バイトデータ)
終わり

B-登録

Bレジスタは、ビットおよびバイトアドレス可能なレジスタです。物理アドレスF0hで1ビットまたはすべての8ビットにアクセスできます。ビット1にアクセスするとしますが、f1を使用する必要があります。 Bレジスタは、乗算および除算演算にのみ使用されます。

B-登録

B-登録

Bレジスタで使用される乗算用のアセンブリプログラム

組織0000h
MOV A、#09h
MOV B、#03h
MUL A、B(Aに格納された最終値)
終わり
Bレジスタで使用される部門のアセンブリプログラム
組織0000h
MOV A、#09h
MOV B、#03h
DIC A、B(Aに保存された最終値)
終わり

ポートレジスタ

8051マイクロコントローラは、4入力および出力ポート(P0、P1、P2、およびP3)または32-I / Oピンで構成されています。各ピンは トランジスタで設計 およびPレジスタ。ザ・ ピン構成 レジスタの論理状態に依存するマイクロコントローラにとって非常に重要です。 1または出力0で与えられる入力としてのピン構成は、論理状態によって異なります。ロジック1がPレジスタのビットに適用されると、出力トランジスタは入力ピンとして機能する適切なピンをオフにします。

8051のポートレジスタ

8051のポートレジスタ

Port0のLEDを切り替えるアセンブリプログラム

ORG 0000h
戻り値:MOV P0、#00h
ACALL DEL1
MOV P0、#0FF
ACALL DEL1
SJMPリターン
DEL1:MOV R2、#200
フロント:DJNZ R0、#230
DJNZ R2、DEL
正しい
終わり

カウンターとレジスター

多くのマイクロコントローラーは1つ以上で構成されています タイマーとカウンター 。タイマーは貴重な時間遅延を生成するために使用され、タイマーのソースは水晶発振器です。カウンターは、外部イベントの数をカウントするために使用されます。たとえば、 客観的なカウンター 、およびカウンタのソースは、カウンタピンに適用される外部パルスです。

8051マイクロコントローラーは、2つの16ビットタイマーと、タイマー0やタイマー1などのカウンターで構成されます。両方のタイマーは16ビットレジスタで構成され、下位バイトはTLに格納され、上位バイトはTHに格納されます。タイマーは、カウンターとしてだけでなく、カウンターへのクロックパルスのソースに依存するタイミング操作にも使用できます。

8051マイクロコントローラーのカウンターとタイマーには、2つの特殊機能レジスタが含まれています。 TMOD(タイマモードレジスタ)およびTCON(タイマ制御レジスタ) 、タイマーとカウンターのアクティブ化と構成に使用されます。

シフトレジスタの種類

シフトレジスタは、主にデジタルデータの保存に使用される一種の順序論理回路です。シフトレジスタは、1ビットのデータのみを格納するビットアドレス指定可能なレジスタです。シフトレジスタは、1つのフリップフロップからの出力が次のフリップフロップの入力になるようにチェーンとして接続されたフリップフロップのグループで構成されています。

すべてのフリップフロップは、Dフリップフロップによって実装されるクロック信号によって駆動されます。シフトレジスタは主に シリアル通信

これらは4つのタイプに分類されます。

  • シリアル入力シリアル出力(SISO)
  • シリアル入力パラレル出力(SIPO)
  • パラレル入力シリアル出力(PISO)
  • パラレルインパラレルアウト(PIPO)
D-フリップフロップレジスタ

D-フリップフロップレジスタ

これらはすべて、8051マイクロコントローラのさまざまなタイプのレジスタです。各レジスターに適切なプログラムを使用して、関連するコンテンツを正常に提供できたことを願っています。さらに、他のいくつかのレジスタのコーディングを知るためのあらゆる種類のヘルプについては、以下にコメントしてお問い合わせください。

写真クレジット: