De 8254 Programmable Interval Timer werd voor het eerst gebruikt in de IBM PC in 1981 volgens Gary Barr bij Concept Engineering. In IBM - stijl computers , het actief als de systeemklok . Met verbeteringen in elektronische componenten , zijn de functies van de chipset zijn samengevoegd tot een of twee LSI ( Large Scale Integrated ) chips . Hoewel de 8254 Programmable Interval Timer is oorspronkelijk ontworpen en gedistribueerd voor de eerste IBM PC's , het is nog steeds vandaag beschikbaar als stand - alone geïntegreerde schakeling . Verdeel een Input Signal door 64536 en ook 36 De volgende code 's van de 8254 PIT ( Programmable Interval Timer ) om een ingangssignaal door 64.536 produceren van een 50 procent duty cycle blokgolf verdelen . Het verdeelt ook hetzelfde ingangssignaal met 36 produceren van een 50 procent duty cycle blokgolf PIT_C0_M3 .... ap .... 36h ; . 8253 PIT timer kanaal 0 -stand 3 PIT_C1_M3 .... ap .... 77h ; 8253 PIT kanaals timer 1 mode 3 timer0 .... ap .... 40h ... ; 8254 kanalen /teller op nul ( 0 ) poort adres < br > TIMER1 .... ap .... 41h ... ; 8254 kanalen /teller een (1 ) poort adres TIMER2 .... ap .... 42h ... ; 8254 channel /teller twee ( 2 ) port adres ( n /a ) TIMER_MODE .... ap .... 43h ... ; 8254 PIT control_port voor mode TICS . ... ap .... 36H .... ; 8254 waarde voor teller 1 - BCD waarde van 36 decimale mov ... al. , PIT_C0_M3 .... ; belasting time0 modus waarde < br . > out ... TIMER_MODE , al. ... , stuur het naar 8254 mode reg . - Port 43H xor ... al. , al. ... ; nul uit al; dwz de tegenwaarde van 00 uit ... timer0 , al. .. ; stuur LSB van div . tellen, dan mov ... al. , TICS ... ; laadt de teller waarde ( 36 decimaal in BCD -formaat ) op Twitter out ... TIMER1 , al. .... ; sturen LSB tellerstand xor ... al. , al. .... ; nul MSB ou ... TIMER1 , al ... ; stuur tegen 1 MSB waarde ; Done ! - Initialiseer de waarde van Counter 0 tot 30d MOV DX , COUNTER0 MOV AL, 30 OUT DX , AL Initialiseer de waarde van Counter 0 tot 256d MOV DX , COUNTER0 MOV AL, 0 OUT DX , AL Initialiseer de waarde van Counter 0 tot 1010D MOV DX , COUNTER0 MOV AX , 1010 OUT DX , AL; LSB MOV AL, AH OUT DX , AL; MSB Initialiseer de 8254 Set Counter0 alleen de minst significante byte herkennen . Stel de 8254 om een blokgolf te produceren en zet de teller op binaire ( 16 bits ) op MOV DX , TCW MOV AL, 00010110B ; . Controle Word OUT DX , AL ; MOV DX , COUNTER0 MOV AL, 4H ; LSB OUT DX , AL
|