Hitachi HD44780 LCDコントローラー
日立HD44780 LCDコントローラは、日立が開発した英数字、ドットマトリクス液晶ディスプレイ(LCD)コントローラです。コントローラの文字セットには、ASCII文字、日本語のかな文字、および2つの28文字行の一部の記号が含まれます。拡張ドライバーを使用すると、デバイスは最大80文字を表示できます。
建築
Hitachi HD44780 LCDコントローラーはモノクロテキストディスプレイに限定され、コピー機、ファックス、レーザープリンター、産業用テスト機器、ルーターやストレージデバイスなどのネットワーク機器でよく使用されます。
互換性のあるLCDスクリーンは、いくつかの標準構成で製造されています。一般的なサイズは、8文字(8x1)の1行、および16x2、20x2、20x4形式です。より大きなカスタムサイズは、32、40、および80文字で、1、2、4、または8行で作成されます。最も一般的に製造される大規模な構成は40x4文字であり、単一のHD44780チップは最大80文字しかアドレスできないため、拡張チップを備えた個別にアドレス可能な2つのHD44780コントローラーが必要です。
文字LCDには、LED、蛍光灯、またはエレクトロルミネッセンスのバックライトが付いている場合があります。
キャラクターLCDは、16接点インターフェースを使用します。通常、0.1インチ(2.54 mm)の中心のピンまたはカードエッジ接続を使用します。バックライトのないものには14個のピンしかなく、ライトに電力を供給する2つのピンは省略されます。このインターフェイスは、2つのアドレスピンのみを使用してMCS-51 XRAMインターフェイスに簡単に接続できるように設計されており、シンプルなMOVXコマンドを使用してLCDにテキストを表示でき、デバイスにテキスト表示を追加するためのコスト効率の高いオプションを提供します。ピン配置は次のとおりです。
- 接地
- VCC +3.3〜+ 5V(標準)
- コントラスト調整(VO)これは通常、ポテンショメーターに接続されたアナログ入力です。ユーザーは、他のすべての調整とは無関係にこの電圧を制御できる必要があります。これは、温度によって、場合によっては海抜からの高さによって変化するディスプレイの視認性を最適化するためです。調整を間違えると、ディスプレイが誤作動しているように見えます。
- レジスタ選択(RS)。 RS = 0:コマンド、RS = 1:データ
- 読み取り/書き込み(R / W)。 R / W = 0:書き込み、R / W = 1:読み取り(ほとんどのアプリケーションでは、HD44780からの読み取りは意味がありません。この場合、このピンは永続的にグランドに接続でき、ステアリングするためにioピンを割り当てる必要はありません。 )
- クロック(有効)。立ち下がりエッジがトリガーされた
- ビット0(4ビット操作では使用されません)
- ビット1(4ビット操作では使用されません)
- ビット2(4ビット操作では使用されません)
- ビット3(4ビット操作では使用されません)
- ビット4
- ビット5
- ビット6
- ビット7
- バックライトアノード(+)(該当する場合)
- バックライトカソード(-)(該当する場合)
LEDバックライトの公称動作電圧は最大輝度で5Vで、低電圧での調光はLED色などの詳細に依存します。非LEDバックライトには、多くの場合、より高い電圧が必要です(IEエレクトロルミネッセンス)。
モード選択
4ビットまたは8ビットモードを選択するには、コマンドを慎重に選択する必要があります。主に2つの考慮事項があります。まず、D3-D0が接続されていない場合、これらのラインは、8ビットモードの場合、HD44780に対して常にロー(0b0000)に見えます。第二に、LCDは最初3つの状態のいずれかになります。
- (State1)8ビットモード
- (State2)4ビットモード、4ビットの最初のセットを待機
- (State3)4ビットモード、4ビットの2番目のセットを待機
たとえば、LCDが4ビットモードのときにコマンドの最初の4ビットのみを送信した後に以前の制御が中止された場合、State3が発生することがあります。
次のアルゴリズムにより、LCDが目的のモードになります。
- D7-D4を0b0011に設定し、イネーブルビットを切り替えます。
- State1の場合、LCDはコマンドを0b0011_0000として認識するため、8ビットモード(State1)のままになります。
- State2の場合、LCDは値0b0011をビット7〜4にラッチしてから、State3に移行します。
- State3の場合、LCDは値0b0011をビット3-0にラッチし、ビット7-4の値(不明)に基づいてランダムコマンドを実行します。その後、State1(不明の場合)ビットは0b0011でした)、またはState2(不明なビットが他のものであった場合)。
- 上記を繰り返し、D7-D4を0b0011に設定し、再度イネーブルビットを切り替えます。
- State1の場合、LCDは上記と同様に8ビットモード(State1)のままです。
- State2の場合、値をビット7〜4にラッチし、上記のようにState3に移動します。
- State3の場合、LCDは上記のように値をビット3〜0にラッチし、コマンドを実行します。ただし、コマンドはランダムではなく、前の反復でState2からラッチされた0b0011になります。したがって、LCDは8ビットモードに切り替わり、State1に変わります。
- LCDはState1またはState 3のいずれかになります。前の手順をもう一度繰り返します。
- State1の場合、LCDは8ビットモードのままです(したがって、State1)。
- この時点でLCDはState2になりません。
- State3の場合、LCDは値をビット3〜0にラッチし、コマンドを実行します。コマンドは、前の反復でState2からラッチされた0b0011であり、LCDを8ビットモードとState1に切り替えます。
- LCDは間違いなく8ビットモードになっているので、必要に応じて4ビットモードに切り替えることができます。これを行うには、D7-D4を0b0010に設定し、イネーブルビットを切り替えます。これにより、LCDは4ビットモードのままになり、単一行と5x8フォントに設定されます。
- 必要な追加の関数セットコマンドを発行して、使用する行数とフォントを指定します。ビット4に適切な値を使用して、目的のモード(4ビットの場合は0、8ビットの場合は1)のままにします。 。
4ビットモードになると、文字と制御データは、上位データピンD7-D4上の4ビット「ニブル」のペアとして転送されます。最初に4つの最上位ビット(7-4)を書き込み、次に4つの最下位ビット(3-0)を書き込む必要があります。
指図書
HD44780命令セットを以下に示します。
HD44780Uベースの命令セット命令コード説明実行時間(最大)
(fcp = 270 kHzの場合)RS R / W B7 B6 B5 B4 B3 B2 B1 B0表示のクリア0 0 0 0 0 0 0 0 0 0 1表示をクリアし、カーソルをホームポジション(アドレス0)に戻します。 1.52 msカーソルのホーム0 0 0 0 0 0 0 0 1 *カーソルをホーム位置に戻します。また、表示を元の位置にシフトして返します。 DDRAMの内容は変更されません。 1.52 ms入力モード設定0 0 0 0 0 0 0 0 1 I / DSカーソルの移動方向(I / D)を設定します。表示をシフトすることを指定します(S)。これらの操作は、データの読み取り/書き込み中に実行されます。 37μsディスプレイのオン/オフ制御0 0 0 0 0 0 1 DCBすべてのディスプレイのオン/オフ(D)、カーソルのオン/オフ(C)、カーソル位置文字の点滅(B)を設定します。 37μsカーソル/ディスプレイシフト0 0 0 0 0 1 S / CR / L * *カーソル移動またはディスプレイシフト(S / C)、シフト方向(R / L)を設定します。 DDRAMの内容は変更されません。 37μs機能セット0 0 0 0 1 DL NF * *インターフェイスデータ長(DL)、表示行数(N)、および文字フォント(F)を設定します。 37μsCGRAMアドレスの設定0 0 0 1 CGRAMアドレスCGRAMアドレスを設定します。この設定の後、CGRAMデータが送受信されます。 37μsDDRAMアドレスの設定0 0 1 DDRAMアドレスDDRAMアドレスを設定します。 DDRAMデータは、この設定後に送受信されます。 37μs読み取りビジーフラグ&
アドレスカウンター0 1 BF CGRAM / DDRAMアドレス実行中の内部動作を示すビジーフラグ(BF)を読み取り、CGRAMまたはDDRAMアドレスカウンターの内容を読み取ります(前の命令に応じて)。 0μsCGRAM書き込みまたは
DDRAM 1 0データの書き込みCGRAMまたはDDRAMにデータを書き込みます。 37μsCG / DDRAMからの読み取り1 1データの読み取りCGRAMまたはDDRAMからデータを読み取ります。 37μs 命令ビット名—
I / D -0 =カーソル位置を減少、1 =カーソル位置を増加。 S -0 =ディスプレイシフトなし、1 =ディスプレイシフト。 D -0 =表示オフ、1 =表示オン。 C -0 =カーソルがオフ、1 =カーソルがオン。 B -0 =カーソルが点滅しない、1 =カーソルが点滅する; S / C -0 =カーソルを移動、1 =ディスプレイをシフト。 R / L -左0 =シフト、1 =右シフト。 DL -0 = 4ビットインターフェイス、1 = 8ビットインターフェイス。 N -0 = 1/8または1/11デューティ(1ライン)、1 = 1/16デューティ(2ライン); F -0 = 5×8ドット、1 = 5×10ドット; BF -0 =命令を受け入れることができます、1 =進行中の内部操作。
フォント
オリジナルのHD44780文字ジェネレーターROMには、5×8ドットマトリックスに208文字、5×10ドットマトリックスに32文字が含まれています。より多くのピクセルを備えたディスプレイに合わせて、より高い解像度のより互換性のある最新のチップを利用できます。
ROMの2つのバージョンが開発されました。
- HD44780UA00、カタカナ文字といくつかのギリシャ文字と数学記号を含む標準(日本語)バージョン
- HD44780UA02、ギリシャ語、キリル文字、および西ヨーロッパ文字の完全なセット(発音区別記号付き)を含むヨーロッパ版
日本語版の7ビットASCIIサブセットは非標準です。バックスラッシュ文字が通常検出される円記号、およびチルダとラブアウト文字の代わりに左右の矢印記号を提供します。
特別なコマンドを使用して、限られた数のカスタム文字をビットマップの形式でデバイスにプログラムできます。これらの文字は揮発性メモリに保存されるため、スイッチを入れるたびにデバイスに書き込む必要があります。