Interrupt del microprocessore 8085: elenco completo (5 fonti)
L'Intel 8085 (1976) supporta **cinque pin di interrupt hardware**, ciascuno con priorità fissa, indirizzo vettore e comportamento di mascheramento. Comprenderli è essenziale per la progettazione di sistemi 8085.
Tabella riepilogo interrupt
| Interrupt | Pin | Tipo | Mascherabile? | Priorità (1=Massima) | Indirizzo vettore | Trigger |
|---|---|---|---|---|---|---|
| TRAP | Pin 6 | Non mascherabile | No | 1 | 0024H | Bordo + livello (fronte di salita, poi alto) |
| RST 7.5 | Pin 7 | Mascherabile | Sì (SIM, DI/EI) | 2 | 003CH | Fronte di salita (attivato da bordo, con latch) |
| RST 6.5 | Pin 8 | Mascherabile | Sì (SIM, DI/EI) | 3 | 0034H | Sensibile al livello (alto) |
| RST 5.5 | Pin 9 | Mascherabile | Sì (SIM, DI/EI) | 4 | 002CH | Sensibile al livello (alto) |
| INTR | Pin 10 | Mascherabile | Sì (DI/EI) | 5 (Più bassa) | Esterno (CALL) | Sensibile al livello (alto), richiede INTA |
Dettagli comportamentali chiave
TRAP (Non mascherabile, priorità massima)
- Non può essere disabilitato da `DI` o `SIM`. Solo reset o `SIM` con bit MSE cancella il suo latch.
- Utilizzato per **power-fail, watchdog, arresto di emergenza** — eventi che *devono* essere gestiti.
- Bordo+livello: deve andare alto, rimanere alto fino all'acquisizione. Previene glitch.
RST 7.5 (Attivato da bordo, con latch)
- Il fronte di salita imposta un flip-flop interno → ricordato anche se il pin va basso.
- Cancellato da: esecuzione ISR `RST 7.5`, `SIM` con bit reset R7.5, o reset del processore.
- Ideale per **tastiera, tastierino, sensori one-shot**.
RST 6.5 e RST 5.5 (Sensibili al livello)
- Devono essere tenuti alti finché l'ISR non li legge. Se cadono troppo presto, l'interrupt viene perso.
- Adatti per **condizioni continue**: "buffer pieno", "surriscaldamento", "rilevamento portante modem".
- Mascherati individualmente tramite istruzione `SIM` (usa bit dell'accumulatore).
INTR (Più basso, vettorizzato esternamente)
- Mascherabile solo tramite `DI`/`EI` (globale). Nessuna maschera individuale.
- Quando acquisito, l'8085 emette un impulso **`INTA`** → l'hardware esterno (es. 8259 PIC) posiziona un'istruzione **`CALL` (3 byte)** o **`RST n`** sul bus dati.
- Consente **fonti di interrupt illimitate** tramite 8259 PIC a cascata.
Interrupt software (istruzioni RST n)
Separate dai pin hardware, l'8085 ha **8 interrupt software**: `RST 0` attraverso `RST 7` (opcode C7, CF, D7, DF, E7, EF, F7, FF). Si comportano come `CALL` a vettori fissi (0000H, 0008H... 0038H) ma sono **non mascherabili** e **non prioritari** — eseguono immediatamente. Utilizzati per breakpoint, syscall, ingresso veloce ISR.
Flusso abilita/disabilita interrupt
EI ; Abilita tutti i mascherabili (imposta FF INTE) DI ; Disabilita tutti i mascherabili (cancella FF INTE) SIM ; Imposta maschera interrupt (usa Accumulatore) ; Bit 3 Acc = maschera RST 7.5 (1=maschera) ; Bit 4 Acc = maschera RST 6.5 ; Bit 5 Acc = maschera RST 5.5 ; Bit 6 Acc = Reset latch RST 7.5 ; Bit 7 Acc = Dati output seriale (SOD) RIM ; Leggi maschera interrupt (restituisce pending + stato maschera in Acc) Consigli pratici di progettazione
- Collega **TRAP** al rilevamento power-fail (brownout) + circuito di mantenimento supercap.
- Usa **RST 7.5** per pulsanti del pannello frontale (debounced).
- Usa **RST 6.5 / 5.5** per UART (8251) Rx/Tx pronto, o tick timer (8253/8254).
- Usa **INTR + 8259 PIC** se servono più di 5 fonti (la maggior parte dei sistemi reali).
- Sempre `EI` alla fine dell'ISR (o `RET` poppa PSW con INTE=1).
In sintesi: Cinque interrupt hardware, priorità fissa, tipi di trigger misti. Padroneggia la danza `SIM`/`RIM` e padroneggi il sistema di interrupt dell'8085.