BCDカウンタ回路

6月 10, 2021
admin

トグルT型フリップフロップが個別の分周カウンタとして使用できることを前回確認しました。 1387>

クロック付きのT型フリップフロップは2分周カウンタとして動作し、非同期カウンタでは、1つのカウントステージの出力が次のステージのクロックパルスになります。 そうすると、フリップフロップ・カウンタは2つの可能な出力状態を持ち、フリップフロップの段数を増やせば、2分法カウンタを作ることができます。 しかし、4ビット・バイナリ・カウンタの問題は、0000から1111までカウントすることです。 1387>

1から10までカウントするデジタルカウンタを作るには、2進数の0000から1001までしかカウントしないようにする必要があります。 1387>

デジタル・カウンタは、クロック信号の印加により、ゼロからあらかじめ決められたカウント値までカウントアップします。

10進カウンタは、10進数でカウントし、9進数でゼロに戻ります。 明らかに2進数の値である9までカウントするために、カウンタはそのチェーン内に少なくとも4つのフリップフロップを持ち、図のように10進数の各桁を表現する必要があります。

BCD カウンター状態図

bcd counter state diagram

bcd counter state diagram

次に、10 進カウンターには 4 つのフリップフロップと 16 状態が考えられますが、そのうち使われるものは 10 だけなので、一連のカウンターを接続すれば 100 か 1000 か任意の最終カウント数までカウントできることになります。

あるカウンターがカウントできる総カウント数をそのMODULUSと呼ぶ。 nカウント後に0に戻るカウンタはモジュロ-nカウンタと呼ばれ、例えばモジュロ-8(MOD-8)、モジュロ-16(MOD-16)カウンタなど、「nビットカウンタ」の場合は0から2n-1の全範囲がカウントされることになる。

しかし、非同期カウンタのチュートリアルで見たように、2進数の0000(10進数の「0」)から1001(10進数の「9」)までの10進数で10カウント後にリセットするカウンタを「binary-coded-decimal counter」、略してBCD Counterと呼び、最小4個のトグルフロップでMOD-10カウンタを構成することができるようになっているのです。

BCDカウンタと呼ばれるのは、その10状態の並びがBCDコードの並びであり、ストレート・バイナリ・カウンタとは異なり規則的なパターンを持たないからです。 そして、74LS90のような1段のBCDカウンタは10進数0から10進数9まで数えるので、最大9パルスまで数えることが可能です。 また、デジタルカウンタは、入力される制御信号によって、カウントアップ、カウントダウン、またはカウントアップとカウントダウン(双方向)が可能です。

Binary-coded-decimal codeは、4つの2進数からなる8421コードです。 8421の表記は、使用する4桁またはビットの2進数の重さを意味します。 例えば、23=8、22=4、21=2、20=1です。 BCDコードの主な利点は、10進数と2進数の形式を簡単に変換できることです。

The 74LS90 BCD Counter

74LS90集積回路は基本的に、BCD出力コードを生成するMOD-10ディケイド・カウンタです。 74LS90は、4つのマスター・スレーブJKフリップフロップが内部で接続されており、MOD-2(カウント・トゥ・2)カウンタとMOD-5(カウント・トゥ・5)カウンタを提供します。 74LS90は、図のようにCLK A入力で駆動する独立した1つのトグルJKフリップフロップと、CLK B入力で駆動する非同期カウンタを形成する3つのトグルJKフリップフロップを備えています。

74LS90 BCD Counter

74LS90 BCD Counter

74LS90 BCD Counter

カウンターの4出力は文字記号QとBCDカウンター回路コード内の対応ビットの2進数の重さに相当する数字添字で指定されています。 例えば、QA、QB、QC、QDのようになります。 74LS90は、クロック信号の負方向エッジ、すなわちクロック信号CLKが論理1(HIGH)から論理0(LOW)になったときにカウントシーケンスが開始されます。 リセット入力R1、R2をロジック1にすると、カウンタは0(0000)に戻り、セット入力S1、S2をロジック1にすると、実際のカウント数や位置に関係なく、カウンタを最大値である9(1001)にセットします。

