You are on page 1of 121

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek
"Microprocesseur
6809"

Plan du cours
I.1 Introduction I.2 Architecture du microprocesseur I.3 Architecture externe
Le
schéma fonctionnel L’UAL
L’accumulateur Le compteur d instructions
Le registre d adr
sses Le registre d instructions
Le registre d état
Les registres temporaires de l
UAL
Les registres généraux
La logique de contrôle II. Introduction au jeu d instructio
ns du microprocesseur
Le jeu d instructions
Le code mnémonique
Les modes d adressa
ge la pile III. Les interruptions IV. Les interfaces
le P.I.A. (Interface parallèl
e) Les mémoires
l A.C.I.A. (Interface série)
Master en Contrôle et instrumentation
Page 1

Cours Microprocesseur 6809
Historique
Dr. Lachouri Abderrazek

Le microprocesseur est l aboutissement de progrès technologiques tant dans les dom
aines mécanique, informatique et électronique. Quelques dates :
1690 : Pascal invent
e la machine à calculer entièrement mécanique (addition et soustraction) 1800 : Jacqua
rt invente le métier à tisser avec cartes perforées. 1810 : Invention de l orgue de ba
rbarie (succession de cartes perforées).
1940 : Premier ordinateur à relais mécaniques
(Navy)
1946 : Premier ordinateur à tubes à vide (1800). 1948 : Progrès de la physique
quantique avec découverte de l effet transistor. 1950 : Réalisation des premières mémoi
res à ferrites.
1958 : Développement du premier circuit intégré (4 à 5 tr/puce). 1964 : O
dinateur à transistors (à base de circuits TTL : 50 transistors dans une puce).
1970
: Premiers circuits L.S.I.- naissance du premier microprocesseur 4 bits avec 10
00 transistors sur une puce. 1975 : Naissance du microprocesseur Motorola 6800 (
8 bits). 1980 : Apparition du microprocesseur 16 bits avec 50000 transistors sur
la puce.
1984 : Apparition du microprocesseur 32 bits avec un million de transi
stor sur la puce.
1994 : Apparition du Pentium avec 3,5 millions de transistors.
C est en 1971 que le premier microprocesseur est sorti des laboratoires d Intel
. Travaillant sur 4 bits et d une puissance faible, l intérêt de ce nouveau composan
t électronique ne fut pas évident jusqu à ce que l idée de le transformer en calculatric
e fut trouvée. Sept ans plus tard, l arrivée du 8088 multiplie déjà cette puissance de c
alcul par 200. Cette date correspond à la naissance des véritables micro-ordinateurs
. Arrivent ensuite les microprocesseurs 68000 et 80286 (16 bits) avec les Macint
osh et P.C. que nous connaissons. Ils ont introduit l image et le son. Ensuite,
tout n est plus qu une question de course à la puissance de calcul. Chaque bond te
chnologique apporte sont innovation. Aujourd hui, le multimédia puis le 3 D et le
temps réel. Demain, le monde virtuel.
Master en Contrôle et instrumentation
Page 2

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
Principes de base
Les premiers automatismes étaient réalisés à partir de la logique câblée selon le synoptique
suivant :

Les systèmes à logique câblée sont conçus à l aide de circuits intégrés logiques. Certains de
s circuits font appel à :
(Les sorties sont définies uniquement à partir des variables d entrée)
(Les sorties dépendent toujours des entrées mais aussi des états antérieurs)
Master en Contrôle et instrumentation
Page 3

Nouveau synoptique : Principe de la logique programmée Illustration à partir d un circuit simple constitué de 3 cases mémoires et 3 portes lo gique ET.Cours Microprocesseur 6809 Dr. OU et NON. mais par une suite ordonnée d instructions stockées en mémoire et gérées par cet élémen . Lachouri Abderrazek Le fonctionnement n est plus défini par un ensemble de circuits logiques. On se propose de réaliser la fonction : A exclusif B Schéma : Initialisation [M1] = A et [M2] = B Master en Contrôle et instrumentation Page 4 . câblés entre eux.

Cours Microprocesseur 6809 Déroulement : Dr. Lachouri Abderrazek Master en Contrôle et instrumentation Page 5 .

U. Elle concerne la ma nipulation des données sous formes de transfert. Son rôle : Ce circuit rempl it deux fonctions essentielles : Le traitement des données On parle d unité de traitement. opérations arithmétiques. Lachouri Abderrazek Définition : Le microprocesseur.P.. (Central Processing Unit) est un circuit intégré complexe appartenant à la famille des VLSI (Very Large Scale Intégration) capable d effectuer séquentiellem ent et automatiquement des suites d opérations élémentaires..Cours Microprocesseur 6809 Le microprocesseur Dr. Puissance d un microprocesseur Définition : La notion de puissance est la capacité d e traiter un grand nombre d opérations par seconde sur de grands nombres et en grande quantité. noté aussi M.A.L. Master en Contrôle et instrumentation Page 6 .. La vitesse d exécution des instructions liée à la fréquence de fonctionnement de l horl oge de synchronisation exprimée en MHZ. L’aspect dimensionnel renseigne assez bien d e la puissance du composant. Le contrôle du système Cette fonction se traduit par des opérations de décodage et d exécution des ordres exp rimés sous forme d instruction.U. Cette fonction est dédiée à l U. Intrinsèquement la puissance se joue donc sur les trois critères suivants: La longueur des mots : données et instructions (on parle de largeur du bus des données). (Microprocessor unit) ou encore C.P. Le nombre d octets que le microprocesseur peut adresser (on parle de largeur du bus des adresses). opérations lo giques.

Lachouri Abderrazek Système à base du microprocesseur 6809.Cours Microprocesseur 6809 Familles des Microprocesseurs: Dr. Master en Contrôle et instrumentation Page 7 .

de haute gamme. 1. Lachouri Abderrazek Description du microprocesseur 6809 : Le microprocesseur 6809 est un processeur à 8 bits. dont l organis ation interne est orientée 16 bits. Master en Contrôle et instrumentation Page 8 . Il présente la particularité de pouvoir être synchronisé par une horloge extérieure. Il est fabriqué en technologie MOS canal N et se présente sous la forme d un boîtier DIL 40 broches. Il est mono. Le 6809E est rythmé par une horloge externe. Le 6809 est rythmé par une horloge interne (f=1 MHZ.5 MHZ et 2 MHZ).Cours Microprocesseur 6809 Dr. Compatibilité complète entre les d eux versions. Il e xiste en deux versions différenciées par l horloge.tension (5V). Ce dernier est adapté aux applications multiprocesseur.

Lachouri Abderrazek L’alimentation (Vss .Vcc ) Le bus des données 8 bits (Do à D7) : Ces huit broches son t bidirectionnelles.Cours Microprocesseur 6809 Présentation du brochage : Dr. Chaque broche peut "piloter" une (1) Master en Contrôle et instrumentation Page 9 . Elles permettent la communication avec le bus des données int erne du microprocesseur.

IRQ .Les lignes d état du bus : BA ( Bus Available) et BS (Bus State) Information qui permet de connaître l état du micro processeur à tout moment. Le bus des adresses 16 bits (Ao à A15) : Ces broches unidirec tionnelles transfèrent l adresse 16 bits fournie par le microprocesseur au bus d a dresse du système. Bus en logique trois états. NB : les adresses sont validées sur le front montant de Q. 1er cas : Le microprocesseur est en fonctionnement normal. Cet état correspond à la recherche des vecteurs d interruption : Re set . SW1. Cette ligne est validée sur le front montant de Q. 2eme cas : Le microprocesseur est en phase de reconnaissance d interruption pendant deux cycles. Lachouri Abderrazek charge TTL et 8 entrées de circuits appartenant à la famille 6800. Ligne à logique 3 états.Cours Microprocesseur 6809 Dr. . Le b us de contrôle : des : Cette broche indique le sens de transfert données sur le bus des données. il gère les bus d adres ses et de données. 3eme cas : Ce signal apparaît lor sque le microprocesseur rencontre l instruction de synchronisation externe (nive au bas sur SYNC). Mêmes caractéristiques électriques que pour le bus des données. Le bus est en log ique à trois (03) états. Il attend alors cette Master en Contrôle et instrumentation Page 10 . NMI . 2 et 3.

Cours Microprocesseur 6809 Dr. Les bus sont en haute impédance pendant ce temps.C. est initialisé avec le contenu des vecteurs d initialisation qui se Trouve nt aux adresses $FFFE et $FFFF. Ce contenu représente l adresse du début du programm e qui sera Exécuté par le microprocesseur. 4eme cas : Correspond à l arrêt du microprocesseur (niveau bas su r HALT ). Pour que cette ligne soit active. Les bus sont en haute impédance. La ligne BA au niveau haut indique que les bus sont en haute impédance. L’interruption non mas quable NMI est désarmée . Broche d initialisati on Re set : Un niveau bas sur cette broche entraîne une réinitialisation complète du c ircuit. Conséquences : L’instruction en cours est arrêtée . Le microprocesseur laisse la gestion des bus des données et des adresses à un circuit annexe (contrôleur de DMA). Le schéma adopté est généralement le suivant : Le P. elle doit être maintenue à u n niveau bas durant un temps suffisamment long (plusieurs cycles d horloge). Le registre de pagination (D P) est mis à zéro . Lachouri Abderrazek synchronisation sur une des lignes d interruption. Master en Contrôle et instrumentation Page 11 . Les interruptions IRQ et FIRQ sont masquées .

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
La broche : HALT (Arrêt du microprocesseur). Un niveau bas sur cette broche provoq
ue l arrêt du microprocesseur (mais à la fin de l exécution de l instruction en cours)
. Il n y a pas perte des données. (BA = BS = 1) Dans ce cas : Les demandes d inter
ruption IRQ et FIRQ sont inhibées Les demandes d accès direct (DMA) à la mémoire sont au
torisées. Les demandes d interruptions Re set et NMI sont prises en compte mais le
ur traitement est différé.
Les broches d interruption :
NMI (No Masquable Interrupt) IRQ (Interrupt Request) FIRQ (Fast Interrupt Reques
t) Entrées (actives sur un niveau bas) qui peuvent interrompre le fonctionnement n
ormal du microprocesseur sur front descendant de Q.
Entrées d horloge XTAL et EXTAL (Extension crystal) :
La fréquence du quartz (horloge) microprocesseur.
est quatre fois la fréquence du
Eout : représente le signal d horloge commun au système. Il permet la synchronisatio
n du microprocesseur avec la périphérie. Qout : représente le signal d horloge en quad
rature avec Eout. Les données sont lues ou écrites sur le front descendant de Eout.
Les adresses sont correctes à partir du front montant de Qout.
Master en Contrôle et instrumentation
Page 12

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
Broches complémentaires du bus de contrôle :
MRDY (Memory ready) : Cette broche de commande permet d allonger la durée de Eout
pour utiliser des mémoires à temps d accès long. Active sur un niveau bas. l allongeme
nt est un multiple de un quart de cycle et sa valeur maximale est de 10 cycles.
DMA/BREQ : (Direct Memory Acces/Bus Request), Cette broche permet de suspendre l
utilisation des bus du microprocesseur, pour faire de l accès direct ou du rafraîch
issement mémoire. Fonctionnement : Pendant que Q est au niveau haut (si DMA/BREQ b
as) cela entraîne l arrêt du microprocesseur à la fin du cycle en cours ... et non de
l instruction. (BA = BS = 1 ce qui veut dire que tous les bus sont en haute impéda
nce). Le circuit ayant généré cette commande dispose de 15 cycles machines avant que l
e microprocesseur ne reprenne le contrôle des bus.
Broches spécifiques au 6809 E
Entrées d horloge : EIN et QIN, Ce sont deux broches dans lesquelles on applique d
es signaux identiques à Eout et Qout du 6809. Ces signaux doivent aussi être fournis
à l ensemble du système (signaux de synchronisation).
TSC (Tree States Control) : C
ette broche a le même rôle que l entrée DMA/BREQ précédente. Possibilité de faire du DMA afi
n de réaliser des opérations de : rafraîchissement Partage de bus avec un autre microp
rocesseur
LIC (Last Instruction Cycle) : Cette broche de sortie est à l état haut pe
ndant le dernier cycle de chacune des instructions exécutées par le microprocesseur.
Le cycle qui suit ce signal est donc toujours un cycle de recherche de code opéra
toire d’une instruction. Cette sortie au niveau haut signifie que le microprocesse
ur utilisera les bus au cours du cycle suivant. La nature prédictive de ce signal
permet d améliorer le fonctionnement d un système multiprocesseur à bus partagé. Elle pe
rmet un contrôle efficace des ressources communes d un dispositif multiprocesseur.
AVMA (Advanced Valid Memory Access) : (Contrôle des ressources communes en multip
rocesseur), C est une broche de sortie qui signale un prochain accès au bus par le
microprocesseur. Master en Contrôle et instrumentation Page 13

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
BUSY (Occupation des bus) : Sortie mise au niveau haut pendant les instructions
du type : lecture, écriture et exécution du premier octet d un opérande constitué de deu
x octets (une adresse par exemple). Dans un système multiprocesseur, ce signal ind
ique le besoin pour un microprocesseur de disposer des bus au cours du prochain
cycle pour assurer l intégrité de l opération en cours. Cela évite l adressage simultané d
une même zone mémoire par 2 microprocesseurs. On ne doit pas activer TSC quand BUSY
est actif. Exemple d application :
Architecture interne du microprocesseur 6809 :
Master en Contrôle et instrumentation
Page 14

Cette unité joue en quelque sorte Master en Contrôle et instrumentation Page 15 . On les appelle encore des registres tampons ou verrou . L entrée de L UAL est connectée au bus interne via un regist re "temporaires" et un registre particulier appelé "accumulateur". Lachouri Abderrazek Architecture interne du 6809 L Unité Arithmétique et Logique : Son rôle : Ce circuit p ermet de traiter et tester les données. La logique de contrôle : Appelé encore Séquenceur ou Unité de Contrôle (U. Ces registres permettent de stocker des octets aux entrées de l UAL. Il lui est totalement transparent. elle est dépourvue de moyen propre de stockage. Noter : Les deux entrées sont précédées par une mémoire tampon. Ce type de registre ne peut être manipulé par le programmeur. ) Son rôle : Permet à tous les éléments constitutifs du microprocesseur de travailler en semble et dans l ordre. L UAL étant c onstitué d une logique combinatoire.C. Toute instruction qui modifie une donnée fai t toujours appel à l UAL. La sortie de l UAL est connectée uniquement à l entrée de l accumulateur. Commentaires : La logique de contrôle est pilotée par le Reg istre d Instruction via le décodeur d instruction.Cours Microprocesseur 6809 Dr.

Ce tte unité fournit. elle gère le fonc tionnement et la synchronisation de tout le système en générant le signal d horloge et les signaux internes ou externes (bus des commandes) au microprocesseur. Suivant le protocole ci-dessous : La donnée extraite de l a mémoire est stockée dans le R. Le Registre d Instructions RI : Sa tâche : Le registre d instructions contient le premier octet de l instruction en cours d exécution. Master en Contrôle et instrumentation Page 16 . L élément entral est représenté par le décodeur d instructions qui décode les informations (premie r octet) stockées dans le R. à partir d un signal de référence qui est l horloge. pour générer les signaux nécessaires à l exécution de l instr uction. Commentaires : Le registre est chargé pendant le cycle de base extraction-exécution. (c est la phase extraction). décode et exé instructions : Composée de circuits logiques et de temporisations. tous les signaux de synchronisation utiles au bon fonctionnement de l ensemble.Cours Microprocesseur 6809 Dr. La logique de contrôle possède une architecture complexe et très spécialisée. Il reçoit l information (octet) grâce au bus de données auquel il est connecté. L information qu il "capture" sur le bus des données est utilisée par l e décodeur d instructions. Résumé : D’une manière générale le rôle de l’unité de commande est Cherche. La logique de contrôle génère sur les lignes de contrôle des niveaux logiques qu i activent les différents circuits environnant tels que mémoires et circuits I/O. • Elle p ermet gérer la séquence le déroulement des instructions • Elle cherche l instruction dan s la mémoire en envoyant l adresse avec un signal de lecture à la mémoire • Elle décode l instruction et détermine l opération à exécuter • Génère les signaux nécessaires à l exécutio instruction • Préparation de l instruction suivante. Cette horloge es t crée à partir d un oscillateur interne qui utilise un signal en provenance d un qu artz externe.I. Ensuite ce contenu e st interprété par le décodeur d instructions qui agit alors sur la logique de contrôle ( c est la phase exécution). Le traitement des interruptio ns. Deux actions complémentaires à noter : Le contrôle de mise sous tension du microprocesseur (initialisation des registres). Lachouri Abderrazek un rôle d intendance puisqu elle décide de la disponibilité du bus à tel ou tel élément logi que.I.

une case mémo ire. possèd ent des accumulateurs de longueur double tel D chez Motorola et HL chez Intel dissociés en deux et généralement baptisés individuellement A et B ou H et L respectivem ent. une éc riture ou autre .Cours Microprocesseur 6809 Dr..) Un lieu d action (un registre.) Le résultat de cette interprétation se traduit par des niveaux logiques sur le bus de contrôle. De mémoire à unités d entrée-sortie (I/O). Master en Contrôle et instrumentation Page 17 . L accumulateur : C est le registre le plus important du microprocesseur. il sert systématiquement l orsque le microprocesseur a besoin de "manipuler" des données. un accumulateur. Certains microprocesseur.. Certaines instructions regroupent les registres A et B pour former un seul accumulateur D de 16 bits. il représente une grande souplesse d utilisation! Les autres registres ne permettent que des opérations limitées.. Gros avantage présenté par un microprocesseur possédant plusieurs accumulateurs : les opérations logiques et arithmétiques se font entre accumulateurs limitant ainsi les accès (transferts) avec l extérieur. Cette action s t en deux temps : Source Vers Accumulateur et ensuite Accumulateur vers destinat ion. La plupart des opérat ions logiques et arithmétiques sur les données font appel au couple "UAL . Lachouri Abderrazek Cet octet indique au microprocesseur deux choses : Une action (une lecture. Au niveau de la programmation..accumulat eur" selon la procédure suivante: Il en est de même pour les déplacements et transferts des données d un endroit à un autr e comme : De mémoire à mémoire. Les instructions supportées par un accumulateur sont très nombreuses. Les deux registres A et B sont interchange ables (même rôle/instruction) sauf pour les instructions ABX et DAA et les opérations sur 16 bits. Dans ce cas l accumulateur A représente l octet de poids fort et l’accumulateur B l’octet de poids faible.

