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.