Vous êtes sur la page 1sur 10

FONCTION TRAITEMENT DE L’INFORMATION : LE MICROPROCESSEUR

1- MICROPROCESSEUR MÉMOIRE MÉMOIRE

MICROPROCESSEUR
VIVE MORTE
Un microprocesseur est un circuit intégré
complexe caractérisé par une très grande
intégration et doté des facultés fonctionnelles
Bus des adresses
d'interprétation et d'exécution des
instructions d'un programme. Bus des données
Comme dans tout circuit intégré la technologie
de fabrication impose au microprocesseur des Bus des commandes
caractéristiques :
• de temps de réponse qui se traduit par
une plus ou moins grande vitesse d'exécution
des instructions du programme, INTERFACE
E/S
HORLOGE
• et de consommation.
Fig. 5-25 : Système minimal
Exemple
Le microprocesseur 6809 est fabriqué en Fig. 5-25 : Système minimal.
technologie MOS canal N.
Son fonctionnement est synchronisé par Exemple :
une horloge dont la fréquence peut être 1, Pour l'environnement du 6809 :
ou 1.5, ou 2 MHz. Sa consommation type • le bus des données communique avec le
est de 0,5 W. microprocesseur par l'intermédiaire de
huit broches bidirectionnelles (DO à D7),
2. ENVIRONNEMENT MINIMAL d'où la possibilité de traiter des mots de
huit bits ;
Le microprocesseur ne peut fonctionner sans • le bus des adresses avec sa liaison
un environnement minimal comportant (fig. établie par seize broches
5-25) : unidirectionnelles (AO à A15) permet de
• une zone de mémoire vive pour les gérer 216 emplacements mémoires soit 65
données et les résultats, 536 (65 536 = 64 kilo-octets = 64 x 1024
car 1 Ko = 2 10 octets) ;
• une zone de mémoire morte pour le • le bus de commande communique avec
programme, dix bornes (12 pour le microprocesseur
• une ou plusieurs interfaces pour les 6809 E dont l'horloge est externe).
périphériques.
Entre ces différents ensembles les liaisons
fonctionnelles sont assurées par trois groupes 3. FONCTIONS DU
de conducteurs en parallèle, ou bus, ayant MICROPROCESSEUR
chacun une fonction spécifique : Le microprocesseur :
• un bus des données : (Data bus), • organise l'enchaînement des tâches
bidirectionnel qui assure le transfert des précisées dans la mémoire programme :
informations entre le microprocesseur et son - par une exploitation séquentielle des
environnement, et inversement ; son nombre de instructions situées aux adresses successives de
lignes est égal à la capacité de traitement du la mémoire,
microprocesseur ; - avec, éventuellement, des ruptures de
• un bus des adresses : (Adress bus), séquence en fonction des sauts programmés,
unidirectionnel qui permet la sélection des • rythme et synchronise l'exécution de ces
informations à traiter dans un espace mémoire tâches,
qui peut avoir 2n emplacements, avec n = • analyse le contenu du programme,
nombre de conducteurs du bus des adresses ; sélectionne, gère et commande les circuits
nécessaires à l'exécution de chaque tâche,
• un bus de commande : (Control bus), • prend en compte les informations
constitué par quelques conducteurs qui assurent extérieures au système.
la synchronisation des flux d'informations sur
les bus des données et des adresses.

1
4. ARCHITECTURE D'UN Exemple : Instruction CLRA (avec 6809).
MICROPROCESSEUR 8 BITS Mettre à zéro le contenu de l'accumulateur A.
Code programmé : 4 F (16)
Suivant la figure 5-26 Code traité par l'unité de commande et de contrôle : 79 (10) 79
 UNITÉ DE COMMANDE est le code machine décimal de l'instruction CLRA.
• COMPTEUR ORDINAL (CO) ou COMPTEUR
PROGRAMME (PC : programm counter).
0 1 0 0 1 1 1 1
Il est constitué par un registre dont le contenu est initialisé
avec l'adresse de la première instruction du programme.
Dès le lancement du programme ce compteur contient
l'adresse de la prochaine instruction à exécuter : DÉCODEUR D’INSTRUCTION

- soit par incrémentation automatique dans le 255 0


cas où les adresses des instructions se suivent ; 79
- soit par chargement de l'adresse de
branchement dans le cas de sauts programmés. • REGISTRE DES DONNEES
Ce registre de 8 bits est un registre tampon qui assure
La capacité de ce registre est de 16 bits, son contenu est l’interfaçage entre le microprocesseur et son environnement
transféré dans le registre adresses. ou inversement. Il conditionne le bus externe ou le bus
interne des données.
• REGISTRE D'INSTRUCTION • BLOC LOGIQUE DE SÉQUENCEMENT, DE
ET DÉCODEUR D'INSTRUCTION COMMANDE ET DE CONTROLE
Chacune des instructions à exécuter est rangée dans le Il organise l'exécution des instructions à partir d'un
registre instruction dont le format est 24 bits (3 octets). système microprogrammé qui associe à chaque
Le premier octet est toujours le code de l'opération que le instruction à traiter un microprogramme.
décodeur d'instruction doit identifier. Ce décodeur a 8 Cette exécution est séquencée par un oscillateur pilote qui
entrées et 256 (28) sorties qui correspondent chacune à la peut générer un ou deux signaux d'horloge.
valeur décimale du code opération machine exploité par • POINTEUR DE PILE (PP) ou STACK POINTER (SP)
l'unité de commande et de contrôle.
C'est un registre compteur de 16 bits qui contient
• REGISTRE DES ADRESSES l'adresse du sommet de la pile. La pile est externe au
Ce registre de 16 bits est un registre tampon qui assure microprocesseur, c'est une certaine partie de la mémoire
l’interfaçage entre le microprocesseur et son RAM utilisée pour sauvegarder les contenus des différents
environnement, il conditionne le bus externe des registres, lors de l'appel à un sous-programme ou lors de la
adresses. gestion d'une interruption, par exemple.

BUS DES DONNEES

REGISTRE DONNEES

Bus interne des données

ACCU.
REGISTRE INSTRUCTION MULTIPLEXEUR

R1 Rn INDEX
Code OP. Adresse
POINTEUR DE PILE
COMPTEUR DE
INDICATEURS UAL DECODEUR PROGRAMME
REGISTRES
AUXILAIRES

Signaux internes de BLOC LOGIQUE DE SEQUENCEMENT


commande DE COMMANDE ET DE CONTROLE Bus interne
des adresses
REGISTRE ADRESSES

HORLOGE ou
ALIMENTATION BUS DE COMMANDE BUS DES ADRESSES
QUARTZ

Fig. 5-26 : Architecture type d’un microprocesseur

2
■ UNITE DE TRAITEMENT
7 A 7 B 0 Accumulateur A et B de 8
Cette partie regroupe les circuits qui assurent les bits, ou accumulateur D de
traitements nécessaires à l'exécution des instructions. 15 D 0 16 bits

15 X 0 Registre d’index X
 UNITÉ ARITHMÉTIQUE ET LOGIQUE (UAL
en français, ALU en anglais). 15 Y 0 Registre d’index Y
C'est un circuit complexe qui assure les fonctions :
15 U 0 Pointeur de pile utilisateur
- ARITHMETIQUES : addition et soustraction,
- LOGIQUES : ET logique, OU logique, OU 15 S 0 Pointeur de pile système
exclusif,
- comparaison, décalage a droite ou 7 DP 0 Registre d’adressage page
décalage a gauche, incrémentation,
15 PC 0 Compteur ordinal
décrémentation, mise a un ou a zéro d'un bit, test
de bit.
7 CCR 0 Registre des codes condition
Une UAL est constituée par un certain nombre de circuits
tels que : complémenteur, additionneur, décaleur, portes
logiques,... Fig. 5-27 : Structure logicielle du 6809.
• ACCUMULATEUR
Un accumulateur est un registre de travail de 8 ou 16 - du jeu d'instructions, avec leur expression
bits qui sert : mnémonique, leur code opération, leur relation
- à stocker une opérande au début d'une fonctionnelle,...
opération arithmétique et le résultat à la fin de l'opération, - des procédures de gestion de la pile,
- à stocker temporairement des données en - des modes d'adressage,
provenance de l'extérieur du microprocesseur , - du comportement des indicateurs d'état,
avant leur reprise pour être rangées en mémoire, - du traitement des interruptions.
- à stocker des données provenant de la Si certaines de ces données sont communes à différentes
mémoire ou de l'UAL (résultat) pour les présenter vers familles de microprocesseurs, d'autres sont spécifiques à
l'extérieur du microprocesseur. une seule famille. À partir de ces données logicielles la
• REGISTRE DES INDICATEURS D'ÉTAT ou mise en œuvre du microprocesseur revient :
REGISTRE DES CODES DE CONDITION • à gérer ses échanges informationnels avec son
environnement mémoire et avec l'extérieur du système,
Les bits de ce registre de 8 bits associé à l'UAL sont à
• et à traiter les informations suivant les
considérer individuellement. Chacun de ces bits est
instructions du programme.
un indicateur dont l'état dépend du résultat de la
dernière opération effectuée. Dans un programme le Exemple : Dans un système automatisé la figure 5-28
résultat du test de leur état conditionne souvent le représente le dialogue du microprocesseur avec la partie
déroulement de la suite du programme. operative et les opérateurs.
• REGISTRE INDEX
Le contenu de ce registre de 16 bits est une adresse. Il est
utilisé dans le mode d'adressage indexé. MICROPROCESSEUR

5- STRUCTURE LOGICIELLE

Pour l'utilisateur d'un microprocesseur la structure MEMOIRE


logicielle se définit par : INTERFACE ENTREE/SORTIE
• la nature, le nombre et le format des registres VIVE MORTE

internes qui peuvent être lus ou écrits, Ordres


• la nature des indicateurs d'état associés à INFORMATIONS

l'UAL. * Clavier
* Capteurs * Clavier
Pré- * Ecran
La figure 5-27 représente la structure logicielle du * Lecteur de
actionneurs *
cassettes
6809. * Actionneurs Console

6. DONNEES LOGICIELLES Dialogue de Dialogue


programmation d’exploitation
Partie opérative

La conception et la mise en œuvre des programmes, des Fig. 5-28 : Echanges informationnels avec un microprocesseur
procédés et des règles qui permettent une bonne utilisation
d'un microprocesseur nécessitent la connaissance :

-
3
7. FORMAT D'UNE INSTRUCTION
L'écriture des instructions d'un programme doit respecter Exemple :
un certain format (fig. 5-29). Mise à zéro de l'accumulateur A
En fait une instruction se divise en deux parties ou CLeaR Accumulator A
champs qui contiennent chacun une information s'écrit en langage assembleur : CLRA
spécifique.
10. JUSTIFICATION DES MODES D’ADRESSAGE
Premier champ Deuxième champ
Le code opération précise ce qui est fait sur une opérande
CODE OPÉRATION OPÉRANDE qui peut être :
• une expression numérique en rapport avec une
grandeur,
1 octet 1 ou 2 octets
Exemples :
- Valeur initiale d'un compteur,
Fig. 5-29 : Format d’une instruction. - Valeur de consigne d'une température,
- Mot de sortie pour la commande d'un
L'expression des champs en nombre d'octets, c'est-à-dire automatisme.
en mots de 8 bits (bit : contraction de Binary Digit soit 0 • une adresse à laquelle se trouve ou se range une
ou 1) n'impose pas une programmation en binaire. valeur numérique,
Néanmoins quel que soit le langage de programmation Exemples :
utilisé, le binaire ou langage machine, représente la forme - Adresse de l'emplacement mémoire où se trouve la
dans laquelle le microprocesseur exécute les instructions. valeur numérique à charger dans un registre,
Exemple : - Adresse de l'emplacement mémoire où doit être
L'instruction : Mise à zéro de l'accumulateur A va s'écrire rangé le résultat d'un traitement arithmétique.
en binaire : • ou une adresse sur laquelle il est effectué certaines
0 1 0 0 1 1 1 1  Mot d’un octet opérations.
Aces
Deux quartets : Exemple :
- Adresse d'initialisation d'un registre d'index,
- Adresse d'initialisation du registre pile.
9. LANGAGES DE PROGRAMMATION
Le code opération doit être bien spécifié par rapport à la
nature de l'opérande et à ses conditions de traitement.
Un langage de programmation doit être facile à mettre en Cette différenciation des codes opération relève des
œuvre et se rapprocher de plus en plus d'un langage techniques ou modes d'adressage.
évolué, dont la syntaxe est proche du langage courant. Un
Exemple :
tel langage est d'ailleurs indépendant du type de
Pour la même instruction :
microprocesseur mis en œuvre. • Chargement des registres internes du microprocesseur se
Exemples : Langages PASCAL, FORTRAN,... programme sur le 6809, avec 28 codes opération
différents.
Entre le langage machine et un langage évolué il est
possible d'utiliser :
• un langage hexadécimal dans lequel chacun des
11. EXEMPLES DES PRINCIPAUX MODE
quartets du langage machine est exprimé dans un code de
D’ADRESSAGE DU 6809
numération hexadécimale (les 10 chiffres et les 6 lettres,
de A à F).  MODE D'ADRESSAGE INHÉRENT
Le code opération de l'instruction renferme
Exemple :
implicitement le ou les opérandes, il contient toute
Le mot binaire : 0 1 0 0 1111
l'information nécessaire à l'exécution de l'instruction.
s'écrit : 4 F
en langage hexadécimal. Exemple :
CLRA : Mise à zéro du contenu de l'accumulateur
• un langage mnémonique ou langage assembleur
dans lequel chaque code opération est remplacé par une A a pour code opération 4 F, n'a pas d'opérande
expression abrégée anglo-saxonne, de trois lettres. car l'accumulateur A est unique et parfaitement
identifié.

4
 MODE D'ADRESSAGE IMMÉDIAT  MODE D'ADRESSAGE ETENDU
Au premier octet de l'instruction qui correspond au Au premier octet de l'instruction qui correspond
code opération est immédiatement associée la valeur de au code opération est associé deux octets qui
l'opérande. constituent l'adresse effective de l'opérande.
Le symbole # signifie immédiat dans la syntaxe
Exemple :
assembleur.
Charger l'accumulateur A avec la valeur F 5 qui est le
contenu de l'adresse $ 15 CD :
Exemple
LDA $ 15 CD ou LDA > $ 1 5 CD
Charger l'accumulateur A avec la valeur hexadécimale 8Ø
LDA # $ 8 0 un assembleur force à l'adressage étendu Hexadécimal
immédiat hexadécimal soit l'instruction : B6 15 CD en hexadécimal.
soit l'instruction : 86 8Ø en hexadécimal
 MODE D'ADRESSAGE INDEXÉ
Ce type d'adressage permet d'initialiser les Dans ce mode d'adressage l'adresse absolue de
registres internes du microprocesseur. l'opérande est donnée par la somme :
• du déplacement (ou offset) associé au code opération,
 MODE D'ADRESSAGE DIRECT
• et d'une base qui est le contenu d'un registre : -
Au premier octet de l'instruction qui correspond - index (X et Y),
au code opération est associé un second octet qui - pointeur de pile (U et S),
représente l'octet de poids faible de l'adresse de la - compteur ordinal (PC).
donnée à traiter.
Avec les possibilités d'auto-incrémentation ou de
L'octet de poids fort de cette même adresse est
décrémentation de 1 ou de 2, ce mode d'adressage
écrit dans le registre d'adressage page DP.
permet de travailler sur des emplacements mémoires
Exemple (fig. 5-30) : adjacents, possibilité intéressante pour le traitement
Charger l'accumulateur A avec la valeur hexadécimale 7 F des tables de données.
rangée à l'adresse D3 42
Exemple : Chargement successif de l'accumulateur A en
mode indexé (fig. 5-31).
LDA $ 42 ou LDA < $ 4 2
force à l'adressage direct
LDA $ 05, X <— index X.
soit l'instruction : 9642 en hexadécimal.

Hexadécimal Déplacement
MÉMOIRE
soit l'instruction : A 6 Ø 5 en hexadécimal.

Instruction 96
ACCUMULATEUR A 42 2ØØ1 2ØØ3
PC PC
7F
IX D23Ø IX D23Ø

LDA < $ 42 ACCU A XX ACCU A 45


REGISTRE 7F D342
D’ADRESSAGE PAGE DP

D3 MÉMOIRE PROGRAMME MÉMOIRE PROGRAMME

Fig. 5-30 : Exemple d’adressage direct. 2ØØØ 2ØØØ

2ØØ1
A6 D23Ø 2ØØ1
A6

2ØØ2
Ø5 =Ø5 2ØØ2
Ø5

Pour une page choisie, dont le rang figure dans le 2ØØ3 D235 2ØØ3
PC
registre DP, ce mode d'adressage permet de travailler
sur ses 256 (2 8 ) emplacements ou lignes. Par MÉMOIRE DES DONNEES MÉMOIRE DES DONNEES
réinitialisations successives du registre DP ce mode
d'adressage sur deux octets permet de traiter l'ensemble
des données de l'espace mémoire du microprocesseur.
D235 45 D235 45

L'initialisation du registre DP se fait par D236 47 D236 47


chargement de l'accumulateur A suivi d'un transfert
de son contenu en DP. Remarque
Après incrémentation de l’index D23Ø + 1 = D231 et avec la
même instruction A6 Ø5, c’est le contenu de l’adresse D236 qui
est chargé dans l’accumulateur A, soit la valeur 47 .

5 Fig. 5-31 : Exemple d’adressage indexé.


 MODE D'ADRESSAGE RELATIF Le branchement se fait, ou ne se fait pas, suivant
Le mode d'adressage s'applique aux instructions de l’état 1 ou 0 d’un ou plusieurs des bits du registre
branchement. codes condition.
L'adresse de branchement n'est pas exprimée en valeur Exemple :
absolue mais en valeur relative par rapport au Comparer le contenu de l'accumulateur A avec le
contenu du compteur programme, au moment de contenu de l'emplacement mémoire d'adresse $ 2 000.
l'exécution de l'instruction. Dans le cas d'un MODE Si il y a égalité entre les deux contenus exécuter un
d'adressage relatif court le déplacement associé branchement à l'adresse $ 52 C 9, sinon continuer le
au code opération est écrit sur un octet, il peut être programme en $ 52 C 2 (fig. 5-34).
positif ou négatif, et compris entre + 127 et - 128 En assembleur il faut :
octets (fig. 5-32). • donner une étiquette à l'adresse de
destination :
MÉMOIRE SAUT EQU $ 52 C 9
PROGRAMME EQU : Symbole d'équivalence, l'étiquette SAUT a
ADRESSE DE
INSTRUC.
BRANCHEMENT pour équivalence l'adresse $ 52 C 9.
• écrire que le branchement doit se faire s'il y a
égalité des deux contenus, après comparaison.
DÉPLACEMENT CMPA $ 2000
NÉGATIF
BEQ SAUT
CMPA : Compare le contenu de l'accumulateur A
C. OPER
ADRESSE SENS avec la donnée 7 F, cette comparaison se fait par
ORIGINE CROISSANT
Déplacement DES
soustraction, si le résultat est nul Z = 1, le
PC
INSTRUC. ADRESSES branchement se fait.
BEQ : Branchement si égal.
À ce mnémonique est associée l'étiquette SAUT.
DÉPLACEMENT
POSITIF
MÉMOIRE PROGRAMME

INSTRUCTION DE Code opération


ADRESSE DE BRANCHEMENT Déplacement 27 52 CǾ
INSTRUC.
BRANCHEMENT 7 52 C1
PC XX 52 C2

Si Z = 1
Fig. 5-32 : Déplacement dans le mode d’adressage relatif Déplacement

Une instruction de branchement est toujours précédée


par une opération qui peut s'assimiler à un test. Le E F H I N Z V C
résultat de cette opération affecte 0 OU 1 sur un ou 1 PC XX 52 C9
plusieurs bits du registre de codes condition (CCR) CCR
ou registre indicateur d'état (FIG. 5-33).
SI ÉGALITÉ
MÉMOIRE DES DONNÉES
7 6 5 4 3 2 1 0 REGISTRE
CODES Accu. A XX
E F H I N Z V C CONDITIONS
CMPA 7F 2ǾǾǾ
Retenue
Dépassement
Zéro
Fig. 5-34 : Exemple d’application du mode d’adressage relatif.
Négatif
Masque d’interruption IRQ
Demi-retenue En hexadécimal il faut calculer la valeur du
Masque d’interruption FIRQ déplacement à associer au code opération de
l'instruction de branchement :
État de sauvegarde
Déplacement = Adresse de branchement -
Fig. 5-33 : Signification des bits du registre codes (Adresse d'origine + ØØØ2). La valeur ØØØ2.
condition (CCR). prend en compte la position du PC qui pointe
l'instruction suivant celle du branchement, pendant
que cette dernière s'exécute. D'où le programme :
B1 2ØØØ
27 Ø7
6
(avec déplacement = 5 2 C 9 - (52 CØ + ØØØ2) = 7).
11. EXEMPLES DES PRINCIPALES INSTRUCTIONS DU 6809
Le tableau ci-dessous donne les mnémoniques et les codes opération de quelques instructions du micro processeur
MOTOROLA type 6809 (fig. 5-35).

NNEMO IMMÉDIAT DIRECT ÉTENDU INDEXÉ


INSTRUCTIONS
NIQUE Co Ne No Co Ne No Co Ne No Co Nc No
AND • ET logique (bit à bit) ANDA 84 2 2 94 4 2 B4 5 QO A4 4+ 2+
mémoire et registre interne
ANDB C4 2 2 D4 4 2 F4 5 3 E4 4+ 2+
entre
CMP • Comparaison du CMPA 81 2 2 91 4 2 B1 5 3 A1 4+ 2+

contenu mémoire avec un CMPB C1 2 2 D1 4 2 F1 5 3 E1 4+ 2+


accumulateur CMPJ 10.83 5 4 10.93 7 3 10.B3 8 4 10.A3 7+ 3+
CM PS 11.8C 5 4 11.9C 7 3 11.BC 8 4 11.AC 7+ 3+
CMPX 8C 4 3 9C 7 3 BC 7 3 AC 6+ 2+
EOR • OU exclusif EORA 88 2 2 98 4 2 B8 5 3 A8 4+ ' 2+
EORB C8 2 2 D8 4 2 F8 5 3 E8 4+ 2+
JMP • Saut inconditionnel à
JMP OE 3 2 7E 4 3 6E 3+ 2+
une adresse effective
JSR • Saut à un
JSR 9D 7 2 BD 8 3 AD 7+ 2+
sous-programme
LD • Chargement d'un registre LDA 86 2 2 96 4 2 B6 5 3 A6 4+ 2+
LDB C'6 2 2 D6 4 2 F6 5 3 E6 4+ 2+
LDD ce 3 3 DC 5 2 FC 6 3 EC 5+ 2+
LDS 10. CE 4 4 10. DE 6 3 10. FE 7 4 10.EE 6+ 3+
LDX 8E 3 3 9E 5 2 BE 6 3 AE 5+ 2+
INHÉRENT
Co Ne No
DEC • Décrémentation DEC 0A 6 2 7A 7 3 6A 6+ 2+
DECA 4A 2 1
DECB 5A 2
INC • Incrémentation INC OC 6 2 7C 7 3 6C 6+ 2+
INCA 4C 2 1
INCB 5A 2 1
NOP • Pas a opération
NOP 12 2 1

RTS • Retour de
RTS 3B 6/15 1
sous-programme
ST • Stockage d'un registre en STA 97 4 2 B7 5 3 A7 4+ 2+
mémoire STB D7 4 2 F7 5 3 E7 4+ 2+
STD DD 5 2 FD 6 3 ED 5+ 2+
STS 10. DF 6 3 10. FF 7 4 10.EF 6+ 3+
STX 9F 5 2 BF 6 3 AF 5+ 2+
TFR • Transfert de registre en
TFR 1F 7 2
mémoire

INSTRUCTIONS RELATIF
NNEMO Co : Code opération, en hexadécimal, de l'instruction pour
DE BRANCHEMENT Co Ne No
NIQUE le mode d'adressage choisi.
BEQ • Branchement BEQ 27 3 2
si égal LBEQ 10.27 5(6) 4 Nc : Nombre de cycles de l'instruction.
BNE • Branchement BNE 26 3 2
si différent LBNE 10.26 5(6) 4 No : Nombre d'octets de l'instruction.
Fig. 5-35 : Principales instructions du 6809.

7
TRAVAUX EXPÉRIMENTAUX DECA 2 cycles
X 256 = 1 280
BNE 3 cycles
1. TEMPORISATION LOGICIELLE Total :1 282 cycles
La temporisation revient à compter ou à décompter du temps en 6
fonction d'une durée fixée comme référence : la base de Période du cycle : 10 s
temps. Base de temps : 10-6 x 1 282 = 1,282 ms.
La structure algorithmique itérative :
POUR Variable = Valeur initiale,  AJUSTEMENT D'UNE TEMPORISATION
A Variable = Valeur finale,
RÉPÉTER le traitement, Pour obtenir une temporisation de 5 ms deux solutions
peuvent être envisagées :
est bien adaptée au comptage, au décomptage et à la temporisation
• soit rajouter dans la boucle des instructions NOP (Pas
(fig. 5-36). d'opération) à 2 cycles pour obtenir le temps désiré :
LDA  2 cycles x 1 = 2
DEBUT Mnemo-
Etiquette Opérande DECA 2
nique
+ 7 NOP 14 X 256 = 4 864
CHARGER DANS BNE 3
VALEUR INITIALE LDA #SFF
Total : 4 866 cycles
DECREMENTER
Soit : 4,86 ms
(FAIRE -1) BOUCLE DECA Cette valeur pourrait être une nouvelle base de temps.
• Soit d'emboîter cette première structure, base de
VALEUR =0?
Non
BNE BOUCLE
temps, par une seconde qui est le multiplicateur de
cette base de temps (fig. 5-37).
Oui
Programme en assembleur
FIN
DEBUT Mnemo-
Etiquette Opérande
Fig. : 5-36 : Structure algorithmique représentative d’une temporisation nique
logicielle, et programme en essembleur. CHARGE SØ4 DANS
ACCU. B LDA #SØ4

 BASE DE TEMPS LOGICIELLE


CHARGER $FF DANS
Une base de temps logicielle s'obtient : ACCU. A
BOUCLE 2 LDA #SFF
• en chargeant un accumulateur, un index, ou un
emplacement mémoire avec une valeur initiale
prédéterminée, DECREMENTER DANS
BOUCLE 1 DECA
ACCU. A
• en décrémentant ce contenu de registre ou
d'emplacement mémoire,
Non
• en le testant : VALEUR
BNE BOUCLE 1
DANS A=0?
- si sa valeur est différente de zéro, la valeur
finale n'est pas encore atteinte, d'où une nouvelle Oui
décrémentation, DECREMENTER
DEC B
- si sa valeur est nulle, la valeur finale est DANS ACCU B
atteinte, d'où sortie de boucle.
La base de temps est le temps que met le système à Non
VALEUR BNE BOUCLE 2
rendre nulle la valeur initialement chargée. Ce temps DANS B=0?
dépend : Oui Valeur de la température :
• de la période du cycle du système, qui est la Base de temps x 4 = 1282 x 4 = 5128
FIN (DECB + BNE) x 4 = 5 x 4 = 20
période du signal d'horloge qui en synchronise le
fonctionnement, LDB x 1 = 2 x 1 = 2
Total = 5150 cycles
• du nombre et de la nature des instructions, car Soit : 5,15 ms
chacune de ces dernières demande un temps d'exécution
exprimé en nombre de cycles. Fig. : 5-37 : Exemple de temporisation avec une base de temps (en
rouge) et un multiplicateur de valeur Ø4.
Exemple :
• Avec un signal d'horloge de fréquence 1 MHz, 2. PROGRAMMATION D’UN INTERFACE
le chargement de l'accumulateur A avec la valeur $ D’ENTREES – SORTIES PARALLELES
FF (soit 1111 1111 en binaire ou 255 en décimal)
donne une base de temps égale à : Le P.I.A. 6821 (Peripheral Interface Adapter) est un
circuit interface entrées-sorties qui permet de

LDA  2 cyclesx 1 =2
8
Réaliser une liaison parallèle entre le Suivant le cas :
microprocesseur 6809 et ses périphériques. •bit 2 = 0 donne l'accessibilité à DDRA
Le circuit est relié au microprocesseur (fig. 5-38) : •bit 2 = 1 donne l'accessibilité à ORA.
•par le bus des données (8 bits), Exemples
•par le bus des adresses (5 bits), • Accès à DDRA 7 2 Ø

CLR CRA CRA


•par le bus de contrôle (5 bits). Ø Ø Ø Ø Ø Ø Ø Ø

Bit 2 = Ø, d’où accès à ORA


Il dialogue avec la périphérie par deux ports, A et B,
7 2 Ø
comprenant chacun : • Accès à ORA
• un bus bidirectionnel de 8 bits, Ø Ø Ø Ø Ø 1 Ø CRA
LD A # $ Ø4
• deux lignes de contrôle pour la synchronisation ST A C R A Bit 2 = 1, d’où accès à DDRA
des transferts.
• CONFIGURATION D'UN PORT
Microprocesseur P.I.A Périphérie Après avoir accédé au registre DDR la configuration du
port revient à affecter chacune de ses bornes en entrée ou
en sortie :
• le bit du DDR mis à O affecte en entrée la borne
IRQA 7 0 CA1 correspondante,
CS0 CRA • le bit du DDR mis à 1 l'affecte en sortie.
CS1 CA2 PORT
DDRA Exemples
CS2 A
7 Ø
• Tout le port A
PAO
RS0 à
est en entrée Ø Ø Ø Ø Ø Ø Ø Ø DDRA
ORA Données
RS1 PA7 CL R DD RA
D0 • Tout le port A
à 7 0 est en sortie
D7 7 Ø
ORB PB0 LD A # $ F F
à Données 1 1 1 1 1 1 1 1 DDRA
R/W PORT S TA DD RA
DDRB PB7
E B • Sur le port A
RESET CRB CB2 •les bits Ø, 3,
Contrôle 4 et 6 sont des 7 6 5 4 3 2 1 Ø
IRQB CB1
entrées 1 Ø 1 Ø Ø 1 1 Ø DDRA
•les autres
BUS DES DONNÉES des sorties
0V
BUS DE CONTRÔLE
BUS DES DONNÉES • MISE EN
RELATION DU PIA AVEC LA PÉRIPHÉRIE
Fig. 5-38 : Structure fonctionnelle de l’interface entrées-
sorties P.I.A. L'accès au registre OR autorise cette mise en
relation et permet :
• la lecture en OR d'un mot d'entrée,
 ORGANISATION FONCTIONNELLE D'UN PIA • l’écriture et la mémorisation en OR d'un
Les deux ports A et B sont indépendants et mot de sortie.
possèdent chacun trois registres de 8 bits à lecture et
à écriture :  EXEMPLES
•registres CRA - CRB {Control Register A • Lecture du Port A et rangement du mot I dans
et B) qui contiennent les paramètres de l'emplacement mémoire MEM.
fonctionnement du port. CL R CR A Ac cè s à DDRA
•registres DDRA - DDRB {Data Direction CL R DD RA DDR A e n en t rée
Register A et B) qui définissent le sens de
LD A  $ Ø4
transfert des données sur chacune des lignes du port S TA O RA
Accè s à ORA
en l'affectant en entrée ou en sortie. LD A O RA L ectu re d u m o t p r é sen t su r le Po r t A
•registres ORA - ORB (Output Register A S TA M EM Ra n g em en t d u mo t lu d a n s MEM
et B) qui mémorisent les données en sortie lors d'une
écriture ; pour les entrées ils sont uniquement lus car • Écriture sur le Port A d'un mot rangée MEM
ils ne mémorisent pas ce type de données. CL R C R A Acc è s à DDRA
LD A  $ FF
DDR A en so rt ie
 INITIALISATION D'UN PIA ST A DD R A
LD A  $ Ø4
Les six registres du PIA n'occupent que quatre Accè s à ORA
ST A OR A
emplacements mémoire. LD A M E M Ch a rg e men t d u mo t ra n g é en MEM
Deux registres CRA et CRB sont directement STA ORA Ecriture de ce mot sur le Port
accessibles. Pour les quatre autres leur accessibilité
dépend de l'état du bit 2 de CRA ou de CRB,

9
10

Vous aimerez peut-être aussi