時計の仕様を決めよう

啓二さんに教えてもらったレシピで、毎週土曜、日曜の夕食
を作っている哲さん。今日は、何やらノートをもってきて、
本格的に料理を習うつもりのようです。マイコンに関連する
方は、大丈夫なのでしょうか。愛犬ロボの背中には、鶏卵の
パックが入った袋が。一体何をしようというのでしょう。
哲  :こんちは、今日は、卵持参できてしまった。
啓二:何だよ、料理教室に移るのか。
哲  :瑞希に、レパートリーを増やしてこいと言われてさ。
      卵が食材として安いから、1パック買ってきたのさ。
      卵焼きや目玉焼きでない調理の方法を教えてくれよ。
啓二:しかたないなあ。じゃあ、温泉卵、煮卵、茶碗蒸しあたり
      から教えるよ。オムレツは結構むずかしいし、専用フライ
      パンを用意した方がいいから、鍋を使ってできるのでいこう。
哲  :よろしく。でも、お前、どうしてそんなに料理ができるんだ。
啓二:一人で生活しているんだ。食事は自分で作らないとならない。
      仕事をしながら、工夫しているのさ。そうそう、夜は、NHK
      教育で「きょうの料理」を見ている。夕飯を食べながら。
哲  :で、今日は何をするんだ。
啓二:時計の仕様を決めてしまおう。
哲  :そんな、製品を作んじゃないんだからさ。
      仕様書をかけっていうのか。
啓二:そんな大それたことをしないよ。でも、少なくとも、
      回路図は作成しないと作れないだろう。プログラム
      するにしても、出力するピンと入力するピンが不明
      だと、先に進めないだろうが。
哲  :それもそうだな。
啓二:まず、スイッチは、5個使う。3個タクトスイッチで、
      残りがスライドスイッチだ。
哲  :スライドスイッチは、何に使うんだ。
啓二:時刻設定、タイマー設定の切り替えだ。
      こんなような2個のスライドスイッチを利用すると
      2の2乗で4通りの指定ができる。


        OFF OFF 時計動作
        OFF ON  時刻設定  
        ON  OFF タイマー開始時刻設定
        ON  ON  タイマー終了時刻設定
哲  :スライドスイッチでモードを読み込んで、タクト
      スイッチで動作を決定するのか。うまくいくかな。
啓二:うまくいくようにプログラムを作るの。できるかなあ
      ではなくて、できるようにする。この気構えが重要だ。  
哲  :モードは、時刻設定、タイマー設定に関連する処理か。
啓二:タクトスイッチの使い方を決めよう。
      4けたの中で、けた移動のために、1個利用する。
      該当けたの数値を+1処理するために、1個利用。
      残りは、確定のために利用する。
哲  :使い勝手の問題だが、確定のタクトスイッチを押して
      しまったならば、一度モードスイッチを切り替えない
      限り、同じ処理をしないとするか。
啓二:少しわかりにくいなあ。
      確定タクトスイッチを押して、一度確定しても、モード
      スイッチを切り替えない限り、同じ処理ができるように
      しよう。
哲  :そうだな。結局、時計動作にモードを切り替えると、
      それでいいんだからなあ。
      ところで、どのけたを扱っているのかを知らせる方法
      は、どうすればいいかな。
啓二:該当するけたを、ブリンクすれば、充分だろう。
哲  :シフトレジスタを利用して、ブリンクをやるには、どう
      したらいいかな。プログラムが思い、浮かばない。
啓二:詳細は、全体を決めてから、詰めていくようにしよう。
      細かい内容に入っても、方向が確定していなければ、無駄
      になるから。
哲  :そうだな。見切り発車して、後で苦しむのは、いやだし。
啓二:で、今度は、ハードウエアの仕様だ。
      電源電圧は、12Vだな。
哲  :+5Vじゃ駄目か。
啓二:バラのLEDで、1セグメントを5個にすると、順方向
      電圧は合計10Vくらいになる。
      だから、+5Vじゃ駄目。12Vはないとねえ。
