Contatori e Ritardi di Tempo nel Microprocessore 8085: Guida alla Programmazione
L'Intel 8085 include due registri contatore/timer 8-bit (T0 e T1) accessibili tramite i pin SOD/SID e gli interrupt RST 5.5 / RST 6.5.
Registri Contatore
- T0 (RST 5.5): Conta fronti di discesa sul pin SOD (pin 4). Max 255 eventi.
- T1 (RST 6.5): Conta fronti di discesa sul pin SID (pin 5). Max 255 eventi.
- Abilitati tramite istruzione
SIM(Set Interrupt Mask).
Generare un Ritardo di Tempo
Poiché l'8085 non ha un IC timer dedicato, i ritardi sono creati bruciando cicli CPU:
; Ritardo 1 secondo @ 3 MHz (1 µs per T-state) MVI A, 0FFH ; 7 T-stati MOV C, A ; 4 LXI D, 0000H ; 10 LOOP: DCX D ; 6 MOV A, D ; 4 ORA C ; 4 JNZ LOOP ; 10/7 ; Totale ≈ 3.000.000 T-stati = 1 s Logica Diagramma di Flusso
- Carica contatore ciclo esterno (DE).
- Decrementa DE ad ogni iterazione interna.
- Quando D=0 e E=0, ORA C imposta flag Z → esci.
- Calibra valore DE per frequenza target (usa NOP per fine tuning).
Migliori Alternative
- 8253/8254 PIT: Programmable Interval Timer – ritardi hardware, libera CPU.
- 8085A-2 (5 MHz) / 8085AH (6 MHz): Regola conteggi loop proporzionalmente.
- Moderno: Usa 8051/AVR/ARM con timer hardware.