The J-K Flip-Flop
A very common form of flip-flop is the J-K flip-flop. It is unclear, historically, where the name "J-K" came from, but it is generally represented in a black box like this:
In this diagram, P stands for "Preset," C stands for "Clear" and Clk stands for "Clock." The logic table looks like this:
| P | C | Clk | | J | K | Q | Q' |
| 1 | 1 | 1-to-0 | | 1 | 0 | 1 | 0 |
| 1 | 1 | 1-to-0 | | 0 | 1 | 0 | 1 |
| 1 | 1 | 1-to-0 | | 1 | 1 | | Toggles |
| 1 | 0 | X | | X | X | 0 | 1 |
| 0 | 1 | X | | X | X | 1 | 0 |
Here is what the table is saying: First, Preset and Clear override J, K
and Clk completely. So if Preset goes to 0, then Q goes to 1; and if
Clear goes to 0, then Q goes to 0 no matter what J, K and Clk are
doing. However, if both Preset and Clear are 1, then J, K and Clk can
operate. The 1-to-0 notation means that when the clock changes from a 1 to a 0, the value of J and K are remembered if they are opposites. At the low-going edge
of the clock (the transition from 1 to 0), J and K are stored. However,
if both J and K happen to be 1 at the low-going edge, then Q simply toggles. That is, Q changes from its current state to the opposite state.
You might be asking yourself right now, "What in the world is that good for?" It turns out that the concept of "edge triggering" is very useful. The fact that J-K flip-flop only "latches" the J-K inputs on a transition from 1 to 0 makes it much more useful as a memory device. J-K flip-flops are also extremely useful in counters (which are used extensively when creating a digital clock). Here is an example of a 4-bit counter using J-K flip-flops:
The outputs for this circuit are A, B, C and D, and they represent a
4-bit binary number. Into the clock input of the left-most flip-flop
comes a signal changing from 1 to 0 and back to 1 repeatedly (an oscillating signal).
The counter will count the low-going edges it sees in this signal. That
is, every time the incoming signal changes from 1 to 0, the 4-bit
number represented by A, B, C and D will increment by 1. So the count
will go from 0 to 15 and then cycle back to 0. You can add as many bits
as you like to this counter and count anything you like. For example,
if you put a magnetic switch on a door, the counter will count the
number of times the door is opened and closed. If you put an optical
sensor on a road, the counter could count the number of cars that drive
by.
Another use of a J-K flip-flop is to create an edge-triggered latch, as shown here:
In this arrangement, the value on D is "latched" when the clock edge goes from low to high. Latches are extremely important in the design of things like central processing units (CPUs) and peripherals in computers.

