An application note from Microchip: Interfacing a 4×4 Matrix keypad with an 8-Bit GPIO expander
This application note discusses interfacing a 4×4 matrix keypad with MCP23X08 8-Bit GPIO Expander. This application note references the MCP23X08/17 GPIO Expander Keypad/LCD Demo Board (GPIODM-KPLCD). GPIO Expanders provide easy I/O expansion using standard serial interfaces such as I2C and SPI. They are especially useful in applications where pin count is limited on the microcontroller unit (MCU) or if remote inputs / outputs (I/O’s) are needed. It is best to think of an 8-bit GPIO Expander like adding another 8-bit wide digital port to the MCU. This application note does not detail all of the features of the MCP23X08. Refer to the MCP23008/MCP23S08 Data Sheet, “8-Bit I/O Expander with Serial Interface” (DS21919) for more information.
Interfacing a 4×4 Matrix keypad with an 8-Bit GPIO expander - [Link]
A microcontroller comes with a limited number of input/output lines. If you need an additional 8-bit port in your project without replacing the microcontroller, MCO23008 might be a good choice. It is an I2C compatible port expander and provide eight bidirectional I/O lines for I2C bus. The following tutorial describes the functioning of MCP23008 and its interface with a 8-pin microcontroller like PIC12F683.
Expand the I/O capability of your microcontroller with MCP23008 – [Link]