Engineering Multiplexer Voting Circuit - 74LS151

AI Thread Summary
The discussion revolves around designing a voting circuit using the 74LS151 multiplexer to tally votes from four shareholders, each controlling a switch for their shares. The goal is to display the total number of shares voting YES on a 7-segment display, ensuring that specific outputs like 0 and 10 are handled correctly. The user faced challenges with certain outputs, particularly when the display needed to show 0 for ten YES votes and blank when all votes are NO. After troubleshooting, they developed a truth table and circuit diagram to meet the requirements, seeking confirmation on whether they correctly implemented the MSB designation for the W input. The conversation highlights the complexities of using multiplexers in logic design and the need for precise output handling.
Foilist
Messages
9
Reaction score
1

Homework Statement



LOGIC DESIGN USING MSI COMPONENTS

A small corporation has 10 shares of stock, and each share entitles its owner to one vote at a stockholder’s meeting. The 10 shares of stock are owned by four people as follows:

Mr.W; 1 share, Mr. X; 2 shares, Mr. Y; 3 shares, Mrs. Z; 4 shares.

Each of these persons has a switch to close when voting yes and to open when voting no for all his/her shares (one switch for each person).

Task: It is necessary to design a circuit (using MSI components ONLY, a 7-segment display and some inverters if required) that displays the total number of shares that vote YES for each measure.

If all shares vote NO for a measure, the display should be blank. If ten shares vote YES for a measure, the display should be 0, otherwise, the display shows a decimal number equal to the number of shares that vote YES.

Use 74151 multiplexers to design the combinational logic that converts the input from stockowners (ON-YES, OFF-NO) switches into the BCD digit for the 7-segment decoder/driver. Choose W to be the MSB, X, Y, Z to be selection lines of the MUX’s.


The Attempt at a Solution



The attached circuit from Circuitmaker shows how I have wired the multiplexers, however I am stuck! I can get the correct output for most cases except when the 1 is involved in the output - 10 (needs to display 0), 8 (4 + 3 + 1), 6 (3 + 2 + 1), 4 (3 + 1) and 0 (needs to set an illegal code on 4511) don't work. I can see why they don't work, but not how to fix it. I'm going to have to look at inverters, but haven't got a clue where to start, and have been unable to find anything I could understand re: Karnaugh maps. Mature student, thrown back in at the deep end on this question (last one on the assignment), with no tutorials on multiplexers whatsoever! Any help appreciated.
 
Last edited:
Physics news on Phys.org
Can you show us a table of outputs based on the inputs? You have part of it in your attempt at the solution... Something like:

W X Y Z Output (binary to display driver IC)
0 0 0 0 (blank)
0 0 0 1 001
etc.


Then you can look to see how you can form the output binary based on the input selectors. You may end up using some of the WXYZ input terms into the mux inputs, BTW, instead of just hard wiring them high or low... (I don't know offhand if that is part of the solution)
 
Also, how do you actually blank the display? Is that one of the input codes, or do you need to disable it?
 
Thanks for the info. I'll draw up the table today. As far as blanking the display goes, it will be a special code - the 4511 driver blanks in the case on an illegal BCD code, so I have to figure out how to convert an all 0 input to a value between A - F.
 
Current Outputs

4 Share 3 Shares 2 Shares 1 Share BCD Output
0 0 0 0 0000 - to be an illegal code
0 0 0 1 0001 - correct
0 0 1 0 0010 - correct
0 0 1 1 0011 - correct
0 1 0 0 0011 - correct
0 1 0 1 0011 - incorrect
0 1 1 0 0101 - correct
0 1 1 1 0101 - incorrect
1 0 0 0 0100 - correct
1 0 0 1 1001 - correct
1 0 1 0 0110 - correct
1 0 1 1 0111 - correct
1 1 0 0 0111 - correct
1 1 0 1 0111 - incorrect
1 1 1 0 1001 - correct
1 1 1 1 1001 - incorrect - to display 0000
 
Think I've cracked it .. need confirmation!

Think I have solved the problem, as now I can get the outputs required. However, grateful if someone could tell me if I have met the requirements of "W to be the MSB" in the question? Rumour amongst class is that the tutor has hinted that this means the W input should be used to feed the ENABLE input of the 74151, in which case I'm stuffed again!

Truth table below, new circuit diagram attached.

4321 BCD Output Correct Value?
ZYXW 8421 Display
0000 1110 Blank Yes
0001 0001 1 Yes
0010 0010 2 Yes
0011 0011 3 Yes
0100 0011 3 Yes
0101 0100 4 Yes
0110 0101 5 Yes
0111 0110 6 Yes
1000 0100 4 Yes
1001 0101 5 Yes
1010 0110 6 Yes
1011 0111 7 Yes
1100 0111 7 Yes
1101 1000 8 Yes
1110 1001 9 Yes
1111 0000 0 Yes
 
Last edited:
  • Like
Likes bobodarlene


Hi, have you completed this circuit. If so how did you implement the circuit?

Thanks
 
Back
Top