Vous êtes sur la page 1sur 23

Le Timer Programmable le

i8253/8254

Plan
1. Introduction
2. Structure Interne
3. Accès aux registres
4. Modes de fonctionnement
Introduction

Ce circuit établit des intervalles de temps avec précision ou compte des


événements, puis émet une interruption à l’issue de son programme. Il
pourra servir de :
• générateur de rythme programmable.
• Compteur d’événements.
• Horloge temps réel.
• Monostable.
• Contrôleur de moteur
• Générateur de Bauds en communication série
• Etc.
Introduction
Son buffer 8 bits est à trois états ; le microprocesseur l’adresse de façon
classique, par exemple à l’aide de ses instructions d’entrées-sorties (IN
et OUT). Les données reçues par le 8253 ont 3 fonctions :
1 – programmer les modes de fonctionnement.
2 – charger les registres de comptage.
3 – lire les valeurs comptées.
Brochage du 8253
Architecture du 8253
Structure interne du 8253/8254
Accès aux registres
CS RD WR A1 A0 fonction
0 1 0 0 0 Chargement compteur 0
0 1 0 0 1 Chargement compteur 1
0 1 0 1 0 Chargement compteur 2
0 1 0 1 1 Ecriture mot de mode
0 0 1 0 0 Lecture compteur 0
0 0 1 0 1 Lecture compteur 1
0 0 1 1 0 Lecture compteur 2
0 0 1 1 1 Pas d’opération : 3e état
1 X X X X Inhibitions 3e état
0 1 1 X X Pas d’opération : 3e état
Mot de commande
Procédure d’écriture

Pour la procédure d’écriture, il faut se rappeler de deux conventions :

• Pour chaque compteur, il faut écrire dans l’ordre : le mot de contrôle


puis le compte initial.

• Le compte initial doit se conformer au format binaire ou BCD indiqué


par le mot de contrôle
Procédure de lecture

On distingue deux types de commande :


• La commande Counter Latch (CL) :
A pour effet de verrouiller, dans le registre OL correspondant, le
contenu de l’élément compteur (CE) spécifié par les 2 MSB (bits plus
significatifs) du mot de commande suivant :
Procédure de lecture
• La commande Read Back :
Elle permet la lecture soit du compte soit du status (validés par 0) du
compteur dont le bit est validé par 1 dans le mot de commande suivant

• Cette commande permet de préparer le mot de status dont le format


recopie les 6 bits de faibles poids du mot de contrôle :
Modes de fonctionnement

• GATE = 1: valide le comptage (décomptage)


• GATE = 0 : le suspend mais n’a aucun effet sur la sortie OUT.
Mode 0 : Envoi d’une demande d’interruption
en fin de décomptage
Mode 1 : Re-déclenchement par impulsion
extérieur
Mode 2 : Timer d’intervalle périodique
Mode 3 : Générateur d’ondes carrées
Mode 4 : Strobe déclenché par logiciel
Mode 5 : Strobe déclenché par matériel (hardware)
Exercice 1:
given the port addresses for 8253/54:
• Counter 0: 94H Counter 1: 95H
• Counter 2: 96H Control Reg: 97H

program counter 0 for binary counter for mode 3 to divide CLK0 by


number 4282 (BCD)
solution
• MOV AL, 0011 0111B
• OUT 97H, AL
• MOV AX, 4282H (BCD needs H)
• OUT 94H, AL (Low Byte)
• MOV AL, AH
• OUT 94H, AL (High Byte)

• • OUT0 = CLK0 / 4282


Exercice 2 :

• écrire un programme pour :


• initialiser le compteur 2 en mode 0
• compte de C030H
• adresses
• du registre de contrôle :0BH
• compteur 0=08H
• compteur 1 =09H
• compteur 2 =0AH
Solution
• le mot de contrôle est:
• SC1 SC2 RW1 RW0 M2 M1 M0 BCD
• 1 0 1 1 0 0 0 0 =B0H
• Le programme:
• MOV AL,B0H ; écriture du mot de contrôle
• OUT 0BH,AL ; dans le registre de contrôle
• MOV AL,30H ; charge l’octet de poids faible
• OUT 0AH,AL ; dans le compteur 2
• MOV AL,C0H ; charge l’octet de poids fort
• OUT 0AH,AL ; dans le compteur 2
Application : horloge temps réel
Réaliser une horloge temps réel par la génération d’une demande
périodique d’interruption du 8253/8254 sur le 8086. Nous supposerons
que le générateur de fréquence est de 1Mhz,
Vous devez donc interrompre le processeur chaque seconde afin de
pouvoir créer des minutes et heures.