液晶ディスプレイキット

 
液晶ディスプレイキット

液晶ディスプレイキット

■液晶ディスプレイ(LCD)キット

@PIC16F84を使い、液晶ディスプレイ(LCD)を制御します。

A液晶ディスプレイを使いこなせるようになると、LEDの光、ブザーの音、モータの動き、以外にも、人と機械が、文字や絵を介して、コミュニケーションが取れるようになるため、グンと電子工作の範囲が広がります。

B本キットのPIC16F84Aには、すでにプログラムされているため、キットを完成させれば、液晶ディスプレイに、Aの文字が左から右へ音を鳴らしながら動き、2段目にエイリアンを表示されます。

C液晶ディスプレイを使用するには、プログラムが重要で、使用する前段階のプログラム、文字の表示のプログラム、外字(自分で作った文字)のプログラムを公開しましたので、自分仕様に作り直して下さい。
但しその際は、PICとC言語の、開発環境や知識が必要です。

D液晶ディスプレイについて、詳しく書かれ説明書付きですので、初めて液晶ディスプレイを制御する方に最適です。

EPICレトロゲーム開発キット(DEN−L−044)の姉妹品です。しかし、ハード面は似ている内容となっていますが、ソフト面は全く違う内容です。
プログラムに自信がなく、取りあえず液晶ディスプレイについて知りたい方は、本キットをお勧めいたします。

F工作レベルの難易度がレベル5で、非常に難しいキットです。
そのままキットを作れば、液晶ディスプレイを制御して、文字を表示させ動かす事ができます。
しかし、理解するとなると、PICとC言語の、開発環境や知識が必要です。


難易度5

¥4,220(税込)

DEN-L-043
全長 W70mm×D107mm×H40mm
(テイシン TB-3ケース)
【電子キット製】
 
お買い求めはこちらです。

 
電源は9V(別売り)の乾電池です。

PIC16F84マイコンは、ICソケットが付いているので、取り外しが可能です。
開発環境がある方は、プログラムを変更しなおうことも可能です。

液晶ディスプレイは、16文字×2行で、バックライト付のため、暗いところでも視認性抜群です。
ICソケットが付いているので、取り外しが出来ます。
液晶ディスプレイだけでなく、音も鳴ります。
画面のコントラストは、半固定ボリュームを回して調節します。
基板はユニバーサル基板です。



青く見えないですが、青背景で、白文字の液晶ディスプレイです。




光がなくても見えます。
本当は青く光っているのですが、白くなってしまいました。




ものすごく読み応えのある説明書付きです。
気合入れて書いたら、こんな分量になってしまいました。
トータル10ページです。


【液晶ディスプレイ】

機械と人が、情報をやり取りする際に利用する液晶ディスプレイは、とても便利なインターフェイスです。

本キットの液晶ディスプレイは、「1 6文字×2行 白抜き文字」で、14個のピンを持ち、役割は次のとおりです。
 
ピン番号   内容
1番ピン VDD (5Vのプラス電源)
2番ピン VSS (0V)
3番ピン Vo (液晶のコントラストを調整します。)
4番ピン RS (レジスタ選択信号で、信号が、データか命令かを指定します。
ハイ:データ  ロー:命令)
5番ピン R/W リードライト信号
ハイ:読み込み(LCDからPICへ)  ロー:書き込み(PICからLCDへ)
6番ピン E (イネーブルシグナルで、ハイにすると信号をディスプレイにおくります。
パソコンのリターンキみたいなものです。)
7番ピン DB0(データ番号0で、ハイとローの2ビットです。)
8番ピン DB1(データ番号1で、ハイとローの2ビットです。)
9番ピン DB2(データ番号2で、ハイとローの2ビットです。)
10番ピン DB3(データ番号3で、ハイとローの2ビットです。)
11番ピン DB4(データ番号4で、ハイとローの2ビットです。)
12番ピン DB5(データ番号5で、ハイとローの2ビットです。)
13番ピン DB6(データ番号6で、ハイとローの2ビットです。)
14番ピン DB7(データ番号7で、ハイとローの2ビットです。)

本キットの液晶ディスプレイを利用するには、毎回、電源投入後、イニシャライズと言われる初期設定を行なってから利用します。

イニシャライズは、液晶ディスプレイがもっているピンそれぞれに、ハイもしくはロー状態にしてインストラクションと呼ばれる命令を作り、6番ピンのE(イネーブル)をハイにして、液晶ディスプレイに信号を送ります。

イニシャライズのやり方は、8ビットで行なうやり方と、4ビットで行なうやり方の2つがあります。

