O Intel 8085 inclui dois registradores contador/timer 8-bit (T0 e T1) acessíveis via pinos SOD/SID e interrupções RST 5.5 / RST 6.5.
Registradores Contador
- T0 (RST 5.5): Conta bordas de descida no pino SOD (pino 4). Máx. 255 eventos.
- T1 (RST 6.5): Conta bordas de descida no pino SID (pino 5). Máx. 255 eventos.
- Habilitados via instrução
SIM (Set Interrupt Mask).
Gerando Atraso de Tempo
Como o 8085 não tem timer IC dedicado, atrasos são criados queimando ciclos CPU:
; Atraso 1 segundo @ 3 MHz (1 µs por T-state)
MVI A, 0FFH ; 7 T-states
MOV C, A ; 4
LXI D, 0000H ; 10
LOOP: DCX D ; 6
MOV A, D ; 4
ORA C ; 4
JNZ LOOP ; 10/7
; Total ≈ 3.000.000 T-states = 1 s
Lógica Fluxograma
- Carregue contador loop externo (DE).
- Decremente DE cada iteração interna.
- Quando D=0 e E=0, ORA C seta flag Z → sai.
- Calibre valor DE para frequência alvo (use NOPs para ajuste fino).
Melhores Alternativas
- 8253/8254 PIT: Programmable Interval Timer — atrasos hardware, libera CPU.
- 8085A-2 (5 MHz) / 8085AH (6 MHz): Ajuste contadores proporcionalmente.
- Modernos: Use 8051/AVR/ARM com timers hardware.