動画の解説を参照
7セグメントLEDは、7本の縦横の線を組み合わせてデジタル数字を表示する素子です。
以下の図のリンク先の回路で、a~g につながっている入力を切り替えてみればわかるように、それぞれの線 (セグメント) に対応する入力が 0 なら消え、1 なら光ります。
これを使えば、0~9の数字とA, b, C, d, E, F のアルファベット、つまり16進数の1桁分を表すことができます。
とはいえ、いちいち入力a~gを切り替えてその文字を表すのは非効率です。
そこで、4桁の2進数を受け取り、a~gに適切な出力を出す
7セグデコーダを使います。
たとえば \((I_3, I_2, I_1, I_0)\) = (0, 0, 1, 1) にすると、a, b, c, d, g に 1 が、左の2本の縦棒 e, f には 0
が出力されるので7セグメントLEDは「3」の形に光ります。
7セグデコーダでは4つの入力に応じて a~g に適切に出力することで 0~F の形に光るようにしているわけです。
たとえば a (上の横棒) の出力は7セグメントLEDの表示が 0, 2, 3, 5, 6, 7, 8, 9, A, C, E, F のときに 1 で、1, 4, b, d のときに 0
になればいいので、真理値表はこのようになります。
| 表示 |
\(I_3\) |
\(I_2\) |
\(I_1\) |
\(I_0\) |
a |
| 0 |
0 |
0 |
0 |
0 |
1 |
| 1 |
0 |
0 |
0 |
1 |
0 |
| 2 |
0 |
0 |
1 |
0 |
1 |
| 3 |
0 |
0 |
1 |
1 |
1 |
| 4 |
0 |
1 |
0 |
0 |
0 |
| 5 |
0 |
1 |
0 |
1 |
1 |
| 6 |
0 |
1 |
1 |
0 |
1 |
| 7 |
0 |
1 |
1 |
1 |
1 |
| 8 |
1 |
0 |
0 |
0 |
1 |
| 9 |
1 |
0 |
0 |
1 |
1 |
| A |
1 |
0 |
1 |
0 |
1 |
| b |
1 |
0 |
1 |
1 |
0 |
| C |
1 |
1 |
0 |
0 |
1 |
| d |
1 |
1 |
0 |
1 |
0 |
| E |
1 |
1 |
1 |
0 |
1 |
| F |
1 |
1 |
1 |
1 |
1 |
第4回でみた、真理値表から主乗法標準形で論理式を導く方法で a の出力を計算できます (その値を文字 \(a\)
で表すことにします)。
真理値表の
a の値が 0 の行の右に、対応した論理式 (4つの入力の論理和。その行で値が 1 のものにバーをつける) を書き、
| 表示 |
\(I_3\) |
\(I_2\) |
\(I_1\) |
\(I_0\) |
a |
| 0 |
0 |
0 |
0 |
0 |
1 |
| 1 |
0 |
0 |
0 |
1 |
0 |
\(I_3 + I_2 + I_1 + \bar{I}_0\) |
| 2 |
0 |
0 |
1 |
0 |
1 |
| 3 |
0 |
0 |
1 |
1 |
1 |
| 4 |
0 |
1 |
0 |
0 |
0 |
\(I_3 + \bar{I}_2 + I_1 + I_0\) |
| 5 |
0 |
1 |
0 |
1 |
1 |
| 6 |
0 |
1 |
1 |
0 |
1 |
| 7 |
0 |
1 |
1 |
1 |
1 |
| 8 |
1 |
0 |
0 |
0 |
1 |
| 9 |
1 |
0 |
0 |
1 |
1 |
| A |
1 |
0 |
1 |
0 |
1 |
| b |
1 |
0 |
1 |
1 |
0 |
\(\bar{I}_3 + I_2 + \bar{I}_1 + \bar{I}_0\) |
| C |
1 |
1 |
0 |
0 |
1 |
| d |
1 |
1 |
0 |
1 |
0 |
\(\bar{I}_3 + \bar{I}_2 + I_1 + \bar{I}_0\) |
| E |
1 |
1 |
1 |
0 |
1 |
| F |
1 |
1 |
1 |
1 |
1 |
その論理積を取ったものが \(a\) になります。
\(a\)
\(=(I_3 + I_2 + I_1 + \bar{I}_0)\)
\((I_3 + \bar{I}_2 + I_1 + I_0)\)
\((\bar{I}_3 + I_2 + \bar{I}_1 + \bar{I}_0)\)
\((\bar{I}_3 + \bar{I}_2 + I_1 + \bar{I}_0)\)
7セグデコーダの中にはこういう出力を出す論理回路が含まれています。
b~gのための出力 \(b\)~\(g\) も同様です。
※ 準備 : 学籍番号を入れて「入力」をクリック (タップ) してください。
7セグデコーダの出力
の真理値表を以下の形式で書いてください。
| 表示 |
\(I_3\) |
\(I_2\) |
\(I_1\) |
\(I_0\) |
|
| 0 |
0 |
0 |
0 |
0 |
|
| 1 |
0 |
0 |
0 |
1 |
|
| 2 |
0 |
0 |
1 |
0 |
|
| 3 |
0 |
0 |
1 |
1 |
|
| 4 |
0 |
1 |
0 |
0 |
|
| 5 |
0 |
1 |
0 |
1 |
|
| 6 |
0 |
1 |
1 |
0 |
|
| 7 |
0 |
1 |
1 |
1 |
|
| 8 |
1 |
0 |
0 |
0 |
|
| 9 |
1 |
0 |
0 |
1 |
|
| A |
1 |
0 |
1 |
0 |
|
| b |
1 |
0 |
1 |
1 |
|
| C |
1 |
1 |
0 |
0 |
|
| d |
1 |
1 |
0 |
1 |
|
| E |
1 |
1 |
1 |
0 |
|
| F |
1 |
1 |
1 |
1 |
|
課題1解説
課題1で求めた出力の論理式を主乗法標準形で書いてください。
課題2解説
動画の解説を参照
前回見たように、ネガティブエッジトリガ型JK-FFの入力 \(J, K\) に (1, 1) を入れると、\(CLK\) が2回切り替わるたびに \(Q\) は1回切り替わります。
この \(Q\) をさらにもう1つのネガティブエッジトリガ型JK-FFの \(CLK\) に入れれば、\(CLK\) が4回切り替わるたびに1回切り替わる出力が作れます。
オシロスコープは上から順に \(CLK, Q_0, Q_1\) を表します。
\(Q_1Q_0\) の並びの2進数に対応する値を \(Q\) とすれば、\(Q\) は 0→1→2→3→0→1→... のように変化します。
「数をカウント (count) するもの」、つまり counter なので、このような回路を
カウンタ回路と言います。
上の回路は0~3の範囲で数が増えていく (カウントアップする) ので
4進アップカウンタです。
| \(Q_1\) |
\(Q_0\) |
\(Q\) |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
2 |
| 1 |
1 |
3 |
出力 \(Q_1, Q_0\) を7セグデコーダの \(I_1, I_0\) に入れて7セグメントLEDにつなげば、出力を数字で確認できます。
ネガティブエッジトリガ型JK-FFをもう1つ増やせば、\(Q_2Q_1Q_0\) の並びの2進数に対応する値 \(Q\) は 0→1→2→...→7→0→1→...となります。
これは
8進アップカウンタです。
さらにもう1つ増やせば
16進アップカウンタになります。
シミュレータではこれが1つの素子にまとめられています。
\(U/D\) はカウンタの種類を切り替えるための入力で、0 にするとアップカウンタ、1 にすると後述のダウンカウンタになります。
\(R\) は「リセット」で、\(R=1\) にすると \(Q_0~Q_3\) がすべて 0 になり、\(R=0\) にするとカウントが始まります。
動画の解説を参照
アップカウンタと同様の回路を作り、JK-FFを
ポジティブエッジトリガ型に変えると、15→14→13→...→1→0→15→14→...のように、カウントダウンするようになります。
このように数が減っていく方向に変化する回路を
ダウンカウンタ と呼びます。
これは16進ダウンカウンタです。
それぞれ左隣の出力の立ち上がりで出力が変化するので、\(Q_3Q_2Q_1Q_0\) の並びの2進数を10進数にしたものは下図の下側の数字のようになります。
ひとつの素子でダウンカウンタを作るには、
前項の最後の回路で \(U/D\) を 1 にすればいいだけです。