8ビットは、1 度に情報(DB0〜DB7)を液晶ディスプレイに送れる反面、PICなどのマイコンの端子(足)を、8個使います。

4ビットは、2度に情報(DB4〜DB7)を分けて、液晶ディスプレイに送るため、プログラムが長くなりますが、PICなどのマイコン端子が4個ですみます。

本キットでは、4ビットで作ります。


16文字 × 2行の
液晶ディスプレイです。
光るととても綺麗です。
液晶ディスプレイは取り外しできるように、
ピンヘッダを取り付けます。
     
 
ピンソケットは、基板に取り付けます。
 
半固定ボリュームを使い、
コントラストを調節して下さい。
     
裏面は、抵抗をつなぎ、さらにジャンパーさせて、
バックライトが光るようにします。
ブザーは、液晶ディスプレイの下に配置し、
土台としても利用してみました。

【ブレッドボードと液晶ディスプレイについて】

ピンヘッダを取り付けた液晶ディスプレイは、そのままではブレッドボードにはささらないので、工夫が必要です。

写真のように、10ラインに色分けされた線を用意し、10ラインを7ラインと3ラインに分けます。

これを2組用意します。

7ラインに分けた線を重ね合わせ14ラインにし、片方の先端をピンヘッダ、もう片方の先端をピンソケットにハンダ付けします。

ピンヘッダの先がバラけてしまうので、バラけないようにピンヘッダも横一列に並んだものを用意します。

このような、ブレッドボード用の線を用意すると、とても簡単にブレッドボードで、液晶ディスプレイの実験が出来るようになります。


このようなコードを作りました。

ブレッドボードに挿す側です。
熱収縮チューブで絶縁しています。

     
 
液晶ディスプレイ側です。
ピン番号が分かるように、考えて配線しています。
 
ブレッドボードに挿すとこんな感じです。



【工作について】

ユニバーサル基板のため、自由に部品を配置して、構わないのですが、写真のように配置すると、おさまりが良いです。

参考にして下さいね。


電源は、DC9Vの乾電池1個です。
ケースの中に、余裕ではいります。
この9Vは、5Vのプラス電源を
作るための源です。
レギュレターを使って、
9Vを5Vにしています。
この5Vが、PICマイコンや液晶
ディスプレイのプラス電源として使います。
     
 
PICマイコンを使用するため、配線が込み合います。
間違えないように、一つ一つ丁寧に配線して下さい。
 
ピンソケットも、PICマイコンからの
配線で、込み合います。


【使い方】

@

スイッチを入れると、液晶ディスプレイに A の文字が左から右へ、トコトコと音を出しながら進んで行きます。

そして、最後に左下に、エイリアンを表示させ、ピピピ!と音がなります。

以後、その繰り返しです。


A

画面が見えない時は、半固定ボリュームを回し、液晶のコンストラストを調節して下さい。

プッシュスイッチは、押すとPICマイコンがリセットになるため、画面が止まり、また最初から始まります。



( Youtubeの動画  8秒 )



【プログラム】

  ← ピンソケット付なので、PIC16F84 マイコンは

  基板から取り外すことが出来ます。


本PICマイコンには、あらかじめプログラムが書き込まれているので、PICマイコンをいじる必要はありませんが、PICマイコンのプログラムを拡張される方は、次の事項を参考にして下さい。


マイコン開発ソフトは、「マイクロチップ社のMPLAB IDE v8.10(無料)」を利用しています。
尚、プロジェクトファイル名は、ファイル名だけでなくそのファイルを置くパスも、すべて半角英数字にしないと、動きません。
日本語のフォルダーに入れ、ファイル名を半角英数字では動きませんので、注意して下さいね。
(例 C:\モータ\motor\motor.mcp は、「モータ」が日本語のフォルダーなので動きません。)



delay関数を利用していますので、次の作業をしています。(パソコンのシステムは、Cフォルダーにあることとします。)
C:\Program Files\HI-TECH Software\PICC\LITE\9.60\samples\delayのdelay.cとdelay.hを、プロジェクトファイルと同じフォルダーにコピーする。
そしてコピーしたdelay.hの  #define XTAL_FREQ 4MHZ の4を10に変更。

ちなみに、使用したファイルをダウンロード(右クリックして、対象をファイルに保存)できるようにしておきました。
ダウンロード出来るファイルは、4を10に変更してあります。

delay.cファイルのダウンロードはこちらです。(delay.c)
delay.hファイルのダウンロードはこちらです。(delay.h)


