Maker Pro
Maker Pro

Using 2 Sevent Segment to display only 0-15 decimal

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
my teacher ask me to create project using 2 sevent segment to display only 0-15 decimal. but i think if using 2 sevent segment, the display will show 0-99 decimal.

It's possible to display only 0-15?
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
You can display whatever you want, You can display 00 to FF (0 - 255) if you want to.

But your task (it appears) is to simply decode the values 0 to 15 -- is there anything special about this range...?
 

dorke

Jun 20, 2015
2,342
Joined
Jun 20, 2015
Messages
2,342
How are you asked do that ,hardware only or by software ?
 

hevans1944

Hop - AC8NS
Jun 21, 2012
4,739
Joined
Jun 21, 2012
Messages
4,739
my teacher ask me to create project using 2 sevent segment to display only 0-15 decimal. but i think if using 2 sevent segment, the display will show 0-99 decimal.

It's possible to display only 0-15?
We need to know a lot more about where you are getting the number(s) that will be displayed. Really simple would a sixteen-position rotary switch. Provide some diodes to select segments at each switch position if you use the rotary switch. Please tell us what you are trying to DO.
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
We need to know a lot more about where you are getting the number(s) that will be displayed. Really simple would a sixteen-position rotary switch. Provide some diodes to select segments at each switch position if you use the rotary switch. Please tell us what you are trying to DO.

before i get that test from my teacher, we already learn with 2 counter 7473 (we use 4 bits, and use LED as the indicator),1 sevent segment, one 7447 ic, and u know that sevent segment will display 0-9 decimal and 10-15 showing different number(ex 10 like alphabet c).
Our new job is make the number 10-15 to show as decimal using 2 sevent segment. but the display must be end at 15 not more or 99. what components we need to make that project?
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
here is a question for you. If your input is 4 bits, and one value is assumed to be 0, what is the maximum number that could be represented?
 

hevans1944

Hop - AC8NS
Jun 21, 2012
4,739
Joined
Jun 21, 2012
Messages
4,739
It appears he already knows how to decode 0000 0001 0010 0011 0100 0101 0110 0111 1000 and 1001 as 0 1 2 3 4 5 6 7 8 9 for one 7-segment display. The new task is to decode 1010 1011 1100 1101 1110 1111 and display as 10 11 12 13 14 15, perhaps with leading zero suppression for 0 through 9, for two 7-segment displays,

A look-up table with a 4-bit address and an 8-bit output "word" to drive the two 7-segment displays would be the simplest solution. The most significant digit (MSD) would be a "1" or "0" or "blank" (depending on requirements for MSD = 0), so only one bit is required to encode the MSD. The other seven bits of the look-up table output directly drive the segments of the least significant digit (LSD) of the two-digit display.

Back in the day (June 1989), this look-up table could be purchased as a DM74184 integrated circuit that would convert binary-to-BCD as well as BCD-to-binary for any number of binary bits or BCD digits. You just created a matrix of daisy-chained DM74184 devices. However, only one device is needed to convert four binary bits into two BCD outputs that would directly drive two 7447 BCD-to-7-segment decoder/drivers. If you build your own look-up table, you can incorporate the BCD-to-7-segment decoder into the look-up table, but you will still need a driver for each segment.

You may be able to find some NOS (new old stock) on Ebay for the DM74184, but that IC is probably no longer in production. Perhaps instead you could implement a look-up table using logic gates and/or a diode matrix, which is probably what your instructor intended anyway.

Nice homework problem.
 
Last edited:

dorke

Jun 20, 2015
2,342
Joined
Jun 20, 2015
Messages
2,342
What you are asked to do is build a decoder.
It uses only combinatorial logic (no FFs).
build the truth tables an solve them,if you look carefully you can see some "shortcuts" in the truth tables
Should look like this:
bcd.JPG
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
here is a question for you. If your input is 4 bits, and one value is assumed to be 0, what is the maximum number that could be represented?
im sorry to say this,but before reply, please read my question on top of your reply. yes i know, if i use 4 bit, maximum number is 15. please read my detail question on my reply to hevans1944. thank you
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
im sorry to say this,but before reply, please read my question on top of your reply. yes i know, if i use 4 bit, maximum number is 15. please read my detail question on my reply to hevans1944. thank you

Sure, but you also said:

Our new job is make the number 10-15 to show as decimal using 2 sevent segment. but the display must be end at 15 not more or 99. what components we need to make that project?
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
Sure, but you also said:
what do you mean? i dont get it.
do you know how make the first sevent segment only display 0 and 1,
when the first sevent segment show 0 the second sevent segment show 0-9 and
when the first sevent segment show 1 the second sevent segment show 0-5?
so the display will show only 00-15. using 4 bit - led as indicator. thats is my problem.
ignore if my statement "more or 99" was wrong
 

