I need some help with a project. The project wants me to create a 7-Segment display using standard logic gates, AND, OR, NOT, NAND, NOR, XOR, and XNOR. Any suggestions? The last 6 inputs on the table will be a period as the output. Help please!!!
As you can see, these types of devices are not exactly simple; however with enough thought your goal is achieveable. Just don't panic.
Note that for your non-BCD values (1010 thru 1111), you can test for input D being high AND (C or B) high - then outputs a thru g should be high (display off) but the decimal point lit.
That bottom OR gate sure has a lot of inputs. Isn't that the input for the decimal point?
Your MSB is I3, right?
Remember what I was suggesting earlier about detecting invalid BCD input?
In this case, if I3 is high, AND (I2 OR I1) are high, the decimal point should light up.
I'm also seeing a lot of "floating" inputs (ie: not connected to anything). This can cause big problems in real-world circuits, particularly with CMOS devices. I even see a 3-input AND gate with only one wired input!
Take another look at the possible inputs
Bin Dec
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
All of the decimal numbers from 0 to 9 can be displayed in a single digit.
But, 10 thru 15 require two digits - so the decimal point should then be lit.
Notice in the table that it doesn't matter what the LSB is; only if the MSB (I3) is '1', and either of I2 or I1 are also '1' should the decimal point be lit.
I'd never used Logisim before, but it seems like a good tool for teaching logic.
Here's a tip: instead of using the "input pins" labeled I0, I1, I2, I3...
Use the Clock component in the Base library.
For I0, use 1 tick low, 1 tick high.
For I1, use 2 ticks low, 2 ticks high
For I2, use 4 ticks low, 4 ticks high
For I3, use 8 ticks low, 8 ticks high.
Use Ctrl+T to tick your way through the simulation.
First make a truth table with all inputs and outputs. Note all the possible combination for the input signals and then put what value you want each output to have for each combination. Then use sum of products or product of sums to derive the boolean equation for each output and then build your circuit. If you know how to simplify it have a go as to minimize the hardware size.
OK, so if the input is 1010 through 1111, the decimal point should be ON (input high), and everything else should be OFF (all other inputs to the 7-segment display low).
You already have a truth table as far as all of the inputs, and what should be displayed.
Now you need to work up what inputs to the 7-segment display should be lit for each input.
For each 7-segment "bar", if the I3-I0 input is less than 1010, then SOMEthing should be lit up. You say you already have that part working.
Except when the decimal point is supposed to turn on. Then everything else is supposed to be off.
Why don't you try to implement the function:
DecimalPoint = I3 AND (I2 OR I1)
and go from there?