
No addition (in the usual sense) is being performed - simply a look-up over several inputs.An adder is a digital logic circuit in electronics that is extensively used for the addition of numbers. Do this 3 times and you'll get a sum of 300, which is more than the 255 which an 8-bit binary can express.Īnd this is not, technically, a ripple adder. Furthermore, you'll need to very careful about out-of-bound error checking. The way you've done it, you can only handle 3 successive button pushes.

Yes, you can do it this way, but be aware that coming up with your EPROM map may be a real pain. In thinking about it, objection 9 is wrong. Again, the inverter MUST be a Schmitt trigger.

The diode speeds up discharge when the power turns off and helps protect the inverter. After the capacitor charges up, the MR goes high. When power is applied, the capacitor is at low voltage, so the MR is low. This is called a Power On Reset (POR) circuit. Note that you MUST use a Schmitt trigger if you want clean clock edges. The first RC network will give about a 5 msec delay, which will (hopefully) allow switch bounce to settle out, and the second will give a similar delay before updating the output. Simulate this circuit – Schematic created using CircuitLab So the short version is that this just won't work, for reasons large and small.ĮDIT - Your clock problems can be dealt with fairly simply. Similar issues exist for all the other buttons as well. Another push will produce 110, which is 11, and another push will produce 111, which is 111. Pushing E9 (assuming objections 1,4,5,6,and 8 have been addressed) will produce 100, which is 1. I assume that it is supposed to represent 1.
Logicworks rc circuit serial#
Serial shifts are not the same as addition. Apparently, you want every push of a button to add the button's value, and that is just not going to happen. If you don't drive an edge to this, the outputs will never change.ĩ) Those are the little things. This is the clock which transfers the internal shift register to the outputs. As a result, when you turn on power, the outputs can be in any state they want, rather than the all-zeros I think you're expecting.Ĩ) SH/CP is not connected anywhere. If you don't do this, you will get the most amazing problems.ħ) MR has not been connected anywhere. The very first rule of CMOS logic is: Thou Shalt Not Leave Inputs Floating. Not good.Ħ) You have left many inputs floating.

This means that it's possible that for a particular switch closing, the ST/CP may activate a few nsec before the input goes high, and this will cause the 595 to act as if it has been activated with a zero input. If this happens, the switch will open and close several times over a period of microseconds to milliseconds, and the 595 may well detect some of those repeats.ĥ) At the same time, since the logic works so fast, details of wiring may cause some inputs to respond faster than others. What you don't realize is that, depending on switch construction, it's entirely possible that the two contacts will physically bounce apart when they first hit each other. You press a button and two pieces of metal are pushed together. To display ANY number from 0 - 999 (which I think is what you want, but you haven't stated this clearly), you need 12 LEDs.Ĥ) You have not debounced your inputs. This will only allow a maximum display of 0 - 299. Or do you want a binary input? You only have 8 outputs. This only allows inputs from 0 to 399, assuming BCD input. Assuming you want this to be a "200", it will, instead, introduce a zero while at the same time shifting everything.ģ) You only have 10 inputs. If you don't do that, an undriven input will not be guaranteed to be at any particular voltage, at least not for HC logic.Ģ) Your E0 switch is not connected to any input except ST/CP. However, you need pulldown resistors (1k to 10k) at each input. I'm not sure if I can cover them all.ġ) You are using diode logic. This has, well, it has a whole bunch of problems.
