Circuit d'interface clavier pour microprocesseur 8086
Interface matériel : Clavier PS/2 vers 8086
Le 8086 n'a pas de contrôleur clavier intégré. Une interface type PC/AT utilise un contrôleur clavier externe (8042 / 8742 / 82C50) et un contrôleur d'interruption (8259A).
Composants du diagramme bloc
- Clavier PS/2 — Envoie codes scan série (lignes horloge + données).
- Contrôleur clavier (KBC) — Microcontrôleur 8042/8742
- Reçoit flux série, convertit en codes scan.
- Gère LEDs clavier (Verr Num/Maj/Scroll Lock).
- Interface système via bus 8 bits (D0–D7) + 2 lignes contrôle (RD, WR) + adresse (A0) + IRQ1.
- Port 60h = Données, Port 64h = Statut/Commande.
- Contrôleur interruption — 8259A PIC
- IRQ1 (clavier) → Demande INT vers 8086 INTR.
- En cascade si second 8259A (AT) pour IRQ8–15.
- CPU 8086
- Répond à INTR, exécute cycles INTA, lit vecteur, saute vers ISR.
- ISR lit code scan depuis port KBC 60h.
Connexions bus
| Signal | Côté 8086 | KBC (8042) |
|---|---|---|
| Données | AD0–AD7 (démultiplexé) | D0–D7 |
| Adresse | A0 (via verrou) | A0 (sélection Données vs Statut/Commande) |
| Contrôle | IORC, IOWC (depuis 8288) | RD, WR |
| Interruption | INTR (via 8259A) | IRQ1 (vers 8259A) |
Flux logiciel
- KBC reçoit code scan → assert IRQ1.
- 8259A assert INTR vers 8086.
- 8086 exécute séquence INTA, obtient vecteur 09h (IRQ1).
- ISR (gestionnaire INT 09h) lit Port 60h → obtient code scan.
- ISR traite : drapeaux make/break, gère touches spéciales (Ctrl, Alt, Shift), met en tampon ASCII/keycode pour BIOS/applications.
- ISR écrit Port 64h (commande) si nécessaire (ex. allumer LEDs).
Note
PCs modernes intègrent KBC dans Super I/O (ITE, Nuvoton, ENE) ou EC (Embedded Controller). Systèmes 8086 utilisaient 8042/8259A discrets.
