Le 8254 Programmable Interval Timer a d'abord été utilisés dans le PC d'IBM en 1981, selon Gary Barr Engineering Concept. Dans les ordinateurs IBM de style , il fonctionne comme l'horloge système . Avec l'amélioration des composants électroniques , les fonctions du chipset ont été combinées en une ou deux puces LSI ( Large Scale Integrated) . Même si le 8254 Programmable Interval Timer a été initialement conçu et distribué pour les premiers PC d'IBM , il est encore disponible aujourd'hui comme un circuit autonome intégré . Diviser un signal d'entrée par 64536 et également 36
Les programmes de code suivants le 8254 PIT ( Programmable Interval Timer ) pour diviser un signal d'entrée par 64536 produisant un 50 pour cent cycle onde carrée. Il divise aussi le même signal d'entrée par 36 la production d'un 50 pour cent cycle onde carrée
PIT_C0_M3 .... équ .... 36h ; . 8253 canal de minuterie PIT 0 mode 3
PIT_C1_M3 équ .... .... 77h ; 8253 PIT canal de minuterie 1 Mode 3
TIMER0 .... équ .... 40h ... ; 8254 /canal contre zéro (0) adresse de port
TIMER1 .... équ .... 41h ... ; 8254 /canal contre une (1) adresse de port
TIMER2 .... équ .... 42h ... ; adresse du port canal 8254 /contre deux (2) (n /a )
TIMER_MODE .... équ .... 43h ... ; 8254 control_port PIT pour mode telephone
TICS . équ ... .... 36H ....; 8254 valeur pour le compteur 1 - valeur BCD de 36 décimal
mov ... al , PIT_C0_M3 ....; charge time0 de valeur de mode < br . >
sur ... TIMER_MODE , al ... , envoyez -le en mode 8254 reg . - Port 43H
XOR ... al , al ... ; zéro sur al ; ie la contre-valeur de 00
sur ... TIMER0 , al .. ; envoyer LSB div . compter, alors
mov ... al , TICS ... ; charger la valeur du compteur (36 décimal au format BCD)
sur ... TIMER1 , al ....; envoyer LSB contre valeur
XOR ... al , al ....; zéro MSB
ou ... TIMER1 , al ... ; envoyer compteur 1 valeur MSB
< p > ; Fait ! -
initialiser la valeur du compteur de 0 à 30d
MOV DX, COUNTER0
MOV AL, 30
DX OUT, AL
initialiser la valeur du compteur de 0 à 256d
MOV DX, COUNTER0
MOV AL, 0
DX OUT , AL
initialiser la valeur du compteur de 0 à 1010D
MOV DX, COUNTER0
MOV AX , 1010
OUT DX , AL ; LSB
MOV AL, AH
DX , AL ; MSB
Initialisation de la
Set 8254 Counter0 de reconnaître l' octet le moins significatif seulement . Réglez le 8254 pour produire une onde carrée et mettre le compteur en binaire (16 bits)
MOV DX, TCW
MOV AL, 00010110B ; . Contrôle Parole
DX OUT , AL
;
MOV DX, COUNTER0
MOV AL , 4H ; LSB
DX , AL
OUT