PIC16F84電子遊戯(97)
最終更新日:2003年3月8日
2CH ON・OFF装置を作ろう (1ページ)へ (2ページ) (3ページ)へ

2CH ON・OFF装置のポート割付
ポート名 入出力 機能
RA0 OUT LCDモジュール(E)
RA1 OUT LCDモジュール(RS)
RA2 IN SW(ON/OFF)
RA3 IN SW(CH1/CH2)
RA4 IN SW(START/STOP)
RB0 OUT CH1リレー駆動
RB1 OUT CH2リレー駆動
RB2 IN SW(UP)
RB3 IN SW(DOWN)
RB4 OUT LCDモジュール(DB4)
RB5 OUT LCDモジュール(DB5)
RB5 OUT LCDモジュール(DB6)
RB7 OUT LCDモジュール(DB7)
LCDモジュールはPICの製作記事によくあるのと同じ4bitデータモードで駆動します。
手続きは少し複雑ですが、ポート数が少なくで大変便利です。
2CH ON・OFF装置の時間精度
かなり突貫で作ったソフトのため、基準となる1秒タイマーが正確ではありません。
私の製作記事「99分タイマーを作ろう」にも記載しておりますが、1秒と考えている時間は正確には0.9984secとなります。
1秒間隔でON/OFFを繰り返したとして、1万回(2万秒)行うと正確な1秒のときより約32秒早く終わります。
この装置の用途から考えてこれくらいの誤差は良しとしておきましょう。
タイマー割り込みの詳細については後ページで公開するソースリストと「99分タイマーを作ろう」の記事を参照して下さい。
2CH ON・OFF装置のスイッチ操作
ポート数が限られているので、スイッチ操作には工夫(?)を凝らしています。
設定する時間は4ヶ所が可能です。次のようにスイッチを設定してUP/DOWNキーを押すことで時間を設定します。
ON/OFF CH1/CH2 設定
OFF OFF CH1,ON時間設定
ON OFF CH1,OFF時間設定
OFF ON CH2,ON時間設定
ON ON CH2,OFF時間設定
2CH ON・OFF装置のLCDモジュール駆動
今回のソフトはほとんどがキー操作の処理で難しいことはありませんが新しいことをしている部分のみ説明します。まずはLCDモジュールの駆動について簡単に説明します。
LCDモジュールの初期化
時間待ち
DB4-DB7に3を設定
RSをLにする
EをHにする
EをLにする
時間待ち
DB4-DB7に3を設定
RSをLにする
EをHにする
EをLにする
時間待ち
DB4-DB7に3を設定
RSをLにする
EをHにする
EをLにする
時間待ち
DB4-DB7に2を設定
RSをLにする
EをHにする
EをLにする
時間待ち
コマンド(28h)出力:4bitモード、2行表示
コマンド(08h)出力:表示OFF
コマンド(0ch)出力:表示ON
コマンド(06h)出力:メモリ書き込みインクリメント
LCDモジュールに対する初期化をきちんと行っておけばあとは指定のアドレスにキャラクタを書き込めばOKです。初期化のうち青色で示した部分はLCDモジュール内部を初期設定するものでLCDモジュールの仕様書の記載に従っています。
表示の基本手順は次の通りです。
表示の基本手順例
コマンド(01h)出力:表示全消去
コマンド(80h)出力:アドレス00を指定
データ(43h)出力:「C」を表示
以降表示データの出力を繰り返す
表示データを書き込んだ後、アドレスは自動にインクリメントするように指定しているので、表示位置を飛ばさない限り、順に表示データ出力を繰り返せば表示が行われます。
LCDモジュールを駆動するにはコマンド出力とデータ出力で行います。
コマンド出力については上記の内容をおさえておけばOKです。
アドレスを指定するコマンドについては1行目が80h-8Fh、2行目がC0h-CFhです。
先頭アドレスを指定してデータを順に出力します。
データについてはアスキーコードで指定すればOKです。
(後ページで公開するソースを眺めて下さいね。)
コマンド、データとも8bitデータですが、4bitで駆動していますので、データを2回に分けて出力する必要があります。簡単に手順を示します。
コマンドの制御 データの制御
上位4bitをDB4-DB7に出力 上位4bitをDB4-DB7に出力
RSをLにする RSをHにする
EをHにする EをHにする
EをLにする EをLにする
下位4bitをDB4-DB7に出力 下位4bitをDB4-DB7に出力
RSをLにする RSをHにする
EをHにする EをHにする
EをLにする EをLにする
時間待ち 時間待ち
コマンド制御とデータ制御の違いはRS端子のレベルだけです。その他は全く同じです。
LCDモジュールの駆動は一度理解してしまえば全く簡単です。
私も理解しましたので今後の製作にモジュール使う回数が増えるかもしれません。
ということで、今回はここまでとしましょう。
LCDモジュール表示の解説についてはこのHPのバイブルであります「電子工作のためのPIC活用ガイドブック:後閑哲也著」に詳しく説明されています。
私も参考にさせて頂いております。ありがとうございます。
これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。

不明点などあればメールお願いいたします。nonchansoft@nifty.com