hevans1944

Hop - AC8NS
Jun 21, 2012
4,739
Joined
Jun 21, 2012
Messages
4,739
What you are asked to do is build a decoder.
It uses only combinatorial logic (no FFs).
build the truth tables an solve them,if you look carefully you can see some "shortcuts" in the truth tables
Should look like this:
View attachment 26592
The input to the decoder is binary NOT BCD. That is why the decoder truth table must implement a binary-to-BCD function. Since @mod already has the 7447 BCD-to-7-segment decoder/drivers, all that is needed is the look-up table logic to convert from 4-bit binary to two binary-coded-decimal (BCD) digits, with the first BCD digit being zero or one. As you pointed out, and as I mentioned in post #7, this truth table could also perform the BCD-to-7-segment conversion, but then you would need to implement the driver function of the 7447.
 

dorke

Jun 20, 2015
2,342
Joined
Jun 20, 2015
Messages
2,342
The input to the decoder is binary NOT BCD. That is why the decoder truth table must implement a binary-to-BCD function. Since @mod already has the 7447 BCD-to-7-segment decoder/drivers, all that is needed is the look-up table logic to convert from 4-bit binary to two binary-coded-decimal (BCD) digits, with the first BCD digit being zero or one. As you pointed out, and as I mentioned in post #7, this truth table could also perform the BCD-to-7-segment conversion, but then you would need to implement the driver function of the 7447.
The input to the decoder is binary NOT BCD. That is why the decoder truth table must implement a binary-to-BCD function. Since @mod already has the 7447 BCD-to-7-segment decoder/drivers, all that is needed is the look-up table logic to convert from 4-bit binary to two binary-coded-decimal (BCD) digits, with the first BCD digit being zero or one. As you pointed out, and as I mentioned in post #7, this truth table could also perform the BCD-to-7-segment conversion, but then you would need to implement the driver function of the 7447.
Absolutly,
my bad ,the input is binary not BCD.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Jan 21, 2010
25,505
Joined
Jan 21, 2010
Messages
25,505
ignore if my statement "more or 99" was wrong

I'm not going to ignore your statement. This is your homework. YOU NEED TO UNDERSTAND IT.

Hop has suggested the easiest way to proceed. Do you understand it? If so, explain it back to us and we'll see if you've got it right.

If you understand it, you will see that once you have solved one small problem, the rest of the answer is trivial.
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
Nice homework problem.

Hop has suggested the easiest way to proceed. Do you understand it? If so, explain it back to us and we'll see if you've got it right.

thank you sir for your kindness to make me understand about my homework. i'll explain again about my homework, if i still look not understand, please help me to correct that, again.

on my first project, we make Timer or Clock(NE555), after that on Second project we make Counter using JK Flip-Flop, we use two IC 7473 to make the output 4 bits, which LED as indicator(u can ignore LED to next project) . the counter will start from 0000(0) and stop at 1111(15). and we success to make that project..

on third project, 4 bits from the counter we use as input to IC 7447 Decoder and ouput to Sevent Segment(we use one sevent segment). The output will show like this picture
9vqvuNN.png

And we success to finish that project again.

