私たちの日常生活では、テキスト、画像、グラフィックスを表示するためのさまざまな種類のデバイスがあります。LCDは、エレクトロニクスで最も人気のあるディスプレイデバイスの1つであり、ある種の情報を表示するほとんどすべてのプロジェクトで使用されています。電子プロジェクトで使用されるLCDには多くの種類があります。私たちはすでに多くのプロジェクトで16X2LCDを使用しており、ArduinoでTFTLCDも使用しています。このリンクをたどると、8051、AVR、Arduinoなどとのインターフェースを含むすべての16X2LCD関連プロジェクトを見つけることができます。
このチュートリアルでは 、8051マイクロコントローラーとのグラフィックLCDインターフェースを行います。このプロジェクトでは、グラフィックLCD(GLCD)に画像を表示する方法を示します。
必要なコンポーネント:
- グラフィカルLCD
- AT89c528051マイクロコントローラー
- 7805電圧レギュレータ
- 1000ufコンデンサ
- 10uFコンデンサ
- 10K抵抗
- 10Kポット
- 水晶発振器12MH
- 接続線
- ブレッドボード
- バーグストリップオス
- 電源
- 導いた
- 220オームの抵抗器
- 1K抵抗
グラフィカルLCD:
シンプルな16x2LCDには16ピンがありますが、グラフィカルLCDには20ピンがあります。ピンの説明は、データシートに従って以下に示されています。
ピン番号 | ピン名 | 説明 | 関数 |
1 | VSS | 接地 | 0ボルト |
2 | VDD | 電源 | 5ボルト |
3 | V0 | LCDコントラスト調整 | |
4 | RS | コマンド/データレジスタの選択 | RS = 0:コマンド選択およびRS = 1:データ選択 |
5 | R / W | 読み取り/書き込みレジスタ | R / W = 0:選択範囲の書き込みおよびR / W = 1:選択範囲の読み取り |
6 | E | 信号を有効にする | |
7 | DB0 | データ入出力端子(DB0-DB7) | 8ビット(DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | チップセレクト | CS1 = 1、IC1のチップセレクト信号 |
16 | CS2 | チップセレクト | CS2 = 1、IC2のチップセレクト信号 |
17 | RST | リセット | GLCDをリセット |
18 | VEE | LCDドライバーの負電圧 | |
19 | A | バックライトLED | 5ボルト |
20 | K | バックライトLED | 接地 |
8051を使用してグラフィカルLCDに画像を表示する:
グラフィカルLCDに画像を表示するには、まずその画像をアセンブリコードに変換して、8051マイクロコントローラーが画像を理解して読み取ることができるようにする必要があります。したがって、画像をHEXコードに変換するための以下の手順に従う必要があります。
ステップ1:まず、画像(BMP形式)をアセンブリコードに変換するアプリケーションをダウンロードする必要があります。したがって、このリンクからBMP2ASM画像変換アプリケーションをダウンロードします。リンクを右クリックして、[名前を付けてリンクを保存]をクリックします…
ステップ2:次に、あなたが上で表示したい画像を選択グラフィカルLCDやBMPに変換し(それはすでにBMP形式ではない場合)、MSペイント、フォトショップなどのような任意のアプリケーションを使用して、またはあなたは多くのオンラインウェブサイトを見つけることができます画像フォーマット変換用。サイズ128x64のBMP画像の下にあります。
手順3:手順1でダウンロードしたBMP2ASM.zipファイルを抽出し、その中のBmp2asm.exeを開いて、BMPイメージを選択します。
ステップ4: BMP2ASMアプリケーションウィンドウで「変換」を押します。
ステップ5:次に、生成されたコードをコピーして、KeiluVisionの8051のプログラムに貼り付けます。いくつかの変更を行い、コードをコンパイルします。
これで、コードを8051マイクロコントローラーにアップロードする準備が整いました。
回路の説明:
グラフィックLCDを8051マイクロコントローラーに接続するための回路接続は、16x2 LCDを8051に接続するのとほぼ同じで簡単です。ただし、16x2 LCDには16ピンがあり、GLCDには20ピンがあります。
GLCDのコントラストの設定には10Kポットが使用されます。GLCD RS、R / W、およびEの制御ピンは、89C52ピン番号P1.0、P1.1、およびP1.2に直接接続されています。LCDのチップセレクトピンCS1とCS2は、それぞれピンP1.3とP1.4に接続されています。データピンDB0〜DB7はポートP2に直接接続されています。7805電圧レギュレーターは、通常の5ボルト電源に使用されます。デモンストレーションビデオでは、Arduino電源を使用しました。
プログラミングの説明:
まず、必要なヘッダーファイルをプログラムにインクルードし、GLCDの制御ピンとデータピンのビットを定義します。
#include
その後、遅延関数を作成しました。
void delay(int itime){int i、j; for(i = 0; i
関数 voidlcd_disp_on() は、ディスプレイをオンにするために使用されます。
関数 voidsetCursorY(int y) は、GLCDで列を設定するために作成され、関数 void setCursorX(int x) は、GLCDでページを設定するために作成されます。完全なコードファイルは、以下のコードセクションに記載されています。
列とページを設定した後、コマンドとデータをGLCDに送信する関数を作成しました。
void lcdprint(char dat、int size){unsigned int i; for(i = 0; i
で 無効メイン() 関数で、我々はGLCDをクリアした後、列とページを設定しました。その後、 void lcdprint(char dat、int size) 関数を使用してLCDにデータを送信します。
void main(){int x、y; P3 = 0xff; while(1){lcdclear(); for(y = 0; y <8; y ++){for(x = 0; x <128; x ++){lcd_disp_on(); setCursorX(y); setCursorY(x); lcdprint(image、x); }}…………………..。
コードの流れ:
- 最初にシステムの電源を入れると、プログラムはGLCDをクリアし、ディスプレイをオンにします。
- 次に、カーソルを列に設定します。ここから、データを書き込みます。
- 次に、カーソルをページに設定します。ここから、データを書き込みます。
- これで、プログラムは128X8回まで、選択した場所に1つずつデータを送信します。GLCDには8ページと128列があるためです。