February 11
Il 8254 Programmable Interval Timer E 'stato usato per la prima nel PC IBM nel 1981, secondo Gary Barr a Concept Engineering. Nei computer in stile IBM, ha operato come l'orologio di sistema. Con i miglioramenti nei componenti elettronici, le funzioni del chipset sono stati combinati in uno o due LSI chip (Large Scale Integrated). Anche se il 8254 Programmable Interval Timer è stato originariamente progettato e distribuito per i primi PC IBM, è ancora oggi disponibile come un circuito autonomo integrato.
I seguenti programmi di codice del 8254 PIT (Programmable Interval Timer) per dividere un segnale di ingresso da 64536 producendo un 50 per cento duty cycle dell'onda quadra. Si divide anche lo stesso segnale di ingresso da 36 producendo un 50 per cento duty cycle dell'onda quadra.
PIT_C0_M3 .... equ .... 36h; 8253 PIT canale timer 0 modalità 3
PIT_C1_M3 .... equ .... 77h; 8253 PIT canale timer 1 modalità 3
TIMER0 .... equ .... 40h ...; 8254 canali / contatore a zero (0) indirizzo della porta
TIMER1 .... equ .... 41h ...; 8254 canali / contatore un (1) indirizzo della porta
TIMER2 .... equ .... 42h ...; 8254 canali / contatore a due (2) indirizzo della porta (n / a)
TIMER_MODE .... equ .... 43h ...; 8254 PIT control_port per la modalità
TICS .... equ .... 36H ....; 8254 valore per il contatore 1 - valore BCD di 36 decimali.
mov ... al, PIT_C0_M3 ....; valore modalità time0 carico
fuori ... TIMER_MODE, al ..., inviarlo a 8254 modo REG. - 43H porto
XOR ... al, al ...; zero fuori al; vale a dire il valore del contatore di 00
fuori ... TIMER0, al ..; inviare LSB di div. contare, poi
mov ... al, tic ...; caricare il valore del contatore (36 decimale nel formato BCD)
fuori ... TIMER1, al ....; inviare LSB controvalore
XOR ... al, al ....; lo zero MSB
ou ... TIMER1, al ...; inviare il contatore 1 valore MSB
;Fatto!! -
MOV DX, COUNTER0
MOV AL, 30
OUT DX, AL
MOV DX, COUNTER0
MOV AL, 0
OUT DX, AL
MOV DX, COUNTER0
MOV AX, 1010
DX OUT, AL; LSB
MOV AL, AH
OUT DX, AL; MSB
Impostare COUNTER0 di riconoscere solo il byte meno significativo. Impostare il 8254 per produrre un'onda quadra e impostare il contatore di binari (16 bit).
MOV DX, TCW
MOV AL, 00010110B; Parola di controllo
OUT DX, AL
;
MOV DX, COUNTER0
MOV AL, 4H; LSB
OUT DX, AL