【液晶表示ライブラリ】
PIC16F87xやPIC18シリーズには内蔵された液晶表示制御機能はありません。
従って液晶表示器を接続する時には何らかの制御用のライブラリが必要になり
ます。 そこで、汎用の液晶表示ライブラリを作成しました。
これを使えば、PICROSだけでなく、単独でも液晶表示用ライブラリとして使用が
可能です。
作成はすべてCCS社のC言語で作成されています。
内蔵される関数は下記となっています。
関数名 フォーマット 機 能 概 要 備 考 lcd_init() lcd_ini() 液晶表示器の初期化を実行
最初に1回だけ実行すればよい使うポートはlcd_lib.h
の定義によるlcd_ready() busy = lcd_ready() 液晶表示器の動作中をチェックする
動作中でビジの時には8ビット目が1bit_test(lcd_ready,7)
として使用するlcd_cmd() lcd_cmd(cmd) 液晶表示器への制御コマンドの出力
cmdパラメータには下記などがある
0x01:Clear Display
0x02:Cursor at Home
0x04:Display Off 0x06:Display On
0xC0:2行目指定cmdパラメータで
表示位置を指定
する時には下記
フォーマット
1xxx xxxx xで
位置アドレスを指定lcd_data() lcd_data(chr) 1文字表示
現在位置にASCIIコードでchrを表示chrは8ビット
ASCIIコードlcd_clear() lcd_clear() lcd_cmd(1)と同じ機能で表示クリア
【ヘッダーファイルの定義方法】
液晶表示器とPICのポートの接続の仕方により制御方法が異なってきます。
それを指定するために用意したのがこのヘッダーファイルで下記のような内容
を含みます。
(1) 関数プロトタイプ
単純にCコンパイラの通常のプロトタイピングですので下記をそのまま
使います。<書式例>(2) ハードウェアの接続指定
//// prototyping of functions
void lcd_init(void);
int lcd_ready(void);
void lcd_data(int asci);
void lcd_cmd(int cmd);
void lcd_clear(void);
接続ポートとピンの指定をします。 定義が必要なものは下記
・データバスのポートの指定で下記3つの関数のxを指定します。
データバスは4ビットでポートの上位4ビットを使うものとします。
set_tris_x
input_x
output_x
・下位4ビットの入出力モードの指定
データバスに使うポートの下位4ビットの入出力モードを指定します。
他の用途に使うことを前提にしています。
mode
・制御ピンの指定
3本の制御線として使うピンを指定します。
RS、RW、STB(E) の3本です。
<記述例>ポートBをデータバスに、下位を制御ピンに使う場合です。
////// port define to port B
#define input_x INPUT_B
#define output_x OUTPUT_B
#define set_tris_x SET_TRIS_B
#define mode 0x00
#define rs PIN_B0
#define rw PIN_B1
#define stb PIN_B2
【ライブラリダウンロード】
本ライブラリはPIC16シリーズとPIC18シリーズ共用で使えます。
実際のヘッダーファイルの例も一緒です。
★液晶表示ライブラリ
★ヘッダーファイル例