16×2LCDの名前は次のとおりです。16列と2行があります。8×1、8×2、10×2、16×1など、さまざまな組み合わせがありますが、最もよく使われているのは16 * 2 LCDなので、ここで使用しています。
上記のすべてのLCDディスプレイには16個のピンがあり、プログラミング方法も同じであるため、選択はあなたに任されています。以下は、16x2LCDモジュールのピン配列とピンの説明です。
シニアいいえ |
ピン番号 |
ピン名 |
ピンタイプ |
ピンの説明 |
ピン接続 |
1 |
ピン1 |
接地 |
ソースピン |
これはLCDのアースピンです |
MCU /電源のアースに接続 |
2 |
ピン2 |
VCC |
ソースピン |
LCDの電源電圧ピンです |
電源の電源ピンに接続されています |
3 |
ピン3 |
V0 / VEE |
コントロールピン |
LCDのコントラストを調整します。 |
0〜5Vを供給できる可変POTに接続 |
4 |
ピン4 |
レジスタ選択 |
コントロールピン |
コマンド/データレジスタを切り替えます |
MCUピンに接続され、0または1のいずれかを取得します。 0->コマンドモード 1->データモード |
5 |
ピン5 |
読み書き |
コントロールピン |
LCDを読み取り/書き込み操作間で切り替えます |
MCUピンに接続され、0または1のいずれかを取得します。 0->書き込み操作 1->読み取り操作 |
6 |
ピン6 |
有効にする |
コントロールピン |
読み取り/書き込み操作を実行するには、Highに保持する必要があります |
MCUに接続され、常にハイに保持されます。 |
7 |
ピン7-14 |
データビット(0〜7) |
データ/コマンドピン |
コマンドまたはデータをLCDに送信するために使用されるピン。 |
4線式モードの場合 4ピン(0-3)のみがMCUに接続されています 8線式モードの場合 8ピン(0〜7)すべてがMCUに接続されています |
8 |
ピン15 |
LEDポジティブ |
LEDピン |
LCDを照らす通常のLEDのような操作 |
+ 5Vに接続 |
9 |
ピン16 |
LEDネガティブ |
LEDピン |
GNDに接続されたLCDを照らす通常のLEDのような操作。 |
アースに接続 |
すべてのピンの機能がわからなくても大丈夫ですので、以下で詳しく説明します。では、LCDを元に戻しましょう。
これらの黒い円は、このLCDをMCUで使用するのに役立つインターフェイスICとそれに関連するコンポーネントで構成されています。私たちのLCDは16 * 2ドットマトリックスLCDであるため、合計32文字(16 * 2 = 32)になり、各文字は5 * 8ピクセルドットで構成されます。次の図は、すべてのピクセルが有効になっている1つの文字を示しています。
これで、各文字のピクセル数は(5 * 8 = 40)40ピクセルになり、32文字の場合は(32 * 40)1280ピクセルになることがわかりました。さらに、LCDにはピクセルの位置についても指示する必要があります。
MCUの助けを借りてすべてを処理することは多忙な作業になるため、LCDモジュール自体に取り付けられたHD44780のようなインターフェイスICが使用されます。このICの機能は、MCUからコマンドとデータを取得し、それらを処理して、意味のある情報をLCD画面に表示することです。
コントロールピンで制御する必要のある、LCDで使用可能なさまざまなタイプのモードとオプションについて説明しましょう。
LCDの4ビットおよび8ビットモード:
LCDは、4ビットモードと8ビットモードの2つの異なるモードで動作します。4ビットモード我々は、ニブルによってニブル最初の上位ニブルと、下位ニブルのデータを送信します。ニブルが何であるかを知らない人のために:ニブルは4ビットのグループであるため、バイトの下位4ビット(D0-D3)が下位ニブルを形成し、上位4ビット(D4-D7)が形成されます。バイトの上位ニブルを形成します。これにより、8ビットデータを送信できます。
一方、8ビットモードでは、8つのデータラインすべてを使用するため、1つのストロークで8ビットのデータを直接送信できます。
今、あなたはそれを推測したに違いありません、はい8ビットモードは4ビットモードよりも高速で完璧です。ただし、主な欠点は、マイクロコントローラーに接続された8本のデータラインが必要なことです。これにより、MCUのI / Oピンが不足するため、4ビットモードが広く使用されています。これらのモードを設定するために制御ピンは使用されません。変化するのはプログラミングの方法にすぎません。
LCDの読み取りおよび書き込みモード:
前述のように、LCD自体はインターフェイスICで構成されています。MCUは、このインターフェイスICに対して読み取りまたは書き込みを行うことができます。読み取るとICがより複雑になり、そのようなシナリオは非常にまれであるため、ほとんどの場合、ICに書き込むだけです。カーソルの位置、ステータス完了割り込みなどの情報は必要に応じて読み取ることができますが、このチュートリアルの範囲外です。
ほとんどのLCDに存在するインターフェースICはHD44780Uです。LCDをプログラムするには、ICの完全なデータシートを学習する必要があります。データシートはここにあります。
LCDコマンド:
LCDにはいくつかのプリセットコマンド命令があり、マイクロコントローラーを介してLCDに送信する必要があります。いくつかの重要なコマンド命令を以下に示します。
16進コード |
LCD命令レジスタへのコマンド |
0F |
LCDオン、カーソルオン |
01 |
表示画面をクリア |
02 |
帰宅 |
04 |
カーソルをデクリメントします(カーソルを左にシフトします) |
06 |
カーソルをインクリメントします(カーソルを右にシフトします) |
05 |
ディスプレイを右にシフト |
07 |
ディスプレイを左にシフト |
0E |
表示ON、カーソル点滅 |
80 |
カーソルを最初の行の先頭に強制します |
C0 |
カーソルを2行目の先頭に強制します |
38 |
2行と5×7マトリックス |
83 |
カーソル行1の位置3 |
3C |
2行目をアクティブにする |
08 |
表示OFF、カーソルOFF |
C1 |
2行目、位置1にジャンプします |
OC |
表示ON、カーソルOFF |
C1 |
2行目、位置1にジャンプします |
C2 |
2行目の位置2にジャンプします |
さまざまなマイクロコントローラーとのLCDインターフェース記事を確認してください。
- 8051マイクロコントローラーとのLCDインターフェース
- LCDとATmega32マイクロコントローラーのインターフェース
- PICマイクロコントローラーとのLCDインターフェース
- 16x2LCDとArduinoのインターフェース
- Pythonを使用したRaspberryPiとの16x2LCDインターフェース