8254 programmi PIT campione

February 11

8254 programmi PIT campione


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.

Dividere un segnale di ingresso da 64536 e anche 36

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!! -

Inizializzare il valore del contatore da 0 a 30d

MOV DX, COUNTER0

MOV AL, 30

OUT DX, AL

Inizializzare il valore del contatore da 0 a 256D

MOV DX, COUNTER0

MOV AL, 0

OUT DX, AL

Inizializzare il valore del contatore da 0 a 1010D

MOV DX, COUNTER0

MOV AX, 1010

DX OUT, AL; LSB

MOV AL, AH

OUT DX, AL; MSB

Inizializzare il 8254

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