2015/02/28

16F84A XC8開発例 - 低消費電力水晶発振子を使用する(LP Mode)

概要

PIC16F84AとMPLAB XC8 C Compilerを使用した開発例として,32.768kHzの水晶発振子を使用する際のプログラム例を紹介します. 開発環境は下記のとおりです.

PIC PIC16F84A
MPLAB X IDE MPLAB X IDE v2.26
MPLAB XC8 MPLAB XC8 C Compiler v1.32
PICkit 2 Application Version 2.61.00 / Device File Version 1.61.00
回路
回路図

電源はPICkit 2から5.0Vを供給し,32.768kHzの水晶発振子でPIC16F84Aを動作させています. 7セグメントLEDの電流制限抵抗には200Ωを使用していますが,330~1kΩ程度の方が良いかもしれません.


回路図
回路部品

下表は使用部品表です. 参考単価をクリックすると,秋月電子通商のページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

使用部品表
番号 部品名 型番 数量 参考単価
U1 PICマイコン Microchip PIC16F84A 1
X1 水晶発振子 32.768kHz 1
C1, C2 セラミック
コンデンサ
22pF 2
LED1 7セグメントLED PARA LIGHT C-421E
(カソードコモン)
1
R1 炭素皮膜抵抗 各社 1/4W 10kΩ 1 1円
(互換品)
R2 - R8 炭素皮膜抵抗 各社 1/4W 200Ω 7 1円
(互換品)
その他 リード線など 適量
プログラム
main.c

下記はソースファイル「main.c」です.参考になれば幸いです.

7 件のコメント:

  1. おはようございます。dihard_neverです。
    PIC16F84Aの15(CLKPUT)・16番端子(CLKIN)を水晶発振子をつけて、その後にセラミックコンデンサを直列につないでGNDに落としてますが、この意味がわからないのです。教えていただけないでしょうか。水晶発振子の前にセラミックコンデンサをつけるのなら、水晶発振子を保護してるとか僕はかんがえるのですが・・・。まだ初心者ですみません。

    返信削除
    返信
    1. dihard_neverさん,コメントありがとうございます.
      > この意味がわからないのです。教えていただけないでしょうか。
      基本知識は,コメントのやりとりで学ぶよりも,ご自身で検索したり本を読んだりして学ぶことをおすすめします.「水晶発振子 コンデンサ」などでの検索を試されましたか?コメントのような文字情報だけでなく,図やグラフを見て理解できると思います.頑張ってください.

      基本知識を学ぶ前に,とりあえず動くものを作ってみるというのも重要です.この際は,最低限,使用した電子部品のデータシートを「読む」まではせずとも「目を通す」ところまではやってみましょう.後々,問題の自己解決や学んだ基礎知識との紐付けに役立ちます.
      PIC16F88のデータシートには目を通しましたか?質問に対する答えのヒントは,「4.0 OSCILLATOR CONFIGURATIONS」(35ページ)付近に載っています.
      http://ww1.microchip.com/downloads/jp/DeviceDoc/30487c.pdf

      削除
    2. ありがとうございます。
      部品が届きましたので、早速動かしてみます。
      また、検索してみます。
      PIC16F88についてもよく調べます。
      追ってご報告いたしますので、宜しくお願いいたします。

      削除
    3. ごめんなさい.お気づきかもしれませんが,データシートのリンクがPIC16F88になっていました.
      PIC16F84Aのデータシートは下記リンクです.22ページ付近をご覧ください.
      私の場合,コンデンサは手元にあったもので組んでいます.静電容量は,データシートを基に選定することをおすすめします.
      http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf

      頑張ってください.

      削除
  2. dihard_neverです。
    渓鉄さん、わざわざ有難うございます。
    PIC16F84Aと7セグメント(カソードコモン)を使った回路で7セグメントの表示出来ました!
    とりあえず、ご報告まで。
    今後もよろしくお願い致します!!

    返信削除
  3. dihard_neverです。
    PICで7セグメント制御する回路出来ました。
    資料をまとめましたので、下のリンクからダウンロードできるようにしました。
    https://drive.google.com/file/d/0B4non1CGxx5dOEJTV3V3Uk84S2c/view?usp=sharing
    ぜひ、ご閲覧下さい!
    この度は有難うございました。

    返信削除
    返信
    1. dihard_neverさん,コメントありがとうございます.
      回路の完成,おめでとうございます!
      本記事が参考になったようで幸いです.

      今後ともよろしくお願いいたします.

      削除