8254 PIT-Beispielprogramme

June 28

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