趣味のブログ

アクセスカウンタ

help リーダーに追加 RSS 16F877ライブラリ、クロック計時

<<   作成日時 : 2009/01/07 22:14   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

PIC16F877を有効に使っていくためには、ソフトの工夫のみでなく、ハードウェアの機能も有効に使うことで、使いよいシステムとすることができます。今回は、外部発振器を使うことで、時計の計時に便利な1秒の割り込みを作り出すことにしました。この割り込みは、SLEEPからの復帰条件にもなっているために、CPUを停止させておいて、クロックのカウントのときだけCPUを動作させることが出来ます。このようにすると、ほとんどの時間、電力を使用しないので、低消費電力とすることができます。

画像外部発振器は、16F877では、RC0とRC1の間に、32.768kHzの水晶を取り付け、両端を33pFでGNDに落としておきます。
タイマー1(TMR1)は、クロックソースとして、外部発振器を選択することができるので、適当な間隔で割り込みを発生させることが出来ます。この割り込みは、SLEEPからの復帰条件にもなっているので、普段はSLEEP状態にしておき、割り込みの発生したときだけ処理することが出来ます。このようにすると、低消費電力で動作させることが出来ます。
32.768kHzの周波数は、16ビットカウンタであるTMR1をフリーランとすると、2秒に一回の割り込みになります。割り込みのたびに、TMR1Hに0x80を設定することで、1秒間隔にすることが可能です。
この、1秒の割り込みを使って、時:分:秒のカウンタをカウントアップするようにしました。メインプログラムでは、この時刻を読み出すことで、現在の時刻を知ることができるようになります。

サンプルプログラムでは、時刻を液晶に表示します。スイッチ(RA0に接続し、ローレベルでオンになる)を押すと、時刻をリセットします。
さらに工夫すると、電源オフにする代わりに、SLEEPとすることで、その間も、時計の計時を続けることができるようになります。そのときには、外部に接続される液晶などは、CPUでオフにしてやる必要があります。
プログラムは下記ホームページからダウンロードできます。

「趣味のホームページ」−「16F877ライブラリークロック」
http://homepage2.nifty.com/sfukuda/page050.html


電子工作のためのPIC16F活用ガイドブック
技術評論社
後閑 哲也

amazon.co.jpで買う
Amazonアソシエイト by ウェブリブログ


設定テーマ

関連テーマ 一覧

月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文