









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
how does a microprocessor 6809 function
Typology: Lecture notes
1 / 16
This page cannot be seen from the preview
Don't miss anything!










A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 1/
Chapitre II
Introduction :
Le MC6809 est réalisé en technologie HCMOS dans un boîtier de 40 broches. Le
unipolaire de +5V.MC6809 possède des entrées/sorties compatibles TTL. Il s’alimente avec une tension Il existe plusieurs modèles du MC6809 (certains ont même des RAM, ROM, et même
l’intérieur c’est un 16 bits.données et d’adresses des registres à 16 bits. De l’extérieur, le MC6809 est un 8 bits, et àdes ports d’E/S intégrés). Ce microprocesseur 8 bits utilise pour la manipulation des La figure II.1 montre le brochage de ce microprocesseur, la description complète de
chacun des signaux échangés est donnée au paragraphe II.6.
(^2019181716151413121110987654321)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0^ Vcc (+5V) BA BS^ FIRQ IRQ^ NMI Vss
A13 A14 A15 D7 D6 D5 D4 D3 D2 D1 D0^ R / W^ DMA /BREQ E Q^ MRDY^ RESET^ EXTAL^ XTAL^ HALT
Figure II.1 – Brochage du MC
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 2/
Le MC6809 est disponible en plusieurs versions. Le code du constructeur permet d’avoir
toutes les informations sur la version considérée :
Vitesse du Famille 6800MOTOROLA Circuit intégré
(^) μP :
B = 2 MHzA = 1.5 MHz vide = 1 MHz
Désignation du circuit de la famille 6800 Plage de température : vide (^) : 0°C 70°C, C
(^) : (^) - 40°C
Type de boîtier : P : plastique, L : Céramique
Les BUS d’adresses (de 16 bits) et de données (de 8 bits) ne sont pas multiplexés comme
mesurec’est le cas d’autres microprocesseurs. Cette caractéristique est très avantageuse dans la
(^) où (^) elle (^) facilite
(^) grandement
(^) le (^) développement
(^) de (^) systèmes
(^) à (^) base (^) de (^) ce
microprocesseur. Le MC6809 intègre le circuit d’horloge dans son boîtier.
● II.2 – Caractéristiques essentielles du MC6809 : Six (^) possibilités
d’interruption :
trois
interruptions
(^) matérielles
(dont (^) une (^) entrée
II.3 – Les registres du MC6809 : quand on parle de microprocesseurs équivalents.la structure interne, 1464 codes opératoires différents donc un ensemble des plus riches ● (^) 139 mnémoniques simples autorisant, compte tenu des différents modes d’adressage et de ● (^) Multiplication 8 bits par 8 bits avec résultats sur 16 bits en une seule instruction ; ● (^) Unité arithmétique et logique permettant des opérations sur 16 bits ; ● (^) Dix modes d’adressage différents ; ● (^) Deux sorties indiquant l’état de l’unité centrale de traitement à un instant donné ; ● (^) Possibilité de fonctionner avec des mémoires lentes ;d’interruption rapide) et trois interruptions logicielles (SWI, SWI2 et SWI3); Le MC6809 est un microprocesseur 8 bits externes – 16 bits internes. Tous les registres
utilisés pour la manipulation des données et d’adresses ont une longueur de 16 bits. Les registres du MC6809 sont énumérés ci-dessous et sont montrés à la figure II.2 :
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 3/
● (^) Deux registres d’index :
(^) et (^) Y ;
● (^) Deux pointeurs de pile :
(^) et (^) S ;
● (^) Deux accumulateurs de 8 bits :
(^) et (^) B (^) représentés sous forme d’un accumulateur de 16 bits
appelé
(^) D ;
● (^) Un compteur ordinal ou compteur programme de 16 bits :
● (^) Un registre d’état (Code Condition Register) de 8 bit :
● (^) Un registre de page directe (Direct Page Register) :
COMPTEUR ORDINAL
(^) – (^) PC
INDEX (^) – (^) X
INDEX (^) – (^) Y
POINTEUR DE PILE UTILISATEUR
(^) – (^) U
POINTEUR DE PILE SYSTÈME
(^) – (^) S
ACCUMULATEUR
(^) – (^) A
ACCUMULATEUR
(^) – (^) B
ACCUMULATEUR
(^) – (^) D
REGISTRE DE PAGE DIRECTE
(^) – (^) DP
REGISTRE D’ETAT
(^) – (^) CCR
0 b
7 b
15 b
Figure II.2 – Registres du MC
II.3.1 – Registres
et B (^) :
Ce sont deux accumulateurs à usage général utilisés pour des opérations arithmétiques et
logiques. Ils peuvent être concaténés (Registre
(^) contenant les poids les plus forts et
contenant les poids les plus faibles), pour réaliser un accumulateur de 16 bits (
II.3.2 – Registres
et Y (^) :
Ce sont deux registres de 16 bits utilisés principalement pour le mode d’adressage
II.3.3 – Registres réalisés avec ces registres, en particulier entre ces derniers et les accumulateurs.indexé. Cependant, un certain nombre d’opérations arithmétiques et logiques peuvent être
et S (^) :
Ce sont deux registres de 16 bits dont la fonction principale est de servir de pointeurs de
pile. Ils peuvent aussi être utilisés en index et se comportent par conséquent comme
(^) et (^) Y .
En utilisation en pointeurs de pile :
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II ● (^) Le registre
est affecté au système, c'est-à-dire qu’il est contrôlé automatiquement par le
● interruption, …etc.).MC6809 lors des opérations faisant appel à la pile (saut à un sous-programme, mise en Le registre
(^) est le pointeur de pile « utilisateur ». Il est contrôlé entièrement par le
sous-programmes.paramètres sont passés par la pile), ou pour réaliser des passages d’arguments de ou vers desprogrammeur (cette possibilité est exploitée pour la programmation « multitâches » où les
SSSS
PCL PCH UL XL XH DP^ ACC. B^ ACC. A CCR
SSSS (^) - (^1)
SSSS (^) - (^1) 2
UH YL YH
SSSS
ACC. B ACC. A CCR
PC U S Y X
DP
SSSS (^) - (^12)
Figure II.3 – Ordre d’empilement des registres sur la pile S
La décrémentation précède toujours le début de la phase d’empilement. A la fin du
II.3.4 – Registre incrémenté après chaque dépilement.Le pointeur de pile S pointe le haut de la pile. Il est décrémenté avant chaque empilement etincrémentation du pointeur de pile.dépilement, le dernier registre entré sort en premier. Le dernier registre dépilé est suivi d’unestockage, le pointeur de pile reste au niveau du dernier registre entré. Dans le cas d’un
C’est le compteur ordinal qui est commun à tous les microprocesseurs. Ce registre
pointe l’instruction suivant immédiatement celle en cours d’exécution.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 7/
E (Entire state)
ou le contexte réduit (est le contexte complet (c'est-à-dire tous les registres du MC6809)Indique si le contexte sauvegardé sur la pile lors d’une interruption
(^) et (^) CCR ). La sauvegarde réduite ayant lieu
est à « un », cela signifie que le contexte complet est sauvegardéuniquement dans le cas d’une interruption rapide (FIRQ). Quand E
II.3.6 – Registre
C’est le registre de page directe. Ce registre est utilisé lors de l’adressage direct et indique
II.4 – Les modes d’adressage du MC6809 : optimiser l’utilisation de la mémoire.dans quelle page de 256 octets les données sont manipulées. Ce registre est conçu pour Le MC6809 permet 10 modes d’adressage différents. Ces modes sont décrits dans ce
II.4.1 – Adressage immédiat : paragraphe : Dans ce mode d’adressage, la donnée se trouve immédiatement après l’instruction la
concernant. Exemples : LDA #$FF : Charger l’accumulateur
(^) avec la valeur hexadécimale
LDY #$2000 : Charger le registre d’index
(^) avec la valeur hexadécimale
II.4.2 – Adressage inhérent : Ce mode d’adressage est appelé aussi adressage implicite. Dans ce mode, l’instruction
Inhérent simple : Exemples :comporte en elle-même les informations d’adressage.
Inhérent paramétré :
ABX : Ajoute l’accumulateur
(^) à X ;
DAA : Ajustement décimal de
CLRB : Mise à zéro de l’accumulateur
TFR U,S : Transférer
(^) dans (^) S ;
EXG A,B : Echanger les contenus de
(^) et (^) B .
II.4.3 – Adressage étendu : L’instruction est suivie par un mot de 16 bits
(^) représentant l’adresse absolue de la donnée
à utiliser.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
B
25
00 10
Mémoire
ACCUMULATEUR A
$ 00 $10^ LDA
25
$1000^ LDA $
Après exécution
a) Avec registre de 8 bits
10
1CA
7B 34
Mémoire
REGISTRE Y
LD $7B $34 Y
1C
$347B LDY $347B
Après exécution
A2 BE
$347C
b) Avec registre de 16 bits
Figure II.5 – Adressage étendu
II.4.4 – Adressage indirect étendu : L’instruction est suivie par un mot de 16 bits
(^) indiquant l’adresse où est placée l’adresse
Remarque :de la donnée à utiliser.
(^) Dans l’adressage indirect étendu, le code opératoire d’une instruction est
identique à celui de l’adressage indexé, mais il est suivi d’un post-octet (l’adressage indirect
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 9/
post-octet propre). étendu est un cas particulier de l’adressage indexé et tous les modes indexé possèdent un
A
45
00 10
Mémoire
ACCUMULATEUR A
$00^ LDA [ ]
25
$1000 LDA [$1000]
[ ] signifie indirect
45 00 9F
$
Après exécution
$1001 $
Post-octet de l’adressage Indirect étendu
AE^ a) Avec registre de 8 bits
1420
00 20
Mémoire
REGISTRE X
$20^ LDX [ ]
53
$2000 LDX [$2000]
[ ] signifie indirect
14 C0 9F
$53C
Après exécution
$
20
$53C1 $
Post Indirect étendu-octet de l’adressage
b) Avec registre de 16 bits
Figure II.6 – Adressage indirect étendu
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II II.4.5 – Adressage direct : L’instruction est suivie par un mot de 8 bits représentant les poids faibles du mot de 16
de ligne dans la page, variant aussi de 0 à 255.être assimilé à un « numéro de page » variable entre 0 et 255 et le mot de 8 bits à un numérobits formé par la concaténation de ce mot de 8 bits avec le registre DP. Ce registre peut donc
(^96)
10
25
Mémoire
DP
$25^ LDA
87
$
LDA $
Avant exécution (^10)
DP
Après exécution (^87)
ACCUMULATEUR A
a) Avec registre de 8 bits
(^10)
23
9E
Mémoire
DP
LDY
50
$
LDY $
Avant exécution (^23)
DP
Après exécution 50FE
REGISTRE Y
FE
$
17
$
b) Avec registre de 16 bits
Figure II.7 – Adressage direct
Pour charger le registre de page directe, on peut procéder comme suit:
Ces commandes ont pour effet de charger le registre de page directe par la valeur
hexadécimale $01, et donc on peut adresser la page mémoire $0100-$01FF.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 13/
A
(^1500)
81
Mémoire
INDEX X
LDA
25
$1500^ LDA ,X++
++ signifie auto-incrémentation de 2
Avant exécution (^150) (^2)
INDEX X
Après exécution (^25)
ACCUMULATEUR A
Post
- octet Figure II.11 – Adressage indexé auto-incrémenté^ :^ X++
II.4.7 – Adressage indexé indirect : Tous les modes d’adressage indexé, à l’exception des modes auto-incrémentés et auto-
montre les différentes possibilités d’adressage indexé indirect.indique l’adresse où aller chercher l’adresse où est stockée la donnée à utiliser. La table II.1l’adressage indexé indirect, le déplacement est ajouté à l’index, puis la valeur ainsi obtenuedécrémentés de 1 (-R et R+, voir table II.1), autorisent un « niveau d’indirection ». Pour
A
1000
10
Mémoire
INDEX X
LDA
Post-octet : [ , X]
20
$
LDA [$10, X]
AB 25 98
$ 2025
Après exécution
$
1000
INDEX X
Avant exécution AB
ACCUMULATEUR A
$ Figure II.12 – Adressage indexé indirect
Table II.1 – Possibilités du mode indexé indirect (
(^) : signifie possible ;
(^) ×××× : signifie impossible)
Auto/pré-décrémenté
Auto/Post- incrémenté
Déplacement
Nul
8 bits
16 bits
Acc. A
Acc. B
Acc. D
-R
--R
R+
R++
Index X
Index Y
Pointeur S
Pointeur U
Compteur PC
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II II.4.8 – Adressage relatif : Ce mode d’adressage n’est utilisé que lors des instructions de branchement. Après
l’adresse où doit se brancher le programme (Pour 8 bits : -128représente un déplacement binaire signé. Ce mot est ajouté au contenu du PC pour formercompilation, le mot de 8 bits ou de 16 bits qui suit le code opératoire de l’instruction
Déplacement
+127, pour
16 bits: -
(^) Déplacement
(^) +32767). Il faut noter que le déplacement pouvant être
II.4.9 – Adressage relatif par rapport au PC: adresses absolues lors des sauts et branchements.réaliser très facilement des programmes « translatables » puisque l’on peut ainsi éliminer lescodé sur 16 bits, tout l’espace adressable du MC6809 peut être accessible. Ceci permet de Ce mode est l’un des plus sophistiqués du MC6809. Il offre la possibilité à l’utilisateur de
Remarque :le cas de l’adressage indexé indirect.PC étant considéré comme un index, il est possible de faire de « l’indirection » comme dansvaleur initiale du PC et ne fait en aucun cas référence à une adresse mémoire fixe. De plus, lemot est de 8 bits, mot+4 si le mot est de 16 bits). Le seul point de repère devient ainsi labits placé après l’instruction ; mot considéré comme un déplacement spécial (mot+3 si leLe PC est considéré comme un index (un peu spécial) auquel est ajouté le mot de 8 ou 16réaliser des programmes translatables ne faisant plus référence à une seule adresse absolue.
(^) L’indirection de ce mode est possible uniquement pour un déplacement constant
codé sur 8 ou 16 bits (voir table II.1).
A
0013
00
Mémoire
COMPTEUR PROGRAMME
LDA
Post-octet : , PC
LDA $E0, PC
AB 8C
$ (^63)
Après exécution
$
0010
COMPTEUR PROGRAMME
Avant exécution AB
ACCUMULATEUR A
0013
MIS À JOURCOMPTEUR PROGRAMME
50
$
Figure II.13a – Adressage relatif au compteur programme avec un mot d’un octet
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 15/
A
1004
60
Mémoire
COMPTEUR PROGRAMME
LDA
Post-octet : [ , PC]
17
$
LDA [$ (^6) 000, PC]
80 1C^ 9D
$
Après exécution
$
1000
COMPTEUR PROGRAMME
Avant exécution 1C
ACCUMULATEUR A
$
1004
MIS À JOURCOMPTEUR PROGRAMME
00
$
Figure II.13b – Adressage relatif au compteur programme avec un mot de deux octets
II.5 – Le jeu d’instructions du MC6809 : Le jeu d’instructions du MC6809 peut être décomposé en un certain nombre de grandes
II.5.1 – Les opérations arithmétiques et logiques sur 8 bits : réalisant le même type d’opération. On distingue :classes facilitant ainsi sa représentation. Chacune de ces classes regroupe les instructions Ces instructions sont rassemblées dans le tableau 1. Les opérations réalisées par ces
II.5.2 – Les opérations arithmétiques et logiques sur 16 bits : être n’importe lequel des registres 8 bits (A, B, CCR, DP).registres (EXG R1, R2) ou (TFR R1 , R2) sans passer par la mémoire, où R1, R2 peuventregistre d’état (CCR) et de page directe (DP). Il est possible d’effectuer des échanges entreinstructions ont lieu entre la mémoire et les accumulateurs A et B ou entre la mémoire et les Ces instructions sont rassemblées dans le tableau 2. Les instructions réalisant ces
et les registres de 16 bits. Ce sont des instructions travaillant sur 16 bits.opérations sont effectuées entre l’accumulateur D et la mémoire ou entre l’accumulateur D A titre (^) d’exemples :
(^) l’instruction
(^) permet
(^) des (^) opérations
(^) de (^8) (^) bits (^) sur (^) les
ou PC).16 bits (TFR R1, R2 et EXG R1, R2 où R1 et R2 sont des registres de 16 bits : X , Y, S, UEXG permettent respectivement le transfert et l’échange de données entre deux registres deaccumulateurs A et B puis le passage en 16 bits sur D (et vice versa). Les instructions TFR et
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 16/
II.5.3 – Les opérations relatives aux index et pointeurs de pile : Ces instructions sont rassemblées dans le tableau 3. L’utilisateur dispose des mêmes
peuvent être pointeurs de pile).possibilités sur U et S que sur X et Y (mais l’inverse n’est pas vrai puisque seuls U et S A titre d’exemples : transfert et échange entre registres (EXG R1, R2 et TFR R1 et R2),
II.5.4 – Les instructions de branchements conditionnels et inconditionnels : bien sur un registre (PSHS A) que sur un ensemble de registres (PSHS A, B, Y, U).les instructions de sauvegarde et de récupération de la pile (PSH et PUL) qui agissent aussi Ces instructions sont rassemblées dans le tableau 4. Chaque mnémonique est double ;
II.5.5 – Autres instructions : LBRN sont des NOP (No OPeration) un peu particulières.permettant d’atteindre tout l’espace adressable par le MC6809. Les instructions BRN etbits (de -32768 à +32767) appelé « Long déplacement » d’où le L devant les mnémoniques,autorise une étendue adressable de -128 à +127 octets ou avec un déplacement codé sur 16offerte par l’adressage relatif, de travailler avec un déplacement codé sur 8 bits, ce quiainsi on trouve BCC et LBCC, BRA et LBRA, … cette duplication vient de la possibilité Ces instructions sont rassemblées dans le tableau 5. Ces instructions ont diverses utilités
et applications. A titre (^) d’exemples :
(^) l’instruction
(^) ou (^) attente
(^) d’interruption,
(^) les instructions
d’interruptions
(^) logicielles
(^) et (^) SWI3,
(^) l’instruction
(^) permettant
(^) de
synchroniser le MC6809 sur un évènement externe, … etc. Tableau 1 – Les instructions 8 bits relatives aux accumulateurs et à la mémoire Mnémonique
Opération réalisée
Addition Mémoire - Accumulateur avec retenue
Addition Mémoire - Accumulateur sans retenue
ET logique Mémoire - Accumulateur
Décalage à gauche d’une mémoire ou d’un accumulateur
Décalage à droite d’une mémoire ou d’un accumulateur
Test d’un bit Mémoire - Accumulateur
Mise à zéro mémoire ou accumulateur
Comparaison Mémoire - Accumulateur
Complémentation mémoire ou accumulateur
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 19/
Tableau 5 – Les instructions particulières du MC
Mnémonique
Opération réalisée
ET logique du CCR avec la mémoire
Attente d’interruption
Pas d’opération réalisée
OU logique du CCR avec la mémoire
Saut inconditionnel (Utiliser de préférence LBRA)
Saut à un sous-programme (identique à LBSR)
Retour d’interruption
Retour d’un sous-programme
Interruption par logiciel
Synchronisation avec une interruption
II.6 – Durée d’une instruction : Une instruction ne s’exécute jamais instantanément, il lui faut une certaine durée. La
microprocesseur, Tdurée d’une instruction se calcule en nombre de cycles machine (période de l’horloge E du
Pour (^) un (^) MC
(^) opérant
(^) à (^) une (^) fréquence
(^) de (^) fonctionnement
(^) de (^1) (^) MHz :
μs^1
6
E
=
La durée d’exécution d’une instruction sur le MC6809 dépend de la complexité de
l’instruction. Généralement,
E
n
instructio
n.T
et sur le MC6809, nous avons : 2 ≤ n ≤11.
L’exécution
(^) complète
(^) d’une
(^) instruction
(^) consiste
(^) en deux
(^) actions :
(^) extraction
(^) puis
exécution. instruction composée de k octets nécessitera donc :ce cas compter le code opératoire et tous les codes opérandes. En général uneIl y a autant d’extractions que d’octets constituant l’instruction, il faudra donc dansextraction, une période de l’horloge E est nécessaire.L’extraction consiste à extraire des données de la mémoire. Pour réaliser une
E
extraction
k.T
opératoire nécessite deux périodes de l’horloge E (2Tfois que le microprocesseur l’extrait de la mémoire. L’interprétation du codeL’exécution consiste à traduire et interpréter le code opératoire de l’instruction une
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Registre d’instruction
s
Mémoire
Décodeur
(^) d’instruction
s
Unité de co
ntrôle
Intérieur du
(^) μμμμ P:
(^) UAL (^) Compteur ordinal ; (^) Registres d’adresses ; (^) Registres à usage général ;
Extérieur du
(^) μμμμ P:
les Emission de signaux vers (^) circuits
(^) vers
RAM, Interface) Figure II.14 – Interprétation d’une instruction par le MC
Donc la durée totale pour l’exécution complète d’une instruction est donc :
E
n
instructio
(k
II.7 – Utilisation du MC6809 dans un système à microprocesseur : Malgré les nombreuses possibilités qu’offre le MC6809, ce dernier reste simple à
réduits au minimum dans une telle configuration.bascules de mémorisation sur les lignes de données. Par ailleurs, les signaux de contrôle sontdonnées du MC6809 ne sont pas multiplexés. Il n’est donc pas nécessaire de prévoir desd’interface. La simplicité de cette interconnexion vient du fait que les BUS d’adresses et deutiliser lors de l’interconnexion du MC6809 avec des mémoires RAM, ROM et un circuitemployer dans un système à base de microprocesseur. La figure II.15 présente les signaux à
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 21/
A D R/W CS
CIRCUIT D’INTERFACE
A D R/W
E
MC
A D R/W CS
RAM
A D
CS
ROM
(^16)
8
INT
IRQ (^) / (^) FIRQ (^) / (^) NMI
Décodage
Figure II.15 – Système à microprocesseur à base du MC6809 – BUS non multiplexés
II.8 – Brochage et description des signaux du MC6809 : Le MC6809 est livré dans un boîtier de 40 broches (voir figure II.1): Broche
Description
Vcc (+5V ±5%)
Alimentation du microprocesseur.
Vss (0V)
Masse de l’alimentation du microprocesseur.
BUS d’adresses :
(^) Ce sont des sorties « Trois états » capables de
libère son BUS, ce qui est spécifié par le signal BA (BUS Available).Ces lignes passent à l’état « haute impédance » lorsque le MC6809MC6809 ne fait pas d’accès mémoire, toutes ces lignes sont à « un ».commander une charge TTL ou 4 charges TTL-LS. Lorsque le
BUS de données :
(^) Ce sont des lignes bidirectionnelles, trois états,
ou 4 charges TTL-LS).dotées de la même sortance que le BUS d’adresses (une charge TTL
W
R/
Lecture/Ecriture :
(^) C’est une ligne unidirectionnelle, trois états,
indiquant si le MC6809 lit (
W
R/ à 1) ou écrit (
W
R/ à 0) dans la
impédance lorsque le MC6809 libère son BUS.mémoire (ou dans un périphérique). Cette ligne passe à l’état haute
RESET
Remise à zéro du MC6809 :
(^) Un niveau bas sur cette ligne effectue
vecteursPC avec l’adresse contenue en FFFE et FFFF. La position desune remise à zéro de l’unité centrale ; cela a pour effet de charger le
(^) d’interruption
(^) est (^) indiquée
(^) dans
(^) le (^) tableau donné
(^) ci-
dessous.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 22/
HALT
Arrêt du MC6809 :
(^) Lorsque cette ligne passe au niveau bas, le
PendantMC6809 termine l’instruction en cours, s’arrête et libère son BUS.
(^) une (^) mise
en (^) arrêt,
le microprocesseur
ignore (^) les
un traitement dès la mise à « un » de la ligneinterruptions IRQ et FIRQ, mais mémorise NMI et RESET pour
(^) HALT
(^).
BA et BS
Sortie indiquant l’état de l’unité centrale :
(^) Ces deux signaux
suivant :en train de faire et sur l’état du BUS d’adresses, selon le tableaufournissent une information utile sur ce que le microprocesseur est BA
BS
État du MC
(^0) (^0) Le microprocesseur est en fonctionnement normal
(^0) (^1) ouLe microprocesseur est en train de traiter une interruption une remise
à zéro (RESET).
Acquittement
d’interruption ou de RESET
(^1) (^0) (SYNC). Acquittement de synchronisationLe microprocesseur est en attente d’une synchronisation
(^1) (^1) (DMA)Le microprocesseur accorde un accès direct à la mémoire (^) ou (^) le (^) microprocesseur
(^) est (^) en (^) état (^) de (^) pause
(HALT). MC6809 est à l’arrêt ou ayant libéré son BUS
le Le décodage de ces deux signaux permet de connaître, par exemple, moment
(^) où (^) le (^) MC
(^) a (^) libéré
(^) son (^) BUS,
(^) ce (^) qui (^) est
particulièrement
(^) intéressant
(^) pour
(^) la (^) conception
(^) de (^) structures
Note : « multiprocesseurs ».
(^) Quand BA est à l’état haut, les lignes d’adresses ne seront
les contrôle, ces lignes sont flottantes.pas commandées par le MC6809. S’il n’y a pas un autre circuit qui
NMI
Interruption non masquable :
(^) Un front descendant sur cette
par programme d’où le nom « non masquable ».est mémorisée en FFFC et FFFD. Cette entrée ne peut être inhibéeentrée déclenche la séquence d’interruption dont l’adresse de début
Vecteurs d’interruption
Poids forts
Poids faibles
Définition du vecteur
FFFE
FFFF
RESET
FFFC
FFFD
NMI
FFFA
FFFB
SWI
FFF
FFF
IRQ
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 25/
4 3 2 1
37 38 39 40
RESET^ EXTAL XTAL HALT
fonctionnement dufois la fréquence de Quartz de fréquence 4
(^) μP
C=22 pF
a) Horloge à base de Quartz
4 3 2 1
37 38 39 40
RESET EXTAL XTAL HALT
fonctionnement du4 fois la fréquence de Horloge de fréquence
(^) μP
b) Horloge externe
Figure II.16 – Conception d’une horloge pour le microprocesseur MC
II.9 – Les interruptions matérielles du MC6809 : Tous les processeurs modernes ont un mécanisme pour permettre aux périphériques ou
II.9.1 – NMI : à une broche d’entrée d’interruption.MC6809, il y a trois types d’interruptions matérielles. Chaque type d’interruption correspondtypes d’interruptions, certaines ont des priorités plus grandes par rapport aux autres. Sur leaux circuits auxiliaires d’avoir l’attention du microprocesseur. D’habitude, il y a plusieurs Interruption non masquable : ce type d’interruption est réservé aux interruptions les plus
II.9.2 – FIRQ importantes (ou les plus impatientes !). Le MC6809 accorde la plus haute priorité aux NMIs.
Requête rapide d’interruption : ce type d’interruption a une priorité moyenne. Une NMI
ou une SWI interrompra une FIRQ, mais une FIRQ interrompt une IRQ. De plus, une
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II II.9.3 – IRQ avant d’aller au mécanisme de traitement des interruptions FIRQ. FIRQ sauvegarde uniquement le compteur ordinal PC et le registre d’état CCR dans la pile
C’est l’interruption avec la priorité la plus basse. Elle peut être interrompue par NMI,
II.10 – L’assembleur du MC6809 : mécanisme de traitement des interruptions IRQ.SWI et FIRQ. De plus, IRQ sauvegarde tous les registres sur la pile avant d’aller au Chaque ligne d’instruction du programme comporte quatre parties appelées « champs ».
Chaque champ est séparé par un espace.
Étiquette
Code opératoire
Code opérande
Commentaire
II.10.1 – Etiquette Ce champ n’est pas obligatoire. Il permet de repérer la position d’une instruction dans le
programme. Une étiquette est un symbole d’au plus 6 caractères alphanumériques, commençant
moins un blanc doit précéder le champ suivant.obligatoirement par une lettre de l’alphabet. Dans le cas, où le champ étiquette est vide au Si le premier caractère de la ligne est une *, la ligne est alors considérée comme un
II.10.2 – Code opératoire commentaire. Ce champ contient le code mnémonique de l’opération à exécuter ou une directive de
II.10.3 – Code opérande l’assembleur. Ce champ complète le champ code opératoire et contient la donnée nécessaire à
l’exécution de l’instruction. Sa syntaxe est variée et dépend du mode d’adressage attribué à l’instruction. On trouve : ● (^) Des expressions (combinaison des éléments ci-dessus). ● (^) Des nombres ; ● (^) Des symboles (noms de registre) ; ● (^) Des étiquettes (noms) ;
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 27/
Les nombres peuvent être représentés dans différentes bases : ● (^) Binaire (%). ● (^) Hexadécimale ($) ; ● (^) Octale (@) ; ● (^) Décimale (sans indication particulière) ;
Les expressions
(^) se composent d’une suite de nombres et de symboles séparés par des
II.10.4 – Le champ commentaire Exemple : CMPX (#2×12+ADR1)opérateurs arithmétiques, logiques et des parenthèses. Ce champ est facultatif. Il permet de documenter le programme et de faciliter sa lecture.
II.11 – Les directives d’assemblage : Tous les caractères de l’éditeur sont utilisables. Appelées aussi pseudo-instructions. Ce sont des commandes que le programmeur utilise
principales catégories de directives sont :pour donner des directives à l’assembleur et qui agissent sur le processus d’assemblage. Les ● (^) Assistance à la programmation : END. ● (^) Inscription de constantes en mémoire : FCB, FDB et FCC ; ● (^) Gestion de l’espace mémoire : ORG et RMB ; ● (^) Affectation de symboles : EQU et SET ;
DEST EQU $2000ORGN EQU $1000Exemples :programme.Les symboles utilisés avec EQU ne peuvent pas être redéfinis dans la suite duSyntaxe : Symbole EQU ExpressionAffectation d’une valeur à un symbole ou à une étiquette.
Affectation temporaire
(^) d’une valeur à un symbole.
suite dans le même programme.Les symboles définis avec cette directive peuvent être à nouveau définis par laSyntaxe : Symbole SET Expression
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
ARG SET $2 ( Exemples :
Exemple : ORG $1000ordinal PC à la valeur spécifiée par Expression.Cette directive sert à définir une adresse d’origine. Elle charge le compteurSyntaxe : ORG ExpressionOrigine (initialisation du compteur programme).
mémoire pour un usage particulier.d’octets égal à la valeur de Expression. Le but étant de réserver une zoneCette directive provoque lors de l’assemblage un « saut » du PC, d’un nombreSyntaxe : Symbole RMB ExpressionReserve Memory Bytes (réservation d’octets en mémoire).
Exemples :PC = PC+1.cases mémoire définies par la valeur du PC. Pour chaque écriture en mémoire:Cette directive inscrit la valeur exprimée sur 8 bits des expressions dans lesSyntaxe : Symbole FCB Expression1, Expression2 ...Form Constant Byte (définition d’une constante d’un octet).
ORG $
FF^ AA 01
Mémoire
$4002 $4001 $
valeur sur 16 bits. Le PC est incrémenté de 2 pour chaque mot écrit.Cette directive est identique à FCB mais cette fois, l’expression représente uneSyntaxe : Symbole FDB Expression1, Expression2,...Form Double Byte Constant (définition d’une constante de deux octets).
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II
Page 31/
L’espace mémoire dans ce programme sera organisé comme suit :
00
Mémoire
ADR1+1 ADR
8 Bits
ADR3+23 ADR3+1 ADR3 ADR2+23 ADR2+1 ADR2 ADR1+
ADR1+
24 04 00 02 00
ADR1+23 ADR1+
44 00 24 00 22 00
ADR3+22 ADR3+3 ADR3+2 ADR2+22 ADR2+3 ADR2+
Remarque
(^) : Les données sont indiquées en décimal
Exercice :
(^) Faire un programme d’addition de deux vecteurs de 8 bits.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II II.13.1 – Principe des oscillateurs à quartz : II.13 – Annexe : Les oscillateurs à quartz ont une fréquence d'oscillation très élevée et très précise. Ils
servent d'horloge pour les systèmes à base de microprocesseurs. Soumise à un champ électrique, une mince plaquette de quartz oscille spontanément
II.13.2 – Conceptions d’horloges à Quartz : circuit électronique extérieur.avec une très grande précision. L'oscillation doit être entretenue et mise en forme par un
en CMOS :
en TTL :
R= 1M Ω
C= qlq pF^ Quartz
R= 330 k Ω
C= 30 pF
Quartz
La précision des quartz étant au minimum de 10
, les oscillateurs obtenus sont donc très-
piézo-électrique.précis. Il existe également des circuits intégrés comprenant un oscillateur à base de quartz