1,フリップ・フロップ |
2,カウンター |
3,シフトレジスタ |
ここからは、少しステップアップして、フリップフロップ(以下、FF)に入ります。
FFは、簡単に説明すると、1ビットのメモリーです。
FFには、D−FF,RS−FF,T−FF,JK−FFの4種類があります。
D−FFは、最もポピュラーなFFです。まずは、D−FFを
2つ内蔵した4013の真理値表をご覧ください。
4013 |
PR | CLR | D | CLK | Q | Q~ | |
Clear | 0 | 1 | X | 0 | 1 | |
Preset | 1 | 0 | 1 | 0 | ||
(禁止) | 1 | 1 | 1 | 1 | ||
change | 0 | 0 | n | n | n~ | |
保持 | X | 0 or 1 | Q | Q~ |
注) Q~はQのインバースの意味
ゲートICと比べてかなり複雑になっています。
このD-FFには、CLK、Dという基本となる入力端子に対して
Qという出力端子があります。これに加え、CLR(クリアー)とPR(プリセット)
がついています。
まずは、1〜3行目をご覧ください。
PRが0のときCLRを1にするとクリアーが実行され、出力Qが0になります。
反対にCLR=0、PR=1にするとプリセットが実行され、Qは1になります。
もし両方とも1にすると、Qも、Q~も1になります。通常、このような使い方はしないでしょう。
DやCLKの欄には、「X」になっていますが、これはどんな値でもよいという意味です。
PRやCLRは優先権が高いので、DやCLKがどんなことになっていても
影響されないのです。
次に、4〜5行目をご覧ください。
PRもCLRも0の状態でDには適当な値「n」が入力されています。(nは0か1)
この状態で、CLKが0から1へと変化する(これを立ち上がりといい、で示す)と、
Qの値がDの値へと変化します。一度変化したら、次のCLKの立ち上がりが
来るまで、Qの値は保持されます。
以上が、D−FFの動作です。
RS−FFは、D−FFからDとCLKをなくしたものです。
このRS−FFはIC単体として存在しないので、実際に回路をつくるときは
D−FFのCLKとDを0にした状態で用います。
PR | CLR | Q | Q~ | |
Clear | 0 | 1 | 0 | 1 |
Preset | 1 | 0 | 1 | 0 |
(禁止) | 1 | 1 | 1 | 1 |
保持 | 0 | 0 | Q | Q~ |
この真理値表も、前回のものと同じです。
「保持」の行でQの値がQになっていますが、これはQの出力は
前回のQである、すなわち保持されるという意味です。
T−FFは、入力されたクロック周波数を1/2にします。
このクロックというのは、0と1が周期的に変わるパルス状の信号のことです。
このICも単体では存在しなく、D−FFを改造して作ります。
改造はD−FFのPRとCLRを0に接続し、Q~をDに接続して完成です。
クロック信号をCLKに入力させると、1/2にされたクロックがQから出力されます。
最後に、JK−FFの説明をします。以下は、JK−FFを2つ内蔵した
4027のピン配置と真理値表です。
4027 |
PR | CLR | CLK | J | K | Q | Q~ | |
Clear | 0 | 1 | X | 0 | 1 | ||
Preset | 1 | 0 | 1 | 0 | |||
(禁止) | 1 | 1 | 1 | 1 | |||
保持 | 0 | 0 | 0 | 0 | Q | Q~ | |
0へ | 0 | 1 | 0 | 1 | |||
1へ | 1 | 0 | 1 | 0 | |||
反転 | 1 | 1 | Q~ | Q | |||
保持 | 0 or 1 | X | Q | Q~ |
かなり複雑に見えますが、1〜3の機能は、D−FFと同じです。
4〜7行目は、JK−FF独自の機能です。
J,Kの両方とも0にした場合、出力の変化はありません。
Kのみ1にした場合、Qの値が0になります。一見CLRに似ていますが
CLRはCLKに関係なく実行されるのに対し、これは、CLKの立ち上がり時にのみ実行されます。
反対にJのみ1にした場合は、Qは1になります。
おもしろいのは、J,K両方とも1にした場合には、Qの値が反転します。
カウンターは、入力されるクロックをカウントするICです。
Q0からQ3に2進数の各ビットが出力されます。
ICには、4518と4520という2種類がありますが
4518は10進カウンターで、9までカウントすると0に戻ります。
4520はFまでカウントした後0に戻ります。
4518 (10) 4520 (16) |
CLR | CLK | CKE | Q0〜3 | |
Clear | 1 | × | 0000 | |
カウント | 0 | 1 | +1 | |
0 |
CLRを1にすると、問答無用で0にリセットされます。
CKEを1の状態でCLKにクロックを入力すると、立ち上がりでカウント、
CLKを0の状態でCKEにクロックを入力すると、立ち下がりでカウントします。
このあたりから本格的なカウンターになります。
4510は10進、4516は16進カウンターです。
このカウンターは、アップ、ダウンどちらのカウントもできる上
桁上げや、指定した値からのカウントもできます。
4510 (10) 4516(16) |
CLR | Load | CI | U/D | CLK | P0〜3 | Q0〜3 | |
Clear | 1 | X | 0000 | ||||
Preset | 0 | 1 | X | N | N | ||
Count Stop |
0 | 1 | X | Q0〜3 | |||
Count Up |
0 | 1 | X | +1 | |||
Count Down |
0 | -1 |
CLR=1で、最優先で0にセットされます。
CLR=0,Load=1で、P0〜3の値がQ0〜3にせっとされ、そこからカウントが始まります。
CLR=0,Load=0,CI=1では、カウントがストップします。
CLR=0,Load=0,CI=0で、CLKが立ち上がったときに初めてカウントが開始されます。
カウントアップかダウンは、U/Dで決定されます。
さて、この真理値表に載っていないCOの役割ですが、これは桁上がり(下がり)の際に使用します。
UpCountの場合、8→9で0になり9→0で1になります。0から8までは1です。
DownCountの場合、1→0で0になり0→9で1になります。9から1までは1です。
なお、この説明は10進カウンターの場合なので、16進の場合はFや0の前後で
変化が起きます。
さて、このカウンターを複数個つなげると、何桁もカウントすることができます。
つなぎ方は、低位のカウンターのCOを高位のCLKに接続するだけです。
CLRやLoad,U/Dは一つに束ねておくと、一斉にリセットなどがかけられます。
今までのカウンターは、Q0〜3に2進数をビットごとに出していましたが
このICでは、現在のカウント値のビットだけが1になり、他ビットは0です。
このタイプのICは2種類あり、4017は10進、4022は8進です。
4017 | |
4022 |
CLR | CLK | CKE | Q0〜9 | |
Clear | 1 | X | Q0 | |
カウント | 0 | 1 | +1 | |
0 |
カウントアップの様子
Q0 | Q1 | Q2 | Q3 | Q4 | ・・・ |
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
CLR=1でリセットされカウンターの値は0になるので、Q0のみ1になり
Q1からQ9は0になります。カウントは、前述の通りに動きます。
さて、このカウンターは10進や8進なのですが、実は任意の進数に設定できます。
それは、Q0からQnまでのn+1進にしたい場合は、Qn+1の出力をCLRに
接続すればOKです。
COは4017の場合で、カウント値が0から4のときで1、5から9のときで0になります。
シフトレジスタは、F・Fを横に並べたもので、
クロックが入力されるたびにデータを次々にシフトさせます。
次の図は、シフトレジスタ内部の様子です。D−FFが並んでいるのがわかるでしょう。
この回路では、CKの立ち上がりによってDの値が読み込まれて
Q1に出力されます。その後、再びCKの立ち上がりが来ると
隣のFFにシフトし、Q2に出力されます。
このようなことが繰り返されQ4までいくと、そのデータはこのICから消滅します。
以下のは系チャートは、シフトレジスタの各ピンの変化の様子です。
CKが立ち上がるごとにデータがQ1からQ4へと移っていく様子が分かります。
4015 |
CLR | CK | D | Q1〜4 | |
Clear | 1 | X | 0000 | |
Preset | 0 | (シフト) | ||
保持 | 0,1 | X | (変化なし) |
4015には、4段階のシフトレジスタが2回路入っています。
もし、両方のCLK同士とCLR同士をつないだ上に、
一方のQ4ともう一方のDを結べば、8段階のシフトレジスタができます。
4006 |
4006には、4段階(一部5段階)のシフトレジスタが4回路入っています。
しかし、最終段近辺の値しか出力されていません。
たとえば、a回路では、Daに値が入力されたら、4段階シフトした後に
Qa+4に値が出力されます。
戻る