Yo hace un tiempo hice una aplicación en la cual conectaba un teclado de PC a un PIC, concretamente al archifamoso 16f84a. La verdad es que no recuerdo demasiado el protocolo ni que secuencias se tení que seguir para hacer un reset etc.... pero si requieres de ayuda a lo mejor te puedo hechar una mano. En todo caso, por internet hay un montón de información sobre este tema, es más, si buscas información sobre como montar joysticks para simuladores etc.. vas a encontrar bastante cosa.
Recuerdo que había por algun lugar unas rutinas en assembler(yo las usé
para inicializar y enviar un byte, y funcionaban perfectamente. Una cosa, te recomiendo que lo hagas en asm porque yo lo intenté hacer en C y no me rulaba. De hecho, no me funcionaba si lo hacía en asm y usaba las optimizaciones.
Pues eso...
Saludos.