アフィリエイト広告
アフィリエイト広告

続・デジタル時計をつくる (2) / D-FF を使った12進カウンタ

前回は、秒カウンタ、分カウンタに使う、同期 60 進カウンタをつくりました。

「続・デジタル時計をつくる」記事一覧

今回は、時をカウントする同期 12 進カウンタをつくります。
といっても、これまでにつくった 12 進カウンタ (過去記事) に、前回の 10 進カウンタや 6 進カウンタに行なったような改修をしてやれば、よいだけです。つまり、CE 入力でクロックの有効/無効を切り換える、ということ。

おしまい。…… じゃない、です。

フリップフロップを使ったカウンタについては、こちらもあわせてご覧ください。

D フリップフロップを使った同期 12 進カウンタ

ところが、です。

60 進カウンタを 2 組つくったので、JK フリップフロップの在庫が足りなくなりました。なので、前作では、秒カウンタにジョンソンカウンタを使ってみたりした、わけで。今回は、秒カウンタと分カウンタを同じ JK フリップフロップを使った回路にしましたので、そのしわ寄せが時カウンタにおよんできた、というわけで。

部品箱には、D フリップフロップがあります。ので、時カウンタは D フリップフロップを使うことにしました。D フリップフロップでカウンタ回路をつくると、ゲート回路が煩雑になるので嫌いなんですけど、まぁこれも、勉強です。

真理値表

図 1 同期 12 進カウンタ 真理値表

時カウンタは、初期値が午前 12 時で、1 時、2 時、…、11 時、午後 12 時、1 時、2 時、…、とカウントしていきます。
出力は、1 位が BCD 4 ビット、10 位は BCD 1ビット。12 時に PM 信号を出力して、午前/午後を切り換えます。

D フリップフロップの場合、D の状態が次の出力になりますから、Q(n+1) の値がそのまま D の値になります。

ってことで、真理値表は図 1 のとおりとなりました。こいつからカルノー図をつくって論理式を求めますが、カルノー図は省略。

ちなみに、JK フリップフロップの場合のカルノー図が過去記事にありますので、参考にして下さい。

論理式

真理値表から求めた論理式は、以下のとおり。

うーん、AND が 14 個と OR が 5 個ぐらいになるんかねぇ。部品箱に多めにあるのは NAND と AND なので、OR は NAND に置き替えたいなぁ。
ってことで、論理式をあーして、こーして、

こーなりました。NAND と AND ゲートだけで構成しています。

回路図

論理式から、図 2 のように、カウンタ回路をつくりました。

図 2 同期 12 進カウンタ回路図

クロックは CE が HIGH のときに有効になります。10 進カウンタ、6 進カウンタと同様です。
初期化時、12 時 にプリセットするため、FF1 と FF4 の PRECLR の接続が逆になっています。また、初期化はアクティブローなので、リセット信号も RESET にしています。
PM 出力は、T フリップフロップで午前/午後にトグルします。

ゲート回路 (組み合わせ回路) が煩雑でしょ? これだから D フリップフロップは … (^_^;)

次回は

カウンタ回路が、すべてできましたので、次回は時刻合わせ回路をつくりましょう。

時刻合わせの方法は、前作とおなじです。が、カウンタを同期させたおかげで、不具合が解消できるんじゃないかと。当初考えていたような時刻合わせが、たぶん、うまくできる、よーな気がします。

タイトルとURLをコピーしました