Investigating the keyboard interface
I’m sure you are familiar with computer keyboards as a user, but perhaps you don’t know how keyboards are physically implemented.
Keyboards consist of a matrix of switches. When you depress a key, you close a circuit. A keyboard controller activates one line at a time and checks to see which lines are connected, which will identify a unique key (assuming only one key is pressed). It will also detect when a key is released:

Figure 11.1: Keyboard matrix
The keyboard controller will apply a voltage across each input one at a time in our preceding example: in0, in1, in2, in3, and so on. With the voltage applied, it will monitor the outputs one at a time, out0, out1, out2, out3, and so on, to identify whether any key is pressed. In Figure 11.1, when the controller scans input 2, and the K key is depressed, output 2 will be active high.
Modern keyboards are a bit more complex than this, especially gaming keyboards...