Académique Documents
Professionnel Documents
Culture Documents
y¤rtk³ s
Département d’Électronique
Matière:1/UEF 3.1.1/L3-ÉLECTRONIQUE
E-mail : a.latoui@univ-bba.dz
2019
UBBA-2019
COURS DE SYSTÈMES À MICROPROCESSEURS
UEF 3.1.1/Matière : 1/L3-Électronique
◆©UBBA◆2019◆
AVANT-PROPOS
AVANT-PROPOS II
BIBLIOGRAPHIE 121
LES MÉMOIRES À
SEMI-CONDUCTEURS
Un registre est un circuit numérique à deux fonctions : il peut stocker des données
et les déplacer. L’habilité d’un registre à stocker des données explique pourquoi ce
composant est vu comme un type important d’élément de mémoire. La figure 1.1 illustre
le concept du stockage d’un 1 ou d’un 0 dans une bascule D. Le 1 est appliqué à l’entrée
des données tel qu’illustré et l’application simultanée d’une impulsion d’horloge permet
de stocker le 1 en effectuant la mise à l’état SET de la bascule. Lorsque le 1 est retiré à
l’entrée, la bascule demeure à l’état SET et le 1 est donc stocké. Un procédé similaire
s’applique pour le stockage d’un 0 en effectuant la mise à l’état RESET de la bascule
comme illustré à la figure 1.1.
Figure 1.2 – Déplacement des données dans les registres à décalage (l’illustration
montre quatre bits).
Le registre à décalage de type entrée série/sortie série (Figure 1.3) accepte des don-
nées sous une forme série, c’est-à-dire un bit à la fois et sur une seule ligne. L’information
stockée est également transmise à sa sortie sous une forme série.
Le symbole logique traditionnel d’un registre à décalage à entrée série/sortie série de
huit bits est montré à la figure 1.4. La désignation SRG 8 indique un registre à décalage
d’une capacité de huit bits
Exemple 1.1. Illustrez les états du registre de cinq bits de la Figure 1.5.a en réponse
aux formes d’ondes des données d’entrée et de signal d’horloge. Le registre est initiale-
Figure 1.4 – Symbole logique d’un registre à décalage à entrée série/sortie série de
huit bits.
ment à l’état 0.
Solution. Le premier bit de données (1) est entré dans le registre lors de la première
impulsion du signal d’horloge et ensuite décalé de gauche à droite, à mesure que les
autres bits sont entrés et décalés. Après cinq impulsions de signal d’horloge, le registre
contient Q4 Q3 Q2 Q1 Q0 = 11010, comme illustré à la Figure 1.5.b.
Dans ce type de registre, les données sont entrées en série de manière similaire à ce
que nous avons discuté à la section précédente, soit en commençant avec le bit de droite.
Ce type de registre diffère toutefois, puisque les bits sont retirés en même temps à ses
sorties parallèles, chacune étant la sortie de chaque étage. Une fois les données stockées,
chaque bit apparaît à sa sortie respective et tous ces bits sont disponibles simultanément,
et non l’un après l’autre comme avec une sortie série. La figure 1.6 illustre un registre
à entrée série/sorties parallèles de quatre bits et son symbole logique.
Figure 1.5 – Exemple de registre à décalage de type entrée série/sortie série cinq bits.
Exemple 1.2. Illustrez les états d’un registre de quatre bits (SRG 4) en réponse aux
formes d’ondes des données d’entrée et de signal d’horloge montrées à la figure 1.7a.
Initialement le registre ne contient que des 1.
Solution. Après quatre impulsions d’horloge, le registre contient 0110, comme l’illustre
la figure 1.7.b.
Dans un registre à entrées de données parallèles, les bits sont placés simultanément
dans leurs étages respectifs à partir de lignes parallèles et non l’un après l’autre sur une
seule ligne comme avec une entrée série. Une fois stockées, ces données peuvent être
retirées en série de manière identique à ce que nous avons étudié dans la section 2.
Exemple 1.3. Illustrez la forme d’onde de sortie d’un registre de quatre bits en ré-
ponses aux formes d’ondes des entrées de données parallèles, du signal d’horloge et de
DECAL/CHARG illustrés à la figure 1.9a. référez-vous à la figure 1.8 pour le dia-
gramme logique.
Mode S0 S1
Mode 0 : Aucune action (Hold) 0 0
Mode 1 : Décalage à droite (Shift Right) 1 0
Mode 2 : Décalage à gauche (Shift Left) 0 1
Mode 3 : Chargement parallèle (Parallel Load) 1 1
Un compteur en anneau utilise une bascule pour chaque état de sa séquence. Il est
avantagé du fait qu’il ne nécessite aucune porte de décodage. Un compteur en anneau
de 10 bits comporte donc une sortie distincte pour chaque chiffre décimal (Figure 1.14).
Le registre à décalage à entrée série/sortie série peut être utilisé pour créer un retard
entre l’entrée et la sortie. Ce retard numérique est déterminé par le nombre d’étages
(n) du registre et la fréquence du signal d’horloge (Exemple : Figure 1.15).
1.2 D ÉFINITION
La mémoire est la portion d’un système qui stocke de grandes quantités de don-
nées binaires. Les mémoires à semi-conducteurs contiennent des tableaux d’éléments de
stockage, en général des verrous ou des condensateurs.
En règle générale, les mémoires stockent des données par unités formées d’un à huit
bits. La plus petite unité de données binaires est le bit. Dans de nombreuses appli-
cations, les données sont traitées par multiples de huit bits ou avec l’unité de huit bit
appelée octet (Byte). L’octet peut se séparer en deux groupes ou unités de quatre bits,
appelés demi-octets ou quartets (Nibble). Une unité complète d’information s’appelle
un mot et contient généralement un ou plusieurs octets. Certaines mémoires stockent
les données par groupes de neufs bits, soit un octet et un bit de parité.
La capacité d’une mémoire est le nombre total d’unités de données qu’elle peut
stocker. En général cette capacité peut s’exprimer en bits, en octets, plus rarement en
mots. Le tableau 1.1 résume les principales expressions de la capacité mémoire.
La plupart des mémoires centrales offrent un accès aléatoire. Les données peuvent être
lues ou écrites à n’importe quel emplacement. Le temps d’accès à une valeur est prati-
quement indépendant de l’emplacement dans lequel elle est stockée.
qu’elle peut stocker multiplié par la taille du mot. Par exemple, une mémoire de 16K "8
peut stocker 16384 mots de huit bits chacun (16 " 1024 = 16384).
L’emplacement d’une unité de données dans un tableau de mémoire est appelé une
adresse. La figure 1.18a montre que l’adresse d’un bit dans un tableau est spécifiée
par une rangée et une colonne, tandis que la figure 1.18b illustre l’adresse d’un octet
uniquement spécifiée par la rangée. Il est donc clair que l’adresse dépend de l’archi-
tecture de la mémoire en unités de données. Les mémoires des ordinateurs personnels
(PC) sont organisées en octets impliquant que le plus petit nombre de bits adressable
vaut huit.
La figure 1.19 illustre une opération d’écriture simplifiée. Pour stocker un octet de
données en mémoire, un code conservé dans le registre d’adresse est placé sur le bus
d’adresse. Une fois que le code d’adresse est sur le bus, le décodeur d’adresse détermine
l’adresse et sélectionne l’emplacement spécifique en mémoire. La mémoire reçoit ensuite
une commande d’écriture. L’octet de données conservé dans le registre de données est
placé sur le bus de données et stocké dans l’espace d’adresse mémoire correspondant,
complétant l’opération d’écriture. Lorsqu’un nouvel octet de données est écrit dans un
espace d’adresse mémoire, l’octet de données déjà en place est détruit et remplacé.
L’opération de lecture (Figure 1.20) est très semblable à l’opération d’écriture sauf
que lorsque l’octet de données d’un espace d’adresse mémoire est lu, il demeure à cet
emplacement et n’est pas détruit.
Les mémoires peuvent être classées en trois catégories selon la technologie utilisée :
◆ Mémoire à semi-conducteur (mémoire centrale, ROM, PROM,. . ...)
◆ Mémoire magnétique (disque dur, disquette,. . .)
◆ Mémoire optique (DVD, CD-ROM,..).
Les deux catégories de mémoire vive sont la mémoire vive statique (SRAM) et la
mémoire vive dynamique (DRAM).
◆ Les mémoires SRAM (Static RAM) sont construites à partir de bascules de tran-
sistors qui permettent, si l’alimentation est maintenue, de conserver l’information
très longtemps. Ce sont des mémoires très rapides mais chères et qui induisent des
difficultés d’intégration. Elles sont de faibles capacités et sont plutôt réservées aux
mémoires caches.
◆ Les mémoires DRAM (Dynamic RAM) sont la base des mémoires centrales. Le bit
est associé à un seul transistor (contrairement aux SRAM) ce qui offre donc une très
grande économie de place et favorise une grande densité d’intégration. Le transistor
est associé à la charge d’un condensateur qui diminue avec le temps. La DRAM
est donc volatile et nécessite un rafraîchissement régulier. Ces mémoires sont en très
forte évolution tant au plan des coûts que des performances. Les mémoires EDO sont
de type DRAM traditionnelle mais leur temps de latence est beaucoup plus faible et
permet donc des temps d’accès plus petits. La mémoire SDRAM permet des échanges
synchronisés avec le processeur. On peut ainsi éviter les temps d’attente (Wait State).
Une évolution des SDRAM est la DDR SDRAM (ou SDRAM II) qui double le taux
de transfert actuel des SDRAM. La RDRAM, produit de la société Rambus, est de
conception très nouvelle et originale. Elle permet des taux de transfert 10 fois plus
élevés que ceux des DRAM traditionnelles, mais nécessite des contrôleurs spécifiques
ce qui en limite l’usage. Intel s’oriente vers le développement de DRDRAM qui
permettrait d’atteindre des débits de 1,6 Go/s.
Les mémoires vives sont accessibles en lecture et écriture mais sont volatiles. Bien des
applications (programme et données) impliquent d’être stockées de manière permanente,
même en l’absence d’alimentation électrique, comme par exemple le programme de “
Boot “ d’un ordinateur. Ces mémoires, accessibles uniquement en lecture, sont connues
sous le nom de ROM (Read Only Memory).
Les différentes évolutions technologiques de ce type de mémoire sont résumées dans
ce qui suit :
◆ ROM : Read Only Memory : Permet un stockage permanent même en l’absence
d’alimentation électrique. L’information stockée dans ces mémoires l’est de manière
définitive.
◆ PROM : Programmable ROM : Permet une écriture unique mais faite par l’uti-
lisateur au moyen d’une machine spéciale. Ces mémoires comprennent un ensemble
de fusibles qui sont détruits lors de la programmation de la mémoire.
◆ EPROM : Erasable PROM (PROM effaçable) : Elles peuvent être effacées
une fois écrites au moyen d’un faisceau ultraviolet qui force tous les bits à une même
valeur. Elles ont la même organisation que des SRAM.
◆ EEPROM : Electrically EPROM : Elles sont effaçables électriquement sans
intervention d’un rayonnement ultraviolet. Elles ne sont pas volatiles, facilement
réutilisables mais leur prix de revient et leur capacité (inférieur à 2 Mo) ne les
rendent pas très courantes.
◆ Flash : C’est une mémoire de type EEPROM qui se reprogramme électriquement
par bloc de 64 Ko (comme pour les blocs des disques magnétiques et de manière assez
rapide (Flash). Son cycle de vie est limité (100 000 écriture). Elle peut remplacer des
disques durs portables.
✓ Le multiplexeur colonne ;
✓ Les circuits d’entrée sortie des données (formés d’amplificateurs trois états) ;
✓ La logique de contrôle permettant le fonctionnement de l’ensemble, à partir des
signaux de sélection (CE Chip Enable ou CS Chip Select), OE Output Enable,
R/W Read/Write, et éventuellement (RAS) et (CAS) pour les RAM Dynamiques).
Dans les PROMs le point mémoire est réalisé soit par fusibles métalliques (Ni-Cr
ou Ti), soit par fusibles silicium, soit par jonctions court-circuitées. Pour les jonctions
court-circuitées, à la livraison chaque liaison est formée de 2 jonctions en sens inverse
en série (équivalent à un circuit ouvert). La mise en avalanche d’une jonction la court-
circuite.
Les points mémoires sont organisés en matrice. Chaque point est à l’intersection
d’une ligne et d’une colonne, afin d’obtenir un nombre de point mémoire très important
(nombre de point = produit des lignes et des colonnes).
Chaque point permet d’établir un état logique 0 sur la colonne qui lui correspond
lorsque la ligne qui le commande est sélectionnée, et que la liaison par le fusible ou
la jonction sont présent. Lorsque le fusible a été programmé (détruit), la sélection de
la ligne ne permet pas au transistor d’imposer l’état bas. La résistance de tirage de la
colonne maintient alors l’état haut.
Remarque : Ces mémoires existent aussi en MOS. Le principe reste le même mais le
transistor bipolaire est remplacé par un transistor MOS. La résistance est également
remplacée par un MOS en générateur de courant.
Pour les mémoires SRAMs le point mémoire est équivalent à une bascule D (à 4
ou 6 transistors). Le point mémoire est alors réinscriptible en positionnant la bascule
à l’état désiré en sélectionnant sa ligne, un circuit de lecture écriture vient soit lire
l’état de la colonne n (ou n) ou impose les états des colonnes n et n. La bascule adopte
alors cet état logique, et le conserve même lorsque la ligne est désélectionnée. Le point
mémoire est donc RW, et de plus statique, mais les dimensions d’un tel point mémoire
empêchent d’obtenir des capacités importantes dans un espace réduit.
Dans le cas des mémoires dynamique (DRAM) le point mémoire se limite à un
transistor MOS et un condensateur de très faible valeur.
Le principe de fonctionnement de la cellule mémoire est assez simple : l’écriture
respectivement d’un 1 ou d’un 0 consiste à charger ou à décharger le condensateur en
rendant le transistor MOS conducteur.
Figure 1.25 – Schéma simplifiée d’une mémoire DRAM de 1Mo (256K " 32).
La figure 1.28 illustre un chronogramme type de temps d’accès d’une mémoire ROM.
Le temps d’accès ta, d’une mémoire ROM désigne l’intervalle écoulé entre l’application
d’un code d’adresse valide sur les lignes d’entrée et l’apparition de données valides aux
sorties.
Figure 1.28 – Temps d’accès d’une ROM mesuré entre un changement d’adresse et
l’apparition de données aux sorties lorsque le circuit est déjà validé.
Figure 1.29 – Extension de longueur de mot avec deux ROM deux mémoires ROM
de 64K " 4 (65536 " 4) formant une mémoire ROM de 64K " 8.
2.1 D ÉFINITION
Un ordinateur est une machine dotée d’une unité de traitement lui permettant
d’exécuter des programmes enregistres. C’est un ensemble de circuits électroniques per-
mettant de manipuler des données sous forme binaire. Cette machine permet de traiter
automatiquement les données, ou informations, selon des séquences d’instructions pré-
définies appelées aussi programmes.
2.2 H ISTORIQUE
Les premiers ordinateurs sont apparus à la fin de la seconde guerre mondiale. Les
historiens de l’informatique s’accordent pour reconnaître la machine ENIAC, construite
à l’université de Pennsylvannie(Moore School) pendant la guerre par J. P. Eckert et J.
Mauchly, comme le premier ordinateur. Cette machine, commandée par l’armée amé-
ricaine pour le calcul des tables de tir pour l’artillerie, était la première machine pro-
grammable. D’une taille énorme, 30 m de long, 2,8 m de haut et plusieurs mètres de
large, elle possédait 20 registres de 10 chiffres, chaque registre étant long de 60 cm. Le
composant de base était le tube à vide, et elle en contenait 18 000 ! La programmation
était manuelle, par enfichage de câbles et positionnement d’interrupteurs. L’opération
typique, l’addition de 10 bits, prenait 200 microsecondes, soit environ 200 000 fois plus
que le temps d’une addition de 64 bits sur une machine à fréquence d’horloge 1 GHz
en 2000.
C’est Von Neuman, intégré en 1944 au projet ENIAC, qui formalisa les concepts
présents dans ce premier ordinateur, et connus maintenant sous le nom d’«ordinateur
de Von Neuman».
L’histoire des ordinateurs commençait. Pendant toute une période, on a pu assez
facilement mettre en évidence des générations successives d’ordinateurs. Le tableau 2.1,
retrace l’histoire des premières générations. Le passage d’une génération à la suivante
correspondait à une modification de la technologie de réalisation des éléments matériels
fondamentaux de l’ordinateur : le processeur et la mémoire.
Nous nous intéressons ici à un ordinateur de type Von Neumann qui caractérise bien
la quasi-totalité des ordinateurs actuels. Il est composé des éléments suivants :
✓ Une mémoire centrale pour le stockage des informations (programme et données) ;
✓ Un microprocesseur ou processeur central pour le traitement des informations logées
dans la mémoire centrale ;
✓ Des unités de contrôle des périphériques ;
L’unité arithmétique et logique (UAL) est composée de circuits logiques tels que
les additionneurs, soustracteurs, comparateurs logiques. . . Les données à traiter se pré-
sentent donc aux entrées de l’UAL, sont traitées, puis le résultat est fourni en sortie de
cette UAL et généralement stocké dans un registre dit accumulateur. La figure 2.3 est
un exemple d’une UAL d’un bit.
de pouvoir retrouver dans la mémoire centrale la cellule qui contient le mot mémoire
que l’on recherche, les cellules sont repérées par leur adresse (emplacement) dans la
mémoire, c’est-à-dire qu’elles sont numérotées (généralement en Hexadécimal) de la
cellule d’adresse 0 à, par exemple, la cellule d’adresse 0xFFFF.
Cette unité d’échange a pour rôle de gérer les transferts des informations entre l’unité
centrale et l’environnement du système informatique. Cet environnement correspond en
fait aux périphériques tels que disques durs, imprimantes, écran vidéo. . .
Les périphériques sont très nombreux et très variés. Certains ne peuvent que recevoir
des informations (écrans. . .), d’autres ne peuvent qu’en émettre (claviers. . .), d’autres
servent de mémoire externe (mémoire auxiliaire ou de masse) au système (disques,
disquettes. . .), enfin certains peuvent être très spécialisés (sondes de température, de
pression. . .).
2.4 U N P ROGRAMME
Un programme est composé d’instructions qui traitent des données. Les instructions
et les données étant stockées, du moins au moment du traitement, en mémoire centrale.
2.5 U NE I NSTRUCTION
Chaque instruction correspond à un ordre donné à l’ordinateur, ici celui de faire une
addition entre le contenu de la donnée A et celui de la donnée B. Toutes les instructions
présentent en fait deux types d’informations :
☛ ce qu’il faut faire comme action (addition, saisie d’information, affichage. . .),
☛ avec quelles données réaliser cette action (A, B. . .).
Une instruction peut donc se décomposer en deux zones ou champs :
Or, les données sont rangées dans les cellules de la mémoire centrale où elles sont
repérables grâce à leur adresse. Une terminologie plus précise nous amène donc à utiliser
comme appellation de ces zones :
La donnée de base manipulée par la machine physique est le bit (Binary Digit) qui
ne peut prendre que deux valeurs : 0 et 1. Au niveau physique, toutes les informations
(nombres, caractères et instructions) ne peuvent donc être représentées que par une
combinaison de 0 et 1, c’est-à-dire sous forme d’une chaîne binaire.
Pour être interprétées par le processeur, les instructions d’un programme doivent
être représentées selon un certain code et stockées dans la mémoire centrale dans un
format appelé langage machine.
Le langage machine décrit l’ensemble des instructions comprises par le processeur
et la convention de codage pour que celles-ci soient exécutables. On parle de jeu ou de
répertoire d’instructions. Le codage d’une instruction est un vecteur de 0 et de 1.
les combinaisons de bits du langage machine sont représentées par des symboles dits «
mnémoniques.
Le programme écrit en langage d’assemblage doit nécessairement être traduit en
langage machine pour être exécute. Le programme qui effectue cette traduction est
l’assembleur. Un abus de langage fréquent confond le langage et le traducteur. On
emploie l’expression impropre de programmation en assembleur pour programmation
en langage d’assemblage.
3.1 G ÉNÉRALITÉS
Ainsi le Z80 de Zilog est extension du 8080, tant sur le plan du logiciel que de l’archi-
tecture.
Par la suite (1977), Intel lui-même a sorti le 8085, compatible avec le 8080, mais
améliorant l’intégration (un système minimal ne requiert que deux circuits intégrés
contre neuf pour un 8080) et ne nécessitant qu’une source de courant (au lieu de trois
pour le 8080).
À côté de ces produits conçus par Motorola, il faut signaler la série 6500 de MOS-
Technololgy (6501, 6502, 6503, 6504, 6505, 6506, 6512, 6513, 6514, 6515) et notamment
le 6502, qui se rapproche du 6800. Ce processeur a eu beaucoup de succès ce qui explique
peut-être que Motorola ait à son tour sorti un microprocesseur C-MOS mono-chip très
bon marché, le 6805, dont l’architecture est encore plus proche du 6500 ; en outre, il
peut intégrer un convertisseur analogique-numérique ou un synthétiseur de fréquence.
— Le 2650 de Signetics
— Le Z80 du Zilog qui a été conçu par des transfuges de Intel, comme microprocesseur
compatible avec le 8080, mais ayant des performances nettement améliorées (le
jeu d’instructions du Z80 est surensemble du jeu d’instructions du 8080)
Le microprocesseur Intel 8085 est un microprocesseur 8 bits (une version plus mo-
derne du 8080), apparu en 1978, possédait une électronique simplifiée, en particulier
une unique alimentation 5 V et un générateur d’horloge intégré, quelques interruptions
en plus et un bus adresses-données multiplexé. Le 8085 fonctionne à une fréquence de
3 MHz, et la fréquence minimum de fonctionnement est de 500 kHz. La version 8085
A-2 fonctionne à une fréquence maximale de 5 MHz.
✓ Signaux RESET.
Remarque : Avec ces 16 lignes d’adresses, le µP 8085 peut adresser 216 = 64K positions
mémoires différentes.
— ALE : Address Latch Enable : Elle est utilisée pour dé-multiplexé les lignes
AD0-AD7. Elle passe à niveau Haut quand AD0-AD7 transportent les adresses et
ensuite repasse à un niveau Bas. Ce signal peut être utilisé pour valider le verrou
d’adresse pour sauvegarder les bits d’adresses (figure 3.2) .
— RD : Commande de lecture
— W R : Commande d’écriture
Remarque : Le 8085 ne génère pas directement les commande (lecture/ écriture) IOR,
IOW , M EM R et M EM W directement mais à partir des trois signaux RD , W R et
IO/M comme l’illustre le schéma suivant.
Figure 3.3 – Génération des signaux de lecture et d’écriture par Le µP 8085 (Sépara-
tion des commandes R/W mémoire et Entrée/sortie).
— SID (Serial Input Data) : Ligne d’entrée de données série. La donnée disponible
sur cette ligne est chargée dans le bit 7 de l’accumulateur à chaque fois qu’une
instruction RIM (Read Interrupt Mask) est exécutée.
— SOD (Serial Output Data) : Le 8085 dispose d’une sortie série SOD et utilise
l’instruction SIM (Set Interrupt Mask) pour transférer des données série à un
périphérique.
— le PC (compteur programme)
— RESET OUT : ce signal est utilisé par le µP pour remettre à zéro ses périphé-
riques.
L’architecture interne du 8085 peut être divisée en cinq unités principales (figure
3.5) : Les registres (Registre Unit), l’unité de commande (contrôle), l’unité arithmétique
et logique (ALU), l’unité des interruptions (Interrupt Unit) et l’unité d’entrées/sorties
(I/O Unit).
Le tableau suivant mis en évidence les différents registres du 8085 ainsi qu’à leurs
tailles.
transférer des données durant l’exécution d’un programme. Ces registres sont de taille
de 8 bits mais quand le µP traitent des données (mots) de 16 bits, ces registres peuvent
être combinés pour former des pairs (16 bits) comme suit : BC, DE et HL.
La paire de registres HL peut être utilisée comme pointeur de mémoire référen-
ciée par le symbole M.
Symbole de référence Registres référenciés
B B et C
D D et E
H H et L
M H et L comme référence mémoire
PSW A et le registre d’état (Flags)
Ce registre de 8 bits est le plus important parmi tous les registres du 8085. Toutes
les données d’entrée/sortie de ou vers le microprocesseur passe par l’intermédiaire de
l’accumulateur. Il est généralement utilisé pour le stockage temporaire de données et
pour le rangement de résultat final des opérations arithmétiques et logiques.
Le pointeur de pile (SP) est un registre de seize (16) bits qui pointe vers le sommet
de la «pile». La pile est une zone mémoire où on peut y effectuer des opérations de
lecture /écriture (R/W ) des données temporaires ou stocker des adresses de retour (en
cas d’appel de sous-routines).
Un programme doit être écrit à une extrémité de la mémoire et la pile doit être
initialisée à l’autre extrémité pour éviter un chevauchement entre données (figure 3.6).
Il faudra donc laisser un certain espace mémoire entre le code programme et les données
stockées sur la partie mémoire utilisée comme pile car la taille de la pile n’est limité que
par la taille de la mémoire. Dans le cas contraire, des instructions PUSH (écriture dans
la pile) peuvent tourner sur la partie réservée aux codes programmes comme l’illustre
le schéma suivant.
Remarque : Le PC est auto-incrémenté tandis que le SP est auto-décrémenté par le
système.
C’est un registre à 8 bits mais seulement cinq bits sont en fait utilisé comme dra-
peaux (indicateurs) et le reste des bits ne sont pas utilisés. Ces indicateurs sont mis à
jours (modifiés) après la fin de l’exécution d’une opération dans l’UAL. Chacun de ces
cinq drapeaux est une bascule (1bit).
✓ S : Signe (Sign (S) flag) : ce bit est mis à 1 si l’opération génère un résultat
négative (0 dans le cas contraire : Positive).
✓ Z : (Zero (Z) flag) : ce bit est mis à 1 si le résultat de l’opération est nul
✓ AC : Retenue Auxiliaire (Auxiliary Carry (AC) flag) : ce bit est mis à 1
lorsqu’il y a retenue du bit trois (D3) vers le bis quatre (D4) lors d’une opération
arithmétique sinon il est mis à 0.
✓ P : Parité (Parity (P) flag) : si le nombre de 1 est pair, ce bit est mis à 1 (parité
paire) et 0 autrement (parité impaire).
✓ CY : Débordement (Carry Flag (CF)) : s’il y a une retenue du bit D7 lors d’une
opération d’addition ou de soustraction, ce bit est mis à 1 (s’il y a débordement) et
zéro autrement.
Le 8085 dispose de 8 bits adresses d’E/S. Ainsi, il peut accéder à 28 = 256 ports
Entrée/sortie. Selon l’état de la commande IO/M , ces ports E/S seront configures en
mode écriture (sortie) ou en mode lecture (Entrée).
Les instructions en 8085 peuvent être codées sur un octet ou deux octets ou encore
sur trois octets
L’instruction est codée sur un seul octet : L’Opcode et l’opérande sont sur le même
octet.
L’instruction est codée sur un deux octets : L’Opcode est codé sur un octet et
l’opérande est codé également sur autre octet. Symboliquement, une telle instruction
ressemble à ceci :
Exemple 3.2.
L’instruction est codée sur un deux octets : L’Opcode est codé sur un octet et
l’opérande dont l’adresse de poids faible est codé sur autre octet et l’adresse de poids
fort est codée sur un autre octet. Symboliquement, une telle instruction ressemble à
ceci :
Exemple 3.3.
✓ Adressage direct
✓ Adressage registre
✓ Adressage indirect à registre
✓ Adressage immédiat
✓ Adressage implicite
Dans ce mode d’adressage, l’opérande se trouve dans l’un des registres généraux.
Exemple 3.4.
MOV A, B
ADD D
Dans ce mode, l’adresse de l’opérande est spécifiée par le contenu d’une paire de
registre (sur 16 bits).
Exemple 3.5.
MOV A, M
ADD M
Exemple 3.6.
MVI A, 07H
ADI 0FH
Certaines instructions opèrent sur un seul opérande dont elles supposent qu’il se
trouve dans l’accumulateur et donc aucune nécessité dans ce cas de spécifier son adresse.
En fait, l’opérande ne figure explicitement pas dans ce genre d’instructions.
Exemple 3.7.
RAR
RAL
CMA
✓ Instructions arithmétiques
✓ Instructions logiques
✓ Instructions de branchements
Dans ce qui suit, le "X" dans les instructions signifie paires de registres
Exemple 3.8.
Exemple 3.9.
Exemple 3.10.
Instruction : LDAX D
Exemple 3.11.
Instruction : XTHL
(Suite)
Instruction Fonction Description (En Français)
INX Increment Register Pair by One Incrémenter la paire registres
d’une unité
DCX Decrement Register Pair by One Décrémenter la paire registres
d’une unité
DAD Double Register Add : Add Additionner le contenu d’une
contents of Register Pair to H paire registres à la paire registres
and L Register Pair formée par H et L
Exemple 3.12.
Exemple 3.13.
Exemple 3.14.
Exemple 3.15.
Rotation et décalage :
Exemple 3.16.
Exemple 3.17.
Exemple 3.18.
Exemple 3.19.
Instructions de complémentation
Exemple 3.20.
Exemple 3.21.
Adr . Ins .
Exemple 3.22.
Adr . Ins .
N.B : L’instruction CALL est située à l’adresse F820H, l’adresse de retour stockée
dans le sommet de la pile est F823H.
Exemple 3.23. Cet exemple montre trois différentes méthodes mais elles sont équi-
valentes, pour sauter (brancher) à une des deux adresses de branchement (PLUS et
MOINS) dans un programme basé sur le test du bit signe d’un nombre donnée. Suppo-
sons que ce nombre se trouve dans le registre C.
Exemple 3.24.
Adr . I n s .
Exemple 3.27.
Exemple 3.28. On désire contrôler une LED par un system à base de processeur
8085/8155 (figure 3.8). Si V1 >V2 (connecté à l’entrée INTR), le système lit l’état
d’un interrupteur connecté au port B du port parallèle 8155. Si ’interrupteur est ouvert
(entrée au niveau HAUT), on met la LED à l’état OFF et si l’interrupteur est fermée
(Entrée au niveau BAS) on met la LED à l’état ON.
Solution :
Lorsque l’instruction RIM est exécutée, l’état du SID (bit d’entrée série), des in-
terruptions en attente et des drapeaux associés aux interruptions sont chargés dans
l’accumulateur. Ainsi, leur état peut être surveillé car il peut donc arriver que lorsque
l’une des interruptions est en cours d’exécution, une (ou plusieurs) autre(s) interrup-
tion(s) peut (peuvent) aura (auront) lieu.
Vocabulaire à retenir
✓ Pending Interrupt : Interruption en attente
✓ Enable : Activer
✓ Disable : Désactiver
✓ SID (Serial Input Data) : Entrée de donnée série
✓ Falg : Drapeau
✓ Masked : Masquée (Interruption non autorisée ou désactivée)
✓ Unmasked : Non masquée (Interruption autorisée ou activée)
SIM est une instruction à usages multiples qui utilise le contenu actuel de l’accumu-
lateur pour effectuer les fonctions suivantes : définir la configuration du masquage des
interruptions hardware RST 7.5, RST 6.5, RST 5.5 ; activer ou désactiver le transfert
de données via la sortie de donnée série SDO.
✓ Les bits D7 et D6 sont utilisés pour émettre en série des données à partir de l’ac-
cumulateur. Le bit SOE est le bit de contrôle du transfert de donnée série (SOE =
1 : Activer le transfert de données série) ;
✓ D5 : non utilisé
✓ Les bits D0-D4 sont utilisés pour le contrôle des interruptions.
✓ Le bit D4 peut être utilisé comme RESET de la bascule associée avec RST 7.5.
✓ Le bit D3 (MSE : Mask Set Enable) est utilisé pour activer ou désactiver les inter-
ruptions. Pour masquer (désactiver) une quelconque de ces trois interruptions, le bit
MSE doit être 1.
✓ Les bits D2 à D0 sont les bits de masquage correspondant aux interruptions RST
7.5, RST 6.5 et RST 5.5 respectivement.
Exemple 3.29. Pour masquer RST 7.5 (désactivée) et activer RST6.5 et 5.5 (activées),
alors le contenu des bits de l’instruction SIM sera comme suit :
Exemple 3.30. On désire contrôler la LED de la figure 3.8 cette fois-ci uniquement par
l’entrée SID (lire l’état de l’interrupteur) et la sortie série SOD (commander la LED).
#ORG 5000H
BEGIN RIM ; Bit 7 de l’ACC est le SID
ORI 40H ; Mettre SOE =1 (activé SOD)
SIM ; Envoie de donnée sur SOD(Mettre ON/OFF la LED)
JMP BEGIN ; Boucler
S = 1 + 2 + 3 + . . . . . . . . . . . . . . . . . . . . . .. + N
Solution :
#ORG 0000H
#BEGIN 0000H
0000: MVI C, 0 9H ; Exemple pour N=9 : Charger le compteur par N=9
0002: XRA A ; Initialiser l’ACC à 0
0003: MVI B, 0 1H ;
0005: ADD B ; ACC <= ACC + B
0006: INR B ; B = B +1
0007: DCR C ; Décrémenter le compteur C pour
0008: JNZ 0005H ; Refaire si ZF=0 ( Compteur /=0)
000B: HLT
Solution :
#ORG 3050H
#DB 0FH
#ORG A000H
#BEGIN A000H
A0000 : MVI A, 14H
A0002 : LXI H, 3050H
A0005 : ADD M
A0006 : STA 2050H
A0009 : HLT
Solution :
#ORG 2000H
#DB FFH
#ORG A000H
#BEGIN A000H
A000 : LDA 2000H
A003 : CMA
A004 : ADI 01H
A006 : STA 3015H
A009 : HLT
Références :
LES INTERFACES
D’ENTRÉES/SORTIES
4.1 I NTRODUCTION
Un circuit d’E/S possède des registres pour gérer les échanges avec les périphériques :
✓ Registres de configuration ;
✓ Registres de données.
À chaque registre est assigné une adresse : le microprocesseur accède à un port d’E/S
en spécifiant l’adresse de l’un de ses registres.
Le microprocesseur peut voir les adresses des ports d’E/S de deux manières :
Les ports A et B peuvent être programmés pour fonctionner selon des modes diffé-
rents. Les lignes P C4 − P C7 sont configurés selon le mode programmation du port A
et les lignes P C0 − P C3 sont configurés selon le mode de programmation du port B.
L’étude du registre de commande (figure 4.7) permet de programmer les configurations
d’accès dans les différents modes du 8255A.
Ce mode o est un mode d’E/S de base, appelé parfois de bits. Dans ce cas, le circuit
possède 24 E/S réparties en quatre groupes :
✓ Port A : 8 E/S
✓ Port B : 8 E/S
✓ Port C (supérieur) : 4 E/S
Selon l’application souhaitée, chaque groupe doit être déclaré en entrée ou en sortie.
Autrement dit, il s’agit de la programmation des E/S du 8255A. Celle-ci consiste à
déterminer le mot de commande (figure 4.6). Une fois celui-ci transféré dans le re-
gistre de commande, les données peuvent être échangées entre le microprocesseur et ses
périphériques via cette interface 8255A.
Remarque : il est important de noter que le sens de circulation des données doit être
le même pour tous les bits d’un port. Le port C est partagé en deux et peut donc
être défini comme étant constitué de 8 entrées ou 8 sorties, ou 4 entrées, 4 sorties et
pas autrement.
Cependant on peut positionner un bit du port C à 1 ou à 0 individuellement. Dans
ce cas le bit 7 du registre de commande doit être mis à 0. Le tableau suivant illustre
cette possibilité de programmation.
✓ Donnée PRÊTE :
✓ Donnée REÇUE :
NB : On note que le mode 1 peut être utilisé en mode programmé avec test d’état sur
le bit d’état INTR.
Mode 1 en sortie Comme il s’agit dans ce mode d’un transfert vers un périphé-
rique de sortie, l’initiative du transfert revient au microprocesseur lorsqu’il rencontre
l’instruction d’écriture du premier octet à transférer dans l’interface.
Mode 1 en D7 D0
Entrée E/S E/S IBFA IN T EA IN T RA IN T EB IBFB IN T RB
Mode 1 en D7 D0
Sortie OBFA IN T EA E/S E/S IN T RA IN T EB OBFB IN T RB
D7 D0
Mode 2
OBFA IN T E1 IBFA IN T E2 IN T RA X X X
Ainsi pour inhiber les interruptions relatives au port A, en mode 1 sortie, il faudra
initialiser P C6 à zéro.
Exemple 4.1. On admet que l’adresse du registre de commande du circuits 8255A est
83H. Écrire un programme en assembleur pour initialiser le 8255A avec :
✓ Port A : en Entrée
✓ Port B : en Sortie ;
✓ Port C inférieur : en Sortie ;
✓ Port C supérieur : en Entrée.
Solution :
D7 D0
1 0 0 1 1 0 0 0
Mot de commande = 98H
MVI A, 9 8H
OUT 83H
Exemple 4.2. On admet que l’adresse du registre de commande du circuits 8255A est
23H. Écrire un programme en assembleur pour initialiser le 8255A avec :
Solution :
D7 D0
1 0 1 0 1 1 1 0
Mot de commande = AEH
MVI A,AEH
OUT 23H
La transmission asynchrone la plus utilisée est celle qui est définie par la norme RS232.
Un circuit intégré d’interface série asynchrone s’appelle un UART (Universal
Asynchronous Receiver Transmitter), tandis qu’une interface série synchrone/a-
synchrone est un USART.
Exemples d’interfaces séries : 8251 (Intel) ; 8250 (National Semiconductor) ;
6850 (Motorola).
L’USART 8251A est une interface série asynchrone et synchrone (Universal Synchronous
Asynchronous Receiver Transmitter ). Le schéma bloc du 8251A est donné par la Figure
suivante.
Le registre de données (Data buffer Bus) assure la liaison entre le bus de données
du microprocesseur et les registres internes du circuit. À l’entrée les bits arrivent en série
sur la broche RxD, ils sont décalés dans le registre Recieve Buffer où ils seront acquis
par le microprocesseur. Inversement en sortie, la donnée arrive au registre Transmit
Buffer où on leur ajoute les bits de synchronisation nécessaire avant de les envoyer en
série sur la ligne TxD.
✓ Le groupe de données comporte le registre Buffer Data In et Buffer Data Out. Ils
sont sélectionnés lorsque la ligne C/D = 0.
CS C/D RD WR Sélection
1 X X X Le 8251A n’est pas sélectionné
0 1 0 1 Lecture du registre d’état
0 1 1 0 Écriture dans le registre de mode ou de contrôle
0 0 0 1 Lecture du registre Buffer Data In
0 0 1 0 Écriture dans le registre Buffer Data Out
D7 D0
S2 S1 EP PEN L2 L1 B2 B1
S2 S1 Bits de stop
0 0 Invalide
0 1 1 bits
1 0 1.5 bits
1 1 2 bits
D7 D0
EH IR RTS ER SBRK RxE DTR TxEN
Registre de Contrôle
Bit Signification
TxEN Ce bit à 1 autorise la transmission
DTR Un niveau 1 force la sortie (DT R) à 0
RxE Ce bit à 1 autorise la réception
SBRK Send Break caractère : Un niveau 1 force la sortie TxD à 0
ER Error Reset : Un niveau 1 remet à 0 les indicateurs d’erreur du mot
d’état : PE — 0E — FE.
RTS Un niveau 1 force la sortie à 0
IR Internal Reset : Un niveau 1 a la même action que l’entrée RESET et
permet de reprogrammer le 8251 en lui envoyant un nouveau mot de sélection
de mode
EH Enter Hunt : Un niveau 1 autorise la recherche du mot de synchronisation
en mode synchrone
Le registre d’état est à lecture seule, le format de ce registre est donné par le tableau
suivant.
D7 D0
DSR SYNDET/BRKDET FE OE PE TxEMPTY RxRDY TxRDY
Registre d’état
Bit Signification
TXRDY TXRDY à 1 indique que le buffer d’émission est vide, ce bit se remet à 0
lorsque le microprocesseur écrit un caractère
RXRDY RXRDY à 1 indique que le buffer de réception contient un caractère. La
lecture du caractère par le microprocesseur remet ce Flag à 0
TXEMPTY TXEMPTY à 1 indique que le registre de décalage émetteur (TSR) est vide,
le front descendant du signal WR le remet à 0
PE PE à 1 indique qu’il y a une erreur de parité
OE OE à 1 indique qu’il y a une erreur de débordement (vitesse non conforme)
FE FE à 1 indique qu’il y a une erreur de format
SYNDET/
SYNDET/BD, en mode synchrone elle se met à 1 lors de la détection d’un
BRKDET
caractère de synchronisation ; en mode asynchrone elle indique la réception
d’un Break Data. Ce bit se remet à 0 lorsque la ligne RD repasse à 1
DSR DSR à 1 indique que le modem est en fonctionnement
Exemple 4.3. On admet que l’adresse de base du circuits 8251 est FFH. Écrire un
programme en assembleur pour initialiser le 8251A avec les spécifications suivantes :
D7 D0
0 1 1 1 0 1 1 1
Mot de Mode = 77H
D7 D0
0 0 1 1 0 0 1 1
Mot de commande = 33H
MVI A, 0 0H
OUT FFH
OUT FFH
OUT FFH
MVI A, 40H ; Mot de contrôle pour Reset
OUT FFH ; Initialiser le 8251A
MVI A, 77H ; Initialisation du Mot de Mode
OUT FFH ;
MVI A, 33H ; Initialisation du Mot de Contrôle
OUT FF ;
Les Timers/compteurs sont des périphériques de gestion de temps ; ils sont utilisés
souvent pour la génération des signaux de synchronisation et de commande avec une
grande précision.
Le Timer 8253 de Intel est un circuit constitué de trois circuits de comptage iden-
tiques de 16 bits, possédant chacun deux entrées CLK et GATE et une sortie OUT.
Pour faire fonctionner un compteur, un compte sur 16 bits est chargé dans ses
registres et, sur commande, il commence à décompter jusqu’à atteindre 0. À la fin du
compte, il génère une impulsion pouvant être utilisée pour interrompre le processeur.
Le compteur peut compter soit en binaire ou BCD et peut être lu par le processeur
pendant le décomptage.
Le Timer 8253/54 est sélectionné par un niveau bas sur l’entrée (CS). Lorsqu’il
n’est pas sélectionné, les entrées du buffer de données sont en état Haute impédance.
Les lignes A0 et A1 (figure 4.15) sont utilisés pour la sélection de l’un de trois compteurs
ou du registre de contrôle comme illustré par le Tableau de la figure suivante.
CS A0 A1 Séléction
0 0 0 Compteur 0
0 0 1 Compteur 1
0 1 0 Compteur 2
0 1 1 Registre de contrôle
1 X X Le 8253 N’est pas sélectionné
Après la mise sous tension, le 8253/54 se trouve dans un état indéfini, le mode de
fonctionnement, le compte initial et l’état de sorties des compteurs ne sont pas définis.
La procédure de programmation de chaque compteur consiste à écrire dans l’ordre le
mot de commande dans le registre de contrôle ensuite le compte d’initialisation dans
le registre CR. Le registre d’entrée CR est un registre 16 bits ce qui oblige à écrire la
donnée en deux temps (poids faible d’abord).
D7 D0
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
M2 M1 M0 MODE
RW1 RW0 Lecture/Ecriture
0 0 0 Mode 0
Verrouillage du contenu du
0 0 1 Mode 1 0 0
compteur
X 1 0 Mode 2
0 1 Lire/Ecrire LSB seulement
X 1 1 Mode 3
1 0 Lire/Ecrire MSB seulement
1 0 0 Mode 5
1 1 Lire/Ecrire LSB, ensuite MSB
1 0 1 Mode 6
✓ Compteur 0 : 08H
✓ Compteur 1 : 09H
✓ Compteur 2 : 0AH
✓ Registre de commande : 0BH.
Solution :
D7 D0
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
1 0 1 1 0 0 0 0
B0H
Ce circuit a été conçu pour le microprocesseur 8085 (figure 4.16). Sa version 8259A a
été utilisée dans les PC qui n’avaient que 8 entrées d’interruptions physiques numérotées
de 0 à 7.
Le 8259A (Programmable Interrupt Controller : PIC) peut accepter les in-
terruptions de 8 sources externes (figure 4.17), et on peut gérer jusqu’à 64 sources
différentes en cascadant plusieurs 8259A. Il gère la priorité entre les interruptions
simultanées, interrompt le processeur et lui passe un code pour identifier la source d’in-
terruption. Une source d’interruption est connectée à chacune des 8 entrées IR0 à IR7.
Selon sa priorité, et s’il n’y a pas d’autre interruption en cour, le PIC décide s’il peut
transmettre l’interruption au CPU. Si oui, il affirme la ligne INT, qui est connectée
à l’entrée INTR (Interrupt Request) du CPU. Si le CPU est prêt à accepter l’in-
terruption, il répond au PIC via la ligne INTA (Interrupt Acknowledge). Le PIC
répond à son tour en envoyant le numéro d’interruption sur les lignes D0 à D7 . Ce
numéro est un index dans la table des vecteurs d’interruption. Le CPU est mainte-
nant prêt à appeler le sous-programme de traitement d’interruption approprié. Quand
le sous-programme de traitement d’interruption a terminé son exécution, il en avertit
le PIC pour qu’il puisse permettre à d’autres interruptions d’atteindre le CPU.
LES INTERRUPTIONS
5.1 G ÉNÉRALITÉS
✓ Scrutation (Polling)
✓ Interruptions
Ce mode est caractérisé par le fait que le processeur interroge en permanence les uni-
tés d´échange. Il vient lire les registres d´état et teste les bits concernés par l´échange.
À la suite de quoi, la ou les données reçues sont lues ou écrites.
Ce mode de travail, aussi désigné par le terme de Polling, test d´état ou attente
active, est particulièrement simple à mettre en œuvre mais présente l’inconvénient de
mobiliser toute l’activité du processeur pour l’opération d’entrée-sortie. On le trouve le
plus souvent implanté sur des matériels du type micro-ordinateurs dotés d’un système
d’exploitation rudimentaire.
5.2.3.1 Définition
Il existe divers moyens pour déterminer la source d’une interruption – aussi notée
IRQ (Interrupt Request) – et donc y répondre de manière appropriée.
Interruption ligne unique : Dans cette technique, une seule entrée est réservée au
niveau de l’unité centrale, lui indiquant si une interruption est demandée. Si plusieurs
équipements sont reliés à cette ligne, quand l’UC reçoit la demande d’interruption, elle
doit alors scruter tous les équipements pour en déterminer l’émetteur ; cette technique
est aussi appelée scrutation.
1. Le programme utilisateur dispose du processeur. C’est lui qui est en cours d’exé-
cution. Il dispose des registres, de l’unité arithmétique et logique, de l’unité de
commande. Le compteur ordinal CO contient l’adresse de la prochaine instruction
à exécuter ;
Exemple 5.1. On désire contrôler une LED par un system à base de processeur
8085/8155 (figure 5.5). Si V1 >V2 (connecté à l’entrée INTR), le système lit l’état
d’un interrupteur connecté au port B du port parallèle 8155. Si ‘interrupteur est ouvert
(entrée au niveau HAUT), on met la LED à l’état OFF et si l’interrupteur est fermée
(Entrée au niveau BAS) on met la LED à l’état ON.
Solution :
[1] Jean Letocha, “ Introduction aux circuits logiques”, McGraw-Hill, 2eme édition,
ISBN-13 : 978-0075489856, 1997.
[2] Thomas Floyd, “Systèmes numériques”, Edition Eyrolles, 9eme édition, ISBN : 978-
2-89377-499-2, 2013.
[3] Alain Cazes & Joëlle Delacroix, “Architecture des machines et des systèmes infor-
matiques”, Edition Dunod, 3eme édition, ISBN 978-2-10-053945-1, 2008.
[4] Pierre-Alain Goupille, “Technologie des ordinateurs et des réseaux”, Edition Dunod,
8eme édition, ISBN 978-2-10-053944-4, 2008.
[5] S.K. Sen, “Understanding 8085/8086 Microprocessors and Peripheral ICs through
Questions and Answers”, New Age International (P) Ltd., Publishers, Second édi-
tion, ISBN (13) : 978-81-224-2974-9, 2010.
[6] François Anceau & Daniel Etiemble, “Introduction à l’architecture des ordinateurs”,
Edition Technique de l’Ingénieur , 2010.
[7] H. Lilen, “Cours fondamental des microprocesseurs”, Edition Dunod, ISBN-13 :
978-2709109994, 1993.
[8] Daniel Etiemble, “Évolution de l’architecture des ordinateurs”, Edition Technique
de l’Ingénieur , 2009.
[9] David A. Patterson & John L. Hennessy, “Computer Organization and Design ,
The hardware /software interface”, Morgan Kaufmann, Fourth Edition , ISBN :
978-0-12-374750-1, 2011.
[10] Lance A. Leventhal & Winthrop Saville, “8080/8085 Assembly Language subrou-
tines”, McGraw-Hill, ISBN : 0-931988-58-6, 1983.
[11] Intel 8080/8085 Assembly Language Programming, Intel Corporation, 1977.
[12] D.a.godse & A.p.godse, “Microprocessors and Interfacing”, Technical publications
pune , ISBN : 978-81-8431-125-9, 2009.
[13] D.a.godse & A.p.godse, “Microprocessors & Microcontroller Systems”, Technical
publications pune, ISBN : 978-81-8431-307-9, 2008.
[14] J.C. Buisson, “Concevoir son microprocesseur : Structure des systèmes logiques”,
Ellipses, ISBN-13 : 978-2729829964, 2006.
[15] Steve Leibson & Michel Jacob “Manuel des interfaces”, McGraw-Hill, ISBN-13 :
978-2704210947, 1984.
[16] Linda Null & Julia Lobur, “The essentials of computer organization and architec-
ture”, Jones and Bartlett Publishers, ISBN 0-7637-0444-X, 2003.
[17] T.Dumartin, “Architecture des ordinateurs”, Notes de cours, 2004-2005.
[18] J.Y. Haggége, “Microprocesseur”, Support de Cours, Institut Supérieur des études
Technologiques de Radés , 2003.
[19] Ali Hmidene, “Circuits d’interfaces”, Fascicule des travaux pratiques, Institut Su-
périeur des Etudes Technologique de Sousse, 2009-2010.
[20] Mabrouk Issam, “Microprocesseurs et microcontrôleurs”, Support de Cours, Institut
Supérieur des études Technologiques de Radés , 2013-2014.
[21] K. Udaya Kumar, & B. S. Umashankar, “The 8085 Microprocessor : Architecture,
Programming and Interfacing”, Pearson Education India, ISBN 9788177584554,
2008.