TOP > MPLAB C18編(PIC18F2320) > 液晶ディスプレイ(LCD)を使う(C18)
液晶ディスプレイ(LCD)を使う
(PIC18F2320)
更新日2009.7.12
ここでは、C言語(C18コンパイラ)を使って液晶ディスプレイ(LCD)を操作して見ます。
使う機種は、28ピンのPIC18F2320です。
実験回路
|
・ |
|
|
今回の実験回路はLCDだけを使ったシンプルなものです。
クロックは内部クロックを使いますのでレゾネータもありません。
-
-
| | LCDは、SD1602を使いましたが、SC1602でも互換があります。
|
- ブレッドボードに組んだ状態
-
| | 左上のピンヘッダ周りは、回路図には有りませんがICSP(In-Circuit Serial Programming)用です。秋月のPICライタなどを使う場合は不要です。
また、回路図の可変抵抗は、5.1KΩの固定抵抗にしています。コントラスト調整が必要であれば回路図通りにして下さい。
|
|
仕様
|
|
LCDの1行目と2行目に以下のような固定文字列を表示します。
-
クロックは、内部8MHzを使います。
|
プログラム
|
|
-
LCDの使い方については、液晶ディスプレイを使う(PIC16F84A)を参考にして下さい。
4ビットモード動作とし、LCDの動作完了はビジーフラグは使わずに時間待ちとしました。
プログラムの概要を以下に記載します。
- config
-
#pragma config OSC = INTIO2
この設定により内部クロック動作とし、ピン9,10はOSCでは無く入出力ピン(RA6,7)として使用できます。
- OSCCON
-
OSCCON = 0x72;
この設定で、内部クロック(8MHz)動作になります。
- 内部クロック動作時の周波数は、OSCCONのビット6〜4(IRCF2-0)で以下のように設定します。
-
IRCF2-0 | 周波数
| 111 | 8MHz
| 110 | 4MHz
| 101 | 2MHz
| 100 | 1MHz
| 011 | 500KHz
| 010 | 250KHz
| 001 | 125KHz
| 000 | 31KHz
|
- main
-
メインルーチンでは以下を行います。
・PICの初期化(オシレータの設定など)
・LCDの初期化(LCD_init)
・LCDに固定文字列表示(LCD_str)
- LCD用関数
-
今回は必要最低限の関数のみ作成しましたが、色々用意しておくとLCDが扱い易くなります。
必要に応じて充実させて行く方法が良いと思います。
関 数 | 概 要
| static void LCD_str(char *); | パラメータで指定した文字列をLCDの現在位置から出力する(文字列の最後はNull)
| static void LCD_data(unsigned char); | パラメータで指定した1バイトのデータをLCDに送信する
| static void LCD_cmd(unsigned char); | パラメータで指定した1バイトのコマンドをLCDに送信する
| static void LCD_init(void); | LCDを初期化する
| static void LCD_send4(unsigned char); | パラメータで指定した1バイトの上位4ビットのデータをLCDに送信する(LCDの初期化で使用)
|
- 動作させた状態。
-
|