5分周カウンタ部を構成する4つのフリップフロップを無効にして、入力端子14(CLKA)にクロック信号を印加し、出力端子12(QA)から取り出すと、図のような分周回路に使用する標準の2進カウンタを生成することが可能です。

74LS90 2分周カウンタ

74LS90 2分周カウンタ

74LS90 2分周カウンタ

5分周カウンタは、上記の最初のフリップフロップを無効にし、1ピン(CLKB)に直接クロック入力信号を適用し、ピン11(QD)から出力を取り出すことにより、標準的な分周カウンタを作成できます。

74LS90 5分周カウンタ

74LS90 5分周カウンタ

74LS90 5分周カウンタ

なお、この5分周カウンタの構成では、出力波形が対称ではなく4:1マークスペース比率になっていることに注意しましょう。 1387>

10 分周の BCD ディケイドカウンタを生成するには、両方の内部カウンタ回路を使用して、2×5の分周値を生成します。 フリップフロップAからの最初の出力QAは内部で後続のステージに接続されていないため、このQA出力をCLKB入力に接続することにより、4ビットBCDカウンタに拡張することができます。

74LS90 10進カウンタ

74LS90 10進カウンタ

74LS90 10進カウンタ

それから、BCDカウンタは0000から1001までカウントして、9カウント目で全フリップフロップをクリアできる機能を持っているのでリセットする2進カウンタであるとわかる。 クロック入力CLKAに押しボタンスイッチ(SW1)を接続すると、押しボタンスイッチを離すたびにカウンタが1つずつカウントされます。 出力端子QA、QB、QC、QDに発光ダイオード(LED)を接続すれば、2進コード化された10進数のカウントをそのまま見ることができます。

74LS90 BCD Decade Counter

74LS90 BCD Decade Counter

74LS90 BCD Decade Counter

押しボタンスイッチ、SW1を連続して押すと9カウント、1001まで増加します。 10回目に押すと出力ABCDはゼロになり、新しいカウントが始まります。 このようなMOD-10ラウンドのパルス数で、10進カウンタを使用してデジタル・ディスプレイを駆動できます。

7セグメント・ディスプレイを使用してカウント・シーケンスを表示したい場合、表示する前にBCD出力を適切にデコードする必要があります。 74LS90 BCD カウンタの 4 つの出力をデコードし、ディスプレイの必要なセグメントを点灯させるデジタル回路をデコーダと呼びます。

Driving a Display

幸い、誰かがすでにそれを行うために 74LS47 などの BCD to 7-segment Display Decoder IC を設計、開発しています。 74LS47 は、BCD の A、B、C、D の 4 つの入力と、7 セグメント表示の各セグメント用の出力を備えています。

標準の 7 セグメント LED ディスプレイは、一般に 8 つの入力接続があり、各 LED セグメント用に 1 つ、すべての内部表示セグメント用の共通端子または接続として機能する 1 つがあることに注意してください。

74LS47 BCD to 7-segment Driver

74LS47 BCD to 7-segment Driver

74LS47 BCD to 7-segment Driver

74LS47 ディスプレイデコーダはBCDコードを受け取り、適用したパルス数を表示する責任を持つ適切なLEDセグメントを起動するための信号を発生させます。 74LS47 デコーダは、コモンアノードディスプレイを駆動するように設計されているので、LOW (ロジック 0) 出力は LED セグメントを点灯し、HIGH (ロジック 1) 出力はそれを消灯させます。 通常の動作では、LT(ランプテスト)、BI/RBO(ブランキング入力/リップル・ブランキング出力)、RBI(リップル・ブランキング入力)はすべてオープンまたはロジック1(HIGH)に接続してください。

74LS47 がアクティブLOW出力を持ち、コモンアノード7セグメントLEDディスプレイのデコード用に設計されていますが、74LS48デコーダー/ドライバーICは、アクティブHIGH出力を持ってコモンカソード7セグメントディスプレイをデコードするために設計されているということを除いてまったく同じであることに注意してください。

74LS47の2進数入力と74LS90 BCDカウンタの出力を接続すると、押しボタンSW1が押されるたびに7セグメント表示器にカウントシーケンスが表示されるようになります。 1387>

