Comment fonctionnent les claviers d’ordinateur ?


Je vais répondre pour le clavier du PC. À l'intérieur du clavier se trouve un microprocesseur - à l'origine un 8048, aujourd'hui il peut être n'importe quoi. Les touches sont des contacts de commutateur disposés dans une matrice X-Y, et le processeur scanne constamment cette matrice, maintenant une carte des touches fermées et ouvertes.

Quand il détecte une nouvelle touche enfoncée, il envoie un code série au PC. Pour la plupart des touches, c'est un seul octet, mais pour les touches de fonction et quelques autres, c'est un code de 2 octets. Lorsqu'il détecte le relâchement d'une touche qui était précédemment enfoncée, il envoie le même code, mais avec un octet supplémentaire 0xF0. Le PC hôte capture ces codes entrants et les utilise pour maintenir sa propre carte des touches qui sont en haut et en bas.


Notez que ces codes ne correspondent pas encore à des lettres mais à des positions X-Y des touches. Le PC hôte les consulte alors dans la page de codes, qui comporte un tableau indiquant quels caractères ASCII correspondent à quelles positions de touches, ce qui dépend à son tour du pays dans lequel vous'êtes et de la langue que vous parlez. Le PC écrit ensuite le code ASCII de chaque nouvelle touche 'down&apos ; dans une mémoire tampon où il peut être récupéré par une application.


Voici quelques touches et codes de touches typiques :
'A&apos ; - faire le code 0x1C ; break code oxF0,0x1C
'5&apos ; - faire le code 0x2E ; break code 0xF0, 0x2E
F10 - faire le code 0xE0, 0x74 ; break code 0x0E, 0xF0, 0x74
Commande droite - faire le code 0xE0, 0x14 ; break code 0xE0, 0xF0, 0x14

Notez que lorsque plusieurs touches ont la même fonction - comme le '5&apos ; sur le clavier principal et le '5&apos ; sur le pavé numérique, ou les touches shift droite et gauche - chacune a ses propres codes make-break spécifiques afin que le PC puisse savoir laquelle est pressée. Lorsque vous appuyez sur shift-5 pour un signe '%&apos ;, le clavier envoie toujours le code 0x2E, mais dans la carte du PC's, il voit que le shift est abaissé et choisit le caractère décalé dans la page de code.