先駆者のコメントいただき、進行中です。
早速回路図と思って書き始めたが、先日作ったPIC16F1827
基板を流用したいという邪心が芽生えた。でどうなのかと
いうと、LCD接続をそのままにして、キーパッドを追加し
ようというのである。
Wオンリーの現行LCDのスレーブにRはキー入力にしてしまお
うと言う計画です。(LCDのフル機能だとLCDからの読み出し
も必要だが、ここは割り切って)
アイデアはこうです。D-G列はLCDのDB4-7につなぐ。A-Cはタ
クトスイッチのポートにつなぐという具合なんですが、うま
くいくのでしょうか。
D-Gを1ビットづつ下げて(0にして)、A-Cに0が現れるかを
センスする。
0がでないとキー入力は無し。
あったら、D-GとA-Cからキーコードを算出。
LCDへ制御信号を出しているときにキー押されるとどうするか。
D-Gを0にしたとき、A-Cのいずかが0ならば、押されている
からLCD制御が乱れちゃうため、EN出しやめ。
i2cのMSSP割り込みをどうハンドリングするか。LCD表示の
コマンドは2バイトペアでやってくる。キーポーリングはR
があったら、返すことにする。コードは0x30-0x39,0x2A
(米印はアスタリスクにする)、0x23として、長押しはビッ
ト7を立てる。上位でキーコードの変化無しを見ていても
良いのかもしれないが。
レジスタ指定の/Wがあった後、該当レジスタ内容を読み出
すためのリオープンでRになることを心配したが、そうい
うシーケンスはやめ、Wでレジスタ選択はやめて、Rであれ
ば無条件にキー状態返すという事にしたい。
この項続く(はず)