The 8254 programmerbara timern användes först i IBM PC 1981 enligt Gary Barr på Concept Engineering . I IBM - stil datorer , fungerade det som systemklockan . Med förbättringar i elektroniska komponenter , har funktionerna för chipset förts samman i en eller två LSI ( Large Scale Integrated ) chips . Även om 8254 programmerbara timern ursprungligen utformades och distribuerades de första IBM PC , är det fortfarande finns idag som en fristående integrerad krets . Dividera en insignal med 64536 och även 36
Följande koder programmerar 8254 PIT (programmerbar intervalltimer ) att dela en inkommande signal med 64536 producerar en 50 procent pulskvot fyrkantvåg . Den delar också samma insignal med 36 producera en 50 procent duty cycle fyrkantvåg
PIT_C0_M3 .... equ .... 36h , . 8253 PIT timer kanal 0 -läget 3
PIT_C1_M3 .... equ .... 77H , 8253 PIT timer kanal 1 mod 3
Timer0 .... equ .... 40h ... , 8254 kanal /räknare noll ( 0 ) port adress
TIMER1 .... ekv .... 41h ... , 8254 kanal /räknare en ( 1 ) port adress
TIDUR2 .... equ .... 42h ... , 8254 kanal /räknare två ( 2 ) port adress ( n /a ) katalog
TIMER_MODE .... equ .... 43H ... , 8254 PIT control_port för
läge
tics. ... equ .... 36H ....; 8254 värde för räknaren 1 - BCD värde av 36 decimal
mov ... al , PIT_C0_M3 ....; belastning time0 läget värde
ut ... TIMER_MODE , al ... , skicka den till 8254 -läge reg . - Port 43H
xor ... al , al ... , noll ut al , dvs motvärde 00
ut ... Timer0 , al .. , skicka LSB av div . räkna , då
mov ... al , TICS ... , ladda räknaren värdet ( 36 decimal i BCD -format ) katalog
ut ... TIMER1 , al .... ; skicka LSB motvärde
xor ... al , al .... , noll MSB
ou ... TIMER1 , al ... ; skicka motverka 1 MSB värde
; Done ! - Addera Initiera Värde av räknare 0 till 30d
MOV DX , COUNTER0
MOV AL , 30
OUT DX , AL Addera ditt initiera Värde av räknare 0 till 256D
MOV DX , COUNTER0
MOV AL , 0
OUT DX , AL
initiera Värde av räknare 0 till 1010D
MOV DX , COUNTER0
MOV AX , 1010
OUT DX , AL , LSB
MOV AL , AH
OUT DX , AL , MSB
initiera 8254
Set Counter0 att känna igen den minst signifikanta byten endast . Ställ in 8254 för att producera en fyrkantvåg och ställa räkneverket på binära ( 16 bitar ) katalog
MOV DX , TCW
MOV AL , 00010110B ; . Kontroll Word Review
OUT DX , AL
,
MOV DX , COUNTER0
MOV AL , 4H , LSB
OUT DX , AL