8254 PIT-Beispielprogramme
8254 Programmable Interval Timer wurde erstmals in den IBM-PC 1981 nach Gary Barr bei Concept Engineering eingesetzt. In Computern, IBM-Stil betrieben es als die Systemuhr. Mit Verbesserungen in der elektronischen Komponenten wurden die Funktionen des Chipsatzes in ein oder zwei (Large Scale Integrated) LSI-Chips kombiniert. Obwohl die 8254 Programmable Interval Timer wurde ursprünglich entworfen und für den ersten IBM-PCs verteilt, ist es noch heute als eine eigenständige integrierte Schaltung erhältlich.
Teilen Sie ein Eingangssignal durch 64536 sowie 36
Die folgenden Code Programme die 8254-Grube (Programmable Interval Timer), ein Eingangssignal durch 64536 produzieren eine 50-Prozent-Pflicht-Zyklus-Rechteckwelle zu teilen. Es teilt auch das gleiche Eingangssignal durch 36 produzieren eine 50-Prozent-Pflicht-Zyklus-Rechteckwelle.
PIT_C0_M3... Equ... 36 l; 8253 PIT-Timer-Kanal 0-Modus 3
PIT_C1_M3... Equ... 77h; 8253 PIT-Timer 1-Kanal-Modus 3
TIMER0... Equ... 40h...; 8254 Kanal/Zähler-zero(0)-Port-Adresse
Timer1... Equ... 41h...; 8254 Kanal/Zähler 1-Port-Adresse
TIMER2... Equ... 42h...; 8254 Kanal/Zähler Portadresse für zwei (2) (n/a)
TIMER_MODE... Equ... 43h...; 8254-PIT-Control_port für den Modus
TICS... Equ... 36H...; 8254 Wert für Zähler 1 - BCD Wert von 36 Dezimal.
... Mov al, PIT_C0_M3...; time0 Mode-Wert zu laden
Out... TIMER_MODE, al...; schicken Sie es an 8254 Modus reg. - Port 43H
... Xor al, al...; null mehr al; d.h. der Zählerwert 00
Out... TIMER0, al..; LSB von div. Graf, dann senden
... Mov al, TICS...; Laden Sie den Wert des Indikators (36 Dezimalzahlen im BCD-Format)
Out... Timer1, al...; LSB-Zählerwert schicken
... Xor al, al...; 0 (null) MSB
Ou... Timer1, al...; Zähler 1 MSB Wert senden
Getan! -
Initialisieren den Wert des Leistungsindikators 0 bis 30d
MOV DX, COUNTER0
MOV AL, 30
OUT DX, AL
Initialisieren den Wert des Leistungsindikators 0 bis 256d
MOV DX, COUNTER0
MOV AL, 0
OUT DX, AL
Initialisieren den Wert des Leistungsindikators 0 bis 1010d
MOV DX, COUNTER0
MOV AX, 1010
OUT DX, AL; LSB
MOV AL, AH
OUT DX, AL; MSB
Initialisieren der 8254
Legen Sie die Counter0 nur das niederwertigste Byte zu erkennen. Legen Sie den 8254 zu produzieren eine Rechteckwelle und das Zählwerk in eine Binärzahl (16 Bits).
MOV DX, TCW
MOV AL, 00010110B; Steuerwort
OUT DX, AL
;
MOV DX, COUNTER0
MOV AL, 4H; LSB
OUT DX, AL