マイクロコントローラ8051に接続する主要な電子周辺機器

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





インターフェースは、の重要な概念の1つです。 マイクロコントローラー8051 マイクロコントローラは、データに対して何らかの操作を実行して出力を提供できるCPUであるためです。ただし、操作を実行するには、データを入力するための入力デバイスが必要であり、出力デバイスは操作の結果を表示します。ここでは、マイクロコントローラーとともに、キーボードとLCDディスプレイを入出力デバイスとして使用しています。

マイクロコントローラー8051周辺機器

マイクロコントローラー8051周辺機器



インターフェースとは、デバイスを接続して情報を交換できるようにするプロセスであり、プログラムの作成が容易であることが証明されています。 LED、LCD、7セグメント、キーパッド、モーター、その他のデバイスなど、要件に応じてさまざまなタイプの入力デバイスと出力デバイスがあります。


ここでは、マイクロコントローラ8051とインターフェイスするいくつかの重要なモジュールを示します。



1.マイクロコントローラーへのLEDインターフェース:

説明:

LEDは、出力を示すために多くのアプリケーションで最も一般的に使用されています。彼らは、さまざまな段階で結果の妥当性をチェックするためのテスト中の指標として、膨大な範囲のアプリケーションを見つけます。それらは非常に安価で、さまざまな形、色、サイズで簡単に入手できます。

発光ダイオード

発光ダイオード

の原理 LEDの操作 とても簡単です。シンプルなLEDは、基本的なディスプレイデバイスとしても機能し、オンとオフの状態は、デバイスに関する完全な情報を意味します。一般的に利用可能なLEDの電圧降下は1.7Vです。つまり、1.7Vを超える電圧を印加すると、ダイオードが導通します。ダイオードが最大強度で発光するには、10mAの電流が必要です。


次の回路は、「LEDを点灯させる方法」について説明しています。

LEDは、共通アノード構成または共通カソード構成のいずれかでマイクロコントローラーに接続できます。ここでは、共通のカソード構成がより多くの電力を消費するため、LEDは共通のアノード構成で接続されています。

回路図

マイクロコントローラーへのLEDインターフェース

マイクロコントローラーへのLEDインターフェース

ソースコード:

