78F9222のコーナー(1)

更新日:2006年1月22日


9分タイマーを作ろう

初めてのマイコンで何を作ろうかと真剣に考えました。久しぶりに減算タイマーを作りましょう。今回は3桁の7セグメントLEDを使って9分がカウント出来るものにします。何に使うかは皆さんで考えて下さい。
この78F9222のコーナーのコンセプトはマイコンの大きさに合わせて「コンパクト」にしました。結構小さく作ります。電源は電子遊戯にもあります「USB電源シリーズ」としました。ケースに組み込むのにかなり苦労しましたが、楽しい製作になりました。
9分タイマーを作ろうの回路図
回路図を見て下さい。今回使用する78F9222はSSOPサイズですが、DIP変換基板に載っていますので配線は簡単です。
(9分タイマーの回路図)
たまたま手持ちにカソードコモンの7セグメントしかありませんでしたので、上記のように配線しました。アノードコモンしかない方は配線を変更して下さいね。
9分タイマーを作ろうの基本仕様
1)1分から9分までの設定が出来ます。
2)7セグメントLED3桁表示で、1秒ごとに減算します。
3)0分00秒になるとタイムアップLEDが点灯します。
4)SW1を押すとタイマーがスタートまたはストップします。
5)SW2を押すと1分ごとに設定値がアップします。9分の次は0分から繰り返します。
6)SW2で設定時間を変更するとタイムアップLEDは消灯します。
7)内蔵クロックを使用しますので時間精度はそれなりです。
9分タイマーを作ろうのポート割付
(ポート割付)
9分タイマーを作ろうのソースファイル作成
このマイコンの開発ツールでは「Applilet」というソフトでベースになるソースファイルを生成します。特にポートやタイマーの初期設定が画面との対話で完成してしまうので、大変簡単にソースファイルが出来ます。アセンブラで成長したきた私にとっては中身が見えにくいという気がしますが、それほどハードの制御を知らなくてもソフトが完成すうということは初心者の方にとっては取り組み易いと思います。
Appliletを起動してメニューの「オプション>MCU読み込み」で「NEC78K0SKX1H.mcu」を選択して読み込みます。「インポートが完了しました」と表示が出ます。「ファイル>新規作成」を選択してプロジェクト名を入力します。チップシリーズのところはすでに設定されていますのでそのままで「OK」を押します。
各種設定のアイコンが表示されます。最初に「システム」の設定を行います。
高速Ring-OSC発振、ソフトウェアにより停止可能、P34/RESETをRESET端子として使用するを設定します。
続いて「ポート」の設定を行います。自分で設計した内容に従って設定します。
続いて「タイマ」の設定を行います。タイマ00をインターバル・タイマに設定します。
詳細をクリックして、カウントクロックを自動、インターバル時間を1000msec(1秒)、設定した周期毎に通知するを設定します。
続いて「ウォッチドッグタイマ」を使用しないに設定して今回のソフトの設定は終了です。
アイコンの「GO」ボタンをクリックしてコード生成を行います。保存先のフォルダを決めてコード生成をクリックします。この時の保存先のフォルダ名には空白と日本語は使えません。特にProgram Filesの下に生成すると意味不明のエラーに悩まされます。その原因はフォルダ名に空白が含まれているからです。Cドライブの上のほうに新しいフォルダを作ったほうが無難です。最後にプロジェクトファイルを保存して終了します。このプロジェクトファイルはコード生成を行ったフォルダに入れるほうが良いと思います。
これだけの作業で基本のソースファイルが生成されています。
続いて「PM plus」を起動します。「ファイル>ワークスペースを開く」で先ほど生成したプロジェクトファイルを読み込みます。ソースファイルとして5つのファイルが出来ています。その他にも沢山のファイルが関連していますが、その詳細まで知らなくてもソフトは作製できます。製作にあった内容にするためにソースファイルにプログラムを追加していく作業が必要になります。今回の製作でソースファイルをいじるのは「main.c」と「TIMER_use.c」のみです。その詳細はソースファイル一式をダウンロードして皆さんで見て下さい。それほど難しいソフトではありませんのであえてここでは説明いたしません。ご了解よろしくお願いいたします。
久しぶりに「C言語」をいじりましたが昔の勘を戻すのに結構苦労しました。最近は調べたいことがあれば何でもWEBで調べられるので分からないときは各自で勉強して下さい。
「main.c」の流れとしては・初期設定・タイマースタート・キースキャン・LED表示・キー決定処理⇒キースキャンへ、この繰り返しを行っているだけです。それらの処理に伴って各種処理ルーチンがあります。
「TIMER_use.c」の流れとしては1秒ごとの割り込みにする処理を記述します。1秒の減算とタイムアップの判定を行っています。
ソースファイルが完成すれば「ビルド>ビルド」でコンパイルを行い、正しく終了すれば実行ファイルが生成されます。
9分タイマーを作ろうのハード製作
今回の製作はコンパクトにこだわってみました。出来るだけ小さいケースに入れ込むことを考えました。マイコンが小さいので結構小さくすることが可能です。特にプログラム端子が付いてこれだけコンパクトにできれば私としても満足です。
(コンパクトに出来た完成基板)
LED表示の一番左の桁は今回使用しておりませんのであしからず。
(完成状態)
こんな感じで仕上がりました。ケースに入れた後もソフトの書き換えが出来るよう書き込み端子をケースの外側まで出しています。
9分タイマーを作ろうのソフトの書き込み
ソフトの書き込みは「PG-FPL2」で行います。USB接続ですので、手順書に従って接続設定を行っておいて下さい。
「Device > Set Up」でデバイスを設定します。「PRM File Read」で「78F9222.prm」を選択します。
(書き込みプログラマPG-FPL2)
書き込みポートと接続する端子はばらばらになっていますので、上記のようにセロテープで束ねておくと大変便利です。書き込みのターゲットを接続します。「File > Load」でHEXファイルを設定します。「Device > EPV」書き込みを行います。
9分タイマーを作ろうの大完成
では大完成した姿を見て下さい。
(時間設定してます)
(時間減算中)
(タイムアップのLED点灯)
大変良く出来ましたね。やっぱり「C言語」やりやすかったです。
9分タイマーを作ろうのソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
皆さんいかがでしたか。今日から始まりましたマイコン開発室は手軽に出来る製作をどんどん進めて行きます。ネタが尽きるまでいろんな製作をしてこの世界を広げていきたいと考えています。すでに次の製作も順調に進んでいます。ご期待下さい。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る