先日から調べ物をしていた通り、PIC16F648AとPIC12F675を新たに購入してみたわけだが。
16F648Aは18pinで16F84Aの拡張版という感じ。12F675は8pinで16F819の弟分という感じ。
16F648AはAD変換機能はなくコンパレータが内蔵されており、USARTでシリアル通信ができる。
一方の12F675はAD変換ができるが通信機能はない。8pinなのでLCDなどは使えない。
タコメーターを16F648Aで実現し、且つLCD表示を制御する。12F675で温度計を作り、シリアル通信で
16F648Aにデータを送り、LCDに表示するとかいうのも実現できるかもしれない。
で、手始めに16F84A用に作成したタコメータープログラムを16F648Aに移植してみた。
書き込みはプログラマ2号機でやってみた。ICprogで書き込んでみようとしたところ16F648Aの項目が
見当たらない。とりあえず628の設定で書き込みをしてみたところベリファイでエラーが出た。
ジャンパーピンを付け替えてみたけどやっぱりだめ。
あらら〜と念のため読み込みを試してみると、なんかそれなりに書き込まれている事がわかった。
なのでそのままの状態で(ジャンパーなしで書き込んだ状態で)動作チェックしてみたところ
液晶にとりあえず期待した表示がなされた。
とおもったら、ループで逐一書き換えられるはずの表示が最初に書き込まれたきり、止まっている事がわかった。
というのもPICが基板から抜け落ちても液晶に表示されたままになっていたから。
やっぱりちゃんとプログラムされていないのかもしれない。
プログラマについてはもうちょっと調査が必要かもしれない。
と思って調べてみたところどうやら今まで使っていたICprogのバージョンが古かったらしい。
1.05Dバージョンにはちゃんと648Aもあった。
また書き込みがベリファイエラーになる件だがMCLRをONにしておけばJDMプログラマ(オリジナル)
でもエラーがでない事がわかった。どうやらMCLRとINTOSCを同時に設定するとエラーになるようだ。
LMC555でパルスジェネレータ回路を作っておき、2SC1815でRA4(TMR0)に入力してみたところ
それらしい動作ができた。コンデンサと抵抗をいろいろ換えてみると周波数の変化につれてLCDの
表示が変動したので、多分タコメータとして機能していると思われる。