nobchaの電子回路日記ブログまとめ

戻る  PIC16F88で作った簡易カウンタの実験

2010.09.28

 

 はじめに 

 LCメータを作りたいのですが、まずはPIC16F88で基本機能として必要なカウンタを作ります。今回はデバッグのためにMPLAB+PICKIT2+HiTECH C環境でPIC16F88にします。カウンタの表示はPIC12F629でも採用したTC4040Bカウンタリ経由シリアル接続するLCDです。

 簡易カウンタでありクロックは内部4MHz発振を使います。

 

 試作機の仕様は 

 簡易カウンタの仕様は次になります。
項番 項目 詳細説明
 1 クロックは内部発振4MHzです 簡易カウンタでもあり、LCメータ用には精度必要としないので、内部発振で行きます。
 2 16ビットカウンタからなるタイマー1(TMR1)を使用してゲートタイムを作る LCメータでは大体10kHzから3MHzぐらい計れれば良いので10m秒をゲート時間にします。(1μS*10000カウント)
 3 8ビットカウンタのタイマー0で入力周波数をカウントして256カウントでオーバーフローしたら変数をソフトで加算していく TMR0の入力の周波数応答の関係でTMR0のプリスケーラを1:2に設定して使います。早い周波数だと割込み処理時間が次のカウントアップに影響を与えるのでオーバーフロー監視する
 4 処理は割り込みで行います TMR0,TMR1の割り込みを監視してTMR0のときは変数のカウントアップ、TMR1の時はゲート時間終了でカウント値計算表示を行う
 5 MAPLAB+PICKIT2+HiTEC C MPLABV8.46 HiTECH C V9.71a
 6 表示は1602コンパチLCD(16文字2行) SL1602BSL8、500円@秋月
 7 LCDインタフェイスはTC4040B経由 TC4040Bバイナリーカウンタにパルスを送り込みRS,4ビット信号をラッチ。PICのポートからはEN信号を出す

 

 回路図 

 実験回路では、CPU+ICSPコネクタ部はデバッグ用に作ったユニバーサル基板、またTC4040B+1602インターフェイス用フラットケーブルコネクタもユニバーサル基板にハンダ付けしたものを使います。この2枚の基板にブレッドボード用の足を漬けて2SK439のプリアンプなどと一緒にブレッドボードへと差し込み実験をします。

1. 入力インピーダンスの高いFET(2SK439)でプリアンプを付ける。アンプ出力をTMR0の入力であるGPIO2につなぐ。

2. PORTBはデジタル設定でRB0がTC4040Bへのクロック出力。RB1はEN駆動信号。RB0からTC4040Bのクロックと積分回路経由でリセット端子につなぐ。与えた16進のLCD4ビット出力信号を出力する。

3. 100μS以上クロックをHにすると積分回路がHになってカウンタがリセットする。クロックのH→Lでカウンタは数える。LCDのDB出力する数値をTC4040Bに与えようにパルス出力。終わったら、EN駆動のRB1をLにしてLCDに送り出す。

6. クロックは内部4MHzとする。

              回路図中SC1602のピン番に誤りがあります。#7〜#10を#11〜#14へずらし読み替え配線願います。

 回路図は水魚堂さんのBSchを使いました。また関連記号類も利用させていただきます。公開された作者さん達のご努力に感謝いたします。http://www.suigyodo.com/online/schsoft.htm
   

 

 実験 

 周波数源は先日実験をしたフランクリン発振回路を再度使います。1mHのコイルと1000pFで大体この程度52kHzです。

     

 

 

 プログラム 

 プログラムはMAIN部LCD表示部に分けて書いております。delay_lcd_.hを引きこみ必要です。

 MAINはPIC16F628Aプログラムからの流用ですが、タイマーの名称変更、IOポートの名称と割付変更、レジスタ変更などありました。PIC16F88とPIC16F628A比較表を作り、大体が似ていると思ったのですが、意外と色々なところでトラブリました。

 LCD表示プログラムの方はポート名称変更程度でした。ただDELAY関数の効きが今ひとつで、結局は_delay(x)関数に切り替えてしまいました。クロックがINTの4MHzではずっとうまく行っていたのですが、今回始めて使うECの12.8MHzではタイミングがおかしいのかなと邪推しますが、とりあえずトライアンドエラーにより_delay(x)で解決。

 コンフィグ設定はBORDIS & UNPROTECT & PWRTEN & WDTDIS  & MCLREN & INTIOです。ブラウンアウト無し、プログラム内容プロテクトせず、パワーオン時タイマー待ちスタート、クリア有、内部発振、ということにします。

 

 

 次はどうなる 

  これによりカウンタの基本的な実験が終わりました。次はいよいよLCメータの制御と計算プログラムです。

 

 

 

「ご注意」 このWEBに掲載された内容(文面・回路・写真・プログラムなど)には著作権があります。無断転載やコピーは法律に抵触する場合があります。何か疑義ある場合はお問い合わせください。また本WEBに掲載された実験や試作はnobcha個人の趣味で行っております。ここに示す結果の再現性や正確性は保証するものではありません。あくまでも個人の趣味の範囲で参考にしてください。
PIC16FのTOPへ戻る       WEB目次へ 戻る アイコンは「牛飼いとアイコンの部屋」から借用しました  http://www.ushikai.com/
inserted by FC2 system