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

続・デジタル時計をつくる (1) / カウンタを同期させる

復活 (^_^;)
前回までに「低機能」なデジタル時計を、つくってみました。とりあえず、まぁ使えるでしょう。使えるんじゃないかな、わからんけど。

つくってみると、いろいろ改修したい点がでてきます。改修する意味や価値があるのか、と問われると、わかりません。が、まぁ、なにごとも勉強ですんで。

60 進カウンタの改修

「デジタル時計をつくる」でつくっていた 60 進カウンタについて。

60 進カウンタは、秒カウンタ、分カウンタとして利用します。でも、まともに同期 60 進カウンタを、しかも BCD 出力で作ろうなんてのは、素人の俺にはむずかしい、ムリ、たぶん。

図 1 非同期 60 進カウンタ ブロック図

そこで採用したのが、図 1 のような同期 10 進カウンタと同期 6 進カウンタの組み合わせでした。でも、それぞれのカウンタをひとつのパーツとして考えたとき、非同期カウンタになっています。

これ、問題あります?さぁ?
でも、気に入らない。

ある方の説によれば、非同期カウンタが許されるのは学校の課題だけ。実務ではすべて同期カウンタなのだ、と。それが正しい説かどうかは、俺にはわかりませんが、すべてのカウンタは同期させるのがカッコいいよね、って、気がする。根拠は、ない。

ま、いいんです。とにかく、同期した 60 進カウンタをつくりたい。これが、今回の目標です。

10 進カウンタと 6 進カウンタを同期させる

10 進カウンタ、6 進カウンタ、それぞれは同期カウンタです。問題は、それらが非同期でつながっているってこと。

図 2 同期 60 進カウンタ ブロック図

10 進カウンタと 6 進カウンタを同期させるには、まず、とにかく、同じクロックを入れる。
次に、10 進カウンタの CA (桁上がり) を、 6 進カウンタの CE に渡す。CE は、HIGH のときにカウントを有効にする Count Enable 入力です。

これでどうでしょ?いけるんじゃね?

図 2 同期 10 進カウンタ タイミング図

タイミング図を描いてみました。

図 2 は 10 進カウンタのタイミング図。
秒カウンタでは、CE は常に HIGH にしておき、10 秒をカウントして、CA (桁上がり) を出力すればいい。
分カウンタでは、秒カウンタから 1 分毎に CE を受けとり、そのときだけクロックを有効にする。結果、1 分毎にカウントし、10 分おきに CA が出力される。
なお、CA はそれぞれ 9 秒、599 秒のときに出力すること。

図 3 同期 6 進カウンタ タイミング図

図 3 は 6 進カウンタのタイミング図です。
秒カウンタは、10 進カウンタから 10 秒毎に CE を受けとり、そのときだけクロックを有効にすることで、60 秒をカウント。CA は 59 秒目に出力する。
分カウンタも同様の動きで、10 分毎に CE を受けとり、3599 秒で CA を出力する。

ということで、クロックは CE が HIGH のときだけ有効にする、CA は最後の 1 秒だけ出力する。この 2 点を改修すればよさそうです。

同期 10 進カウンタ回路

同期 10 進カウンタの設計については、過去記事 を参照下さい。
図 4 が、改修した同期 10 進カウンタ回路です。秒カウンタと分カウンタの両方に、同じ回路を使います。

図 4 同期 10 進カウンタ回路図

改修点は、2 箇所です。
ひとつ目は、クロック入力。CE (Count Enable) 入力によって、クロックを有効にします。CE が LOW のとき、クロックは無効になり、カウンターは停止します。
ふたつ目は、CA (Carry) 出力を、最後の 1 秒間だけにしています。秒カウンタでは 9 秒目、分カウンタでは 599 秒目です。

同期 6 進カウンタ回路

同期 6 進カウンタの設計についても、過去記事 を参照下さい。
図 5 が、改修した同期 6 進カウンタ回路です。10 進カウンタと同様に、秒カウンタと分カウンタの両方に、同じ回路を使います。

図 5 同期 6 進カウンタ回路図

改修点は、10 進カウンタと同じです。CA は 59 秒と 3599 秒で出力します。

デジタル時計ブロック図

クロックを同期させることができそうなので、デジタル時計全体のブロック図をつくりなおしました。(図 6)
前回までにつくった回路がつかえるところもありますし、改修しないといけない部分もあります。組み立てていくうちに、変更もありえます。前回同様、迷走挫折放棄も、アリです。

図 6 デジタル時計ブロック図

次回は

いろいろやんないといけませんが、次回は、時カウンタである 12 進カウンタをつくりましょうか。

じつは、JK フリップフロップの在庫が足りないので、12 進カウンタは D フリップフロップを使うことにしようと考えています。D フリップフロップを使うと、ゲート回路が煩雑になるので嫌いなんですけど、「あるものを使おう」の精神です。
そのために、回路設計からやりなおし (;´Д`) なにごとも勉強です。

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