最終4ビットBCDカウンタ回路

74LS90 BCDカウンタ回路

74LS90 BCDカウンタ回路

なお、7セグメントディスプレイは7個の発光ダイオードで表示を形成している。 7セグメントディスプレイを流れる電流を制限する最も良い方法は、図のように7つのLEDのそれぞれに直列に電流制限抵抗を使用することです。 しかし、これには2つの方法があります。

電流制限抵抗

単一電流制限抵抗

単一抵抗 – ここでは、単一の直列電流制限抵抗Rが使用されています。

LEDの発光量は、抵抗に流れる電流を表示セグメントの数で共有し、デバイスを流れる電流によって変化します。

multiple current limiting resistor

複数の抵抗 – ここでは、上記のシンプルな BCD カウンター回路で示したように、各セグメントに独自の電流制限抵抗があります。

一般に 7 セグメント ディスプレイは、セグメントを照らすために約 12 ~ 20 ミリアンペア必要なので、電流制限抵抗の抵抗値 (すべて同じになる) は、これらの値の範囲内に電流を制限するように選択されます。

ここでの利点は、特定のLEDセグメントの明るさが、他の6つのLEDの状態に依存しないため、ディスプレイの明るさが一定であることです。

この回路は、74LS90 BCDカウンタと74LS47 7セグメント表示ドライバを使用したシンプルな0~9デジタルカウンタを示しています。 10以上のカウントを行い、2桁の10進カウンタとディスプレイを作成するには、2つの別々の10進カウンタを一緒にカスケードする必要があります。 2桁のBCDカウンタは、10進数で00から99まで(0000 0000から1001 1001)カウントし、その後リセットされて00に戻ることになります。 同様に、0 から 999 まで (0000 0000 から 1001 1001 1001) をカウントしたい場合、3 つのカスケード型 10 進カウンタが必要です。 実は複数のディケイドカウンタは、図のように各ディケイドごとにBCDカウンタ回路をカスケード接続するだけで構成できるのです。

00から99までの2桁BCDカウンタ

2桁BCDカウンタ

2桁BCDカウンタ

BCD Counter Summary

BCDカウンタはクロックによって10の状態を経て、9カウント後に0になるデバイスであると見てきましたが、このチュートリアルの中で、BCDは1つのデバイスとして扱われ、1桁のBCDは2桁のBCDになります。 上記の簡単な例では、入力クロックパルスは押しボタンスイッチからですが、カウンタは、移動する物体を数えるなど、現実世界の多くのイベントを数えるために使用することができます。

しかし、カウントする各イベントの電気パルスを生成するために適切な回路が必要な場合があります。これらのイベントは離散的な時間間隔で発生するか、完全にランダムである可能性があります。

多くのデジタル電子回路とアプリケーションでは、デジタルカウンタはトグルフリップフロップまたは必要なスイッチ機能を与えるために接続できる他の種類のフリップフロップ、あるいは 74LS90 など専用のカウント IC の使用によって実装されています。 1387>

BCD カウンタは、10 個の状態のシーケンスに従い、BCD 数値を使って 0000 から 1001 までカウントし、0000 に戻ってこれを繰り返します。 10進数は少なくとも4ビットの2進コードで表され、MOD-10カウントを与えるからです。

また、BCDコード出力は4つのLEDまたはデジタルディスプレイで表示できることを見てきました。

ディスプレイ・デコーダ回路は組合せ論理素子で構成でき、74LS47 BCD to 7-segment decoder/driver ICなど、この機能を実行する専用集積回路が多数市場に出ている。

7セグメント表示器の多くは、通常、複数桁のカウントに使用されるので、より多くのBCDカウンタをカスケード接続することにより、最大読み取り値9999の表示を行う4桁のカウンタを構築することが可能である。

74LS90 BCD Counterは非常に柔軟なカウント回路で、周波数分割器として使用したり、適切な出力をICのリセットとセット入力にフィードバックすることにより、2~9の任意の整数カウントを分割するようにすることが可能です。

コメントを残す

メールアドレスが公開されることはありません。