8254 PIT Sample Programs
Den 8254 Programmable Interval Timer blev første gang brugt i IBM PC i 1981 ifølge Gary Barr på Concept Engineering. I IBM-stil computere, det drives som systemets ur. Med forbedringer i elektroniske komponenter, har funktioner chipset blevet kombineret i én eller to LSI (Large Scale Integrated) chips. Selvom 8254 Programmerbar Interval Timer oprindeligt var designet og distribueret til de første IBM-pc'er, er det stadig til rådighed i dag som en stand-alone integreret kredsløb.
Opdel et indgangssignal med 64.536 og også 36
Følgende kode programmer 8254 PIT (Programmable Interval Timer) at opdele et indgangssignal med 64.536 producere en 50 procent arbejdscyklus firkantet bølge. Det skiller også det samme indgangssignal ved 36 fremstilling af en 50 procent arbejdscyklus firkantbølge. PIT_C0_M3 .... equ .... 36h; 8253 PIT timer kanal 0 mode 3 PIT_C1_M3 .... equ .... 77H, 8253 PIT timer kanal 1 mode 3 Timer0 .... equ .... 40h. ..; 8254 kanal / tæller nul (0) port adresse TIMER1 .... equ .... 41T ...; 8254 kanal / tæller én (1) port adresse TIMER2 .... equ .... 42h. ..; 8254 kanal / tæller to (2) port adresse (n / a) TIMER_MODE .... equ .... 43T ...; 8254 PIT control_port for mode-TICS .... equ .... 36H. ...; 8254 værdi for tæller 1 - BCD værdi på 36 decimal. mov ... al, PIT_C0_M3 ....; indlæsningstid 0 modus værdi ud ... TIMER_MODE, al ...; sende den til 8254-tilstand reg. - Port 43H xor ... al, al ...; nul ud al; dvs. modværdien af 00 ud ... Timer0, al ..; sende LSB af div. tælle, så mov ... al, tics ...; indlæse tællerværdien (36 decimal i BCD format) ud ... TIMER1, al ....; sende LSB modværdi xor ... al, al .. ..; nul MSB ou ... TIMER1, al ...; sende tæller 1 MSB værdi Udført !! -
Initialiser værdien af Counter 0 til 30D
MOVDX, COUNTER0 nelse, 30 ud DX, AL
Initialiser værdien af Counter 0 til 256d
MOVDX, COUNTER0 nelse, 0 ud DX, AL
Initialiser værdien af Counter 0 til 1010D
MOVDX, COUNTER0 MOVAX, 1010 OUT DX, AL, LSB nelse, AH OUT DX, AL; MSB
Initialiser den 8254
Sæt Counter0 at anerkende den mindst betydende byte alene. Sæt 8254 at producere en firkantet bølge og indstille tælleren til binære (16 bit). MOVDX, TCW nelse, 00010110B; Kontrolord OUT DX, AL; MOVDX, COUNTER0 nelse, 4H; LSB OUT DX, AL