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.
For more detail: Interfacing a 4×4 Matrix keypad with an 8-Bit GPIO expander