Does all of the available pins have to be used on the shift register? ie/ Cascading two 8 bit 165s to input only 12 of the available 16 bits. (12 push-buttons) And what if the push-buttons are not always powered. Obviously I'm quite new to the hobby. Tyro Novice...
Does all of the available pins have to be used on the shift register?
No
If you have not got a use for the pins it is best to connect them to ground through a 1K resistor.
Grumpy_Mike:
If you have not got a use for the pins it is best to connect them to ground through a 1K resistor.
Not wanting to hijack this thread but is there a reason why one does not wire unused inputs directly to ground (or Vcc)?
No electrical reason on a CMOS shift register input, but on an Arduino, connecting "unused" pins to ground or Vcc means that if the code accidentally (but that could never happen, would it?) set that pin to an output in the opposite polarity, you would be overloading the pin driver.
(There were reasons not to tie inputs directly HIGH in the original 7400 logic series, but 74 and 74LS series are obsolete and it makes no sense whatever to use them in new designs or for replacement.)
OK, there is a reason and a very practical one. Tying them with a resistor means that if you later need to use that input, you just de-solder the resistor. So do not use resistor arrays for this purpose!
one. Tying them with a resistor means that if you later need to use that input, you just de-solder the resistor
If you use a 10K resistor then you can connect an input directly to the resistor / input with no unsoldering needed.
Grumpy_Mike:
If you use a 10K resistor then you can connect an input directly to the resistor / input with no unsoldering needed.
And if you use a pull-up to 5 V - as there should be on all of the button inputs, because the buttons should wire to ground - you can just add more buttons as needed.
In this case, do use 10k 8-pack resistor arrays. And provide PCB pads for the extra connections.