El interface de teclado del
PC se ocupa de rastrear continuamente el estado de todas las teclas, para detectar si ha ocurrido algún cambio de estado en cualquiera de ellas. De ser así, determina si lo que ha ocurrido es una pulsación o una liberación de tecla, y que tecla ha sido la que ha cambiado. Cada una de las teclas tiene asociado un numero diferente para que el controlador de teclado pueda reconocerlas, este numero tiene 7 bits y se llama scancode y depende únicamente de la posición que la tecla ocupa en le teclado. Cuando una tecla ha sido pulsada o liberada, el interface de teclado guarda el scancode de ésta en una pequeña memoria interna. Además de esta memoria interna, el teclado tiene algunos registros,
dos de ellos son accesibles desde el exterior. Registro de Estado. Registro de Datos. En el IBM-PC y compatibles, la gestión de las interrupciones hardware las hace un circuito especializado llamado PIC. Este circuito recibe las peticiones de interrupción de todos los periféricos del sistema y se las pasa de una en una a la CPU, en la arquitectura PC, el interface de teclado está conectado a la línea llamada IRQ1 del PIC y es identificado ante la CPU como el vector 9. Cada vez que se pulse o libere una tecla en el PC, se produce una interrupción hardware, con vector 9. En definitiva existen dos módulos software encargados de la entrada por teclado, uno de ellos se encarga de leer una tecla, convertirla en ASCII y guardarla en un buffer en memoria; el otro se encarga de examinar el buffer y retornar su estado cada vez que el usuario lo solicite.Ambas rutinas están implementadas el la BIOS del ordenador, la primera de ellas de activa mediante una interrupción hardware generada por el interface del teclado ( int 9 ), que pasa a la CPU a través del PIC. La segunda es llamada por los programas de usuario mediante la ejecución de la interrupción software int 16h.
Fuente: www.resumiendo.com.ar