Le P. Le contenu des cases mémoires ($FFFE-$FF FF) représente en général l adresse où se trouve le premier octet de la première instructi on du programme. généralement à des adresses successives. A la mise sous tension. le passage de s paramètres entre programmes et sous programmes.C. une valeur particulière est déposée sur le bus d adresses (Dans le cas du 6809. le contenu de ces registres peut-être incrémenté ou décrémenté pour gér des données stockées sous forme de table.O. il peut-être utilisé pour sauvegarder un contexte mais cette fois. [Le pivot + offset] cela revient à [X] ou [Y] + le déplacement.16 bitscontenues dans c es registres servent de pointeur de données (adresses). (haut dans le sens adresse la plus grande). Lachouri Abderrazek Appelé encore Compteur Programme (P.C. cette valeur est $FFFE). "repère" le premier octet de c haque instruction du programme. Les registre U et S peuvent faire office de pointeurs . avec facilité.registres d index.) ou Compteur Ordinal (C. La taille du PC a une longueur de 16 bits ce qui lui permet d adresser 65536 adresses mémoire soit 64 k octets (le champ mémoire).) Son rôle : Pointer TOUJOURS le premier octet d une instruction. Master en Contrôle et instrumentation Page 18 Les registres d index (registres de 16 bits) Les registres d index X et Y . Gestion de ces po inteurs : Ces registres "pointent" toujours le haut de la zone mémoire qui leur es t attribuée. ce n est pas automatique). Cette pile fonctionne en mode LIFO (Last In First Out). Les données . On appelle cette zone une pile. Ces adresses "peuvent être m odifiées" par une constante. Les registres pointeurs : sont utilisés pour les modes d adressage indexé.Le pointeur de pile U (Utilisateur) est géré exclusivement par le programmeur pour effectuer.Le pointeur de pile S (Système) est utilisé automatiquement par le microprocesseu r pour mémoriser l état de tous ces registres internes dans le cas où il doit exécuter u n sous programme (d interruption ou non). Les registres S et U (registres 16 bits) : . Commentaires : Le programme à exécuter est une succession d instructions ordonnées (ch aque instruction pouvant prend plusieurs octets!) qui se trouve rangé dans une zon e mémoire. .Cours Microprocesseur 6809 Le Compteur d Instructions : Dr. prise comme valeur de déplacement (offset) qui permet a lors de calculer une adresse effective. (néanmoins.

la mise à un du bit I masque l’interruption IRQ Master en Contrôle et instrumentation Page 19 .premier sorti s apparente plus au fonctionnement d un pipeline appelé pile FIFO (First In First Out)).Cours Microprocesseur 6809 Dr. Il est mis à 1 si le résultat en co mplément à 2 d une opération arithmétique déborde. c’est le bit de masque de l’inter ruption IRQ . Présentation des différents indicateurs : CCRb0 : (indicateur de retenue baptisé : C). Lachouri Abderrazek Remarque : (Le fonctionnement type premier entré . CCRb3 : (indicateur de résultat négatif baptisé : N). de stockage. Il y a deux types d indicateurs : Les indicateurs sur la nature des résultats liés aux manipulations des données et les indicateurs liés au fonctionnement en interrup tion. CCRb2 : (indicateur de résultat nul bapti sé : Z). Il recopie le bit de poid s fort (MSB) de l octet contenu dans le registre avec lequel on vient de travail ler. Cet indicateur est affecté par les instructions de chargement. Indique l existence d une retenue lors d une opération arithmétique effectuée par l A LU. des opérations arithmétiques et log iques. (Un résultat négatif en complément à 2 positionne ce flag à 1). CCRb4 : (indicateur d e masque d’interruption (Interrupt Mask) baptisé : I). Le Registre de Codes Condition (CCR) : Ce registre donne à tout instant l état des indicateurs (ou Flag) du microprocesseur . Il est mis à 1 si le résultat de l opération est nul. CCRb1 : (indicateur de débordement baptisé : V).

A8 (poids fort du bus d’adresse). Ce flag est pris en compte dans l instruction DAA pour réaliser l opération d ajustement décimal.Cours Microprocesseur 6809 Dr. Le contenu de ce registre apparaît sur les lignes A15. La mise à u n du bit E indique la sauvegarde des différents registres dans la pile. Il est utilisé par l ALU comme indicateur de retenue entre les bi ts b3 et b4 (retenue du demi-octet le moins significatif) dans le cas d une addi tion sur 8 bits. est prévu pour étendre la possibilité d’adres sage direct à tout l’espace mémoire sous contrôle du logiciel. Master en Contrôle et instrumentation Page 20 . Exemple de sauvegarde de tous les registres avec S : Registre de page (DP): Registre de 8 bits. CCRb6 : (indicateur de masque d’interruption FIRQ (Fa st Interrupt Mask) baptisé : F). Lachouri Abderrazek CCRb5 : (indicateur de demi-retenue (Half curry) baptisé : H). CCR b7 : (indicateur de sauvegarde des registres dans la pile. baptisé : E). La mise à un du bit F masque l’interruption FIRQ. Il représente le bit de demi-retenue.

1 2 Code opération Octet1 Code opération Donnée immédiate ou Octet2 adresse dire cte /relative Donnée immédiate ou Octet3 adresse dire cte /relative { Octet1 Octet2 3 4 Code opération Adresse sur 2 octets ou déplace me nt sur 2 octets Octet1 Code opération { Octet2 Octet3 Adresse sur 2 octets ou déplace me nt sur 2 octets { { Octet1 Octet2 Octet3 Octet4 Les divers modes de codage en mémoire des instructions et modes d adressage.champ d opération (codeop) . est constitué de quelques 86 instr uctions. Ces i nstructions font référence à des données ou a des adresses de diverses façons. L ensemble des instructions de base. compris par le Registre d Instruction.Cours Microprocesseur 6809 Dr. Lachouri Abderrazek Chapitre II :Programmation du 6809 II. La plupart des instructions permettent un traitement ou un déplacement des données se trouvant en mémoire ou dans un registre. ces références ant les modes d adressage dont dispose le microprocesseur. Master en Contrôle et instrumentation Page 21 .champ de code opérande Code d Instruction : Code Opération Code Opérande Une instruction peut être simple : 1 octet. ou complexe : 4 octets.1 Introduction : Une instruction est codée génér alement avec deux champ : . En tenant compte des variantes (modes d adressage) il atteint 1464 inst ructions.

La durée dépend de la complexité de l instruction. Exécution : traduction et interprétation de l octet (code opératoire) une fois extrait. avec période de l horloge E Il y a autant d extractions que d octets (code opératoire et code opéran de) constituant l instruction. = .exécution Extraction : lecture de la donnée en mémoire. son expression est : = . l unité de mesure est la période de l horloge : encore appelé « Cycle Machine ». Master en Contrôle et instrumentation Page 22 .Cours Microprocesseur 6809 Structure d une instruction : Octeti code opératoire ordre opérations : arithmétique l ogique et de transfert facultatif Octeti+1 post-octet Dr. Ex: Fré de l horloge E= 1 MHz donc T = 1 µs. Si m octets alors = . Lachouri Abderrazek Octeti+2 Octeti+3 code opérande adresse expression directe ou indirecte (modes d adressage) Durée d une instruction : L exécution complète d une instruction n est pas instantanée. Un octet donc = . ≤ ≤ Mod nt : extraction.

+ . Master en Contrôle et instrumentation Page 23 .L.Cours Microprocesseur 6809 Dr. Lachouri Abderrazek L’interprétation se fait selon le processus suivant : Registre d Instructi ons Dé codeur d Instructi ons logi que de contrôle é mi ssi on de si gnaux vers le s circui ts R/W Registre s Mé moi re s Péri phéri ques e xtéri eur Registre d Adre sse s Compteur A. La durée totale de l exécution d une instruction est : . + . d Instructions i nté ri eur Une période TE supplémentaire est nécessaire pour réaliser concrètement l opération demandée.U.

Les fonctions logiques de base (AND.CLR) E xemples : AND B # $55 avec (B)= $AA Master en Contrôle et instrumentation Page 24 . c-à-d (D)=$1001 sont réparties en groupes déterminés par leurs SUB A # $02 avec (A)=$04 Instructions logiques 1.Cours Microprocesseur 6809 Dr. Soustraction (SBC. Décalage à droite e t à gauche (ASR. Multiplication (MUL) 3. ADC ) 2. Addition (DAA. Lachouri Abderrazek Le jeu d Instructions Les instructions caractéristiques. L’incrémentation/décrémentation et complémentation (COM . OR. ROR) 2. Classification : Instruct ions de traitement des données Instructions arithmétiques 1.DEC . EOR) 4. SUB) Exemples : ADDD #$1200 avec (A)=$10 et (B)=$01. LSR et ASL.INC . ABX. Rotation à droite et à gauche (ROL.NEG NOP . LSL) 3.

B avec (A) = $10 et (B)= $01 Master en Contrôle et instrumentation Page 25 .Cours Microprocesseur 6809 Dr. Lachouri Abderrazek ASLA avec (A)=$80 ASRA avec (A)= $81 ROLA avec (A)= $81 Instruction de transfert de données a) transferts internes entre registres (EXG TFR) b) transferts externes avec la mémoire (LD .ST) Exemples : EXG A.

Cours Microprocesseur 6809 Dr. TST) b) instruction de comparaison (CMP) c) instruction de branchement conditi onnel (branchement les indicateurs du CCR sont actifs Master en Contrôle et instru mentation si Page 26 . Les contenus mémoires et accumulateurs ne sont pas modifiés. Lachouri Abderrazek TFR A. a) instructions de tests sur un bit / un octet (BIT . Les résultats de ces instructions agissent uniquement sur les indicateurs du registre d’état. B LDA #$80 LDX #$1000 LDX $1000 avec ($1000)=$AA et ($1001)=$55 STA $2000 avec ($2000)=$45 et (A)=$60 Instructions de tests et de branchements : ces instructions sont utilisées pour réal iser des tests de bits et des comparaisons.

BRN : 1 ou 2 octets) b) saut ab solu (JMP : 2 octets) Exemple : Debut CLRA LDA $1000 STA $8000 BRA Debut Instruc tions d’appel et de retour de sous-programme Appel : a) saut absolu (JSR) b) saut relatif (BSR) Retour : RTS Le contenu (PC) sauvegardé dans la pile est restitué dans le registre PC. Exemple : CLRA C LRB LDA STA JSR LDB STB HLT SP1 LDA STA RTS #$10 $1000 SP1 #$55 $1002 #$55 $2000 Master en Contrôle et instrumentation Page 27 . (provoquent la rupture de la séquence sans condition) a) saut relatif (BRA. Reprise du programme à l’endroit où il a été interrompu. Lachouri Abderrazek Instructions de branchement inconditionnel et de saut.Cours Microprocesseur 6809 Exemple : CMPA BCC LDA Loop LDB … END #$20 Loop #$10 #$AA Dr.

Ord re des actions : Toujours suivie de l’opérande qui permet de sélectionner les registre s : b7 PC U/S X Y DP B A e mpi lem en t dépile me nt b0 CC R Master en Contrôle et instrumentation Page 28 . Y. Permet de manipuler des données sur 16 bits. X le pointeur est automatiquement avec (S)= $1008. a) Load effective adress (in register) : LEA. Ces données représentent généralement des adresses. S et X. décrémenté/incrémenté de 1 Exemple : PSHS A. Exemple : LEAX avec (X)=$1010 Instructions opérant sur les pointeurs S et U a) Empilement des registres dans la pile (PSH) b) Dépilement des registres de la pile (PUL) Après chaque sauvegarde/extr action.Cours Microprocesseur 6809 Dr. (A)= $22 et (X)=$2000 Définition d une pile : Zone mémoire RAM gérée par des pointeurs qui permettent de trans férer rapidement des données dans des cases mémoires selon un protocole bien établi. Lachouri Abderrazek Instructions opérant sur les pointeurs U.

ASR. Ici. Combinées avec le jeu des modes d’adressage (9 au total).Cours Microprocesseur 6809 Dr. Lachouri Abderrazek Les modes d adressage du 6809 Le microprocesseur 6809 possède 59 instructions de b ase. elles fournissent 146 4 codes opératoires différents. (Pour le 6800 ou 6802. L’adressage inhérent ou implicite L’adressage inhérent est utilisé par les instructions qui agissent seulement sur les r egistres internes du microprocesseur. CLR. qui lui sont connectés au tr avers des bus afin d accéder à leur contenu. Exemples : ABX. le microprocesseur a la possibi lité d’adresser les divers circuits mémoires et interfaces. INC Adressage par registre : Master en Contrôle et instrumentation Page 29 . le code opératoire de l’instruction conti ent toute l’information d’adressage nécessaire (adresse source ou/et adresse destinati on). Remarque : La puissance d’un microprocesseur dépend de son jeu d’instru ctions mais aussi des ses modes d’adressage. on avait 72 instructions de b ase et 193 codes opératoire) Les modes d adressage sont : l’adressage l’adressage l’adre ssage l’adressage l’adressage l’adressage l’adressage l’adressage l’adressage inhérent ou imp icite immédiat étendu étendu indirect direct par registre indexé direct indexé indirect re latif Au moyen des signaux qu’il génère sur le bus d’adresses. ASL. Cet accès se traduit par une opération d’adre ssage Cette opération peut se faire de plusieurs façons grâce à la présence de différents mo des d’adressage.