From that project we can see that biner 1010 to 1111 will not showing 10 to 15(of course, 'cause we just use one 7segment).
And my teacher ask me to make it show as 10,11,12,13,14,15 with using "two sevent segment which separate" or "using the 7 segment which merges into one component(you definitely know)".

Look like simple when i think for the first time, but.. i remember that IC 7447 output is only 7(a,b,c,d,e,f,g). and two 7segment pin is 18 pins.
And then the question arises:
1. if we use one ic 7447 and connect to two segment.. how to make outputs(a,b,c,d,e,f,g) connected to right pin(from that 18 pins,which must be connect to output) to make display 00 to 15 decimal. it's possible?
2. should we use two 7447(from my teacher). and i think no. but, i want to ask you in this forum. should or not, if should whats next..
3. should we add new component to make it success. i want to ask you again.
from the questions, we just want to know if must connected the output to the right pin, add new component or must change our component . to make two seven segment show 00 to 15 from our 4 bits counter.

thats our big questions. hope u all can help us
 

dorke

Jun 20, 2015
2,342
Joined
Jun 20, 2015
Messages
2,342
Here is a more detailed block diagram.
You can use a single 7447 ,if you do , you should replace the "MSB 7447" with logic to show 0 and 1.

bcd.JPG
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
Here is a more detailed block diagram.
You can use a single 7447 ,if you do , you should replace the "MSB 7447" with logic to show 0 and 1.

View attachment 26623
i'm sorry sir. how i make the first 7seg to MSB 0/1 .
on your diagram, u still used input 4 and output 7, that display will be same like the second 7seg.
i dont know how make that first 7seg to MSB. can you teach me..
 

hevans1944

Hop - AC8NS
Jun 21, 2012
4,739
Joined
Jun 21, 2012
Messages
4,739
Using @dorke's block diagram in post #16 above you must have a "black box" labeled Decoder that has four inputs that represent the bits on your binary counter. The Decoder has two sets of outputs: 4-bits for the MSD (Most Significant Digit) and 4-bits for LSD (Least Significant Digit). Each of these 4-bit outputs drive a 7447 7-segment decoder/driver that will accept the BCD values and display a number on their 7-segment display.

Inside of the Decoder are combinatorial logic circuits that you have created from a truth table. For each of the sixteen possible combinations of the 4-bit input your combinatorial logic will generate the correct 4-bit binary output that the 7447 decoder/driver ICs will convert to segment drive signals for your two 7-segment displays. All you need to do is take pencil and paper in hand now and draw up the correct truth table. For each of the sixteen input combinations you will have a line in your truth table that shows the values of each of the eight outputs. There will (potentially) be eight columns associated with those sixteen rows, but as you will see, only five columns are really necessary: one column for the MSD and four columns for the LSD.

Being clever, you notice that the MSD can only be either zero or one and this only requires the lsb (least significant bit) to be sent to its 7447 to display either 0 or 1. The other three bits sent to the 7447 for the MSD are always zero, so you permanently connect those three bits to logic zero level.

You need to now look at the truth table rows that represent all sixteen input bit combinations. The only combinations that require the MSD to be one are 10, 11, 12, 13, 14, and 15 which is represented by binary value 1010, 1011, 1100, 1101, 1110, and 1111. For these six input values, your combinatorial logic must output a one and send it to the lsb of the 7447 connected to the MSD. For any other input value you send a zero to the 7447 connected to the MSD.

But you aren't done yet! For those same six input values, your combinatorial logic must output 0000, 0001, 0010, 0011, 0100, and 0101 and send these to the 7447 connected to the LSD. This completes six rows of your truth table and the combinatorial logic associated with those six rows will display the decimal number 10, 11, 12, 13, 14, and 15.

But you aren't done yet! There are ten remaining rows in your truth table that will represent binary input values of 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, and 1001 which will display as 00, 01, 02, 03, 04, 05, 06, 07, 08, and 09. Hmmm. That looks suspiciously like just passing the 4-bit input directly to the 4-bit output for the LSD! But you can't just wire it up that way. You have to have logic that also implements the other six combinations of four input bits as described above to display 10, 11, 12, 13, 14, and 15.

So, begin to draw up your truth table. Label the first column INPUT (4 bits), label the second column MSD (1 bit), and label the third column LSD (4 bit). Under the INPUT column enter sixteen rows from 0000 to 1111. Fill in the values on each row under the remaining two columns as discussed above. Once you have a truth table you can think about creating the combinatorial logic that will implement that truth table.

So, draw up your truth table and post it here. Then we can discuss how you can implement that truth table with combinatorial logic gates. Be forewarned: it won't be pretty, but there are theorems and methods you can use to reduce the complexity.
 

mod

Apr 30, 2016
10
Joined
Apr 30, 2016
Messages
10
Using @dorke's block diagram in post #16 above you must have a "black box" labeled Decoder that has four inputs that represent the bits on your binary counter. The Decoder has two sets of outputs: 4-bits for the MSD (Most Significant Digit) and 4-bits for LSD (Least Significant Digit). Each of these 4-bit outputs drive a 7447 7-segment decoder/driver that will accept the BCD values and display a number on their 7-segment display.

Inside of the Decoder are combinatorial logic circuits that you have created from a truth table. For each of the sixteen possible combinations of the 4-bit input your combinatorial logic will generate the correct 4-bit binary output that the 7447 decoder/driver ICs will convert to segment drive signals for your two 7-segment displays. All you need to do is take pencil and paper in hand now and draw up the correct truth table. For each of the sixteen input combinations you will have a line in your truth table that shows the values of each of the eight outputs. There will (potentially) be eight columns associated with those sixteen rows, but as you will see, only five columns are really necessary: one column for the MSD and four columns for the LSD.

Being clever, you notice that the MSD can only be either zero or one and this only requires the lsb (least significant bit) to be sent to its 7447 to display either 0 or 1. The other three bits sent to the 7447 for the MSD are always zero, so you permanently connect those three bits to logic zero level.

You need to now look at the truth table rows that represent all sixteen input bit combinations. The only combinations that require the MSD to be one are 10, 11, 12, 13, 14, and 15 which is represented by binary value 1010, 1011, 1100, 1101, 1110, and 1111. For these six input values, your combinatorial logic must output a one and send it to the lsb of the 7447 connected to the MSD. For any other input value you send a zero to the 7447 connected to the MSD.

But you aren't done yet! For those same six input values, your combinatorial logic must output 0000, 0001, 0010, 0011, 0100, and 0101 and send these to the 7447 connected to the LSD. This completes six rows of your truth table and the combinatorial logic associated with those six rows will display the decimal number 10, 11, 12, 13, 14, and 15.

But you aren't done yet! There are ten remaining rows in your truth table that will represent binary input values of 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, and 1001 which will display as 00, 01, 02, 03, 04, 05, 06, 07, 08, and 09. Hmmm. That looks suspiciously like just passing the 4-bit input directly to the 4-bit output for the LSD! But you can't just wire it up that way. You have to have logic that also implements the other six combinations of four input bits as described above to display 10, 11, 12, 13, 14, and 15.

So, begin to draw up your truth table. Label the first column INPUT (4 bits), label the second column MSD (1 bit), and label the third column LSD (4 bit). Under the INPUT column enter sixteen rows from 0000 to 1111. Fill in the values on each row under the remaining two columns as discussed above. Once you have a truth table you can think about creating the combinatorial logic that will implement that truth table.

So, draw up your truth table and post it here. Then we can discuss how you can implement that truth table with combinatorial logic gates. Be forewarned: it won't be pretty, but there are theorems and methods you can use to reduce the complexity.
thank you sir, you are very kind.
i will discuss that with my friends and try it. so in this case, we need add "ic logic gate" before "Input" 7447. am i right?
 

dorke

Jun 20, 2015
2,342
Joined
Jun 20, 2015
Messages
2,342
Using @dorke's block diagram in post #16 above you must have a "black box" labeled Decoder that has four inputs that represent the bits on your binary counter. The Decoder has two sets of outputs: 4-bits for the MSD (Most Significant Digit) and 4-bits for LSD (Least Significant Digit). Each of these 4-bit outputs drive a 7447 7-segment decoder/driver that will accept the BCD values and display a number on their 7-segment display.

Inside of the Decoder are combinatorial logic circuits that you have created from a truth table. For each of the sixteen possible combinations of the 4-bit input your combinatorial logic will generate the correct 4-bit binary output that the 7447 decoder/driver ICs will convert to segment drive signals for your two 7-segment displays. All you need to do is take pencil and paper in hand now and draw up the correct truth table. For each of the sixteen input combinations you will have a line in your truth table that shows the values of each of the eight outputs. There will (potentially) be eight columns associated with those sixteen rows, but as you will see, only five columns are really necessary: one column for the MSD and four columns for the LSD.

Being clever, you notice that the MSD can only be either zero or one and this only requires the lsb (least significant bit) to be sent to its 7447 to display either 0 or 1. The other three bits sent to the 7447 for the MSD are always zero, so you permanently connect those three bits to logic zero level.

You need to now look at the truth table rows that represent all sixteen input bit combinations. The only combinations that require the MSD to be one are 10, 11, 12, 13, 14, and 15 which is represented by binary value 1010, 1011, 1100, 1101, 1110, and 1111. For these six input values, your combinatorial logic must output a one and send it to the lsb of the 7447 connected to the MSD. For any other input value you send a zero to the 7447 connected to the MSD.

But you aren't done yet! For those same six input values, your combinatorial logic must output 0000, 0001, 0010, 0011, 0100, and 0101 and send these to the 7447 connected to the LSD. This completes six rows of your truth table and the combinatorial logic associated with those six rows will display the decimal number 10, 11, 12, 13, 14, and 15.

But you aren't done yet! There are ten remaining rows in your truth table that will represent binary input values of 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, and 1001 which will display as 00, 01, 02, 03, 04, 05, 06, 07, 08, and 09. Hmmm. That looks suspiciously like just passing the 4-bit input directly to the 4-bit output for the LSD! But you can't just wire it up that way. You have to have logic that also implements the other six combinations of four input bits as described above to display 10, 11, 12, 13, 14, and 15.

So, begin to draw up your truth table. Label the first column INPUT (4 bits), label the second column MSD (1 bit), and label the third column LSD (4 bit). Under the INPUT column enter sixteen rows from 0000 to 1111. Fill in the values on each row under the remaining two columns as discussed above. Once you have a truth table you can think about creating the combinatorial logic that will implement that truth table.

So, draw up your truth table and post it here. Then we can discuss how you can implement that truth table with combinatorial logic gates. Be forewarned: it won't be pretty, but there are theorems and methods you can use to reduce the complexity.

Hop ,
you have a huge heart,
I love you man!

bear and child.png
 
Top