哲  :そうか、そういうときにも、計算が必要なんだな。
啓二:そう。Windowsマシンのプログラムのように、作りながら
      修正してなんてことをしていると、半田付けもやり直し、
      プログラムもやり直しで時間がどんどん過ぎていく。
      だから、最初に仕様をきっちりと決めるの。
哲  :電源が決まったなら、マイコンの方はどうするんだ。
      12Vをそのまま接続したら、吹っ飛ぶだろう。
啓二:3端子レギュレータを利用して、5Vまで落として使う。
      逆接続防止で、3端子レギュレータの入力にダイオード
      を入れる。
哲  :何だよ、それ。
啓二:簡易電源を作らせたときに、説明しただろう。
      電源を逆に接続しても、マイコンや周辺回路が壊れない
      ようにするって。
哲  :ああ、そうだったなあ。でも、そこまでしなくても大丈夫
      じゃないか。
啓二:念には念をとね。5Vは、マイコンの他にも、74HCシリーズ
      の電源になるから、逆接続防止ダイオードの容量は、1Aで充分。
哲  :電源が、正しく接続されていることを示す、表示器も必要じゃないか。
啓二:そうか。じゃ、LEDを使って電源のパイロットランプにするか。
哲  :時計が動いていることを示すような表示器もほしいなあ。
啓二:マイコンの1ピンを使って、LEDを2秒に1回程度光らせてやれば。
      待てよ、これがあれば、電源表示パイロットランプは、不要だな。
哲  :どういうことだよ。
啓二:電源が正しく接続されていれば、マイコンが動く。
      マイコンのプログラムが動けば、LEDが1秒ごとに
      ブリンクする。更に、時計を実現するためには、1秒
      ごとにタイマー割込みが必要で、カウンタを+1すれば
      いい。
哲  :なるほど、兼用させるのか。
啓二:そう。リソースを限定して、その中でいろいろやると、バグ
      の存在範囲を狭められる。当然、不具合の原因になる個所も
      限定できるってわけさ。
哲  :じゃあ、マイコンで利用するピンを確認するか。
      スイッチ入力は、スライドスイッチ2ピン、タクトスイッチ
      3ピンの合計5ピン。時計出力部7セグメントLED4けた
      に4ピン、動作表示LEDに1ピン、タイマー制御出力の1
      ピンで、合計6ピン。全部で、11ピンだ。
啓二:手持ちの78kは、20ピンだから、どう割り当てるかだな。
      LEDを駆動できるピンは、P20からP23の4ピン。
      ホワイトボードに描いてみるか。


哲  :まだ、ピンは残っているのかな。
啓二:P43、P44が残っている。この2ピンは、シリアル関連
      のピンなので、ハードウエアデバッグ用にモニタプログラム
      を入れ、利用できるようにしておこう。
哲  :どうやら、外部が固まったなあ。
      これで半田付けをするするのか。
啓二:いや、一度ラフなプログラムを書いてみて、不具合がないか
      をチェックした方がいいなあ。
      Appliletを動かすと、このピンは入力にしか使えないだとか、
      出力だけだとかを、教えてくれるから、それを利用する。
哲  :Appliletって、そういう風に使うのか。
啓二:人それぞれだけれど、ハードウエアマニュアルをひっくり
      返して調べなくてもいいところは、もろ使わせてもらう。
哲  :時計だから、タイマー割込みを使うのだろうけれど、この
      78kには、何個タイマーがあるんだよ。
啓二:16ビットが1個、8ビットが2個、ウオッチドッグが
      1個かな。時計くらいならば、8ビットタイマー1個で
      何とかなるさ。今日は、ここまでだな。
      おっと、レシピだ、レシピ。
(料理のレシピ  その3)
  A 食材の用意
     納豆:50g1パック  大根:2cmほど
  B 料理方法
     おろし金で、小鉢に、大根おろしをつくる。
     納豆を、1パック分よくこねて、糸を引かせる。
     小鉢に、納豆を入れて、少しまぜる。
  C 盛り付け
     小鉢の大根おろし納豆に、醤油をかける

戻る