Counters are one of the basic application of flip-flops. Counters are used to count events. These events can be any thing, number of pulse received , number of bit received or number of bytes received, there are plenty of places where counter are used for counting. Remember that these are binary counters, means the count value will be always in binary.

Look at the 3 bit counter shown in the diagram below.


The timing diagram below shows counters behavior on each clock pulse...


You can see its working is very simple! Each T-flip-flop's output is fed to other flip-flop's clock, this serves the requirement that the MSB should be shift whenever LSBs are rolled-over, which is way the binary counting works.