LEDを8051マイクロコントローラーとインターフェースする方法

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





私たちは「Helloworld!」に精通しています。の初期段階での基本的なプログラムコード プログラミング言語 いくつかの基本的なことを学ぶために。同様に、8051マイクロコントローラーの使用を開始するために、LEDインターフェースはマイクロコントローラーインターフェースプログラミングの基本です。各マイクロコントローラーはアーキテクチャーが異なりますが、インターフェースの概念はすべてのマイクロコントローラーでほぼ同じです。このチュートリアルでは、8051とのLEDインターフェースを提供します。

インターフェースは、マイクロコントローラーとインターフェースデバイス間の通信を提供する方法です。インターフェイスは、入力デバイス、出力デバイス、ストレージデバイス、または処理デバイスのいずれかです。




入力インターフェースデバイス: 押しボタンスイッチ、キーパッド、赤外線センサー、 温度センサー 、ガスセンサーなど。これらのデバイスはマイクロコントローラーにいくつかの情報を提供し、これは入力データと呼ばれます。

出力インターフェースデバイス: LED、LCD、ブザー、 リレードライバー 、DCモータードライバー、7セグメントディスプレイなど。



ストレージインターフェイスデバイス: SDカードなどのデータを保存/保持するために使用されます。 EEPROM、DataFlash、リアルタイムクロック 、など。

マイクロコントローラーインターフェースモデル

マイクロコントローラーインターフェースモデル

LEDと8051のインターフェース

インターフェースは、ハードウェア(インターフェースデバイス)とソフトウェア(通信するためのソースコード、ドライバーとも呼ばれます)で構成されます。簡単に言うと、LEDを出力デバイスとして使用するには、LEDをマイクロコントローラーポートに接続し、MCを内部でプログラムしてLEDをオンまたはオフにするか、点滅または暗くする必要があります。このプログラムは、ドライバ/ファームウェアと呼ばれます。ドライバーソフトウェアは、 Assemblyのようなプログラミング言語 、Cなど。


8051マイクロコントローラー

8051マイクロコントローラーは1980年代にIntelによって発明されました。その基盤はハーバードアーキテクチャに基づいており、このマイクロコントローラは主に組み込みシステムで使用できるようにするために開発されました。以前に議論しました 8051マイクロコントローラーの歴史と基本 。これは40ピンPDIP(プラスチックデュアルインラインパッケージ)です。

8051にはオンチップ発振器がありますが、それを実行するには外部クロックが必要です。 水晶振動子 MCのXTALピンの間に接続されます。この水晶は、目的の周波数のクロック信号を生成するために2つの同じ値のコンデンサ(33pF)を必要とします。 8051マイクロコントローラーの機能については、前回の記事で説明しています。

マイクロコントローラーCrystalConnections

マイクロコントローラーCrystalConnections

LED(発光ダイオード)

LEDは半導体デバイスです 多くの電子機器で使用され、主に信号伝送/電力表示の目的で使用されます。さまざまな形、色、サイズで非常に安価で簡単に入手できます。 LEDは、デザインメッセージディスプレイボードや交通管制信号灯などにも使用されます。

図に示すように、正と負の2つの端子があります。

LEDの極性

LEDの極性

極性を知る唯一の方法は、マルチメータでテストするか、LEDの内部を注意深く観察することです。 LEDの内側の大きい方の端は-ve(カソード)で、短い方の端は+ ve(アノード)です。これにより、LEDの極性を確認できます。極性を認識するもう1つの方法は、リード線を接続することです。POSITIVE端子はNEGATIVE端子よりも長さが長くなります。

8051へのLEDインターフェース

LEDをマイクロコントローラー8051に接続する方法は2つあります。ただし、接続とプログラミング手法は異なります。この記事では、8051とのLEDインターフェース、およびAT89C52 / AT89C51マイクロコントローラーのLED点滅コードに関する情報を提供します。

LEDを8051メソッドに接続する

LEDを8051メソッドに接続する

5vの入力電圧がLEDの正端子に接続されているため、インターフェイスLED 2が順方向にバイアスされていることを注意深く観察してください。したがって、ここではマイクロコントローラーピンがLOWレベルになっている必要があります。また、インターフェイス1の接続ではその逆も同様です。

抵抗は、流れる電流を制限し、LEDやMCUの損傷を防ぐために、LEDインターフェースで重要です。

  • 電流がグランドに向かって流れるときにMCのPIN値がHIGHの場合にのみ、インターフェイス1がLEDを点灯します。
  • インターフェイス2は、電位が低いために電流がPINに向かって流れるときに、MCのPIN値がLOWの場合にのみ、LEDを点灯します。

回路図を以下に示します。ポート1のピン0にはLEDが接続されています。

プロテウスシミュレーション回路

プロテウスシミュレーション回路

プログラムコードについて詳しく説明します。さらに、このリンクを参照してください Keil言語を使用した組み込みCプログラミングチュートリアル 」。クロックを生成するために11.0592MHzの水晶が接続されています。私たちが知っているように、8051マイクロコントローラーは12 CPUサイクルで命令を実行します[1]。したがって、この11.0592Mhzクリスタルは、この8051を0.92 MIPS(毎秒数百万の命令)で実行します。

以下のコードでは、LEDはポート1のピン0として定義されています。メイン機能では、LEDは0.5秒ごとに切り替えられます。 「delay」関数は、実行するたびにnullステートメントを実行します。

値60000(Keil micro-vision4ソフトウェアを使用してコンパイル)は、11.0592 MHzクリスタルが使用されている場合、約1秒(遅延時間)のヌルステートメント実行時間を生成します。このようにして、P1.0ピンに接続されているLEDを以下のコードで点滅させます。

コード

#include

sbit LED = P1 ^ 0 // port1のpin0はLEDと名付けられています

//関数宣言

void cct_init(void)

void delay(int a)

int main(void)

{{

cct_init()

while(1)

{{

LED = 0

遅延(60000)

LED = 1

遅延(60000)

}

}

void cct_init(void)

{{

P0 = 0x00

P1 = 0x00

P2 = 0x00

P3 = 0x00

}

ボイド遅延(int a)

{{

int i

for(i = 0 i

}

この記事では、LEDが8051とどのようにインターフェースするかについての情報を提供します。これは、8051マイクロコントローラープロジェクトの基本的なインターフェースの概念です。

この記事を読んで、LEDモジュールを8051とインターフェースする方法についての基本的な知識を得たことを願っています。この記事または マイクロコントローラープロジェクト 、以下のセクションでお気軽にコメントしてください。