8051マイクロコントローラーと構造およびプログラミングの割り込み

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





最も強力で重要な機能は、 8051マイクロコントローラー 。ほとんどのリアルタイムプロセスでは、特定の条件を適切に処理するために、実際のタスクをしばらく停止し、必要なアクションを実行してから、メインタスクに戻る必要があります。このようなタイプのプログラムを実行するには、割り込みが必要です。これは、プロセッサが各デバイスを順番にチェックし、より多くのプロセッサ時間を消費しながらサービスが必要かどうかを尋ねる必要があるポーリング方法とはまったく異なります。

8051マイクロコントローラーの割り込み

8051マイクロコントローラーの割り込み



インターフェースデバイスまたは内蔵デバイスの定期的なステータスチェックを減らすには、8051マイクロコントローラの割り込みがより望ましいです。割り込みは、メインプログラムを一時的に中断し、制御を特別なコードセクションに渡し、イベント関連の機能を実行し、中断したところからメインプログラムのフローを再開するイベントです。


割り込みには、ソフトウェアとハ​​ードウェア、マスク可能とマスク不可、固定割り込みとベクトル割り込みなど、さまざまな種類があります。割り込みが発生すると、割り込みサービスルーチン(ISR)が表示され、プロセッサに割り込みに対して適切なアクションを実行するように指示し、ISRの実行後、コントローラはメインプログラムにジャンプします。



8051マイクロコントローラーの割り込みの種類

8051マイクロコントローラは、メインプログラムが通常の実行を中断する原因となる5つの異なるイベントを認識できます。 8051のこれらの5つの割り込みソースは次のとおりです。

  1. タイマー0オーバーフロー割り込み-TF0
  2. タイマー1オーバーフロー割り込み-TF1
  3. 外部ハードウェア割り込み-INT0
  4. 外部ハードウェア割り込み-INT1
  5. シリアル通信割り込み-RI / TI

タイマー割り込みとシリアル割り込みはマイクロコントローラーによって内部的に生成されますが、外部割り込みは追加の割り込みによって生成されます インターフェースデバイス または、マイクロコントローラに外部接続されているスイッチ。これらの外部割り込みは、エッジトリガーまたはレベルトリガーにすることができます。割り込みが発生すると、マイクロコントローラは割り込みサービスルーチンを実行して、メモリ位置がそれを可能にする割り込みに対応するようにします。メモリ位置に対応する割り込みは、以下の割り込みベクタ表に示されています。

割り込みベクタテーブル

割り込みベクタテーブル

8051マイクロコントローラーの割り込み構造

「リセット」すると、すべての割り込みが無効になるため、これらの割り込みはすべてソフトウェアで有効にする必要があります。これら5つの割り込みすべてで、いずれかまたはすべてがアクティブ化されると、図に示すように、対応する割り込みフラグが設定されます。これらの割り込みはすべて、割り込み有効(IE)である特殊機能レジスタのビットごとに設定またはクリアできます。これは、IP割り込み優先レジスタによって実行される優先度に依存します。


8051マイクロコントローラの割り込み構造

8051マイクロコントローラの割り込み構造

割り込みイネーブル(IE)レジスタ: このレジスタは、割り込みの有効化と無効化を担当します。これはビットアドレス指定可能なレジスタであり、割り込みを有効にするためにEAを1に設定する必要があります。このレジスタの対応するビットは、タイマー、外部入力、シリアル入力などの特定の割り込みを有効にします。以下のIEレジスタでは、1に対応するビットが割り込みをアクティブにし、0が割り込みを無効にします。

割り込みイネーブル(IE)レジスタ

割り込みイネーブル(IE)レジスタ

割り込み優先レジスタ(IP): 図に示すように、割り込み優先度(IP)レジスタの対応するビットをセットまたはクリアすることにより、割り込みの優先度レベルを変更することもできます。これにより、優先度の低い割り込みが優先度の高い割り込みを中断できますが、優先度の低い別の割り込みによる割り込みは禁止されます。同様に、優先度の高い割り込みを中断することはできません。これらの割り込み優先度がプログラムされていない場合、マイクロコントローラーは事前定義された方法で実行され、その順序はINT0、TF0、INT1、TF1、およびSIです。

IPレジスタ

IPレジスタ

TCONレジスタ: 上記の2つのレジスタに加えて、TCONレジスタは、図に示すように、8051マイクロコントローラへの外部割り込みのタイプを指定します。 2つの外部割り込みは、エッジまたはレベルでトリガーされるかどうかに関係なく、このレジスタによってセットで指定されるか、レジスタ内の適切なビットによってクリアされます。また、ビットアドレス指定可能なレジスタでもあります。

TCONレジスタ

TCONレジスタ

8051での割り込みプログラミング

1.タイマー割り込みプログラミング

タイマ0およびタイマ1の割り込みは、タイマレジスタビットTF0およびTF1によって生成されます。これらの割り込み Cコードによるプログラミング 関与する:

  • TMODレジスタとその動作モードを設定してタイマーを選択します。
  • 適切なモードのTLxおよびTHxの初期値を選択してロードします。
  • IEレジスタとそれに対応するタイマービットを有効にします。
  • タイマーを開始するためのタイマー実行ビットの設定。
  • 必要な時間のタイマーのサブルーチンを作成し、サブルーチンの最後にタイマー値TRxをクリアします。
タイマー割り込みプログラミング

タイマー割り込みプログラミング

2.外部ハードウェア割り込みプログラミング

8051マイクロコントローラは、前述のようにINT0とINT1の2つの外部ハードウェア割り込みで構成されています。これらはピン3.2とピン3.3で有効になります。これらは、エッジトリガーまたはレベルトリガーにすることができます。レベルトリガーでは、ピン3.2のローが割り込みを有効にし、ピン3.2 –ハイからローへの遷移がエッジトリガー割り込みを有効にします。このエッジトリガーまたはレベルトリガーは、上記で説明したTCONレジスタによって決定されます。ザ・ 8051のプログラミング手順 以下のとおりであります:

  • IEレジスタの外部割り込みの対応するビットを有効にします。
  • レベルトリガーの場合は、この割り込みに適したサブルーチンを作成するか、エッジトリガー割り込みに対応するTCONレジスタビットを有効にします(INT0またはINT1)。
外部ハードウェア割り込みプログラミング

外部ハードウェア割り込みプログラミング

3.シリアル通信割り込みプログラミング

データを送受信する必要がある場合、シリアル通信の割り込みが発生します。 TI(転送割り込み)フラグとRI(受信者割り込み)フラグの両方に1つの割り込みビットが設定されているため、割り込みサービスルーチンはこれらのフラグを調べて実際の割り込みを知る必要があります。

これら2つのフラグ(RIとTI)の論理OR演算により、この割り込みが発生し、ソフトウェアのみでクリアされます。ここでは、特殊レジスタSCONを使用して制御します。 コミュニケーション その中の対応するビットを有効にすることによる操作。

  • シリアル割り込みを有効にするためにIEレジスタを設定します
  • 受信または転送操作用にSCONレジスタを構成します
  • 適切な関数を使用してこの割り込みのサブルーチンを記述し、このルーチンでTIまたはRIフラグをクリアします。
シリアル割り込みプログラミング

シリアル割り込みプログラミング

これはすべて、8051マイクロコントローラーの割り込み、タイプ、それらの構造、およびプログラミングに関するものです。この記事から良い情報を受け取ったことを願っています。また、以下のコメントセクションに、のリアルタイム実装について書いてください。 マイクロコントローラープロジェクト より良い実地体験のために私たちがあなたを支援できるように。

写真クレジット