Do Shift Registers, Multiplexers and Demultiplexers have any kind of built in pull-up or pull-down circuitry for their input pins (like the Arduino) ? Do any makes or models work differently in this regard? As for the Arduino, is this this function built into the Atmel chip, or is it external to the chip? I am primarily using the Micro, Leonardo, or Uno in my prototyping.
I am making a somewhat simple USB Remote Control, and the only task the Arduino has is to forward button presses to the host computer. All this I have worked out pretty well. I've learned how to use external pull-up circuits with multiple buttons. I also understand that the Arduino a has built in circuitry to handle this for me, and that seems to work too. Using built in circuits will greatly simplify my design.
But I would like to add as many buttons as possible, which means using some form of Shift In register, and I would like to know if I will have to revert to making my own external pull up/down circuits just to make my buttons work.
It also seems that making such a "button board" should be a well beaten path. Is there any design patterns I should be using to simplify my designs? I know there are prefabricated boards with multiple micro switches built in, but I want to build a board that can hook up to an arbitrary # of buttons of arbitrary type (Arcade Buttons for example).