7セグメントディスプレイは、エレクトロニクスの重要な表示単位であり、0から9までの数字を表示するために広く使用されています。A、B、C、H、F、Eなどのいくつかの文字アルファベットも表示できます。このチュートリアルでは、学習します。7セグメントディスプレイを8051マイクロプロセッサと接続する方法。8051シリーズのAT89S52マイクロコントローラを使用しています。
インターフェースする前に、7セグメントディスプレイについて学ぶ必要があります。数字や文字を表示するのに最も簡単な単位です。8つのLEDで構成され、各LEDはユニットの1つのセグメントを照らすために使用され、8番目のLEDは7セグメントディスプレイのDOTを照らすために使用されます。ユニットには数字/文字を表示するために使用される7つの行があることがわかるので、各セグメントをLINEと呼ぶことができます。各行/セグメント「a、b、c、d、e、f、g」を参照でき、ドット文字には「h」を使用します。10個のピンがあり、そのうち8個のピンはa、b、c、d、e、f、g、およびh / dpを参照するために使用され、2つの中央のピンはすべてのLEDの共通のアノード/カソードです。これらの共通のアノード/カソードは内部で短絡されているため、1つのCOMピンのみを接続する必要があります。
7セグメントディスプレイには、共通アノードと共通カソードの2種類があります。
共通アノード:これでは、8つのLEDすべてのすべての負端子(カソード)が相互に接続され(下の図を参照)、COMという名前が付けられています。そして、すべてのプラス端子はそのままにしておきます。
共通カソード:これでは、8つのLEDすべてのすべての正端子(アノード)が互いに接続され、COMという名前が付けられています。そして、すべての負の熱は放っておかれます。
回路図と動作説明
ここでは、LEDを逆に接続する必要があるため、7セグメントの一般的なアノードタイプを使用しています。マイクロコントローラーはLEDを点灯させるのに十分な電力を供給しないことがわかっているので、LEDのカソードをマイクロコントローラーのピンに接続し、LEDのアノードを電源に接続する必要があります。このネガティブロジックの概念は、この記事「8051マイクロコントローラーとのLEDインターフェース」で理解できます。また、クリスタルやリセット回路などのマイクロコントローラーの基本的な接続を理解するには、この記事を読む必要があります。
上に示したように、7セグメントディスプレイを8051マイクロコントローラーとインターフェースするための回路図、a、b、c、d、e、f、g、hをピン2.0から2.7に接続しました。これは、7セグメントをマイクロコントローラーのポート2に接続していることを意味します。ここで、0を表示するとします。次に、ライン「g」に属するLEDを除くすべてのLEDを点灯させる必要があるため(上の図を参照)、ピン2.0から2.6は0になります(LEDをオンにするには0にする必要があります)。負論理ごと)およびピン2.7と2.8は1である必要があります(負論理に従ってLEDをオフにするには1である必要があります)。したがって、ピン2.0〜2.6(a、b、c、d、e、f)に接続されたLEDがオンになり、2.7および2.8(gおよびh)に接続されたLEDがオフになり、7に「0」が作成されます。セグメント。したがって、ビットパターン11000000が必要であり(ピン8が最上位ビットであるため、P2.7からP2.0まで)、バイナリ11000000のHEXコードは「C0」です。同様に、すべての桁について計算できます。ここで、「dot / h」を常にオフにしておくことに注意してください。そのため、毎回LOGIC「1」を付ける必要があります。 Common Anode 7セグメントを使用している間のすべての数値について、以下の表を示します。
表示する桁 |
hgfedcba |
16進コード |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
コードの説明
ミリ秒単位の遅延を提供するms_delay関数を作成しました。この遅延は通常、マイクロコントローラーが内部操作を完了できるように、任意のマイクロコントローラープログラムで提供されます。
次に、0〜9の16進コードの配列を作成し(上記の表を参照)、最後に、共通アノード7セグメントに接続されているポート2に16進コードを送信しました。したがって、このようにして、番号は7セグメントディスプレイに表示されます。
マイクロコントローラーには4つのポートしかないので、4つ以上の7セグメントでデータを表示したい場合はどうでしょうか。この問題を解決するために、多重化技術が登場します。複数の7セグメントユニットを多重化する必要があります。また、AVRマイクロコントローラーとのインターフェース7セグメントディスプレイもお読みください。