PIC16F84マイコンには、次のC言語プログラムが書き込まれていますので、そのままコピーして利用することが出来ますが、マイコンへ書き込む機材によって、コンフィグの書き方が違うので、そのままソースをコピーして書き込んでも、上手く動作しないかもしれません。
その際は、HEXファイルをダウンロード(右クリックして、対象をファイルに保存)して、書き込んでみて下さい。

HEXファイルのダウンロードはこちらです。(LCD03.hex)


C言語ソースは、この下からコピーしてご利用下さい。

#include <pic.h>
#include "delay.h"

__CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT);

#define RS RA1
#define E RA0
#define DB4 RB4
#define DB5 RB5
#define DB6 RB6
#define DB7 RB7

void main(void){

PORTA = 0; /* ポートAは全てロー */
TRISA = 0b00000000; /* 0は出力 1は入力 */
PORTB = 0; /* ポートBは全てロー */
TRISB = 0b00000000; /* 0は出力 1は入力 */

/* 15ms以上待つ */
DelayMs(100);

/* ファンクションセット */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 1 ;
E = 1;
DelayMs(1);
E = 0;

/* 4.1ms以上待つ */
DelayMs(10);

/* ファンクションセット */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;

/* 100μs以上待つ */
DelayMs(1);

/* インターフェースデータ長8ビット */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* インターフェースデータ長4ビット */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* インターフェースデータ長4ビット、2行、文字形式を5×7ドットマトリクスに設定。ここから4ビット動作。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 1 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* 表示オフ */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 1 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* 表示オン */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* エントリーモード カーソル右に移動。表示全体はシフトしない。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* 初期設定後 */

/* 表示をONし、カーソルをOFFさせます。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 1 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* -------------------------------------------------------------- */

while(1){

int a;

for(a=0;a<16;a++){

/* DDRAM書き込み文字例「A」を書き込みます。 */
RS = 1 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(30);

/* カーソルを左(「A」の文字があった場所)へもどす。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* DDRAM書き込み 「A」の文字列があった場所に、文字例「空白」を書き込みます。 */
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* 音を出す。 */
RB3 = 1;
DelayMs(1);
RB3 = 0;

}

/* CGRAN(1)を利用する。---------------------------------------------- */

/* CGRAN(1)のアドレスの1行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が1行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの1行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの2行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が2行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの2行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの3行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が3行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの3行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの4行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が4行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの4行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの5行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が5行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの5行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの6行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が6行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの6行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 1 , DB6 = 1 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの7行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が7行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの7行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 1 , DB6 = 0 , DB5 = 1 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* CGRAN(1)のアドレスの8行目をセットする。------------ */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7がCGRAN(1)を意味し、DB6とDB5とDB4が8行目を表す。 */
RS = 0 , DB7 = 0 , DB6 = 1 , DB5 = 1 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* CGRAN(1)のアドレスの8行目に、絵を描く。 */
/* 下のDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
/* 下のDB7とDB6とDB5とDB4が0だと空白、1だとドットが描ける。 */
RS = 1 , DB7 = 0 , DB6 = 1 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

/* 書き込んだCGRAN(1)を呼び出す前に、DDRMのアドレスを、CGRAMを触ったので、2行目の先頭にカーソルをセットしなおす。 */

/* 2行目の先頭(DDRAMのアドレスは16進法で40,2進法で1000000)にアドレスを設定。 */
RS = 0 , DB7 = 1 , DB6 = 1 , DB5 = 0 , DB4 = 0;
E = 1;
DelayUs(255);
E = 0;
DelayUs(255);
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayUs(255);
E = 0;
DelayUs(255);

/* CGRAN(1)を呼び出す。 */
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 1 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(65);

/* 音を出す。 */
RB3 = 1;
DelayMs(30);
RB3 = 0;
DelayMs(30);
RB3 = 1;
DelayMs(30);
RB3 = 0;
DelayMs(30);
RB3 = 1;
DelayMs(30);
RB3 = 0;

/* 表示クリア。 */
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 1;
E = 1;
DelayMs(1);
E = 0;
DelayMs(1);

 

/* 1行目の先頭(DDRAMのアドレスは0)にアドレスを設定。 */
RS = 0 , DB7 = 1 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayUs(255);
E = 0;
DelayUs(255);
RS = 0 , DB7 = 0 , DB6 = 0 , DB5 = 0 , DB4 = 0;
E = 1;
DelayUs(255);
E = 0;
DelayUs(255);


}

}

 
 

 
 

 
Contents are copyright (c) 2009 MASAKATSU BABA All rights reserved.
This site is best viewed with Internet Exploerer 4.0, Netscape Navigator 4.0 or later
ホームページに関するご意見・ご要望はこちらまで .
 





  1. 無料アクセス解析