Interface Hardware: Teclado PS/2 para 8086
O 8086 não tem controlador de teclado embutido. Interface típica estilo PC/AT usa controlador de teclado externo (8042 / 8742 / 82C50) e controlador de interrupção (8259A).
Componentes do Diagrama de Blocos
- Teclado PS/2 — Envia scan codes serialmente (linhas clock + data).
- Controlador de Teclado (KBC) — microcontrolador 8042/8742
- Recebe stream serial, converte para scan codes.
- Gerencia LEDs do teclado (Num/Caps/Scroll Lock).
- Interface com sistema via barramento dados 8-bit (D0–D7) + 2 linhas controle (RD, WR) + endereço (A0) + IRQ1.
- Porta 60h = Dados, Porta 64h = Status/Comando.
- Controlador de Interrupção — 8259A PIC
- IRQ1 (teclado) → INT request para 8086 INTR.
- Cascata se segundo 8259A (AT) para IRQ8–15.
- CPU 8086
- Responde a INTR, roda ciclos INTA, lê vetor, salta para ISR.
- ISR lê scan code da porta 60h do KBC.
Conexões de Barramento
| Sinal | Lado 8086 | KBC (8042) |
| Dados | AD0–AD7 (desmultiplexado) | D0–D7 |
| Endereço | A0 (via latch) | A0 (seleciona Dados vs Status/Comando) |
| Controle | IORC, IOWC (do 8288) | RD, WR |
| Interrupção | INTR (via 8259A) | IRQ1 (para 8259A) |
Fluxo de Software
- KBC recebe scan code → asserta IRQ1.
- 8259A asserta INTR para 8086.
- 8086 roda sequência INTA, obtém vetor 09h (IRQ1).
- ISR (handler INT 09h) lê Porta 60h → obtém scan code.
- ISR processa: set flags break/make, trata teclas especiais (Ctrl, Alt, Shift), buffer ASCII/keycode para BIOS/apps.
- ISR escreve na Porta 64h (comando) se necessário (ex.: set LEDs).
Nota
PCs modernos integram KBC em Super I/O (ITE, Nuvoton, ENE) ou EC (Embedded Controller). Sistemas 8086 usavam 8042/8259A discretos.