# 2 digit counters using jk flip flop

Discussion in 'Homework Help' started by SANTAM1991, Apr 3, 2012.

1. ### SANTAM1991 Thread Starter New Member

Apr 3, 2012
3
0
I am new in this site and all I want is to design a counter which will count 2 digits from 0 to 99 using j k flip flop.pls help.

Nov 25, 2009
5,151
1,266
3. ### MrChips Moderator

Oct 2, 2009
12,636
3,455
Start off by learning how to build a single digit BCD counter.

Step 1

- Learn how to build an asynchronous 4-bit binary counter using a toggle flip-flop.
- Learn how to build a toggle flip-flop from a J-K filp-flop.
- Learn how to reset a 4-bit binary counter to recycle after 9.

Step 2

- Learn how to build a synchronous counter that will count in any sequence using any type of flip-flop.
- This requires learning how to create a Karnaugh map.

SANTAM1991 likes this.
4. ### WBahn Moderator

Mar 31, 2012
18,087
4,917
I think MrChips has probably set you on the right path. I am a bit interested, though, to have a clearer understanding of what you are supposed to be designing. A "counter which will count 2 digits from 00 to 99" could be interpreted a few different ways. Is your counter expected to have eight outputs, four per digit, with each digit being represented in BCD. Or is the counter supposed to have seven outputs with the total count being in binary but cycling back to 00 after reaching 99? My guess is the first, but I don't think the second is not entirely unreasonable.

I do disagree with MrChips on a minor point - you don't have to learn about Karnaugh maps to implement random logic functions (such as the type needed to complete his Step 2). It most certainly helps, especially in implementing optimized and/or static hazard-free circuits, but you can always work directly with the Boolean expressions (can get ugly) or the truth tables (pretty easy, but also easy to miss optimization options).

When you do get around to learning Karnaugh maps, be sure to also look into "concensus terms" and "static timing hazards", particularly if you ever deal with unregistered logic or logic that is sensitive to glitches.

SANTAM1991 likes this.
5. ### SANTAM1991 Thread Starter New Member

Apr 3, 2012
3
0
Thank You WBahn,for your reply...U r right sir... I just want the second case..to count 00 to 99 and then the counter will reset itself to 00 and starts counting again...like 00 01 02......95 96 97 98 99 00 01....

6. ### WBahn Moderator

Mar 31, 2012
18,087
4,917
So, SANTAM1991, have you been able to get it to work? If not, describe the progress you have made or what you have attempted and we'll see if we can't help you proceed.

Good luck!

7. ### SANTAM1991 Thread Starter New Member

Apr 3, 2012
3
0
Sir, I hv designed a single digit counter using two 7447 ic i.e jk flipflop,one decoder and a seven segment display.now what modification to be done to get a two bit counter????

8. ### WBahn Moderator

Mar 31, 2012
18,087
4,917
I'm confused. The 7447 is a BCD-7SEG decoder, not a JKFF chip.

Assuming you meant four JKFF (probably two ICs), the next step depends on what kind of counter you have implemented for your single-digit version. If it is an asynchronous ripple counter, then you can just build another one of them and hook the two together. I'll let you ponder on just how to do that.

But you have introduced a new issue. Now you are sending the output to a BCD-to-7SEG decoder and on to a seven-segment display. Do you now want the count to be displayed on two such displays? If so, that is at odds with your earlier assertion that you wanted a counter that counted from 0 to 99 in binary. Now you probably do want it to count in BCD, as Mr. Chips was originally suggesting. If so, that's fine, but you need to make sure that you understand what it is you want to accomplish, otherwise it is going to be very hard to accomplish it.

If you want a two-digit BCD counter, then you need to make sure that your present one-digit counter does two things: resets itself from 9 back to 0, and produces a carry signal when it is in state 9.

But I recommend making your one-digit counter fully synchronous first and make sure it has the following properties: A count enable input (CE), a synchronous reset input (R), and a carry out output (Cout). The behavior of each input should be as follows:

CE: The counter does nothing if this is LO and counts up on digit if this is HI.
R: The counter resets to 0 if this is HI is high.
Cout: Produced when the present count is equal to 9.

With these features, adding additional digits because trivial, though there is one gotcha that you are likely to run into and, if you do, your count sequence will likely go 88..89..90..01..02. But I'll let you struggle with that for a bit if it happens.

Last edited: Apr 12, 2012