16×2キャラクタLCDモジュールを使ってみよう
意外に時間のかかるhello, worldへの道


はじめに

マイコン工作をしていくと、状態やデータの確認に何かと表示機がほしくなります。単純なものならLEDで何とかなるのですが、文字や数値表示ができるものがあれば見栄えがいいし、デバッグに使うときも手段が広がります。

今回はPICマイコンの実験として、秋月電子通商のAKI-PIC18キャリーボードキットを使って付属の16×2キャラクタ液晶 SC1602BS*Bに何か表示させてみようと思います。


AKI-PIC18キャリーボードキット

キャリーボード

↓AKI-PIC18キャリーボードキット

AKI-PIC18キャリーボードキットはPIC16F84Aマイコンモジュールにマザーボードを追加したものです。マザーボードにはキャラクタLCD等の周辺回路が搭載されています。このキットはLCDモジュールにキャラクタを表示したり、D-Sub9ピンコネクタからシリアル通信ができます。PICを使った簡単な学習実験ならコレで十分でしょう。

AKI-PIC18キャリーボードキットの内容物:
マザーボード
PIC16F84Aマイコンモジュール
シリアル通信用D-Sub9ピンコネクタ(メス)
16×2キャラクタLCDモジュール SC1602BS*B
LED3色
タクトスイッチ×3

PIC16F84Aマイコンモジュール

PIC16F84Aマイコンモジュールは、マザーボードといくつかの部品を追加したセットです。

↓PIC16F84Aマイコンモジュール

PIC16F84Aマイコンモジュールキットの内容物:
PIC16F84
10MHzのセラロック
5Vの3レギュレータ
RS232C用ドライバIC

写真ではPICを直接半田付けしていますが、2000円以下から始められるPIC入門のライタを使うならICソケットを使う必要があります。


キャラクタ液晶SC1602BS*B

SC1602BS*BはSUNLIKE社の16×2キャラクタのLCDモジュールです。これには日立のHD44780互換のインターフェースICが使われています。web上で公開されている電子工作の記事でキャラクタ液晶といえばHD44780互換のものが定番です。HD44780についてはこのサイトが参考になります。

HD44780にはキャラクタフォントが内蔵されているので、カーソル移動のコマンドとキャラクタコードを送信すれば文字が表示されます。

↓SC1602BS*B

写真は下は最初に買った古いの。上は予備に買った比較的新しいものです。


キャラクタLCDSC1602BS*Bをつかってみよう

今回使う回路

AKI-PIC18キャリーボードキットが見かけなくなってきたので、今回の実験で必要な部分について回路図を描いてみました。

↓回路図 PDF版はこちら

2930L05は5Vの低ドロップレギュレータです。まぁ9Vも突っ込んでいるので、低ドロップの必要はありませんけど。


hello, world

C言語の聖典「K&R」以来のお約束としてhello, worldを表示してみます。PCのコンソールに出力するだけなら僅か数行のhello, worldも、マイコンでイチから作るとなるとイロイロ考える必要があります。

SC1602BS*Bはキャラクタフォント内臓のLCDモジュールです。キャラクタはほぼJISコード(ASCIIコードにカナを追加したもの)に準じています。まず、LCDモジュールの初期化し、カーソルを移動して、表示するキャラクタコードを送信します。

SC1602BS*Bには、送信に8ビットモードと4ビットモードがありますが、できるだけPIC16F84のピンを使わないようにしたいので、4ビットモードを使います。データシート通りに初期化しデータを送信します。データシートは舐めるように読みましょう。

↓動作風景

hello,worldのサンプル
アセンブラソース:
lcdtest.asm
アセンブラソースをアセンブルしたhexファイル:
lcdtest.hex

LCDモジュールとPICはキャリーボード上で結線されています。PICにプログラムを書き込んで電源を入れるだけで動作します。

HもWも小文字だろ…という突っ込みは無しです。

・・・。
・・・・・・。
・・・・・・・・・これだけ。
液晶モジュールが高機能なおかげで、結構簡単に表示できました。プログラムはアセンブラなので、長々としていますが。
何はともあれ、電子工作の世界でテキスト出力ができました。
これでパラメータやコンソールの表示などができます。


今回学んだこと。

半田ごてで手に焼きを入れるべからず。
これも男の勲章よ・・・とやせ我慢しておきます。
データシートは舐めるように読むべし、読むべし。
舐めることが特に重要。