Electronic – Multiple pulses from single button press

buttondigital-logictiming

I am working with a 74HC193 binary up/down counter, and am trying to set up a button to increment or decrement it. The procedure to increment a single step as I understand it is:

  1. Set pin 4 high
  2. Wait for change to propagate (30ns or more)
  3. Set Pin 5 high
  4. Wait again
  5. Set both pins low again.

Since it is a button, I am not worried about speed in any way. I would be perfectly happy to have a 2ms pulse followed by a 1ms pulse 1ms later. In my research online, the most promising way to make a pulse is a monostable 555 circuit. I was thinking two of those wth different T values might work, but I can't tell from that page if I can put it on a delay. That seems like a fairly decent debouncing mechanism as well, but I would like a little more control, like a 2ms pulse but 500ms before another input is accepted. Is that possible?

If it is too hard to get two pulses with the proper timing, I suppose I could just hold the count down line high and pulse the count up line once, but that removes my ability to have an additional button to count down.

Best Answer

I think you are making things more difficult for yourself than they really are. The procedure for a count up is:

  • CPU and CPD are high (system in rest)
  • CPU is make low
  • wait some minmum time
  • CPU is made high again (system in rest)

I don't fully understand what you mean with "and am trying to set up a button to increment or decrement it": one button to count up, another to count down? That is easy, just debounce the buttons (a pair of 555, or one 556, would do), and feed the signal (must be high in rest!) to the CPU and CPD inputs.

If you want to have a button that selects the function (up or down) of a count button the circuit is a little bit more complex. I think there are other counter chips that have a select and clock input insetad of two clock inputs, which would be easier in this case.