2
\$\begingroup\$

schematic

simulate this circuit – Schematic created using CircuitLab

I'm using an 8-bit shift register on a very basic application for learning purposes, I have three buttons connected to SER, RCLK & SRCLK pins, OE & SRCLR are LOW, reverse output is empty since I'm only working with one chip, and the 8 outputs are connected to LEDs.

The behavior is kind of unexplainable, I expected that pressing the clock button while the SER button is HIGH/LOW will define the input data, and then the latch button will display the output on the LEDs, but somehow the three buttons have the same behavior, they either turn all the LEDs on or nothing happens.

I know I should probably show what I'm working with, but wires are everywhere and I doubt that would be helpful.

\$\endgroup\$
4
  • 2
    \$\begingroup\$ 1. Show your schematic diagram. There's one built in to the question editor if you need it. 2. Show (a) photo(s) of your circuit as you have built it. \$\endgroup\$
    – JRE
    Nov 28, 2019 at 12:26
  • \$\begingroup\$ Please can you edit your question and greatly improve it. Show your work and findings so far in considerable detail with a schematic. The schematic tool here is easy to use. The better the quality of question, the better the quality of the answers you will attract. \$\endgroup\$
    – TonyM
    Nov 28, 2019 at 13:02
  • \$\begingroup\$ @JRE I added the schematic, but I don't think a photo of the circuit is going to be of any use because of the mess caused by long wires \$\endgroup\$ Nov 28, 2019 at 14:23
  • \$\begingroup\$ @TonyM Thank you for your reply as well, I added the schematic. \$\endgroup\$ Nov 28, 2019 at 14:24

2 Answers 2

6
\$\begingroup\$

Probably your switches are actually normally open (you chose the normally closed switch symbol), also there are a bunch of shorts between Vcc and SER, OUT4 and SW3, for example, that you probably do not intend.

You need pull-down resistors to get predictable logic levels at the chip. Open on an HC logic chip input just means it can float around to some unpredictable state. Try 10K or 4.7K to ground.

schematic

simulate this circuit – Schematic created using CircuitLab

You should have resistors in series with each LED to limit the current. 1K is fine. You should have a bypass capacitor (eg. 100nF) across the chip power supply.

There is a more subtle issue- the mechanical switches "bounce" and you may (or may not) get many clock edges for a single press, so even with the resistors and bypass cap this will probably do strange-looking things, at least some of the time.

Search for debouncing circuits to figure out how to add that. One of the simpler ways, assuming a SPST-NO switch, is to use a Schmitt trigger gate such as the 74HC14.

schematic

simulate this circuit

You only need the debouncing on the CLOCK input, since you will only send a clock pulse when the data input is stable, and since multiple edges on the LATCH input will just transfer the same shift register data again.

\$\endgroup\$
1
\$\begingroup\$

I think that your switches bounce. You may think that you do a single press, but the logic actually sees many pulses.

RC elements can help if you want to keep the circuit as simple as possible. Example: https://www.allaboutcircuits.com/technical-articles/switch-bounce-how-to-deal-with-it/

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.