今回は時計の要である、時間カウント部分と、ダイナミック点灯制御の部分を作ります。
回路説明

- 時間カウント
10進アップ/ダウンカウンタ74HC192をカスケード接続して、時分秒及び曜日を数えます。
このカウンタは、入力ピンのUP/DNにアップエッジの信号を与えることで、10進のアップカウントおよびダウンカウントを行う事ができます。ただしカウント動作を行わないときは、二つの入力は共にHレベルにしておかないといけません。そうしないと訳の分からない挙動を示しますので、回路図中ではインバータによって論理レベルを合わせています。
上の回路図には示されていませんが、分秒の十の位と、時間、曜日の出力は、前回製作した桁リセット回路に常時監視されて、必要に応じて「00分」に戻すリセット信号や、プリセットされた「59分」、「23時」を読み込むロード信号が送られます。
- ダイナミック点灯制御
時分秒をダイナミック点灯するために、8入力マルチプレクサ74HC151を使用します。このICはA,B,Cに入力される2進数をもとに、8つの入力(D0~D7)の中からただ一つの入力を取り出し、出力Yに反映します。今回は7セグメントLEDドライバのために4桁のBCDコードが必要なので、ICを4つ用意します。
出力されたBCDコードは7セグメントLEDドライバ74LS247に入力されます。
7セグメントLEDドライバといえば
汎用ロジックの7セグメントLEDドライバといえば何でしょうか。TC4511?74LS47?モジキは74LS247を推しています。
というのは、7セグメントLEDドライバはモノによって数字の6と9に”尾”(データシートだと「Tail」)が付いたり付かなかったりするもので、見た目が随分変わります。モジキは尾が付いている方が好みなので74LS247を採用しました。TIのがまだ生産中なので是非。


実際に9を表示した様子。74LS47(左)と74LS247(右)
製作
今回は特にICが多いです。


2列ピンソケットの配線は間違えやすいので慎重に。
動作確認
これで完成、と思って動かしてみましたが、どうも上手く行かないようです。BCDの出力がとびとびの値をとったり、そもそも出力しなかったり動作が不安定。こういう時は前段に問題があることが多いので、1Hzが来るはずのピンをテスターで測ってみました。

1Hzのところに9.66Hzが来るなんてどう考えてもおかしいので、試しにインバータの入力をプルダウンしてみたところこれが正解。アナログスイッチの入出力がトライステートで、出力がハイ・インピーダンスの状態があることをすっかり忘れていました。カウンタの入力ピンの論理が不安定になって挙動がおかしくなっていたということですね。


集合抵抗でプルダウンして解決。
この時点では7セグメントLEDの基板が出来ていないので、動作チェックはここまでとなります。ホントはもっと前に表示部分を作っておいて、それを接続した上で動作チェックしたほうが良かったんでしょうが。
というわけで、時間カウント部分と、ダイナミック点灯制御の部分の製作でした。