#include
void main()
{{
unsigned int i
while(1)
{{
P0 = 0x00
for(i = 0i<30000i++)
P0 = 0xff
for(i = 0i<30000i++)
}
}

2.7セグメントディスプレイインターフェース回路

説明:
7セグメントディスプレイ 最も基本的な電子ディスプレイです。これは、LEDの適切な組み合わせがオンになっている場合に、0から9までの数字を表示するように順番に関連付けられた8つのLEDで構成されています。 7セグメントディスプレイは7つのLEDを使用して0から9までの数字を表示し、8番目のLEDはドットに使用されます。次の図に示すように、典型的な7セグメントは次のようになります。

7セグメントディスプレイ

7セグメントディスプレイ

7セグメントディスプレイは、数値情報を表示するために多くのシステムで使用されています。一度に1桁ずつ表示できます。したがって、使用されるセグメントの数は、表示する桁数によって異なります。ここでは、0から9の数字が、事前定義された時間遅延で継続的に表示されます。

7セグメントディスプレイは、共通アノードと共通カソードの2つの構成で利用できます。ここでは、マイクロコントローラの出力電流がLEDを駆動するのに十分でないため、一般的なアノード構成が使用されます。 7セグメントディスプレイは負論理で動作します。LEDを点灯させるには、対応するピンに論理0を提供する必要があります。

7セグメントディスプレイ構成

7セグメントディスプレイ構成

次の表は、さまざまな桁を表示するために使用される16進値を示しています。

7セグメントディスプレイテーブル

7セグメントディスプレイテーブル

回路図

7セグメントディスプレイインターフェース

7セグメントディスプレイインターフェース

ソースコード:

#include
sbit a = P3 ^ 0
void main()
{{
unsigned char n [10] = {0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0xE00,0x10}
unsigned int i、j
a = 1
while(1)
{{
for(i = 0i<10i++)
{{
P2 = n [i]
for(j = 0j<60000j++)
}
}
}

3.マイクロコントローラーへのLCDインターフェース

LCDは、1行あたりの文字数を表示できる液晶ディスプレイの略です。ここでは、16 x 2のLCDディスプレイで1行あたり16文字を表示でき、2行あります。このLCDでは、各文字が5 * 7ピクセルのマトリックスで表示されます。

LCDディスプレイ

LCDディスプレイ

LCDは非常に重要なデバイスであり、洗濯機、自律型ロボットなど、ほとんどすべての自動デバイスに使用されています。 電力制御システム およびその他のデバイス。これは、7セグメンテーションディスプレイ、マルチセグメントLEDなどの小さなディスプレイモジュールにステータスを表示することで実現されます。その理由は、LCDは手頃な価格で、簡単にプログラムでき、特殊文字の表示に制限がないためです。

コマンド/命令レジスタとデータレジスタの2つのレジスタで構成されています。

コマンド/命令レジスタは、LCDに与えられたコマンド命令を格納します。コマンドは、初期化、画面のクリア、カーソルポーズの設定、表示の制御など、事前定義された一連のタスクを実行するLCDに与えられる命令です。

データレジスタは、LCDに表示されるデータを格納します。データは、LCDに表示される文字のASCII値です。

LCDの操作は2つのコマンドによって制御されます。 RS = 0、R / W = 1の場合はデータを読み取り、RS = 1、R / W = 0の場合はデータを書き込み(印刷)します。

LCDは次のコマンドコードを使用します。

LCD表示コマンド

LCD表示コマンド

回路図:

マイクロコントローラーへのLCDインターフェース

マイクロコントローラーへのLCDインターフェース

ソースコード:

#include
#define kam P0

sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit at = P2 ^ 2

void lcd_initi()
void lcd_dat(unsigned char)
void lcd_cmd(unsigned char)
void delay(unsigned int)
void display(unsigned char * s、unsigned char r)
void main()
{{

lcd_initi()
lcd_cmd(0x80)
delay(100)
display(“ EDGEFX TECHLNGS”、15)
lcd_cmd(0xc0)
display(“ KITS&SOLTIONS”、15)
while(1)
}

void display(unsigned char * s、unsigned char r)
{{
unsigned int w
for(w = 0w{{

lcd_dat(s [w])
}
}

void lcd_initi()
{{
lcd_cmd(0x01)
delay(100)
lcd_cmd(0x38)
delay(100)
lcd_cmd(0x06)
delay(100)
lcd_cmd(0x0c)
delay(100)
}
void lcd_dat(unsigned char dat)
{{
くし=それ
rs = 1
rw = 0

in = 1
delay(100)
in = 0
}
void lcd_cmd(unsigned char cmd)
{{
来た= cmd
rs = 0
rw = 0

in = 1
delay(100)
in = 0
}
void delay(unsigned int n)
{{

unsigned int a
for(a = 0a}

4.ステッピングモーターインターフェース回路

ステッピングモーターの種類-1

ユニポーラステッピングモーター

ステッピングモーター は、正確な角運動のために最も一般的に使用されるモーターの1つです。ステッピングモーターを使用する利点は、フィードバックメカニズムなしでモーターの角度位置を制御できることです。ステッピングモーターは、産業および商業用途で広く使用されています。また、ロボットや洗濯機などの駆動システムでも一般的に使用されています。

ステッピングモーターの種類-2

バイポーラステッピングモーター

ステッピングモーターはユニポーラまたはバイポーラにすることができ、ここではユニポーラステッピングモーターを使用しています。ユニポーラステッピングモーターは6本のワイヤーで構成されており、そのうち4本はモーターのコイルに接続され、2本は共通のワイヤーです。各共通ワイヤは電圧源に接続され、残りのワイヤはマイクロコントローラに接続されます。

回路図:

ステッピングモーターインターフェース回路

ステッピングモーターインターフェース回路

ソースコード:

#include
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3

void delay()

void main()
{{

while(1)
{{

a = 0
b = 1
c = 1
d = 1
ディレイ()
a = 1
b = 0
c = 1
d = 1
ディレイ()
a = 1
b = 1
c = 0
d = 1
ディレイ()
a = 1
b = 1
c = 1
d = 0

}
}

void delay()
{{

unsigned char i、j、k
for(i = 0i<6i++)
for(j = 0j<255j++)
for(k = 0k<255k++)

}

5.8051に接続するマトリックスキーパッド

説明:

マトリックスキーパッド

マトリックスキーパッド

キーパッドは、電話、コンピューター、ATM、電子ロックなど、多くのアプリケーションで広く使用されている入力デバイスです。キーパッドは、ユーザーからの入力を取得してさらに処理するために使用されます。ここでは、行と列に配置されたスイッチで構成される4 x3のマトリックスキーパッドは次のとおりです。 マイクロコントローラに接続 16 x 2 LCDも、出力を表示するためにインターフェースされます。

キーパッドのインターフェースの概念は非常に単純です。キーパッドの数ごとに、行と列(R、C)の2つの固有のパラメーターが割り当てられます。したがって、キーが押されるたびに、番号はキーパッドの行番号と列番号を検出することによって識別されます。

キーパッド内部図

キーパッド内部図

最初に、すべての行がコントローラーによってゼロ(「0」)に設定され、列がスキャンされて、キーが押されたかどうかがチェックされます。キーが押されていない場合、すべての列の出力はハイ(「1」)になります。

回路図

8051に接続するマトリックスキーパッド

8051に接続するマトリックスキーパッド

ソースコード:

#include
#define kam P0
sbit rs = P2 ^ 0
sbit rw = P2 ^ 1
sbit at = P2 ^ 2
sbit c1 = P1 ^ 4
sbit c2 = P1 ^ 5
sbit c3 = P1 ^ 6
sbit r1 = P1 ^ 0
sbit r2 = P1 ^ 1
sbit r3 = P1 ^ 2
sbit r4 = P1 ^ 3
void lcd_initi()
void lcd_dat(unsigned char)
void lcd_cmd(unsigned char)
void delay(unsigned int)
void display(unsigned char * s、unsigned char r)

void main()
{{
lcd_initi()
lcd_cmd(0x80)
delay(100)
display(“ 0987654321”、10)
while(1)
}

void display(unsigned char * s、unsigned char r)
{{

unsigned int w
for(w = 0w{{

lcd_dat(s [w])
}
}
void lcd_initi()
{{
lcd_cmd(0x01)
delay(100)
lcd_cmd(0x38)
delay(100)
lcd_cmd(0x06)
delay(100)
lcd_cmd(0x0c)
delay(100)
}

void lcd_dat(unsigned char dat)
{{
くし=それ
rs = 1
rw = 0

in = 1
delay(100)
in = 0
}
void lcd_cmd(unsigned char cmd)
{{
来た= cmd
rs = 0
rw = 0

in = 1
delay(100)
in = 0

}
void delay(unsigned int n)
{{

unsigned int a
for(a = 0a}
}

の基本的かつ重要なインターフェース回路について十分な知識を提供できたことを願っています。 マイクロコントローラー8051 。これらは、組み込みシステムアプリケーションに必要な最も基本的な回路であり、適切な改訂が提供されたことを願っています。

このトピックに関連するさらなる質問やフィードバックは、以下のコメントセクションで言及されることを歓迎します。

写真クレジット