kuroの覚え書き

96の個人的覚え書き

PIC16F648Aを使ってみる



先日から調べ物をしていた通り、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

表示が変動したので、多分タコメータとして機能していると思われる。

f:id:k-kuro:20051023011427j:image