Binary counters are fundamental digital circuits used in various applications, such as frequency dividers, digital clocks, and sequential logic systems. In this blog post, we’ll explore how to create a binary counter using NAND gates, starting from the basic logic gates (AND, OR, NOT) and progressing to De Morgan’s Theorem to simplify our designs.

Understanding Basic Logic Gates

Before diving into building a binary counter with NAND gates, let’s review the basic logic gates: AND, OR, and NOT.

1. AND Gate

An AND gate has two or more inputs and produces a high (1) output only when all inputs are high (1). Its truth table looks like this:


2. OR Gate

An OR gate has two or more inputs and produces a high (1) output when at least one input is high (1). Its truth table looks like this:


3. NOT Gate

A NOT gate has one input and inverts it, producing the opposite output. Its truth table looks like this:


Building a 2-Bit Binary Counter

Now, let’s create a 2-bit binary counter using NAND gates. A 2-bit binary counter can count from 0 to 3 (00 to 11 in binary). We’ll use J-K flip-flops for this purpose. A J-K flip-flop has two inputs, J and K, and two outputs, Q and Q’.

J-K Flip-Flop Truth Table


The J and K inputs are connected to the outputs of NAND gates, and the Q output is fed back to the inputs. Here’s how to construct a 2-bit binary counter:

2-Bit Binary Counter Circuit

  1. Create Two J-K Flip-Flops: Start by connecting two J-K flip-flops in series. Connect the Q output of the first flip-flop to the J input of the second flip-flop.
  2. Generate Clock Pulses: You need a clock signal to trigger the flip-flops. Use a clock source (oscillator) to generate clock pulses. Connect this clock signal to the clock (C) input of both flip-flops.
  3. Connect the Inputs: Connect the J and K inputs of the first flip-flop to appropriate NAND gates. For a 2-bit counter, connect them like this:
    • J₁ = Q₀’
    • K₁ = 1 (constant high)
    • J₂ = Q₁’
    • K₂ = Q₀’
  4. Initial Values: Set the initial values of Q₀ and Q₁ to 0 (reset condition).
  5. Read the Binary Output: The binary output of the counter is given by Q₁Q₀, where Q₁ is the most significant bit (MSB), and Q₀ is the least significant bit (LSB). These bits represent the count from 0 to 3 in binary.
  6. Clock It: With the clock pulses and appropriate inputs, the counter will increment on each rising edge of the clock signal.

De Morgan’s Theorem and Simplification

De Morgan’s Theorem is a fundamental concept in digital logic that allows us to simplify complex logic expressions. It states that the complement (NOT) of a logical OR is equal to the logical AND of the complements (NOT) of the individual terms, and vice versa.

Mathematically, De Morgan’s Theorem can be expressed as:

  1. For OR gates:
    • NOT(A OR B) = (NOT A) AND (NOT B)
  2. For AND gates:
    • NOT(A AND B) = (NOT A) OR (NOT B)

By applying De Morgan’s Theorem, you can reduce the number of gates and simplify your circuit designs, which can save both time and resources.


Building a binary counter using NAND gates from basic logic gates and understanding De Morgan’s Theorem are essential skills in digital logic design. With this knowledge, you can create more complex circuits and optimize existing ones. Binary counters are just one example of the many digital circuits you can design and implement using these principles. Experiment, learn, and explore the world of digital logic!

By Tech Thompson

Tech Thompson is a software blogger and developer with over 10 years of experience in the tech industry. He has worked on a wide range of software projects for Fortune 500 companies and startups alike, and has gained a reputation as a leading expert in software development and design.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

WordPress Appliance - Powered by TurnKey Linux