2008年08月03日

PICで液晶 CCS-Cコンパイラの場合

pic.jpg

PICで液晶を駆動する場合、後閑さんの液晶表示器制御ライブラリ(lcd_lib.c)を
使う人が多いと思うのですが、実はCCS-Cコンパイラを使っている場合は
デフォルトで液晶駆動ライブラリがついています。

ファイル名は LCD.C で、C:\Program Files\PICC\Drivers に入ってます。
これを開くと
// Un-comment the following define to use port B
// #define use_portb_lcd TRUE
と書いてあるので、16Fシリーズを使う場合はコメントを外します。
自分は、コメントを外した上で LCD_B.C とファイル名を変えて保存しました。

以下、テストプログラムです。
(gistに貼り直しました)



今回使っている液晶はNDM1602ですが、SC1602BS-Bなんかでもいけると思います。
もちろん、16f648Aは16f628Aでも16f88でも16f84Aでもいけると思いますけど未確認です。
posted by MON at 01:23| Comment(3) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは
はしめまして kont申します。

CCSCのversin5を買いまして PICのプログラムに挑戦を始めたばかりですが CCSのLCD制御についてつまずいてしまいました、

4行表示のモジュールをつないだんですが 1行目と3行目は問題なく表示しましたが 2行目と4行目が表示しません。

2行表示のモジュールの場合、電源を入れた状態では たしか1行しか表示しない設定で レジスタの設定で2行表示に切り替えたような気がしてまして もしかして4行表示のモジュールも 4行表示にするには どこかのレジスタの設定が必要なのかな?なんて思ったのです。購入した(秋月電子)モジュールの説明書では 2行表示の場合のことしか書かれていませんでした。(SC2004CSLB-XA-GB-K) ご存じでしたらご教示いただけますでしょうか。

また lcd_gotoxy(23, 1); の 23 と 1は 何を表しているのでしょうか。

サンプルのコメントでは column 3 row 3 と書いてあり 3行目の3文字目って事なのでしょうが 23 と 1が これと どう関連しているのかわからないのです。



Posted by kon at 2019年01月06日 07:03
kont様
コメントありがとうございます。

このエントリは10年以上前の CCS-C Ver4.1 のものですので、
Ver5では変わっているかもしれません。
また、20x4の液晶は所有していないので、あくまで机上の空論、
未確認であることをご了承ください。

----

http://akizukidenshi.com/download/ds/sunlike/SC2004CSLB-XA-GB-K.pdf
のP.17(PDFでは15枚目)を見ると20*4の液晶は上から
「1行目, 2行目, 3行目, 4行目」
となるのではなく
「1行目, 2行目, 1行目の続き, 2行目の続き」
となるようです。
この表のアドレスは16進数で記載されているので
1行目の先頭は 0x00 = 0,
2行目の先頭は 0x40 = 64,
3行目の先頭は 0x14 = 20,
4行目の先頭は 0x54 = 84
となります。

lcd_gotoxy( BYTE x, BYTE y) はその名の通りカーソルを y行目のx番目に移動する
関数です。ただし、液晶が上記の仕様になっており、また、lcd_gotoxy関数内で1をデクリメントしているので
lcd_gotoxy(23, 1);は、液晶の 3行目の3番目にカーソルが移動するというものになります。
ただし、\fを付けるとカーソルが先頭に移動してしまうようなので注意が必要です。
Posted by mon at 2019年01月07日 19:16
コメント有り難う御座います。
lcd_gotoxy( BYTE x, BYTE y) について 有り難う御座います。
秋月で購入した 4行のLCDですが 初期状態で コントラストのVRをまわしてみると 1行と 3行は 黒くなり反応があるのですが 2行と4行が 全く反応がないようです。
もう少し 実験してみます。
情報を 有り難う御座いました。

    kon
Posted by kon at 2019年01月08日 19:57
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
【今是昨非】http://nomulabo.com/