Académique Documents
Professionnel Documents
Culture Documents
Objectives
Les objectifs de ce chapitre sont:
Dans un PC il existe une seule horloge (CLK) de très haute fréquence, utilisée notamment par la
CPU, pour synchroniser ses activités avec ses circuits périphériques.
Mais dans un PC il existe des fonctions qui nécessitent des horloges de basse fréquence.
Le Timer 8253/54 PIT (Programmable Interval Timer) est conçu pour satisfaire ce besoin. Il
consiste à générer des basses fréquences à partir de CLK pour des applications diverses comme
jouer de la musique par exemple.
D7 1 24 VCC CLK0
D6 2 WR GATE0
D5 RD D7 .. D0 OUT0
D4
D3
CS
A1
CLK2
D2
D1
8253 A0
CLK2
P WR
RD
8253 GATE2
OUT2
I/F
D0 OUT2
CLK0 GATE2 CLK1
OUT0 CLK1 A0 GATE1
GATE0 GATE1
A1 OUT1
GND 12 13 OUT1
CS
0 0 1 Compteur 1
La forme du signal OUT (CLK / N) est programmée
0 1 0 Compteur 2
État Haut (5V) pour activer et vice-versa. 1 x x 8253/54 n’est pas sélectionné
Le bus données du 8253 D0-D7 est connecté à celui du bus système. Il Les signaux RD/WR sont connectés aux
permet à la CPU d’accéder les registres du 8253 pour les opérations L/E. signaux de contrôle IOR/IOW du bus système.
Initialisation du T8253/54
M2 M1 M0 Mode
0 0 0 Mode 0
RL1 RL0 Mode SC1 SC0 Mode
0 0 1 Mode 1
0 0 Lecture du compteur (compteur 0 0 Compteur 0 sélectionné
x 1 0 Mode 2 d’avènement)
0 1 Compteur 1 sélectionné
Mode 3 0 1 Lire/Charger LSB seulement
x 1 1 Compteur 2 sélectionné
1 0
Mode 4 1 0 Lire/Charger MSB seulement
1 0 0 / (non permis)
1 1
Mode 5 1 1 Lire/Charger LSB, ensuite MSB
1 0 1
Exemple Supposant que la puce 8253/54 est activée par le pin CS à partir des adresses A7-A2 100101.
Dans ce cas Les adresses des ports assignés au T8253/54, sont:
Registre de 97h
MOV AL, 37H ; Compteur 0, mode 3, BCD 37H Contrôle
OUT 97H, AL ; Envoi au registre contrôle
MOV AX, 4282H ; Charger le nombre diviseur (H pour HEX)
OUT 94h, AL ; Envoi de l’octet LSB au port compteur 0 (82h)
MOV AL, AH
OUT 94h, AL ; Envoi de l’octet MSB au port compteur 0 (42h)
Programmer le compteur 2, qui permet de générer un signal carré de fréquence f OUT2 = 360Hz, sachant
que fCLK2 = 1.8MHz.
fCLK2 / fOUT2 = 5000 = 1388H (HEX) OUT 97H, AL ; Envoi au registre contrôle
En Binaire
MOV AX, 1388H ; Charger le nombre diviseur (H pour HEX)
= 5000 (BCD) OUT 96h, AL ; Envoi de l’octet LSB au compteur 2 (88h)
MOV AL, AH
Note: En BCD, il suffit de changer
OUT 96h, AL ; Envoi de l’octet MSB au compteur 2 (13h)
MOV AL, B6H par
MOV AL, B7H
(+haute priorité) le Timer0 est programmée
P LS138 à 0000H 8259
CS A1 A0
8 A5 A CLK0 18.5 Hz interruption TOD (IBM BIOS) IRQ0
OUT0
0 B
C Y2 Vcc GATE0
8 G2B Vcc
8 A9 G2A Compteurs 0 et 1 15 s Rafraîchir DRAMs DREQ0
AEN G1 Activés en OUT1 FF DMA
permanence
DACK 8237
CLK1
Vcc GATE1
OUT2
IBM PC Son Beep (897Hz)
Ou bien Musique
1.193 MHz < 2 CLK2
8284 GATE2
FF
Ecouteur EN
CLK0 =
CLK1 =
CLK2
OUT0
OUT1
IBM PC a programmé le compteur 2 du Timer8253/54 en mode 3 (signal carré) avec le nombre 1331
(donc son registre est chargé avec la valeur 0533H), pour obtenir une fréquence de 896Hz. Puisque le
nombre à charger est impair (1331) le rapport cyclique de OUT0 n’est pas 50% (N+1)/2 pulses à
l’état haut et (N-1)/2 pulses à l’état bas.
OUT2
A condition GATE = 1
N x TCLK
GATE
X
A condition Gate = 1
OUT
N x TCLK + X
GATE
OUT
N x TCLK
A condition GATE = 1
OUT
N x TCLK
1 x TCLK
A condition GATE = 1
OUT
A condition GATE = 1
OUT
N x TCLK
1 x TCLK
MODE 5 : Programmable pulse par Hardware Hardware Triggerable Strobe (par GATE)
Charger le compteur de N
GATE
OUT
N x TCLK
1 x TCLK