Cet octet est appelé post-octet.Cours Microprocesseur 6809 Dr.Y (transfert de X dans Y). Le tableau ci-dessous présente le codage de ce post-octet : b7 b4 Sour ce Post-octet transfert/échange code 0000 0001 0010 0011 0100 0101 1000 1001 1010 1011 b3 b0 Destinataire Registre D X Y U S PC A B CCR DP Exemple : TFR X. Lachouri Abderrazek Le code opératoire est immédiatement suivi dans la mémoire d’un octet qui définit un regis tre ou le jeu de registres devant être utilisés par l’instruction. CCR E F H I N Z V C D X Y S U PC DP 15 7 0 {A B 7 0 1F 12 Adr Adr+1 Adr+2 Master en Contrôle et instrumentation Page 30 .

Intérêt : Ce mode nécessite moins de place mémoire (1 octet donc taille mémoire réduite) par conséq uent l’exécution de l’instruction est plus rapide. La partie ha ute de l’adresse est fournie par le contenu du Registre Direct de Page (DP). Lachouri Abderrazek Adressage immédiat : La donnée se trouve immédiatement après le code opératoire de l’instruc tion. (le code opératoire est immédia tement suivi en mémoire de la donnée sur laquelle porte l’opération) Cet adressage conce rne tous les registres internes sauf le DP.Cours Microprocesseur 6809 Dr. Master en Contrôle et instrumentation Page 31 . La donnée existe sous la forme de 1 ou 2 octets. Exemples : LDA #$35 CCR E F H I N Z V C D X Y S U PC 15 {A B 35 7 0 86 35 Adr Adr+1 DP adr 7 0 Adr+2 LDY#$1997 CCR E F H I N Z V C D X Y S U PC 15 {A B 7 0 1997 adr 7 0 10 8E 19 97 Adr+4 Adr Adr+1 Adr+2 Adr+3 Adr+4 DP Adressage direct : On exprime le lieu de l action par l expression de l adresse effective. Le code opérande indique la partie basse de cette adresse.

CCR E F H I N Z V C D X Y S U PC DP 15 7 { A B 7 0 10 9E 97 Adr Adr+1 Adr+2 1960 adr 19 0 Adr+3 19 60 1997 1998 Master en Contrôle et instrumentation Page 32 . C le cadre des systèmes d’exploitation temps réel multitâche. Exemples : LDA $97 Charge l Accumulateur A avec le formée par [DP] et l opérande U PC DP { A B 7 37 0 96 97 Adr Adr+1 adr 19 0 Adr+2 37 1997 LDY $97 Charge le registre Y avec le contenu sur 16 bits dont les adresses sont [DP] et partie basse et partie basse+1. Lachouri Abderrazek Remarque : Avec ce mode. où o page. la e mode est intéressant dans n alloue à chaque tâche une contenu dont l adresse est CCR E F H I N Z V C D X Y S 15 7 mémoire est découpée en 256 pages de 256 octets chacune.Cours Microprocesseur 6809 Dr.

Le contenu des deux octets qui suivent immédiatement le code opéra toire spécifié représente l’adresse (16bits) de la donnée. CCR E F H I N Z V C D X Y S U PC DP 15 7 0 { A B 7 37 0 B6 19 97 Adr Adr+1 Adr+2 Adr+3 adr Adr+3 37 1997 LDY $1997 Charge le registre Y avec le contenu de l’adresse 1995. Lachouri Abderrazek Adressage étendu (direct) : On exprime le lieu de l action par l expression de l a dresse effective.Cours Microprocesseur 6809 Dr. Exemples : LDA $1997 Charge l’accumulateur A avec le contenu de l’adresse 1997. L instruction occupe de 3 à 4 oct ets. CCR E F H I N Z V C D X Y S U PC 15 { A B 7 0 10 BE 19 97 Adr Adr+1 Adr+2 Adr+3 Adr+4 1960 adr DP 7 0 Adr+4 { 19 60 1997 1998 Master en Contrôle et instrumentation Page 33 .

Exemples : LDA [$1997] Chargement de l’accumulateur A avec le contenu dont l’adresse se trouve en 1997-1998. Le code opératoire est formé de deux octets . Lachouri Abderrazek Adressage étendu indirect : Identique au mode d’adressage étendu mais on accède à la donnée en passant par une adresse intermédiaire spécifiée après le code opératoire. Les deux octe ts qui suivent le code opératoire pointent une adresse dont le contenu représente l’ad resse de la donnée recherchée.Cours Microprocesseur 6809 Dr. CCR E F H I N Z V C D X Y S U PC DP 15 7 0 37 1960 { A B 7 37 0 A6 9F 19 97 Adr Adr+1 Adr+2 Adr+3 Adr+4 adr Adr+4 { 19 60 1997 1998 LDY [$1997] Chargement du registre Y avec le contenu dont l adresse (partie haut e) se trouve en $1997.le post-oct et est toujours $9F. CCR E F H I N Z V C D X Y S U PC 15 {A B 7 0 37 60 1960 1961 10 AE 9F 19 97 Adr Adr+1 Adr+2 Adr+3 Adr+4 3760 adr DP 7 0 Adr+4 .

{ 19 60 1997 1998 Master en Contrôle et instrumentation Page 34 .

Il existe 5 types d’adress age indexé. S et PC) sont utilisés pour effect uer le calcul de l’adresse effective de la donnée recherchée. La nature de l’indexation 2. Y. les registres pointeurs (X. Lachouri Abderrazek Dans ce mode. Master en Contrôle et instrumentation Page 35 . Le registre pointeur utilisé. Le type d’a dressage (direct ou indirect) 3. L’adressage indexé avec déplacement accumulateur L’adressage indexé avec aut o-incrémentation/décrémentation L’adressage indexé relatif au Compteur Programme (PC) L’octe t qui suit le code opératoire (le post-octet) spécifie : La nature de l’indexation Le type d’adressage (direct ou indirect) Le registre pointeur utilisé.Cours Microprocesseur 6809 Adressage indexé Deux possibilités : Adressage indexé direct et indirect Dr. L’octet qui suit l e code opératoire (le post-octet) spécifie : 1. L’adressage indexé avec déplacement nul L’adressage indexé avec déplacement const nt (non nul). U. Le tableau ci-joint montre le format de ce post-octet.

b1.R+ 1 R R 1 0 0 0 1 .-R 1 R R 1 0 0 1 1 .b2 et b3 indiquent le mode d’adressage. 16 bits (-32768 à +32767) .Cours Microprocesseur 6809 Dr.--R 1 R R 1 0 1 0 0 EA = R + 0 Offset 1 R R 1 0 1 0 1 EA = R + ACCB O ffset 1 R R 1 0 1 1 0 EA = R + ACCA Offset 1 R R 1 1 0 0 0 EA = R + 8 bits Offse t 1 R R 1 1 0 0 1 EA = R + 16 bits Offset 1 R R 1 1 0 1 1 EA = R + D Offset 1 X X 1 1 1 0 0 EA = PC + 8 bits Offset 1 X X 1 1 1 0 1 EA = PC + 16 bits Offset 1 R R 1 1 1 1 1 EA = [. Adresse] Champ du mode d’adressage Champ indirect (bit signe B7=0) Champ du registre RR 00=X 01=Y 10=U 11=S X= don’t care D=Offset 0 not indiret c1 1 indirect Index a offset constant: 5 bits (-16 à +15) .R++ 1 R R 0 0 0 1 0 . b7=1 b4 : indicateur d indirection où non b4 = 1 : mode indirect b4 = 0 : mode direct b7=0 b4 représente le signe b5 et b6 représente le registre concerné b0. Lachouri Abderrazek Tableau 1 : Format du registre post octet du mode d’adressage indexé. Master en Contrôle et instrumentation Page 36 . Constitution du post-octet. Les bits du re gistre post-octet Mode d’adressage indexé 7 6 5 4 3 2 1 0 0 R R d d d D d EA = R + 5 bits Offset 1 R R 0 0 0 0 0 . 8 bits (-128 à 127) .

--R n.R n.R n.R .R n.R] 1RR11001 [A.R] 1RR11011 Not allowed [.R++] 1RR10001 Not allowed [. Y.-R . Lachouri Abderrazek + ˜ 0 1 1 4 1 1 4 2 3 2 3 1 5 Forms No Offset 5-bits off 8-bits off 16-bits off A reg offset B reg offset Dreg offse t Incr by 1 Incr by 2 Decr by 1 Decr by 2 8-bits offset 16-bits off 16-bits adr Non indirect Assembler Postbyt form opcode .R B.Cours Microprocesseur 6809 Type Constant offset from R (2s complement offsets) Accumulator offset from R (2s com plement offsets) Auto increment/decrement R Constant offset from PC (2s compleme nt off) Extended indirect Dr.R A. E.R D.PCR 1RR00100 0RRnnnnn 1RR01 000 1RR01001 1RR00110 1RR00101 1RR01011 1RR00000 1RR00001 1RR00010 1RR00011 1xx0 1100 1xx11100 + # 0 0 1 2 0 0 0 0 0 0 0 1 2 indirect Assembler Postbyt form opcode [.X ou LDA . Un chargement préalable du registre est impératif.PCR] 1xx11101 [n] 10011111 + ˜ 3 4 7 4 4 7 6 6 4 8 5 + # 0 1 2 0 0 0 0 0 1 2 2 R= X.R] 1RR11000 [n.R] 1RR10110 [B . Exemple : LDA O.) de la donnée.--R] 1RR10 011 [n.X CCR E F H I N Z V C D X Y S U PC 15 { A B 37 7 0 A6 84 Adr Adr+1 Adr+2 1997 adr DP 7 0 Adr+1 37 .R++ .PCR] 1xx11100 [n. U or S X= don’t care RR 00=X 01=Y 10=U 11=S Adressage indexé à déplacement nul Le registre pointeur contient l’adresse effective (A.R] 1RR10101 [D.R] 1RR10100 Defaults to 8-bits [n.R+ .PCR n.

Adressage indexé à déplacement constant Master en Contrôle et instrumentation Page 37 .1997 Légende de la valeur $84 soit 1 00 0 0100 du post-octet (ligne numéro 6 du tableau).

Lachouri Abderrazek L’adresse effective de la donnée est la somme du déplacement (constante en complément à de ux) et du contenu du registre nommé pris comme base.X A6 89 soit 1 00 0 1001 09 97 Adressage inde xé avec déplacement accumulateur. Le déplac ement est compris dans l intervalle [-161O à151O] Le post-octet suffit.Le déplacement est compris da ns l intervalle [-327681O à+327671O].E. Syntaxe : Un code opératoire + un post-octet + un opérande. Un octet supplémen taire après le post-octet est nécessaire. Exemple : LDA -2. Code Ce mode est semblable au omplément à 2) se trouve inteur nommé pour former eur ne sont pas modifiés age 38 mode précédent excepté que la valeur du déplacement (exprimé en c dans un accumulateur afin d’être ajouté au contenu du registre po l’A. de la donnée. = [Registre nommé] + expre ssion du déplacement. Code A6 88 soit 1 00 0 1000 35 (5316) Code Exemple : LDA 53.E. Les contenus de l’accumulateur et du point par cette addition. Le déplacement s exprime sur 4 bits + un bit de signe.Cours Microprocesseur 6809 Dr. X A6 1E soit 0 00 1 1110 Le déplacement s exprime sur 7 bits + un bit de s igne. Deux octets supplémentaires après le post-octet sont nécessaires.X Le déplacement s exprime sur 15 bits + un bit de signe. Trois formes sont possibles selon l expression de la valeur de la constante qui suit le post-octet. Le déplacement est compris dans l intervalle [-1281O à1271O]. Le contenu du registre n’est pas modifié. A. Master en Contrôle et instrumentation P . Exemple : LDA $997.

en fonction des événements. Charge le registre X avec le contenu se trouvant à l adresse exprimée par la somme d es contenus des registres D et X ainsi que D+1 et X. CCR E F H I N Z V C D X Y S U PC DP 15 7 0 { A B 7 09 97 0 AE AB Adr Adr+1 Adr+2 2000 1000 adr + adr+2 20 00 1997 1998 Master en Contrôle et instrumentation .X avec post-octet = $85 soit 1 00 0 0101.Cours Microprocesseur 6809 Dr. Intérêt la valeur du déplacement est calculée par le programme en cours d’exécution.Y avec post-octet = $AB soit 1 01 0 1011. Lachouri Abderrazek C’est le post-octet qui spécifie l’accumulateur utilisé (pas d’octet supplémentaire). CCR E F H I N Z V C D X Y S U PC DP 15 7 0 { A B 7 00 37 0 A6 85 Adr Adr+1 Adr+2 1960 + adr adr+2 00 1997 LDX D. Chargement du registre A avec le contenu se trouvant à l adresse exprimée par la som me des contenus des registres B et X. Exemples : LDA B.

Page 39 .

-X Code A6 82 soit 1 00 0 0010 Chargement de l accumulateur A avec le contenu se trouvant à l adresse exprimée par le contenu de X décrémenté de 1. LDA 0.X+ Code A6 80 soit 1 00 0 0000 Master en Contrôle et instrumentation Page 40 . Dans tous les cas . le contenu du registre est modifié. il es t possible de modifier le contenu du registre selon le mécanisme suivant : La pré-décrém entation Le pointeur est décrémenté de un ou deux avant utilisation. (ge stion efficace de blocs-mémoire organisés en données 8 bits ou 16 bits) Exemples : LDA 0. LDY 0. Les aspects pré-décrément ation et post-incrémentation sont très utiles pour créer des piles logicielles supplémen taires dont le comportement est identique à celui des piles S et U (hardware). En plus de l utilisation en mode indexé avec déplacement nul. Intérêt : Une incrémentation/décrémentation permet de gérer des tables de données 8 bits (octets).--X Code 10 AE 83 soit 1 00 0 0011 Chargement du registre Y avec le contenu se trouvant à l adresse exprimée par le con tenu de X décrémenté deux fois. Deux incrémentations/décrémentations permette nt de gérer des tables de données de 16 bits (mots ou adresses).Cours Microprocesseur 6809 Dr. La post-incrémentat ion : Le pointeur est incrémenté de un ou de deux après utilisation. Lachouri Abderrazek Adressage indexé avec auto-incrémentation/décrémentation Le registre concerné contient l’adr esse de la donnée.

Cet inconvénient peut-être évité en utilisant le mode d’adressage ind exé avec déplacement relatif au PC. Après le chargement. Code $1000 adr adr +1 adr+2 adr+3 A6 8D 09 93 soit 1 00 0 1101 Justification : Si adr=$1000 alors destination ($1997) est égale à $1997-$1004 soit $993. Lachouri Abderrazek Chargement de l accumulateur A avec le contenu se trouvant à l adresse exprimée par le contenu de X. On dit. le contenu de X est incrémenté de 1.X++ C ode EC 81 soit 1 00 0 0001 Chargement de l accumulateur D avec le contenu se trouvant à l adresse exprimée par le contenu de X. PC l expression de "destination-(adr+4)" est codée en complément à 2. Après le chargement. Master en Contrôle et instrumentation Page 41 . Syntaxe : code opératoire destination-(adr+4). que le programme n’e st pas translatable.Cours Microprocesseur 6809 Dr. Exemples : Chargeme nt du registre A avec le contenu se trouvant à l adresse $1997. faisant référence à des adresses sit uées à l‘intérieur de sa zone d’implantation en mémoire ne pourra pas être exécuté si l’on tr on code objet dans une autre zone mémoire. dans ce cas. LDD 0. Adressage indexé relatif au compteur-programme (PC) Un programme qui contient des instructions exprimées dans le mode étendu ou direct. le contenu de X est incrémenté deux fois.

Code du post-octet : $8D soit 1 00 0 1101 Master en Contrôle et instrumentation Page 42 . L’utilisation d’une étiq te facilite l emploi de ce mode. LDA $FO. Les adresses des données étant toutes refére ncées par rapport à la valeur réelle du PC au moment de l’exécution. l e même code objet permet toujours de retrouver la donnée dans le corps du programme et d’obtenir ainsi une exécution correcte. Code adr adr+1 adr+2 A6 8C F0 soit 1000 1100 La donnée se trouve à l adresse (adr+3)-$10 donc en amont du programme. Le même traitement appliqué à l’ensemble des inst ructions du programme.Cours Microprocesseur 6809 Dr. Illustration : LEAX ETIQ. Avantage du mode indexé relatif au PC : Si l’ensemble du programme est chargé à une autre adresse. le rendra entièrement translable et totalement indépendant de son implantation physique dans la mémoire. Lachouri Abderrazek Il faut tenir compte de la longueur de l instruction puisque le PC pointe toujou rs l instruction suivante.PC Chargement de l’accumulateur A avec le conte nu mémoire dont l’adresse est la valeur de PC + $FO. PC Chargement du regi stre X avec le contenu dont l adresse est exprimée par la valeur issue de l opératio n ETIQ-(adr+4).

E(H)={[Registre] + expression du déplacement}.E. l’A.Cours Microprocesseur 6809 CCR E F H I N Z V C D X Y S U PC 15 Dr. Tous les modes d’adressage indexé peuvent travaille r en indirection sauf les modes : auto-incrémentation/décrémentation par 1 déplacement c onstant codé sur 5 bits Illustration : LDA [$960. l’Adre sse Effective est contenue à l’emplacement indiqué par le contenu du registre d’index ut ilisé auquel on additionne le déplacement. Lachouri Abderrazek { A B 7 0 30 8D 00 11 Adr = $1000 Adr+1 Adr+2 Adr+3 Adr+4 1122 adr DP 7 0 adr+4 11 12 ETIQ = $2015 Déplacement = $2015 -($1000+4) soit 11 Adressage indexé indirect. transite par une adresse interméd iaire.E(L)={[Registr e] + expression du déplacement+1}.X] Chargement de A avec le conten u mémoire dont l’adresse est le contenu de [X+960. X +961]. Master en Contrôle et instrumentation Page 43 . Syntaxe : A. Dans ce mode. Ici. A.

LDA [0. ADDA [ . X +1]. X +$36].X] Chargement de A avec le contenu mémoire d ont l’adresse est [X+$35.X] Charge ment de A avec le contenu mémoire dont l’adresse est [X. LDU [D.Cours Microprocesseur 6809 CCR E F H I N Z V C D X Y S U PC 15 Dr. LDA [$35. Lachouri Abderrazek { A B 7 37 0 1OOO A6 99 09 60 Adr Adr+1 Adr+2 Adr+3 Adr+4 adr DP 7 0 adr+4 19 97 1960 1961 37 1997 Quelques exemples : Adressage indexé indirect avec déplacement nul. Y] Chargement du registre U avec le contenu mémoire dont l’adresse est [Y+D] et [Y+D+1 ] Adressage indexé indirect avec double auto-incrémentation/décrémentation. Adressage indexé indir ect avec déplacement constant. Le déplacement exprimé en complément à deux est contenu dans A. U++ ] Master en Contrôle et instrumentation Page 44 . B ou D. Adressage indexé indirect avec déplacement accumula teur.

Lachouri Abderrazek Addition du contenu de A et du contenu-mémoire dont l’adresse est [U] et [U+1]. Dans le mode d adressage relatif court. LDA [$1997. Adressage indexé indirect relatif au compteur programme. Les déplacements sont codés sur 8 ou 16 bits en complément à 2. relatif court adr. PC] Chargeme nt de A avec la valeur dont l’adresse est la valeur issue de l opération PC + $1997. relatif long Le code opératoire représente le test et le type de branchement (court ou long : $10 ) à réaliser. Constitution : code opératoire 1 octet 1 octet + $10 code opérande 1 octet 2 octets adr. Le code opérande représente le déplacement signé qui est ajouté au contenu du P .Cours Microprocesseur 6809 Dr. le déplacement est exprimé sur un octet en complément à deux : -128 ≤ déplacement ≤ +127 Dans le mode d adressage relatif long. suiv i de deux incrémentations. le dép lacement est exprimé sur deux octets en complément à deux : -32768 ≤ déplacement ≤ +32767 Réa isation de l Adresse Effective : Adresse Effective = PC +2(4) + déplacement (PC+2) .valeur ≤ déplacement ≤ (PC+2)+ valeur Dans la syntaxe assembleur il faut rajouter un (L) comme préfixe dans le cas d un saut long. Master en Contrôle et instrumentation Page 45 . Adressage relatif Technique d’adressage utilisée avec les instructions de brancheme nt conditionnel ou non.

Lachouri Abderrazek Adressage relatif court avec un déplacement positif. ? CCR E F H I N 1 V C D X Y S U PC DP 15 7 0 { A B 7 0 10 26 16 7B Adr = $1997 Adr+1 Adr+2 Adr+3 Adr+4 +1675 adr Adr+4 op $3010 Valeur = $3010-($1997+4) soit $1675 Master en Contrôle et instrumentation Page 46 .Cours Microprocesseur 6809 Quelques exemples : Dr. BEQ LOOP branchement si Z=1 ? CCR E F H I N 1 V C D X Y S U PC DP 15 7 0 { A B 7 0 27 33 Adr = $1960 Adr+1 Adr+2 +35 adr Adr+2 op $1997 Valeur = $1997-($1960+2) soit $35 Adressage relatif long avec un déplacement posit if.

Cours Microprocesseur 6809 Principe de fonctionnement : Dr. Lachouri Abderrazek Cellules mémoires code opératoire Compteur ordinal Registre d Instruction Décodage Logique de contrôle Séquenceur de commandes Exécution Fonctionnement séquentiel La réalisation de toute instruction s effectue selon le cy cle extractionexécution qui se décompose comme suit : 1er temps : Phase d extraction Recherche de l’instruction suivie du décodage 2ème temps : Phase d exécution Exécution du code opératoire Cette étape est plus ou moins longue suivant la complexité de l instr uction. Master en Contrôle et instrumentation Page 47 .

décodage du code réalisation de l action demandée Simulations : Premier exemple : $0000 $0002 $0004 Deuxième exemple : $0000 $0003 $ 0006 $0009 $000C $000F $0012 LDA ADDA STA LDA ADCA STA BRA $0014 $0016 $0018 $00 15 $0017 $0019 $FE # 3 3 3 3 3 3 2 ~ 5 5 5 5 5 5 3 LDA ADDA NOP #$10 #$29 12 86 8B 10 29 Master en Contrôle et instrumentation Page 48 . Lachouri Abderrazek Chaque opération élémentaire constituant ce cycle est validée par un signal d’horloge. Ill ustration : Extraction (fetch) Exécution Horloge E cycle machine dépot de l adresse puis stockage du code dans le R.Cours Microprocesseur 6809 Dr.I.

L avantage de ce mode de programme est qu il est utilisable dans n importe quelle application.Cours Microprocesseur 6809 Commentaire : PC H L 00 0C Dr. (à la différence du cas précédent) les adresses relatives sont transformées en adresses absolues après édition des liens. Dans ce ca s. Présentation de ce s concepts : 1.Définition d un programme translatable Ce type de programme foncti onne quelque soit l’adresse à laquelle il est implanté en mémoire. Lachouri Abderrazek registre interne intermédiaire 00 15 Bus des adresses Apport du 6809 dans la famille des microprocesseurs 8 bits : Son architecture et ses différents modes d’adressage permettent d’aborder des concepts logiciels tels que : La génération de programmes translatables. Ce ci est possible grâc e aux modes d’adressage relatif (BSR. Le principe du programme relogeable existe aussi. réentrants et structurés. BRA) et indexé par rapport au PC (LDA valeur. PC). Master en Contrôle et instrumentation { Page 49 registre des adresses 00 00 0A 0B .

Le concept de réentrance est possible a vec un microprocesseur possédant plusieurs pointeurs de pile pour gérer plusieurs zo nes de sauvegarde. le programme d’interrupti on peut utiliser la même séquence de programme que celle qu’il vient d’interrompre. Lachouri Abderrazek Un programme réentrant est un programme qui peut-être utilisé à n’importe quel niveau de p riorité (Pour cela il doit être interruptible).U++ . Il n e doit pas perturber les informations et résultats de la tâche interrompue.Cours Microprocesseur 6809 2.U+ . Dans ce cas.-U équivalent à équivalent à équivalent à équivalent à PULU PSHU PULU PSHU X X A A Appel procédure Programme d interruption Sauvegarde du contexte dans la pile S Master en Contrôle et instrumentation Page 50 . Equivalence : LDX STX LDA STA Illustration : Sauvegarde du contexte dans la pile U Procédure .Définition d un programme réentrant. Rendu possible avec l existence des instructions de manipulat ion de pile hardware PSH et PUL et logicielle STA. -X et LDA. Dr. X+. nécessité d’ut iliser deux zones de sauvegarde des données.--U .

En faisant appel soit à un in terpréteur soit à un compilateur. Par contre la programmation langage machine o u assembleur nécessite une bonne connaissance de l’architecture du microprocesseur. Tous deux sont des programmes puissants de traduct ion. Quelles sont les raisons pour lesquelles on choisit un langage moins évolué? Deux ra isons à cela : Master en Contrôle et instrumentation Page 51 .Cours Microprocesseur 6809 Les langages de programmation : Dr. Un interpréteur agit pendant l’exécution du programme. (ressemble beaucoup à un assembleur). Le langage évolué Les critères pris en compte lors du ch oix d’un langage sont : le temps de programmation la maintenance la transportabili té Un programme écrit dans un langage évolué donné peut être implanté "facilement" sur divers s machines sans réécriture. (compilateurs appropriés) Un programme écrit dans un langage évolué est traduit en binaire de deux manières différentes. Le compi lateur présente l’inconvénient par rapport à l’interpréteur. de nécessité beaucoup plus de mé mais par contre il est beaucoup plus rapide à l’exécution. Lachouri Abderrazek Un langage est un ensemble de règles ou commandes utilisées par un programmeur afin de réaliser un programme écrit tout d abord sous la forme d un algorithme et ensuite traduit par un organigramme. A mesure qu’une ligne est exécutée. la traduction de la ligne suivante commence. L’apprentissage d’un langage évo lué ne rapporte strictement rien en ce qui concerne la connaissance de l’architectur e fondamentale d’un microprocesseur. Un compilateur traduit d’a bord le programme en langage hexadécimal et ensuite le code généré est sauvegardé sous la forme d’un nouveau programme binaire. Chaque ligne du programme est traduite en instruction binaire juste avant son exécution.

Ainsi plus d’espace-mémoire est nécessaire. Un programme écrit dans ce type de langage est une suite de lignes symboliqu es écrites dans un ordre logique. Chaque processeur possède son propre ensemble d’instructions. [bien adapté à l’écriture des routines d’entrées/sorties] L’assembleur n petit compilateur. Exemple : une simple instruction du type WRITELN peut faire appel à une centaine d’i nstruction. Cross-assembleur : C’est un assembleur qui permet de développer en langage d’assemblage. L’assembleur : C’est un programme de traduction qui traite chaque ligne du programme source pour fournir le code machine. Lachouri Abderrazek Gain en place mémoire : Le langage évolué nécessite pour effectuer la même tâche beaucoup pl us d’instructions machines.Cours Microprocesseur 6809 Dr. Gain de temps à l’exécution : Plus d’ nstructions de base implique un temps d’exécution plus lent à moins de disposer de mic roprocesseur puissant (rapide) avec un grand champ mémoire. Macro-assembleu r : C’est un assembleur qui permet de traiter des macroinstructions : ensemble d’ins tructions regroupées sous formes de fonction. une application utilisant un micr oprocesseur donné à Master en Contrôle et instrumentation Page 52 . Le résultat de son travail s’appelle le programme objet. Le langage d’assemblage est lié au microprocesseur. Ses avantages : minimise le code meilleur cont rôle sur le matériel. Il détecte l es erreurs. Le langage d’assemblage Ce langage est l’intermédiaire entre un langage évolué comme C ou Pascal et le langage m achine. Ce langage s’appuie sur l’abréviation de terme anglais pour chaqu e instruction. Exemple de la fonction de remise à zéro (CLEAR) : CLR Vocabulaire Le langage d’assemblage : C est un langage constitué d’instructions et de pseudo-instruct ions.

Il permet de traduire un programme source écrit en langage symbolique (ou mnémonique) en un langage binaire. Syntaxe du langage asse mbleur : Chaque ligne d’instruction du programme comporte quatre parties appelées "c hamps".. Désassembleur : C est un logiciel qui travaille à l’inverse de l’asse mbleur. Chaque champ est séparé par un blanc (espace).. Lachouri Abderrazek l’aide d’un système possédant un microprocesseur différent. dit hôte. Système d’ex ploitation. Cette opération appelée "As semblage" est réalisée par un programme approprié appelé "Assembleur". disposi tifs d’aide à l’écriture de programmes. etc.Cours Microprocesseur 6809 Dr. Exemple : $86 traduction de LoaD accumulateur A. Intéressant pour les petits systèmes car dans ce cas. L’assembleur 6809 : Le langage d’assemblag e est un langage de programmation utilisée dans les systèmes de développement. Com me tout langage. Le système. on bénéficie des avantages d’un système plus important : Editeur. ce dernier possède une syntaxe et un vocabulaire propres qu’il est indispensable de connaître afin d’établir le programme source. engendre du code machine pour le microprocesseur cible. A partir d’un programme machine. il construit le langage mnémonique. Illustration : Etiquette Code Code Commentaire opératoire opérande _________________________________________ 5 7 i i+2 j j+2 0 Master en Contrôle et instrumentation Page 53 . Il génère directement un programme exécutable par le microprocesseur encore appelé "programme objet".

Les nombres peuvent être représentés dans différentes bases décim le. Le champ opérande : Il complète le ch amp opération et contient la "donnée" nécessaire à l’exécution de l’instruction. commençant obligatoirement par une lettre de l’alphabet. Le champ opération : Il contient soit un code mnémonique de l’opér ation à effectuer soit une directive d’assemblage. où le champ étiquette est vide au moins un blanc doit précéder le champ suivan t. arit hmétiques et des parenthèses. L’identificateur de la base s’effectue grâce à un suffixe ou un préfixe dans le cas de certain assembleur (H). hexadécimale ($) et binaire (%). Master en Contrôle et instrumentation Page 54 . Dan s le cas. Le rôle de l’étiquette est de permettre de repérer la position d’une instructi on dans le programme. Elles servent à spécifier une valeur selon les règles de la logique et de l’arithmétique.Cours Microprocesseur 6809 Définition des différents champs : Dr. octale(@). Une étiquette est un symbole d’au plus 6 c aractères alpha-numériques. Si le 1er caractère de la ligne est une *. Les expressions : Elles se c omposent d’une suite de nombres et de symboles séparés par des opérateurs logiques. Sa syntaxe e t variée et dépend du mode d’adressage attribué à l’instruction. Lachouri Abderrazek Etiquette : Ce champ n’est pas obligatoire. Sans indicati on particulière. On trouve : des étiquettes ( es noms) des symboles (nom de registre) des nombres des expressions : Combinaiso n des 3 éléments ci dessus. la ligne est alors considérée comme un c ommentaire. un nombre est interprété comme un décimal.

Lachouri Abderrazek Le champ commentaire : facultatif. il permet de documenter le programme. Affectation de symbol es : EQU et SET Gestion de l’espace mémoire : ORG et RMB Inscription de constantes e n mémoire : FCB. On distingue 5 catégories de directive.Cours Microprocesseur 6809 Dr. Tous le s caractères d’écriture disponibles dans l éditeur sont utilisables. FDB et FCC Assistance à la programmation : END et OPT Présentation de s listings : TITLE et PAGE EQU : affectation d’une valeur à un symbole ou étiquette Sy ntaxe : Symbole EQU Expression Rôle : Cette directive affecte au symbole situé dans le champ étiquette la valeur (8 ou 16 bits) de l’expression placée dans le champ opérand e. Rôle : SET est semblable à EQU excepté que l’affectation est temporaire. Les symboles utilisés avec EQU ne peuvent pas être redéfinis dans la suite du progr amme. Les directives d’asse mblage : Une directive d’assemblage (ou pseudo-instruction) est une commande que l e programmeur utilise pour donner des directives à l’assembleur et qui agit sur le p rocessus d’assemblage. SET : affectation temporaire d’une valeur à un symbole. Les symboles définis a vec cette directive peuvent être à nouveau définis par la suite dans le même programme. Exemples : ARG ARG ARG SET SET SET $2 ARG*$2 ARG*ARG ARG=$2 ARG=$4 ARG=$10(1610) ORG : Origine (initialisation du compteur programme) Syntaxe : ORG Expression Pa ge 55 Master en Contrôle et instrumentation .

Remarque : Plusieurs ORG peuvent-être utilisés dans un même progr amme source. RMB : Reserve Memory Bytes (Réservation d’octets en mémoire) Syntaxe : Rôle : Provoque lors de l’assemblage un "saut" du PC. dans ce cas. le désigne comme étant alphabétique. Le but étant de réserver une zone mémoire pour un usage particulier. Symbole RMB Expression Inscrit la valeur exprimée sur 8 bits des expressions du champ opérande dans les cas es mémoires définies par la valeur du PC. On structure ainsi l’espace mémoire en blocs : le programme principal l es sous programmes la gestion des interfaces Chaque bloc est initialisé par un ORG . Lachouri Abderrazek Définition d’une adresse d’origine..Cours Microprocesseur 6809 Rôle : Dr. Master en Contrôle et instrumentation Page 56 . Pour chaque écriture en émoire : PC = PC+1 Rem arque : Les expressions peuvent être numériques ou alphanumériques.. Charge le PC à la valeur spécifiée par l’expression situé ans le champ opérande. Le symbole placé d evant le caractère. le code ASCII est mis en mémoire. d’un nombre d’octets égal à la valeur de l’expression . FCB : Form Cons tant Byte (définition d’une constante d’un octet) Syntaxe : Rôle : Symbole FCB expr1. ex pr2.

Lachouri Abderrazek $4000 01 AA 41 42 FF 34 04 0C 8E 40 00 DIX FDB : Form Double Byte Constant (définition d’une constante de deux octets) Syntaxe : Rôle : Symbole FDB Exp1.$5432+$ABCD A. B 5. B $FF 4. Le PC est incrémenté de 2 pour chaque mot écrit.$5 10. Exemples : DAT A ORG FDB FDB FDB FDB FDB FDB EQU $4000 $1997. l’expression (valeur numérique et symbole) représente u ne valeur sur 16 bits.$62+$48. Exp2..$4 DIX+2 $A DATA Dr. A. Identique à FCB mais cette fois...$10 FIN 0 4 $4000 19 97 FF FF 00 41 00 42 00 35 00 05 00 0A 00 10 00 04 00 00 DIX FIN FCC : Forme Constant Character string (définition d’une constante chaîne de caractères S yntaxe : Symbole FCC délimiteur chaîne délimiteur Master en Contrôle et instrumentation Page 57 .Cours Microprocesseur 6809 Exemples : DATA ORG FCB FCB FCB FCB EQU LDX END $4000 1.

Les lignes situées après cette directive sont ignorées par l assembleur.Cours Microprocesseur 6809 Rôle : Dr. Et PC = PC+1 pour chaque caractère inscrit. L expression FCC /A/ est équivalent à FCB A Illustration : M ESS FCC FCC FCC FCC /FIN/ LUNDI #MARDI# 252 $2000 46 49 4E 4C 55 4E 44 49 4D 4 1 52 44 49 35 END : fin d assemblage Syntaxe : Rôle : END Cette directive marque la limite du programme source. NAME : nom du programme Syntaxe : NAME PMAK Master en Contrôle et instrumentation Page 58 . PAGE : Saut de page Syntaxe : Rôle : PAGE Fait avancer le papier de l imprimante au début de la page suivante. Remarque : Les deux délimiteu rs doivent être identiques et peuvent être n importe lequel des caractères imprimables (on prend en général //). Lachouri Abderrazek Inscrit en mémoire le code ASCII des caractères situés dans le champ opérande entre les délimiteurs.

le programme e st écrit avec un adressage absolu. OPT : Option d assemblage Syntaxe : Rôle : Cette directive fournit des compléments d informations lors de l assemblage.Cours Microprocesseur 6809 Rôle : Dr. REL : RELogeable. L’opération d’assemblag e : Elle s’effectue généralement en deux étapes (2 passes). le programme est écrit avec un adressage relatif. 3 analyses sont effectuées : Analyse lexicographique : Compare le code opératoire à une table interne (fichier comprenant les codes). 1ère passe : Consiste en une l ecture de l’ensemble du programme source. Au cours de cette phase. Les options sont écrites dans le champ opérande et sont séparées par des virgules. L : d emande l impression du listing après opération d assemblage terminé. Différentes options : ABS : ABSolu. CRE : permet d obtenir la table dite des références croisées. Lachouri Abderrazek Cette directive permet de donner un nom au programme qui apparait en tête de page. Analyse syntaxique : Cette analyse détecte : les ét iquettes manquantes les codes opératoires erronés les opérandes manquants Page 59 OPT ABS Master en Contrôle et instrumentation .

Master en Contrôle et instrumentation Page 60 . Lachouri Abderrazek Cette analyse permet de dire si une ligne syntaxiquement correcte à un sens. 2ème passe : L’assembleur génère le code objet en tenant compte des adresses et des données réelles qui figurent dans la table des symboles. L’assembleur construit la table des symboles em ployés. Il génère un code inter ire qui servira au second passage. Les directives d’assemblage sont également interp rétées. Il regroupe tous les symboles définis par le programmeur en leur donnant une valeur à chacun d’eux (Création de la table des références croisés). 3ème passe : Cette phase four nit le listing avec son code objet.Cours Microprocesseur 6809 Analyse sémantique : Dr. Détecte un symbole non défini par ailleurs.

Lachouri Abderrazek Page 61 .Cours Microprocesseur 6809 Plan adopté pour l écriture d un programme OPT ABS Définition des variables DEBUT EQU $4000 TIRQ EQU $5000 TFIRQ EQU $6000 MEM EQU $2000 PIA EQU $EF20 Réservation des c ases mémoires ORG MEM MEM1 RMB 1 MEM2 RMB 2 PILE RMB 100 PPILE EQU * Réservation des ports ORG PIA DDRA RMB 1 CRA RMB 1 Programme principal ORG DEBUT LDS #PPILE " " BRA * Traitement des interruptions IRQ ORG TIRQ " " RTI Traitement des interrup tions FIRQ ORG TFIRQ " " RTI Initialisation des vecteurs d interruption ORG $FFF 6 FDB TFIRQ FDB TIRQ FDB TSWI FDB TNMI FDB DEBUT END Master en Contrôle et instrum entation Dr.

Cours Microprocesseur 6809 Appel de l’Editeur : EDITE Exemples de commande : BUILD fichier.ASM: Si pas d’erreur.ASM:1 LOAD fichier. création du fichier. Master en Contrôle et instrumentation Page 62 .ASM: 1 Dr.S19. Lachouri Abderrazek [si le fichier n’existe pas encore] [si le fichier existe déjà] Appel de l’assembleur : AS11 Exemple de commande : AS11 fichier.

Lachouri Abderrazek Jeux d’Instruction du 6809 Modes d’Adressages CC bit Immédiat Direct Indexé étendu Inhérent 5 3 21 0 Instruction Mnemonic Op ~ # Op ~ # Op ~ # Op ~ # Op ~ # Description HNZ VC ABX 3A 3 1 X = B+X (Unsigned) + + ++ + ADCA 89 2 2 99 4 2 A9 4+ 2+ B9 5 3 A = A+M+C + + ++ + ADC ADCB C9 2 2 D9 4 2 E9 4+ 2+ F9 5 3 B = B+M+C + + ++ + ADDA 8 B 2 2 9B 4 2 AB 4+ 2+ BB 5 3 A = A+M + + ++ + ADD ADDB CB 2 2 DB 4 2 EB 4+ 2+ FB 5 3 B = B+M + + ++ + ADDD C3 4 3 D3 6 2 E3 6+ 2+ F3 7 3 D = D+M:M+1 + ++ + ANDA 84 2 2 94 4 2 A4 4+ 2+ B4 5 3 A = A && M + +0 AND ANDB C4 2 2 D4 4 2 E4 4+ 2+ F 4 5 3 B = B && M + +0 ANDCC 1C 3 2 C = CC && IMM ? ? ? ? ? ASLA 48 2 1 8 +++ + A rithmetic ASL ASLB 58 2 1 shift 8 +++ + left ASL 08 6 2 68 6+ 2+ 78 7 3 8 +++ + ASRA 47 2 1 8 ++ + Arithmetic ASR ASRB 57 2 1 shift 8 ++ + right ASR 07 6 2 67 6 + 2+ 77 7 3 8 ++ + BITA 85 2 2 95 4 2 A5 4+ 2+ B5 5 3 Bit Test A (M&&A) + +0 BIT BITB C5 2 2 D5 4 2 E5 4+ 2+ F5 5 3 Bit Test B (M&&B) + +0 CLRA 4F 2 1 A = 0 0 1 0 0 CLR CLRB 5F 2 1 B = 0 0 10 0 CLR 0F 6 2 6F 6+ 2+ 7F 7 3 M=0 0 10 0 CMPA 81 2 2 91 4 2 A1 4+ 2+ B1 5 3 Compare M from A 8 + + + + CMPB C1 2 2 D1 4 2 E1 4+ 2+ F1 5 3 Compare M from B 8 + + + + 10 5 4 10 7 3 10 7+ 3+ 10 8 4 Compare M:M+1 C MPD +++ + 83 93 A3 B3 from D 11 5 4 11 7 3 11 7+ 3+ 11 8 4 Compare M:M+1 CMPS ++ + + 8C 9C AC BC from S CMP 11 5 4 11 7 3 11 7+ 3+ 11 8 4 Compare M:M+1 CMPU +++ + 83 93 A3 B3 from U 4 3 9C 6 2 AC 6+ 2+ BC 7 3 Compare M:M+1 CMPX 8C +++ + from X 10 5 4 10 7 3 10 7+ 3+ 10 8 4 Compare M:M+1 CMPY +++ + 8C 9C AC BC from Y COM A 43 2 1 A = complement(A) ++0 1 COM COMB 53 2 1 B = complement(B) ++0 1 COM 03 6 2 63 6+ 2+ 73 7 3 M = complement(M) ++0 1 => CC = CC ^ IMM.Cours Microprocesseur 6809 Dr. CWAI 3C 2 7 20 Wai t for Interrupt Master en Contrôle et instrumentation Page 63 .

Cours Microprocesseur 6809 DAA DEC DECA DECB DEC EORA EORB R1.R2 INCA INCB INC Dr.R2 4 C 2 1 A = A + 1 5C 2 1 B = B + 1 6 2 6C 6+ 2+ 7C 7 3 M=M+1 3 2 6E 3+ 2+ 7E 4 3 p c = EA 7 2 AD 7+ 2+ BD 8 3 jump to subroutine +++ +++ +++ Master en Contrôle et instrumentation Page 64 . Lachouri Abderrazek + + + + + + +0 + ++ ++ ++ +0 +0 EOR EXG INC JMP JSR 88 2 C8 2 1E 8 0A 2 98 2 D8 2 0C 0E 9D 19 2 1 Decimal Adjust A 4A 2 1 A = A 1 5A 2 1 B = B 1 6 2 6A 6+ 2+ 7A 7 3 M=M 1 4 2 A8 4+ 2+ B8 5 3 A = A XOR M 4 2 E8 4+ 2+ F8 5 3 B = M XOR B exchange R1.

Lachouri Abderrazek Jeux d’Instruction du 6809 Modes d’Adressages Immédiat Direct Indexé Etendu Inhérent Instr uction Mnemonic Op ~ # Op ~ # Op ~ # Op ~ # Op ~ # LDA 86 2 2 96 4 2 A6 4+ 2+ B6 5 3 LDB C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3 LDD CC 3 3 DC 5 2 EC 5+ 2+ FC 6 3 10 4 4 10 6 3 10 6+ 3+ 10 7 4 LDS LD CE DE EE FE LDU CE 3 3 DE 5 2 EE 5+ 2+ FE 6 3 LDX 8E 3 3 9E 5 2 AE 5+ 2+ BE 6 3 10 4 4 10 6 3 10 6+ 3+ 10 7 4 LDY 8E 9E AE BE LEAS 32 4+ 2+ LEAU 33 4+ 2+ LEA LEAX 30 4+ 2+ LEAY 31 4+ 2+ LSLA 48 2 1 LSL LSLB 58 2 1 LSL 08 6 2 68 6+ 2+ 78 7 3 LSRA 44 2 1 LSR LSRB 54 2 1 LSR 04 6 2 64 6+ 2+ 7 4 7 3 MUL NEG NOP OR ORA ORB ORCC PSHS PSH PSHU PULS PUL PULU ROL ROLA ROLB 8A C A 1A 34 2 2 3 5+ 2 9A 4 2 AA 4+ 2+ BA 5 3 2 DA 4 2 EA 4+ 2+ FA 5 3 2 2 NEGA NEGB NEG 3D 11 1 40 50 00 6 2 60 6+ 2+ 70 7 3 12 Description A=M B=M D = M:M+1 S = M:M+1 U = M:M+1 X = M:M+1 Y = M:M+1 S = EA U = EA X = EA Y = EA Logical shift left Logical shift right CC bit 5 3 21 0 HNZVC + +0 + +0 ++0 ++0 ++0 ++0 ++0 + + + 0 0 0 + + +++ +++ +++ + + + + + + + 9 36 5+ 2 35 5+ 2 37 5+ 2 49 59 D = A*B (Unsigned) 2 1 A = !A + 1 2 1 B = !B + 1 M = !M + 1 2 1 No Operation A = A || M B = B || M C = CC || IMM Push Registers on S Stack Push Registers on U S tack Pull Registers from S Stack Pull Registers from U Stack 2 1 Rotate left thr u carry 2 1 8 ++++ 8 ++++ 8 ++++ + +0 + +0 ? ? ? ? ? ++++ ++++ Master en Contrôle et instrumentation Page 65 .Cours Microprocesseur 6809 Dr.

Lachouri Abderrazek + 0 0 0 +++ + + + + + + 09 6 2 69 6+ 2+ 79 7 3 46 56 06 6 2 66 6+ 2+ 76 7 3 2 1 Rotate Right 2 1 thru ca rry ROR RTI RTS SBC SEX SBCA SBCB 82 2 2 92 4 2 A2 C2 2 2 D2 4 2 E2 STA STB STD ST STS STU STX STY SUB SUBA SUBB SUBD SWI SWI SWI2 SWI3 SYNC TFR TST R1.R2 TSTA TSTB TST 97 4 2 A7 D7 4 2 E7 DD 5 2 ED 10 6 3 10 DF EF DF 5 2 EF 9F 5 2 AF 10 6 3 10 9F A F 80 2 2 90 4 2 A0 C0 2 2 D0 4 2 E0 83 4 3 93 6 2 A3 1F 6 2 0D 6 2 6D Return from ? ? ? ? ? Interrupt Return from 39 5 1 subroutine 4+ 2+ B2 5 3 A=A-M -C 8 + + + + 4+ 2+ F2 5 3 B=B-M-C 8 + + + + Sign extend B 1D 2 1 ++0 into A 4+ 2 + B7 5 3 M=A + +0 4+ 2+ F7 5 3 M=B + +0 5+ 2+ FD 6 3 M:M+1 = D ++0 6+ 3+ 10 7 4 M:M+1 = S ++0 FF 5+ 2+ FF 6 3 M:M+1 = U ++0 5+ 2+ BF 6 3 M:M+1 = X ++0 6+ 3+ 10 7 4 M:M+1 = Y ++0 BF 4+ 2+ B0 5 3 A=A-M 8 + + + + 4+ 2+ F0 5 3 B=B-M 8 ++++ 6+ 2 + B3 7 3 D = D .Cours Microprocesseur 6809 ROL RORA RORB ROR Dr.M:M+1 + + + + 3F 19 1 Software interrupt 1 10 20 2 Software 3F interrupt 2 11 20 2 Software 3F interrupt 3 >= Synchronize to 13 1 4 Interrupt R 2 = R1 4D 2 1 Test A ++0 5D 2 1 Test B ++0 6+ 2+ 7D 7 3 Test M ++0 3B 6/15 1 Master en Contrôle et instrumentation Page 66 .

Cours Microprocesseur 6809
Legend:
Dr. Lachouri Abderrazek
+ Test and set if true, OP Operation Code(Hexadecimal) cleared otherwise = Trans
fer from - Not Affected ~ Number of MPU Cycles H Half carry (from bit 3) CC Cond
ition Code Register # Number of Program Bytes N Negative (sign bit): : Concatena
tion + Arithmetic Plus Z Zero (Reset) || Logical or Arithmetic Minus V Overflow,
2 s complement && Logical and * Multiply C Carry from ALU EOR Logical Exclusive
or EA Effective Address:w ! Complement of M Notes: 1. This column gives a base
cycle and byte count. To obtain total count, add the values obtained from the IN
DEXED ADDRESSING MODE table, in Appendix F. 2. Rl and R2 may be any pair of 8 bi
t or any pair of 16 bit registers. The 8 bit registers are: A, B, CC, DP The 16
bit registers are: X, Y, U, S, D, PC 3. EA is the effective address. 4. The PSH
and PUL instructions require 5 cycles plus 1 cycle for each byte pushed or pulle
d. 5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instru
ctions. 6. SWI sets I and F bits. SW12 and SW13 do not affect I and F. 7. Condit
ions Codes set as a direct result of the instruction. 8. Value of half carry fla
g is undefined. 9. Special Case Carry set if b7 is SET. Mode Relative OP Descrip
tion 24 3 / 2 Branch C=O 10 5l6) 4 Long Branch 24 C=O 25 3 2 Branch C= 1 10 56)
4 Long Branch 25 C=l 27 3 2 Branch Z=O 10 5(6) 4 Long Branch 27 Z=O 2C 3 2 Branc
h2Zero 10 5(6) 4 Long Branch2Zero 2C 2E 3 2 Branch > Zero 10 5(6) 4 Long Branch>
Zero 2E
Instruction BCC BCS BEQ BGE BGT
Forms BCC LBCC BCS LBCS BEQ LBEQ BGE LBGE BGT LBGT
5 3 2 1 0 H N Z V C
Master en Contrôle et instrumentation
Page 67

Cours Microprocesseur 6809
BHI BHS BHI LBHI BHS LBHS BLE BLO BLS BLT BMI BNE BPL BRA BRN BSR BVC BVS BLE LB
LE BLO LBLO BLS LBLS BLT LBLT BMI LBMI BNE LBNE BPL LBPL BRA LBRA BRN LBRN BSR L
BSR BVC LBVC BVS LBVS 22 3 10 5(6) 22 24 3 10 24 2F 10 2F 25 10 25 23 10 23 2D 1
0 2D 2B 10 2B 26 10 26 2A 10 2A 20 16 21 10 21 8D 17 28 10 28 29 10 29 516) 3 5(
6) 3 56) 3 5(6) 3 5i6) 3 5(6) 3 5(6) " 5i6) 3 5 3 5
Dr. Lachouri Abderrazek
2 Branch rligher 4 Long Branch Higher 2 Branch Higher or Same 4 Long Branch High
er or Same 2 BranchsZero 4 Long BranchsZero 2 Branch lower 4 Long Branch Lower 2
Branch Lower or Same 4 Long Branch Lower or Same 2 Branch<Zero 4 Long Branch<Ze
ro 2 Branch Minus 4 Long Branch Minus 2 Branch ZtO 4 Long Branch Z0 Branch Plus
4 Long Branch Plus 2 3 2 4 Branch Alwavs Long Branch Always Branch Never Long Br
anch Never
7 2 Branch to Subroutine 9 3 Long Branch to Subroutine 3 2 Banch V=0 5(61 4 Long
Branch V=0 3 2 Branch V= 1 5(6) 4 Long Branch V=l
Master en Contrôle et instrumentation
Page 68

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
Chapitre III : Le fonctionnement en interruption
Définition : une interruption est une procédure qui permet de suspendre l exécution d
un programme au profit d un autre, avec la possibilité de reprendre l exécution du p
rogramme initial là où il avait été suspendu. Interruptions "matérielles" Le microprocesse
ur est capable de répondre à des sollicitations extérieures. Ainsi peut-il traiter des
informations en "temps réel". Pour cela, le microprocesseur est "couplé" au monde e
xtérieur par des lignes sur lesquelles s effectue, de façon indéterministe, un échange d
e messages sous forme de signaux logiques ! A partir des sollicitations extérieure
s, le microprocesseur doit changer "d état" en fonction des priorités relatives de l
opération en cours et de celle qui est demandée. Selon le cas, il interrompt ou non
le déroulement "normal" du programme. Contrainte : Si la demande est prise en com
pte, le microprocesseur doit être capable de traiter rapidement cette demande exte
rne. Le microprocesseur 6809 possède pour cela quatre lignes, baptisées "entrée d inte
rruption" matérielles qui sont par ordre de priorité : RESET : Réinitialisation du mic
roprocesseur. : Non Masquable Interrupt. NMI : Fast Interrupt Request. FIRQ
IRQ
: Interrupt Request.
Ces entrées sont actives sont un niveau "bas". Rôle du Registre de Code Condition aFonction du flag I *Masque concernant l interruption IRQ. Tableau
Master en Contrôle et instrumentation
Page 69

Méthode de changement de l état des flags I et F!. Lachouri Abderrazek Lorsque ce flag est mis à 1. On peut forcer l état des deux bits à l aide des instructions suivantes : ANDCC d une part et ORCC d autre part ! Tableau c. le microprocesseur ne prend pas en compte les demande s d interruption arrivant sur la ligne IRQ.Fonctio n du flag F * Masque concernant l interruption FIRQ. (seuls les contenus des registre s PC et CCR sont concernés. Ici.Fonction du flag E Ce flag est positionné par le microprocesseur afin d indique r le type de sauvegarde devant être réalisée (partielle ou complète). le microprocesseur ne prend pas en compte les demande s d interruption arrivant sur la ligne FIRQ. le cont exte total du microprocesseur (12 octets) est sauvegardé sur la pile S. le contexte partiel du micropr ocesseur (3 octets) est sauvegardé sur la pile S. b. Avec ce type d interruption.Cours Microprocesseur 6809 Dr. Tableau Lorsque ce flag est mis à 1. Il fait office en quelque sorte de mémoire interne. Master en Contrôle et instrumentation Page 70 .

FIRQ. IRQ et RESET ainsi que l instruction SWI positionnent aut omatiquement le flag CCRb4 à 1 (masquage de l IRQ). néanmoins d autoriser la prise en compte de nouvelles interruptions en les repositionnant à O. Lachouri Abderrazek Ce flag est utilisé (sous forme de test). Les lignes NMI. qui sont : SWI (SoftWare Interrupt) SWI2 (SoftWare Interrupt n°2) SW I3 (SoftWare Interrupt n°3) Les interruptions de synchronisation. systématiquement lors de l instruction RTI . Il y a une "pré sauvegarde" complète d u contexte. Quelques remarques importantes : Les lignes NMI. Interruptions "logi cielles : Hormis les demandes d interruptions matérielles. La sauvegarde du contexte est totale.Cours Microprocesseur 6809 Tableau Dr. Elles r eprésentent des évènements "déterministes". FIRQ et RESET ainsi que l instruction SWI positionnent automatiquement le flag CCRb6 à 1 (masqua ge de la FIRQ). Master en Contrôle et instrumentation Page 71 . On en dénombre trois. SYNC (attente de synchronisation). Elles se tradu isent par des instructions à par entière que l on place dans les programmes. Ce sont les interruptions "soft". Pour finir. par le microprocesseur. il existe d autres caus es d interruption de programme. le m icroprocesseur peut se mettre en attente d évènements extérieurs afin de synchroniser son évolution sur l apparition de ces derniers. Pour cela. on trouve les instructions suivantes : CWAI (attente d in terruption). pour déterminer quelle action à mener afin de revenir prop rement dans le programme suspendu (nombre de registres à dépilés). Rien n empêche de repositionner à 0 ces flags si on le souhaite! Les bits I et F étant positionnés à 1 lors de l exécution d un programme d interruption. il est possible.

Cours Microprocesseur 6809 Illustration : Dr. Lachouri Abderrazek Master en Contrôle et instrumentation Page 72 .

Lachouri Abderrazek Instructions d interruption : Traitement des interruptions : Le traitement d’une interruption se fait selon un p rotocole bien établi que nous allons détaillé. programmée dans la silice. le microprocesseur entame une "procédure implicite". dont les organigrammes respec tifs sont représentés plus loin. Dès la mise au niveau bas de la broche d’in terruption. Master en Contrôle et instrumentation Page 73 .Cours Microprocesseur 6809 Tableau récapitulatif : Interruptions : Dr. ou bien dès la rencontre de l’instruction SWI.

C’est lui (c. doit assurer les opérations suivantes : d’abord identifier le d emandeur faire respecter une hiérarchie dans les demandeurs lorsqu’il y a des appels simultanés. Master en Contrôle et instrumentation Page 74 . Dans ce cas général où plusieurs "utilisateurs" peuvent dem ander l’interruption et où un "utilisateur" au moins veut pouvoir choisir entre plus ieurs programmes d’interruption différents. la "procédure implicite" doit aboutir d’abor d à un programme de gestion de l’interruption. le programme) qui décide du moment des actions. Le programme de gestion d’une interrupt ion IRQ par exemple. le transfert est exécuté quelque soit l’état du périphérique. Mode inconditionnel : Dans ce cas. La priorité entre demandes simultanées de différentes interruptions est réali sée en partie par le jeu des masques. il est possible d’implanter directement le début de ce programme à l’adresse contenue dans le vecteur d’interruption. Ceci afin d’assurer un minimum de synchronisation.d. Le mode programmé : Les transferts s’effectuent à l’initiative du microprocesseur . où la demande d’interruption ne peu t provenir que d’une seule source. Dans un système simple et figé. Lachouri Abderrazek On remarque que chaque organigramme se termine par un chargement du PC avec la v aleur contenue dans le vecteur de l’interruption demandée. (Technique de la poignée de main ou h andshaking). brancher le microprocesseur (par un changeme nt du PC) au programme d’interruption souhaité par le demandeur. Ceci suppose que ce dernier est t oujours prêt à envoyer la donnée ou disponible pour recevoir celle-ci.Cours Microprocesseur 6809 Dr. Méthodologie de gesti on des périphériques d’entrées-sorties : Les transferts E/S peuvent s’effectuer selon différ ents modes. Mode conditionnel : Dans ce cas. Ceci provoque un saut à l’adr esse correspondante. et où l’on n’envisage qu’un seul programme d’interruption . au transfert s’ajoute des échanges de signaux de commande entre une interface (le PIA) et le périphérique. La sortie de la procédure implicite aboutira directe ment à l’exécution du programme. (Possible pour des périphériques rapides).a. Ces transferts p euvent être néanmoins inconditionnels ou non. Deux grands modes apparaissent : Le mode programmé et le mode interrup tible.

Cours Microprocesseur 6809 Principes: Dr. Trois poss ibilités : 1. le microprocesseur teste l’état du périphérique et ne réalis e l’opération qu’après s’être assuré de sa diponibilité. puis se bra nche dans le programme d’IT grâce au vecteur d’interruption. Celui-ci envoie par l’intermédiaire du circuit d’in terface une demande d’interruption au microprocesseur. Lachouri Abderrazek Avant d’effectuer un transfert.On utilise les différentes entrées d’IT du microprocesseur si cela est pos sible.) est généralement indiqué par un bi t d’état appelé flag. Dans le cas où il y a beaucoup d’interfaces il exécute des boucles d’at ente sur des événements extérieurs en passant son temps à tester les indicateurs d’état de c hacun (technique du sondage ou polling). L’état du périphérique (prêt ou occu réception plein ou registre de transmission vide. les transferts d’E/S s’effectuent à la demande du périphérique. il faut pouvoir identifier le périphérique demandeur. Très pénalisant ! Le remède.. Si celle-ci n’est pas masquée o u inhibée.. Conséquence de cette technique le micropr ocesseur est immobilisé dans cette tâche. Avantage : Les périphériques peuven t fonctionner à leur propre vitesse sans pénaliser pour autant le microprocesseur. Cette méthode permet de décha rger le microprocesseur des opérations de polling. (Exemp le du clavier : le microprocesseur ne peut pas savoir à quel moment l’utilisateur ap puiera sur une touche du clavier). le microprocesseur termine l’exécution de l’instruction en cours.. Master en Contrôle et instrumentation Page 75 .. Q uestions : Que faire s’il y a plusieurs périphériques susceptibles de faire des demand es d’IT? Dans ce cas. Le mode interrupt ible : Dans ce cas.

On réunit les différentes sorties de demande d’interruption avec un câblage en "ou câbl e". Chaque périphér ique possède son propre vecteur d’interruption.On utilise des circuits spéciaux qui répondent au mieux à ce problème avec prise en compte des priorités au niveau des demandes simultanées. Cas 1 : Pas de problème. 3. Chargement du PC avec le contenu de vecteur d interruption spécifiqu e. Schéma : Cas 2 : On considère une seule entrée de demande d’interruption sur le microprocesseur avec plusieurs interfaces. On sait quel est le mécanisme mis en p lace lors de la prise en compte d’une telle demande : Sauvegarde du contexte intégra l ou partiel.Cours Microprocesseur 6809 Dr. Lachouri Abderrazek 2. On est amené alors à adopter le schéma suivant : Master en Contrôle et instrumentation Page 76 . Cela oblige alors de faire une recherche du demandeur par scrutation.

Cours Microprocesseur 6809 Dr. Ainsi apparaît la notion de Priorité! La ges tion des priorités peut se faire de façon logicielle ou matérielle. le programme d interru ption doit comporter un mécanisme de recherche (de scrutation) pour connaître quel e st le contrôleur qui a provoqué la demande. la première tâche du programme d interruption est de tester chaque indicateur d état d es interfaces afin de savoir qui a effectué la demande. Master en Contrôle et instru mentation Page 77 . Méthode logicielle A près prise en compte de l interruption (le contenu de vecteur allant dans le PC). Lachouri Abderrazek Gestion des priorités : Cas3 : Avec la structure du "ou câblé".

Regi stre interne de masque d IT (initialisé par le microprocesseur). Lachouri Abderrazek Ici l ordre de scrutation détermine le niveau de priorité des interfaces entre eux.Cours Microprocesseur 6809 Dr. C est à dire que l on crée directement le vecteur d IT de second niveau.. Avantage : Pr ise en compte rapide de la demande d IT en provenance d’une interface (la phase de recherche disparaît.). il est nécessaire de gérer une table dans laquelle se trouve les ad resses (pointeurs d entrée) des différents sous-programmes d IT. Méthode matérielle : On peut établir la hiérarchie entre les interfaces en utilisant une logi que supplémentaire qui permet d identifier directement l origine de la demande. Master en Contrôle et instrumentation Page 78 . Dans cet esprit. Ensemble de ET pour bloquer ou non les demandes d IT à partir des informations du registre de ma sques. On peut "voir" ces adresses comme des vecteurs d IT de second niveau propre à chaque interface. Première illustration matérielle : Commentaires : 1.. 3. 2. Registre d entrée capable de stocker huit demandes d IT.

Commentaires : La ligne A0 est reliée directement à la mémoire car on agit sur les adr esses. Master en Contrôle et instrumentation Page 79 . o2 et o3 ). b6 et b7 éta nt initialisés par le microprocesseur). Ainsi. Codeur de priorité qui fournit le codage de la demande la plus prioritaire parm i celles actives. 5. Lachouri Abderrazek 4. les sorties du codeur de priorité sont multiplexées av ec les lignes d adresse A1. Registre de sortie qui fournit l octet constituant une part ie de l adresse du vecteur. Il n y a donc plus besoin de la scrutation logicielle des int erfaces. A2 et A3. Seconde illustration : Vectorisation par déc odeur de priorité et Mux : Ici. le microprocesseur accède directement au vecteur d IT corresp ondant à la demande. Le multiplexeur est actif seulement en phase de reconnaissance d IT (BA=0 et BS=1) et lorsque le vecteur d IT est déposé sur le bus d adresse ($FFF8 et $FFF9 dans notre exemple).Cours Microprocesseur 6809 Dr. Le reste du Mux se traduit par l apparition d un code ( o1 . L’autre partie étant définie par ailleurs (b 5.

3. le second traite la façon d’adresser les dispositifs d’entréessorties (E/S) afin que l’UCM (unité centrale de microt raitement) puisse en sélectionner un pour un transfert de données.Lecture mémoire . . Par exemple . la mémoire peut être soit à accès séquentiel. 2. 5. via les bus prennent l’une des formes suivantes : 1. Parailleurs.Lecture d’E/S . Les deux principales mémoires ce ntrales sont la RAM et la ROM.Ecriture mémoire . deux problèmes surgissent avec la conception des sections de programmes pour les entrées et les sorties : le premier concerne la façon d’interfacer les périphériques avec le microprocesseur. quand les données sont rangées sur un e bande magnétique. 4.1 Interfaçage avec mémoire : IV. A accès séquentiel signifie que pour localiser des données. . les états et les signaux de commandes . . les tra nsferts de données de et vers l’UCM. so t à accès aléatoire.Ge stion d’interruption ou de réinitialisation.La mémoire centrale à un espace mémoire limité p ar contre les mémoires auxiliaires sont très grandes.Cours Microprocesseur 6809 Dr. Lachouri Abderrazek Chapitre IV : Interfaçage du Microprocesseur 6809 IV. Il existe deux catégories deux mémoires : mémoire centrale et mémoire auxiliaire. la mémoire est l’organe le plus important d’un microordinateu r. Master en Contrôle et instrumentation Page 80 . Généralement.La mémoire centrale est très rapide par rapport aux mémoires auxiliaires . de tr ansférer les données. il est nécessaire de parcourir la mémoire en entier jusqu à localise r les données cherchées. La plupart d’ent re eux comporte peu de mémoire et peu sont munis de portes d’entrées et de sorties qui les connectent directement à des périphériques.1 Introductioon : après l’UCM pour le microprocesseur.L a mémoire centrale où l’UCM exécute ses instructions . il faut par courir en séquence toute la mémoire.1. Objectifs de ce Chapitre est d’étudier les circuits mémoires : Comprendre l organisation et le fonctionnement de plusieurs ty pes Comprendre la terminologie liée aux circuits mémoires Connaître les différences entr e RAM et ROM et entre mémoire de masse et mémoire volatile Comprendre l’organisation e t le fonctionnement de plusieurstypes de mémoires Apprendre l utilisation et la co mbinaison des mémoires IV.Ecriture d’E/S .1 INTRODUCTION : La plupart d es microprocesseurs présentent peu d’utilité fonctionnelle par eux mêmes. Généralement.

1.6 Temps d’accès à la mémoire: Le temps entre le signal d’activation et le moment où l’opér on est achevée. Les unités de ROM et de RAM des microordinateurs sont toutes les deux du type à accès aléatoire.1. IV.1. IV.5 Temps de lecture: Temps qui s’écoule entre l’in stant où l’adresse est fournie à la mémoire et le moment où la donnée apparaît en sortie.1. RA M de 1 Méga = 220 x 8bits.1.3 Capacité mémoire d’un ordinateur: C’est le nombre de cases mémoires où les informations sont emmagasinées.7 Temps de cycle à la mémoire: Le temps qui doit s’écouler entre de ux activations successives de la mémoire.1.1. chaque case est référencie par u n nombre qui lui est propre de manière non ambiguë . IV.2 Définition d’une mémoire : Arrangement binaire de cases . IV. .Cours Microprocesseur 6809 Dr.1.4 Temps d’écriture: Temps qui s’écoule entre l’instant où l formation à stocker et l’adresse sont fournies à l’entrée de la mémoire et le moment où l’inf ation est effictivement écrite. Master en Contrôle et instrumentation Page 81 .1. toute case mémoire peut être écrite ou lue en un temps don né (dit temps d’accès). IV.1.1. IV. bien plus rapide que les unités à accès séquentiel. ce nombre est appelé adresse de l a case. Lachouri Abderrazek Dans le cas de l’accès aléatoire. Exemple: RAM de 1KO (kilo octet) = 210 x 8bits.

2 RAM : (Random Accesc Memory) deux types de RAM IV. L’information stockée dis paraît lorsqu’elles ne sont plus sous tension. CMOS. Lachouri Abderrazek IV.2.IV. ce qui limite les possibilités d’intégration dans l’état actuel. Master en Contrôle et instrumentation Page 82 . Elles sont réalisées en technologie MOS.1.1 Les RAMs statiques: Ce sont des mémoires volatiles.Cours Microprocesseur 6809 Dr.1 Cellule mémoire d’une RAM statique.1. compatible TT L et à sortie à trois états (systématiquement pour les MOS et CMOS) ou à collecteur ouvert (exclusivement pour certaines bipolaires et ECL). Elle comprend six (06) transistors. Fig. Ces mémoires sont toujours monotension: +5v. bipolaire ou ECL.

L’élément mémoire de base est la capacité de gâchett rce d’un transistor MOS.2 Le s RAMs dynamiques: La limitation d’intégration des RAMs statiques de grande capacité a poussé à la création de RAM dynamiques. 2.1.2. mais la résistance gâchette-source n’étant pas infinie. plus simples à utiliser mais elles présentent les inco nvinients suivants: 1.Une intégration limitée. cette cap acité se déchargera. il faudra donc la recharger pour maintenir l’information.Un coût par bit plus élevé. Master en Contrôle et instrumentation Page 83 . En technologie MOS ce rafraîchissement doit interven ir toutes les 2ms pour une cellule. on dit qu’il faut rafraichir la mémoire.IV.2 RAM Statique type HM2064 w : Write I/O: Input/Output Les RAMs statiques sont donc. IV.Cours Microprocesseur 6809 Exemple : La RAM HM2064 Dr. Lachouri Abderrazek OE: Output Enable Fig.

. Pour une cellue il y’aura: . Lachouri Abderrazek Fig. Master en Contrôle et instrumentation Page 84 . Pour lire l’état bloqué ou saturé du MOS T1 on aura recours à un MOS T3 qui sera conducteur lors d’une lecture. . si non il sera bloqué.Une ligne de sortie des données (po ur la lecture).IV.Une ligne de sélection d’écritur e. .Cours Microprocesseur 6809 Dr.3 Cellule mémoire dynamique Si la tension VGS est de polarité et d’amplitude co nvenables le MOS T1 sera saturé.Une ligne d’entrée des données (pour l’écriture).Une ligne de sélection de lecture.

toutes les colonnes sur cette ligne sont adressées. L’organisation de la mémoire facilite l’opér ation de rafraichissement puisque. Master en Contrôle et instrumentation Page 85 . Fig. 3 Rafraîchissement des mémoires dynamiques: Le principe consiste à reboucler la ligne de sortie sur la ligne d’entrée de donnée par l’intermidiaire d’un amplificateur puisque l’o pération de lecture affecte le niveau de l’information lue. lorsqu’on fournit une adresse de ligne.2. on aura seulement 64 amplificateurs de régénération et no n 4096 amplificateurs. pour une mémoire de 4k bits c’est à d ire 64 lignes x 64 colonnes.5 Circuit de rafraichissement mémoire.IV. Lachouri Abderrazek Fig.IV. IV. Donc.1. Le rafraichissement est automatique lors de la lecture d’une cellule.4.Cours Microprocesseur 6809 Exemples: Dr. Constitution mémoire de 4 mots de 4 bits et de 4 mots de 8 bits.

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek
IV.1.3 ROM, PROM et EPROM: IV.1.3.1 ROM (Read Only Memory): C’est une mémoire à lectur
e seule. En raison de sa non volatilité la ROM est utilisée pour stocker des program
mes de commande appelés souvent programmes moniteurs. La ROM est une mémoire program
mable par masque , et qui ne peut être produite que par le fabricant. Le coût élevé pour
la réalisation des masques impose une production en grande série (le nombre minimal
est égale à 1000).
Exemple:
sorties Fig.IV.6 ROM de 4 mots de 4 bits. Opération de lecture: La sélection d’un mot
s’effectue par la mise à zéro de la ligne correspondant à ce mot (ferméture de l’interrupteu
r I i ) . La présence d’une diode relie une colonne avec une ligne; elle est polarisée
en sens direct (passante), donc on aura à la sortie un zéro « 0 ». L’absence de diode don
ne à la sortie un « 1 ». Exemple: Sélection du 2eme ligne (I1) S3 1 Master en Contrôle et
instrumentation S2 1 S1 0 S0 0 Page 86

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek

IV.1.3.2 PROM: Ce sont des mémoires mortes mais programmables par l’utilisateur de m
anière irréversible. a) Par claquage de fusible: La structure d’une PROM est très proche
de celle d’une ROM. A chaque intersection d’une ligne et d’une colonne, le constructe
ur a placé un transistor dont une des électrodes est en série avec un fusible de Nichr
om ou de polysilicium. Initialement toutes les lignes et les colonnes sont reliées
(elles sont à zéro). Claquer un fusible se fait à l’aide des programmateurs de PROM qui
fera circuler un courant électrique de quelques dizaines de mA pour déteruire un fu
sible et ainsi écrire un 0. Cependant, si on désire conserver un « 1 », il faut empêcher l
e transistor à conduire en mettant la source du transistor à 5 volts. Donc, la ddP e
ntre la grille et la source est inférieur au tension de seuil, en effet le transis
tor est bloqué. Pour effectuer une lecture, une tension de 5 volts est placée sur la
grille et le drain commun. Si un fusible est présent, la valeur « 1 » est récupérée sur la
colonne correspondante; alors un zéro « 0 » est récupéré s’il n’ y a pas de fusible. Exemple:
Fig.IV.7 Exemple de PROM à base des transistors MOS. b) Par claquage de jonctions:
La mémoire est organisée sous forme matricielle en réseaux de diodes montées en tête-bêche.
Ainsi tous les croisements sont isolés au départ. Pour établir la connexion et ainsi éc
rire un zéro, il faut claquer par avalanche la diode D1 correspondant au croisemen
t concerné; ceci est effectué par la mise du colonne de ce croisement sous une tensi
on inverse suffisante et la ligne du mot à programmer sous une tension nulle (0v).
Par ailleurs, pour préserver les croisements isolés; il faut relier les colonnes co
rrespondante à une tension nulle (0v). Pour la lecture d’un mot, il faut tout d’abord
mettre la ligne du mot à lire à zéro, et relier les colonnes à 5 volts. Si les croisemen
ts sont connectés, donc on aura à la sortie un zéro « 0 », si dans le cas contraire c’est un
« 1 » qui est récupéré à la sortie.
Master en Contrôle et instrumentation
Page 87

Cours Microprocesseur 6809
Dr. Lachouri Abderrazek

Fig.IV.8 Exemple de PROM à base des jonctions. IV.1.3.3 EPROM: Ce sont des mémoires
mortes programmables par l’utilisateur; l’élément qui est la base d’une mémoire morte effaçab
e est le transistor de type particulier FAMOS (Floating gate Avalanche injection
MOS), canal N. Ce conducteur est noyé dans un diélectrique à très forte résistivité, il peu
t alors conserver pendant de très longues durées des charges électriques; même avec l’élévati
n de la température ; la charge se conserverait plusieurs années. Initialement le tr
ansistor est off ; la source et le drain ne sont pas reliés.
Fig.IV.9 Exemple d’ EPROM à base des transistors type FAMOS (MOS). Cependant, une fo
rte impulsion de -40v déclonche une conduction par avalanche, projétant les électrons
du substrat avec une grande énergie sur le drain et surtout sur la grille (gate) f
lottante d’un MOS conventionnel canal N. Après disparition de l’impulsion les électrons
restent présonier sur la grille et développe un champ électrique qui repousse les électr
ons du susbstrat créant ainsi une zone avec conduction par trous. Un courant électri
que s’établi entre le drain et la source . Le transistor est dit on (passant). IV.1.
3.4 Effacement d’un EPROM: Il faut communiquer suffisamment d’énergie aux électrons accu
mulés sur la grille afin qu’ils puissent traverser la couche d’oxyde et rejoindre le s
ubstrat, cela consiste à soumettre le boitier à une énergie radioactive : rayon ultrav
iolet. Les photons hurlent (frappent) la grille flottante de silicium délogeant le
s électrons et provoquent leur immigration vers le substrat.
Master en Contrôle et instrumentation
Page 88

Fig.2 Ecriture mémoire: 1. 3.1 Lecture de RAM: Fig.5 EEPROM : (Electrical Erasable Programmable ROM) IV.11 chronogrammes de lecture mémoire IV. 2.4 OPERATIONS DE LECTURE ET D’ECRITURE IV.3. Master en Contrôle et inst rumentation Page 89 .Placer l’adresse de la case mémoire sur le bus d’adresse .1.Donner l’ordre d’écriture.1. 3. Lachouri Abderrazek IV.Fournir l’adr esse de la case mémoire où l’on veut écrire une donnée.1.1.4. 1.Envoyer l’ordre de lect ure.10 lec ture d’un RAM.Cours Microprocesseur 6809 Dr.IV. 2.Fourinir la donnée elle même (plac r la donnée sur le bus de données).4.III.Recupérer après un certains temps la donnée sur un bus de donnée.

3 Lecture de ROM: Fig. 3.12 Exemple de lecture mémoire ROM Fig.Envoyer l’ordre de lecture. Lachouri Abderrazek Fig.Fournir l’adresse de la case mémoire concernée sur le bus d’adresse.4.1.Cours Microprocesseur 6809 Dr.IV.recupérer après un certains temps la donnée sur le bus de donnée. Donc.IV. la lecture d’une ROM consiste à: 1. 2.13chronogrammes de lecture mémoire ROM.III. IV.11 chronogrammes de l’écriture mémoire. Master en Contrôle et instrumentation Page 90 .

Lachouri Abderrazek Master en Contrôle et instrumentation Page 91 .Cours Microprocesseur 6809 Dr.

les adresses de ce plan mémoire doiv ent être consécutives et aller de $0080 à $047F. Lachouri Abderrazek EXERCICES EXO1 Sélection linéaire d’adresse:Une mémoire de 1K x 8bits. Pour la sélection des boi tiers et des pages.La RAM est constituée aussi par des boitiers de capacité mémoire de 256x4 bits.Réaliser le circuit d’interfaçage de cette mémoire avec le microprces eur 6809.Trouver le nombre de boitiers à utiliser. est faite à partir d’un nombre de boitiers organisés en 128 x 8 bit. chaque page est c onstituer d’un nombre de boitiers de 1ko de capacité mémoire. 1. 3. EXO2: Une mémoire est constutuée d’une EPROM s’étend de l’adresse $0800 à l’adesse FH et une RAM s’étend à partir de l’adresse $C000 à l’adresse $CFFF. 4. 1.Quelle est la capaci té mémoire de chaque type mémoire (RAM et EPROM)?. Trouver le nombre de boitiers constituant cette EPROM.Considérons que l’EPROM est constituée d’un nombre de boitiers ayant chacun une capacité de 2kx8bits.Faire le circuit d’interfaçage de ces deux mémoires (RAM et EPROM) avec le mic roprocesseur 6809 en utilisant les décodeurs suivants: EXO3: Une mémoire EPROM de 64ko est organisée en pages (segments). Sachant que les segments sont identiques et la dernière page s’etend de $E000 à $FFFF. 3. Trouver le nombre de boitiers constituant cette RAM.Cours Microprocesseur 6809 Dr. 2. on utilise des décodeurs validés lorsqu’ils receveront le signal I O/ M envoyé par le microprocesseur 6809. Master en Contrôle et instrumentation Page 92 . 2.Faire la table des adresses du pla n mémoire considéré.

Master en Contrôle et instrumentation Page 93 . Lachouri Abderrazek 1.Faire la table des adresses du plan mémoire c onsidéré.Trouver la capacité mémoire de chaque segment (page).Cours Microprocesseur 6809 Dr. 4. 2.Trouver le nombre de boi tiers constituant chaque segment.Réalier le circuitd’interfaçage de cette mémoire avec le microprocesseur 6809. 3.

Chaque ligne des deux ports (PortA et PortB) peut être programmée pour agi r comme une entrée ou une sortie. IV. le PIA6820 possède deux lignes de contrôle CA2 et CB2 pouvant être programmés pour agir comme une voie de transmissio n de données périphérique. deux lignes d’interruptions. L’architecture interne du PIA 6820 est réalisée autour de deux re gistres de contrôle (CRA et CRB).1 Bloc fonctionnel du PIA 6820 En plus des deux ports de communication périphériques. trois chips selects.2. Le PIA 6820 est équipé de deux ports (Por tA et PortB) bidirectionnels de huit bits utilisés pour communiquer avec les périphéri ques d’E/S. deux registres de contrôle (CRAet CRB).2. Le schéma fonctionnel du PIA6820 est donné par la figure ci-dessous : Master en Contrôle et instrumentation Page 94 .2 Architecture inter ne du PIA 6820 : Le PIA6820 possède six registres de huit bits. Le PIA 6820 communique avec la MPU par un bus de données bidirectionnel de huit bits. Lachouri Abderrazek IV. deux registres de direction de données (DDRA et DD RB) et deux registres d’interface périphérique (ORA et ORB).1 Description général e du circuit d’interface parallèle 6820 L’adaptateur d’Interface parallèle (PIA 6820) est un moyen de connexion des équipements d’E/S avec l unité du microprocesseur (MPU). Figure IV.2 Interface du PIA 6820 (Peripheral Interface Adapter) IV. deux registres de sélection. une ligne de Read/Write et une ligne de Reset. deux registres de direction de données (DDRA et DDRB) et deux registres de sorties (ORA et ORB).Cours Microprocesseur 6809 Dr.2.

2.2 Bloc fonctionnel du PIA 6820 IV. apparaît di rectement sur le bus de données interne. Le registre de sortie travaillant avec ces lignes est à tro is états. Lachouri Abderrazek Figure IV.2.2. le contenu des lignes programmées pour agir en entrées . Ce pendant. Cette configuration est effectuée par la mise à « 1 » dans le bit correspondant du registre de direction de données DDRx si cette ligne devrait être en sortie.2.1 Le Port A : Un port de huit lignes.Cours Microprocesseur 6809 Dr. si au contraire cett e ligne devrait être en entrée. chaque ligne peut être programmée en entrée ou en sortie. En mode de lecture.2. une mise à « 0 » est nécessaire dans le bit correspondant du DDRx. Les données dans le registre périphérique du port B programmées en sorties sur l es lignes. si a u contraire cette ligne devrait être en entrée. une mise à « 0 » du bit correspondant du registre DDRx. Master e n Contrôle et instrumentation Page 95 . de la même façon que le Port A. Cette programmation est réalisée par la mise à « 1 » du bit correspondant du registre de direction de données DDRx si cette ligne devrait être en sortie.2 Le Port B : Un port de huit lign es. IV. chaque ligne peut être programmée en entrée ou en sort ie. Ce pendant. peuvent être lues par la MPU en utilisant l’instruction LDA PIA.

Tous les autres signaux de timing font référence au signal E. CS3) : des lignes devront être connectées au bus d’adresse de la MPU. IV.2.9 Les lignes d’entrées d’interru ptions (CA1 et CB1): Ces lignes sont en entrées uniquement et positionnent à « 1 » le bi t B7 du registre contrôle du PIA (voir plus loin).2. c’est à travers ces lignes que le PIA est sélectionné ou adressé.4 Les lignes Chip Select (CS1 .2. Un niveau haut sur la ligne R / W permet le transfert de données du PIA vers la MPU (MPU Read).2.6 La ligne de Reset : cette ligne est utilisée pour réinitialiser tous le s registres du PIA 6820 à un zéro logique. La fonction de cette ligne est programmée par les bits (bits 3. IV.Cours Microprocesseur 6809 Dr.2. Cette impulsion de validation E est normalement l’horloge 2 .2. IV. IV.2.2. IV. Cette initialisation peut être réalisée par une mise sous tension. Les interruptions sont gérées par des routi nes en examinant (lire et tester) séquentiellement le contenu des deux bits (B6 et B7) des registres de contrôle (voir plus loin).2. La transition de cette ligne du niveau haut à un niveau bas pu is à un niveau haut initilise tous les registres du PIA6820. Lachouri Abderrazek IV.2.2. Les dirvers de sortie d u bus de données sont des circuits à trois états.2. les lignes CS1 et CS2 doivent être à niveau haut « 1 » et la ligne CS3 doit être à niveau b as « 0 ».2.7 La ligne Rea d/Write R / W : cette ligne est fournie par la MPU pour contrôler la direction de transfert des données sur le bus de données.3 Bus de données D0-D7: Un bus de données de huit bits bidirectionnels. perme ttant de transférer les données de et vers le PIA et la MPU.5 La l igne de validation E : L’impulsion de validation (E) est le seul signal de timing fourni au PIA par la MPU. Master en Contrôle et instrumentation Page 96 . 4 et 5) du registre de contrôle. IV.8 Les lignes d’interruptions (IRQA et IRQB): ces lignes son t actives au niveau bas et sont utilisées pour interrompre la MPU directement ou i ndirectement selon un circuit de priorité.2.2. Ces lignes doivent être maintenu à leurs états pendant la durée de l’impulsion E (E able). En effet. CS2. Pour sélectionner le PIA.2. IV.10 La ligne de contrôle (C A2): cette ligne peut être programmée d’agir comme une entrée d’interruption ou une sortie périphérique et elle est compatible avec la logique TTL. Un niveau bas sur cette ligne valide le s registres d’entrée permettant les données d’êtres transférées du MPU vers le PIA (MPU Write .

elle est aussi compatible TTL et elle peut véhiculer un courant allant de 1mA à 1. en c ombinaison avec les deux lignes RS0 et RS1 du registre de sélection. Lachouri Abderrazek IV. La fonction de cette ligne e st programmée par les bits (bits 3. Après une lecture du registre de données A.5 mA.11 La ligne de contrôle (CB2): cette ligne aussi peut être programmée d’agir comm e une entrée d’interruption ou une sortie périphérique. Master en Contrôle et instrumentation Page 97 . En entrée. Les bits 0 et 1 déterminent le mode de fonctionn ement de cette ligne d’interruption. cette ligne a une impédan ce d’entrée supérieure à MΩ et compatible TTL. b.Contrôle de la ligne CA1/CB1 (bit 0 et 1) : La ligne de contrôle CA1(CB1) est une ligne uniquement en entrée. est utilisé pou r différencier entre le registre de sortie ORA(B) et le registre de direction de d onnées DDRA(B).2. peut être utilisée comme une ligne d’interruption par la mise à « 1 » par le bit « flag IRQA/IRQB (bi t7) » du registre de contrôle CRA(B).Cours Microprocesseur 6809 Dr. Registre de contrôle CRA Registre de contrôle CRB a.Le contrôle du Registre de Direction de Données DDRx (CRx(2): Le bit CRx(2). En sortie.2. le bi t IRQA1/IRQB1 (bit 7) est mis à zéro. 4 et 5) du registre de contrôle.

4. Les bits 3 . Les q uatre options utilisant Cx2 comme une sortie sont représentées ci-dessous. Lachouri Abderrazek c. le bit IRQx2 (bit CRx (6) reste à zéro et la ligne de demande d’interr uption IRQx reste à un « 1 »). 4. 3 du CRx = 100 (Mode dialogue Handshake mode) Bit 5. 3 du CRx = 101 Master en Contrôle et instrumentation Page 98 . Bit 5. 4 et 5 du CRx) : cette ligne. 4 et 5 du registre de contrôle CRx déterminent la fonction de cette ligne. Cx2 en Sortie : Si le bit CRx (5) est mis à « 1 ».Cours Microprocesseur 6809 Dr. peut être utilisée comme un signal de sortie. plus de sa fonct ion en signal d’interruption. Pour les quatre options.Contrôle de la ligne Cx2 (Bit 3. Cx2 est désigné comme une sortie.

Cours Microprocesseur 6809 Dr. 3 du CRx = 111 :Cx2 prendra toujours le niveau haut ave c les bits 5. et 3 égale à 110. Lachouri Abderrazek Bit 5. Master en Contrôle et instrumentation Page 99 . 3 du CRx = 101 :Cx2 prendra toujours le niveau bas avec les bits 5. Bit 5. 4. 4. et 3 égale à 111. 4. 4.

Cours Microprocesseur 6809 Dr. Lachouri Abderrazek IV.12 Résumé de la fonction des bits du registre CRx : Figure 3.3 Fonction des bits du registre CRx du PIA 6820 Master en Contrôle et instrumentation Page 100 .2.2.2.

4 Types des lignes de Commande du PIA 6820 Master en Contrôle et instrumentation Page 101 .2. Lachouri Abderrazek Côté Périphériques (Entrées/Sorties) C O T E A L I M E N T A T I O N Côté Microprocesseur (MPU) Figure IV.Cours Microprocesseur 6809 Dr.

: Asynchronous Communication Interface Adapter. etc. les 1488. Le bit de start est synchronisé sur une horloge mais la suite des caractères est asynchrone.I. Pr océdure très utilisée pour de faibles débits d’informations (50 ->19 200 bits/seconde : vi tesse de travail de bon nombre de périphériques).A. il est nécessaire d’adjoindre des circuits. Modem.5 ou 2 bits de st op. Illustration : Master en Contrôle et instrumentation Page 102 .I. imprimante. Pour configurer les signaux au standard RS-232C.. Les niveaux logiques délivrés par l’ACIA sont compatibles TTL.C. les 1489 et (RS232 TTC). 6850 I.A. Format du mot : Il comprend entre 5 et 8 bits. Il faut distinguer les niveaux fournis par l’ACIA : TTC (logique positive) et ceux délivrés par la ligne.Généralités A..Cours Microprocesseur 6809 Dr.T. Adaptateur pou r la communication asynchrone.R. Lachouri Abderrazek Etude de l’interface série asynchrone A.C. de conversion de niveaux (TTC R232). Appartient à la famille des U. Illustration : Le circuit travaille en parallèle (bus données 8 bits) coté microprocesseur et en série coté périphérique (télétype. Ce circuit pro grammable permet la communication série asynchrone selon la procédure START-STOP. clavier.A. l’ensemble étant précédé d’un bit de start et suivi de 1 ou 1.

soit par liaison RS 232 (20Kbits) RS 423 (100 Kbits). Un récepteur de données asynchrone . Lachouri Abderrazek Généralement. Une logique de commande Modem . les infos sont véhiculées. Des entrées d’horloge séparées pour l’émission et la réception. soit par boucle de courant recommandé pour les milieux fortement perturbés : Niveau 0 : circuit ouvert. Schéma : Présentation Remarque : il n’y a pas d’entrée Reset. Niveau 1 : -12V. Master en Contrôle et instrumentation Pag 103 .Cours Microprocesseur 6809 Dr. RS 422 (10 mégabi ts). Niveau 1 : 20 mA. Niveau 0 : +12V. dans le code ASCII. Ce circuit intègre : Un émetteur de données asynchro ne .

Le bus des adresses : CSO. Ce circuit possède 24 broches. R/W = 1 . On remarque l’absence de la ligne RESET . Ces 3 lignes sont reliée s via le décodeur au bus des adresses du microprocesseur pour sélectionner le boîtier. R/W = O .Le bus des données : D0 . seuls les buffers d’entrée sont activés (possibilité d’écriture dans un registre). la sélection est validée lorsque la combinaison est : (110). 3.IRQ (Interr upt request) : Ligne de sortie a drain ouvert (pas de R de rappel) active sur un niveau bas reliée aux entrées IRQ ou NMI du microprocesseur ou au PIC (6828 : prior ity interrupt control).Cours Microprocesseur 6809 Dr.Le bus de co ntrôle : La ligne E : Signal d’activation des échanges. CS1 ET /CS2 (Chip Select). RS (Register select) C ette entrée permet de sélectionner les registres internes (2 octets mémoire).Ce qui signifie que l’initialisation se fait par soft. 2. Master en Contrôle et instrumentation Page 104 Etude matérielle .. Elle est utilisée conjointement avec la ligne R/W de sorte que l’on puisse choisir un regist re parmi les 4 disponibles. Lachouri Abderrazek L’émission et la réception peuvent fonctionner simultanément (full-duplex) et avec des v itesses différentes. 1 registre de contrôle . Coté microprocesseur : 1. (Voir plus loin tableau récapitulatif). La ligne R/W : ligne de contrôle du transfert des données avec le microprocesseur. 1 registre de réception . 3. Ce circuit comprend quatre registres internes : 1 registre de transmission . D 7. Cette ligne est utilisée éga ent comme ligne supplémentaire pour l’adressage des registres internes. 1 registre d état . seuls les buffers de sorties sont activés (possibilité de lire un registre). Lorsque le boîtier n’est pas sélectionné ces lignes bidirectionnelles sont en haute impédance. Assure l’échange des données autre le microprocesseur et l’ACIA..

b. Master en Contrôle et instrumentation Page 105 .Modem commandé par un ACIA accusé de réception pour la dem ande de transmission. Un niveau haut signifie que le modem est absent (ou non prêt). cela se traduit par un niveau haut sur c ette entrée.Cours Microprocesseur 6809 Dr. La demande d’émission se traduit par RTS au niveau bas.Ligne DCD (Data carrier detect) Détection de porteuse ou perte de la porte use. Lachouri Abderrazek COTE EXTERIEUR : 1.Les lignes "horloge" Txclk : horloge de transmission Sert de synchronisation (référence) pour la transmission des données sur la ligne Txdata. Entrée permettant de savoir si la porteuse au niveau du modem est présente. Les vitesses de transmission et réception peuvent varier de O à 500 Kbits/s. c. Remarque : non utilisée. elle doit être toujours a u niveau bas ! Cette entrée peut générer une interruption IRQ. Le registre de décalage (chargement et décalage) .Ligne CTS (Clear To send) Entrée permettant de savoir si le modem est p rêt à recevoir des infos. Le registre de décalage concernant la transmission est synchronisé sur un front descend ant de ce signal. Cette sortie permet de solliciter le modem (ou autre) pour une transmission pa r le microprocesseur (émission demandée par le microprocesseur). Exemples d utilisation : a. Un niveau bas signifie une présence de la porteu se au niveau du modem. Un niveau bas signifie que le modem est prêt. spécifique à la réception.La sortie RTS (Request To Send) Demande d’émission . L’état de cette sortie dépend du mot écrit dans le CR. Il y a possibilité de diviser ces deux horloges par 16 ou 64. (Défaut sur la ligne !). 2. état normal. Une absence de celle-ci inhibe la réception. a. Rxclk : horloge de réception Sert de synchronisation pour la récep tion des données sur la ligne Rxdata. si CR7 = 1 et si un fro nt montant est apparu sur DCD.Les lignes de contrôle d’un périphérique type modem. est piloté par un front montant de ce signal. Influence sur le bit (TDRE) du SR Remarque : S’il n’y a pas de modem (ou autre) mettre toujours cette entrée au niveau bas.

U n bit du registre d’état est positionné à "1". Fo nctionnement : Si pas de transmission en cours. Dès que le transfert à lieu .Cours Microprocesseur 6809 Dr. un bit dans le registre d’état e st positionné à "1". le caractère suivant peut-être écrit dans TDR même si le caractère précédent est enc re en cours de transmission dans le registre à décalage. un caractère est en cours de transmission. Master en Contrôle et instrumentation Page 106 . 2.TDR (Transmit Data Register) Registre de transmission dans lequel on place le mot (8 bits) à transmettre.RDR (Réception Data Register) Registre d e réception dans lequel on reçoit le mot (8 bits) en provenance du périphérique. A ce moment là. L’écriture du mot a lieu sur le front descendant de E. Lachouri Abderrazek b. Si par co tre. Grâce au double r egistre. il est automatiquement transféré du regis tre de décalage de réception dans le RDR.Liaison Acia – Acia Organisation interne 1. Fonctio nnement : Quand un caractère complet est reçu. Le caractère peut alors être lu par le microprocesseur. le transfert TDR dans le registre à décalage est différé que l opération de décalage est en cours (b0 en 1er). alors le contenu du TDR est tran sféré dans le registre à décalage automatiquement après une instruction d’écriture.

Le registre de contrôle CR (Control Register) : Per met de configurer le circuit en adéquation avec le périphérique. C’est le bit b0 de la donnée qui est reçu en 1er Le registre d’état SR (Status Register). Ces registres ont la part icularité d être soit en écriture soit en lecture uniquement. Lachouri Abderrazek Tant que le bit dans le registre d’état est à 1. la lecture peut-être différée tant que la réception du mo t suivant n’est pas terminé.aussi bien pour la transmission que la réception. Etant donné que l ACIA est vu par le microprocesseur comme deux cases-mémoire. Permet au microprocesseur de connaître à tout instant l’état d’u e transmission ou d’une réception.Cours Microprocesseur 6809 Dr. le transfert automatique est suspendu ! Du fait du double registre. le complément du décodage est réali sé par la ligne R/W barre. Les combinaisons entre RS et R/W permettent de sélectionn er l ensemble des registres selon le schéma suivant : Master en Contrôle et instrumentation Page 107 . Reçoit les paramètres de fonctionnement sous forme d’un mot de contrôle (8 bits) écrit sur le front descendant de E .

Si l on a choisi une parité dite impaire. Si l o n a choisi une parité paire. autorisent ou non une interruption provoquée par le fait que le TDR est vide (TDRE = 1 voir plus loin). le nombre tot al de bits au niveau haut. Pourquoi ? Master en Contrôle et instrumentation Page 108 . Le Master reset : initialisation locale (propre à l ACI A) Conséquences : Remise à 0 du SR excepté les bits liés aux conditions externes : Initi alise le TDR et RDR (contenu nul) Aucune modification néanmoins des autres bits du CR. La combinaison (11) génère un reset logiciel (Master reset)) indispensable avant toute programmation du CR. doit être impair. le nombre total de bits au niveau haut. Remarques : On a la possibilité d’insérer un bit de parité.Cours Microprocesseur 6809 Dr. Une erreur de parité est signalée si au cours de la transmission un parasite fait apparaître ou disparaître un bit au niveau haut. y compris le bit d imparité. CR5 et CR6 : Ces deux bits contrôlent à la fois la sortie RTS et la d emande d’interruption en transmission . doit être pair. CR2. Lachouri Abderrazek Présentation du registre de contrôle CR0 et CR1 : Déterminent le rapport de division sur les signaux d’entrée Rxclk et Txcl k. y compris le bit de parité. Une erreur de format est signalée si le bit de st op n’existe pas. CR3 et CR4 : Choix du format de l’octet à transmettre où à recevoir conformément au tableau ci-joint.

Ce bit mis à 1 traduit ces événements par une d emande d’interruption IRQ bas.Front montant sur l’entrée DCD indiquant la perte de la porteuse. 2. CR5 e t CR6 = 11 permet d’envoyer un break sur la ligne de sortie c’est-à-dire un niveau bas . CR7 (Ne concerne que le récepteur) : Ce bit sert de masque d’interruption concerna nt les événements suivants : 1. l’envoi d’un caractère vers la périphérie est toujours précédé d’un tes r s’assurer que celui-ci est vide. Lachouri Abderrazek D’une façon générale.Cours Microprocesseur 6809 Dr.Une in terruption générée par l’ACIA vers le microprocesseur chaque fois que le TDR est vide (d ans ce cas. Ce test peut être obtenu par : 1. Fonctionnement du registre de contrôle CR de l’ACIA 6850 Etude des bits du registre d état Registre d’état SR SR0 : La lecture du bit b0 indique si le registre de Réception RDR est plein (SR0 = 1) Master en Contrôle et instrumentation Page 109 . Remarque : L’ACIA met systématiquement CR6 et CR5 = 01 à la mise sous tension pour éviter l’envoi d’information intempestive. on choisit CR6 et CR5 = 01).Une scrutation permanente du bit dans le SR (dans ce cas on choisit CR6 et CR5 = 00).Registre de réception plein 2.

Un Master Reset. Master en Contrôle et instrumentation Page 110 . SR4 : Indique une erreur de formatage (FE) SR4 = 1 : indique un problème de synch ronisation qui se caractérise par une absence du (des) bit(s) de stop. un nivea u bas sur DCD. Mise à 0 de S R4 après : une lecture du RDR après disparition du problème. Lachouri Abderrazek Remise à 0 par : Une lecture du RDR. Un niveau haut sur DCD ou un Master RESET. Remarque : SR0 = 0 --> RDR vide --> on attend ! SR1 : Concerne le registre de Transmission. Remarque : SR1 = 0 --> TDR est plein --> on attend ! SR2 : Indique l’état électrique de la ligne DCD barre. Une entrée DCD haut (plus de p orteuse donc plus de donnée!). Remise à 0 par : Une écriture dans le TDR. SR2 = 1 si DCD = 1 (absence de la porteuse) Ceci peut générer une interruption IRQ si autorisée (CR7 = 1) Ce bit est remis à 0 par : Une lecture du SR suivie par une lecture du RDR après avoir DCD ret our à bas bien sûr ! SR3 : Indique l’état de l’entrée CTS SR3 = 1 signifie que CTS est haut (modem pas prêt à recevoir) Conséquence : forçage de SR1 à 0 (TDR plein) ce qui signifie q ue la transmission est interrompue ! Ce bit n est pas affecté par un Master reset.Cours Microprocesseur 6809 Dr. mise à 5 après : Lecture du RDR. Si problème résolu. Un Master reset. un MASTER RESET. SR1 = 1 : lorsque la donnée est disponibl e dans le TDR. SR5 : Indique un débordement (OVRN) SR5 = 1 signifie que plusieurs caractères ont été reçus avant la lecture du caractère précédent. Une entrée CTS haut (par prêt à recevoir).

par une écriture de TDR.Cours Microprocesseur 6809 Dr. SR7 : SR7=1 : Indique qu’il y a une demande d’interruption. SR6 est remis à zéro après : Une lecture du RDR si pb résolu ! MASTER RESET. TDR vid e (SR1 = 1) si CR5 = CR6 = 1. Cette dem ande peut provenir des événements suivants : RDR plein (SR0 = 1) si CR7 = 1. indique que la parité reçue avec le c aractère est incorrecte. DCD haut si CR7 = 1. par une lecture de SR et du RDR (DCD) . Brochage de l’ACIA 6850 Master en Contrôle et instrumentation Page 111 U . Lachouri Abderrazek SR6 : Indique une erreur de parité (PE) SR6 = 1. Remise à 0 de ce bit après : par une lecture de RDR.

Cours Microprocesseur 6809 Dr. Lachouri Abderrazek Architecture interne de l’ACIA 6850 Interfaçage de l’ACIA 6850 avec le bus RS232C Master en Contrôle et instrumentation Page 112 .

• Début de location des données à transmettre à l’adresse $D002. • brancher au sous program me d’erreur par interruption pour indiquer une erreur lors de la reception ou la t ransmission. Programme d’interfaçage de l’ACIA 6850 START LDAA #$03 STAA $E000 LDAA #$A1 STAA $E000 … BRA DMY LDAA $E000 RORA BCS RECV BITA #$38 reset ACIA store in control register sets IRQ. 2 bits de stop. 7 data bits ev en parity. Lachouri Abderrazek Exemple : Connexion de l’ACIA à l’adresse $E0XX pour interfacer la ligne série à 300 baud (4800 Hz clock) avec le format de données suivante : • 7 bits de données. !RTS=0. 2 stop bits. OVRN. m ain program Read Status Register rotate right (RDRF -> Carry) if carry is set -> jump RECV test error bits (PE. clk:16 store in control register set interrupt vector. pas de parité. • Les données r seront stockées à l’adresse $D000.Cours Microprocesseur 6809 Dr. FE) note: right shift was performed Page 1 13 DMY ISR Master en Contrôle et instrumentation . • RTS=0 et validation des interruptions.

BCL1 STA LDA ANDA BEQ LDA STA ADR registre d’état #$02 BCL1 ADR registre émission sauvegarde du caractère lecture registre d’état test de TxRDY par masquage restauratio n du caractère Exemple 3 : Entrée d’un caractère dans l’accumulateur à partir de la console CRT ou de la télétype (TTY). Lachouri Abderrazek if not zero -> jump ERR perform transmission. get data from Rx Register store to address $D000 RECV ERR … reset flags store in control register Exemples : Exemple 1 : Facteur de rythme= 16 8 bits par caractère Pas de parité 2 bi ts stop Émission et réception validée pas de reset interne Pas de RAZ des indicateurs d’erreur pas de break Mot de commande 10110001 soit $B1 Programmation du 6850 LDA #$B1 STA Re gistre de commande CR Exemple 2 : Sortie d’un caractère sur TTY ou CRT . take data from address $D002.Cours Microprocesseur 6809 BNE ERR LDAA $D002 STAA $E001 RTI LDAA $E001 STAA $D000 RTI do something LDAA #$ 03 STAA $E000 RTI Dr. send data to ACIA Tx Register. BCL2 LDA registre d’état lecture registre d’état ANDA #$01 test de RxRDY par masquage BEQ BCL2 LDA registre réception lecture du caractère Master en Contrôle et instrumentation Page 114 . le caractère à transférer sera supposé dans l’accumulateur.

Si la durée d’un bit est de 9ms . . . quelle est alors la fréquence de l’horl oge utilisée.Parité impaire .2 bits de stop .Faire le circuit d’interfaçage du 6850 avec le microproce sseur 6850.Facteur d’inversion horloge 1/16 c’est à dire il faut 16 bits . Master en Contrôle et instrumentation Page 115 .Cours Microprocesseur 6809 Dr.7 bits d’information . 2. . Lachouri Abderrazek EXERCICES Exo1 : On désire recevoir un caractère à partir d’un téléimprimeur avec les hypothè es suivantes : .Faire le programme en assembleur du 6809 pour recevoir le caractère du téléimprimeur . Questions : 1.Vitesse de transmission 110 b . 3. .

5. Rappel ez-vous que la transmission commence avec le bit de start (0).Cours Microprocesseur 6809 Dr. Assemblage des en un mot introduisant le bit dans l’indicateur de Master en Contrôle et instrumentation Page 116 . 2. Lachouri Abderrazek Exo2 : On désire envoyer un caractère se trouvant en mémoire en 2020 à un téléimprimeur via le circuit d’interface série 6850 en utilisant de l’exercice 1. Chaque bit occupe donc 1/110 d’une seconde. ou 110 bauds. avec parité paire. la précision d’un téléimprimeur n’étant pas élevée.1 ms. 2) Centrage de réception par temporisation de un-demi bit. Puisque la vitesse d’échange est de dix caractères par second. 2. en mode série. Niveau 1 Niveau 0 0 1 Bit de start (Départ) 0 1 0 0 0 1 0 1 1 7 bits de caractères bit de bits de stop parité Ce caractère est un E en code ASCII. 3) Le caractère est généralement en code ASCII. Exo3 : Un téléimprimeur (TTY) But : transférer des données de et vers un téléimprimeur standard à 10 caractères par second. puis les bits de stop. 4. soit 4. impaire ou encore fixé à zéro ou à 1. Questions : 1. la procédure suivante doit intervenir : 1) At tente d’un bit de start (zéro logique) sur la ligne de données. la transmission se fait à 11x10=110 bits par second. 5) Deux bits de stop (niveau logique 1) suivant chaque caractère. 4) Le bit de plus fort poids est le bit de parité. La procédure est la suivante : Téléimprimeur standard format des cara ctères 1) La ligne est normalement à un. Mode réception avec téléimpri meur Afin d’assurer une bonne liaison. celui de plus faible poid s étant transmis le premier. Le mode habitué à échange de données avec un téléimprimeur est le mod asynchrone série.5ms. en attendant pendant un temps de un bit entre chaque bit. 2) Un bit de start (zéro) précède chaque caractère. La figure ci-dessous montre ce format : chaque caractère requiren t onze bits.Fa ire le schéma électrique détaillé pour interfacer le 6850 avec 6809. seuls sept contiennent l’information. pair e. le bit de parité. soit 45 en Hexadécimal. 6.Faire l e programme en assembleur 6809 pour envoyer ce caractère vers le téléimprimeur . 3) Lecture des bits de données. soit 9. Cette largeur est une moyenne. 1. 3. sur 7 bits. puis les bits 0.

S’il n’y a pas concordance. Tâche demandée : envoyer la donnée se tro uvant en mémoire en $2040 à un téléimprimeur via le circuit 6850. 2) Emission des sept bits de données. 3) Création et émission du bit de parité. La transmission d’une donnée s’effectue selon les étapes su vants : 1) Emission d’un bit de start (un 0 logique). indiquer une erreur de trame. 4) Emis sion des deux bits de stop (des 1 logiques). 5) Réception de bits de stop (en attendant pendant un bit entr e les entrées). Lachouri Abderrazek retenue (Carry) puis en décalant circulairement la donnée avec le Carry. Questions 1) Faire un programme en assembleur du 6809 pour la réception et l’émission d’un caractère de et vers un téléimprimeur dont les caractéristiques sont citées ci-dessus. S’il ne sont pas corrects (s’il ne sont pas tous deux à 1). Mode d’émission vers un téléimprimeur But : Trans tre des données vers un téléimprimeur via le circuit 6850 . 4) Création du bit d e parité du mot reçu et comparaison avec celui émis. Master en Contrôle et instrumentation Page 117 . celui de faible poids d’abord. indiquer une erreur de parité. Souvenez-vo us que c’est le bit de plus faible poids qui arrive le premier. sachant que la donnée se tro uve en mémoire à l’adresse $2040. 2) Faire un schéma électri que d’interfaçage du circuit 6850 avec le microprocesseur 6809. Tâche demandée : Acquérir d’un téléimprimeur via l’interface série 6850 et cer cette donnée à l’adresse mémoire $2040.Cours Microprocesseur 6809 Dr.