PIC16F84電子遊戯(106)
最終更新日:2003年12月27日

ミニタイマーを作ろう
USB電源シリーズの第2弾の登場です。今回は9分タイマーを作ります。
以前に作った99分タイマーをひと桁にしたものです。
デスクトップのサイドにおいてかわいがって下さい。カップヌードルの仕上がり時間の計測には最適ではないでしょうか。
ミニタイマーを作ろうの回路図
いきなりの回路図です。難しいことはありません。前回と同様に出来るだけ小さいケースに入れることを心がけましょう。回路は極めてシンプルです。
(ミニタイマーの回路図)
今回のポイントをひとつ説明しておきます。
回路はUSBからの電源を使用するので当然5V仕様ですが、タイマーアップを知らせる3端子オルゴールICが3V仕様ですのでここに工夫が必要になります。
タイマーアップしたらLEDを点灯するようにしてそのLEDのVfを利用してオルゴールICを駆動しています。LEDが点灯すると約2Vの電圧が発生するのでそれを使用します。
ちなみに今回の回路は音が大変小さかったです。皆さんで工夫されることを期待します。
まあディスクトップサイドで聞く分には充分かとは思いますが・・・・

(3端子オルゴールICは手持ち品を使用しています。現在入手可能かは不明です。)
ミニタイマーを作ろうの基本仕様
基本仕様を示します。簡単な内容にとどめています。
1)9分のタイマーです。
2)1分ごとに時間を設定出来ます。設定はアップのみです。
3)タイマー動作中は2秒おきにドットが点滅します。動作は一時停止も可能です。

4)タイマーアップ時にはLEDが点灯しミュージックが流れます。
ミニタイマーを作ろうのポート割付
ポート名 入出力 機能
RA0 OUT タイマーアップ
RA1 OUT NC
RA2 IN SW1(スタート・ストップ)
RA3 IN SW2(分設定)
RA4 OUT NC
RB0 OUT 7セグメント(a)
RB1 OUT 7セグメント(b)
RB2 OUT 7セグメント(c)
RB3 OUT 7セグメント(d)
RB4 OUT 7セグメント(e)
RB5 OUT 7セグメント(f)
RB6 OUT 7セグメント(g)
RB7 OUT 7セグメント(p)
ミニタイマーを作ろうの7セグメントの割付
今回はPICから直接7セグメントLEDを駆動していますのでLEDとの接続は自由度があります。表示用データのみを変えれば簡単です。今回の表示用データを示しておきます。
ドットについてはB7のビット操作にて点滅をしています。
ミニタイマーを作ろうのタイマーカウント
基本的には99分タイマーのページ(timer1.htm)を参照して下さい。但しタイマーカウントに相違点がありますのでそこを簡単に説明しておきます。
99分タイマーには秒表示があったので分表示が「0」になってもまだ時間が残っていることがわかりました。今回は分だけの表示なので「0分**秒」となっていても「0」としか表示しませんのでどれほどの時間が残っているのかよくわかりません。
今回は分表示が「0」になった時点をタイムアップしたと考えてこのときにタイマーアップ出力をしたほうが自然です。
そのまま99分タイマーのソフトを使うとまだ「59秒」残っているのにタイマーアップしたように見えてしまいます。そこで「0」になったときにタイマーアップとするためにタイマー設定したときは常に秒を59秒ぶん進ませています。タイマーアップも「00秒」で判断するのではなく「59秒」で判断するようにしました。
たとえば「1」と設定すると内部は「1分59秒」と設定されて「0分59秒」でタイマーアップとなります。これできちんと「1分」がカウント出来ました。
ミニタイマーを作ろうの大完成
それでは大完成した姿を見て下さい。
(かなりコンパクトになりました)
(カウント中の表示です。ピンボケですいません)
ミニタイマーを作ろうの全ソースと全HEXコード
毎度おなじみのソースリストとHEXコードです。
一緒に圧縮してありますのでダウンロードしてからじっくり眺めて下さい。
ソースリストとHEXコードはこちらです。
皆さんいかがでしたでしょうか。USB電源シリーズはこんな簡単な製作を続けて行きたいと考えております。
これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。

不明点などあればメールお願いいたします。nonchansoft@nifty.com