2ème année GE
Mme EL KOUHEN
PLAN :
1èrepartie : Microprocesseurs
Chapitre 1 : Architecture d’un système à microprocesseur
2èmepartie : Microcontrôleurs
Chapitre 1 : Introduction
Chapitre 9 : Timers
Chapitre 11 : Interruptions
Chapitre 1
1) Introduction :
Lorsqu’un système logique est conçu à partir d’un microprocesseur, il est appelé système à
microprocesseur. La conception et la réalisation d’un tel système comprennent 2 parties bien
distinctes :
Remarque : Alors qu’un ordinateur est surtout destiné à commander des périphériques
informatiques, un système à P est destiné à commander des circuits électroniques qui sont la
partie industrielle du système à P. Nous citerons parmi ces circuits électroniques : roue
codeuse, afficheur 7 segments, voyant, bouton poussoir, relais, électrovanne, C.A.N, C.N.A,
clavier, etc…
2) Types d’architecture des systèmes à P :
C’est celle de la figure 1.1. Elle est souple aux extensions du système industriel et utilise des
P d’usage universel.
Elle convient aux applications industrielles simples et de grandes séries (téléphone portable,
télévision, appareils électroménagers, appareil photo, airbag, appareil de mesure
électronique...).
1) Unité de commande
Rôle:
Elle gère le déroulement du programme et fait le séquencement des opérations: elle amène les
instructions à partir de la mémoire centrale, analyse chaque instruction, charge les données
nécessaires à son exécution dans les registres et envoie à l’UAL les signaux correspondant à
l’opération désirée.
Composition:
- Compteur ordinal (CO):registre contenant l’adresse de la prochaine instruction à exécuter
- Registre d’instruction (RI):reçoit le code machine de l’instruction en cours d’exécution
-Décodeur: détermine le type d’opération
-Séquenceur: automate cablé ou microprogrammé générant les signaux de commandes
nécessaires pour actionner et contrôler les unités participant à l’exécution d’une
instruction donnée
- Horloge: émet des impulsions synchronisant les actions du CPU
2) Unité de traitement
Composition:
La Pile(type LIFO) sert à la sauvegarde : - du compteur ordinal lors des appels de sous-
programmes et interruptions
- de registres internes par instruction
3) Niveaux de programmation
L’assembleur
La programmation en assembleur est utilisée par des spécialistes, généralement dans trois
buts :
- possibilité d’assigner des noms à des positions mémoire ou à des dispositifs d’E/S
- indiquer au programme chargeur où loger en mémoire le programme et les données
- réservation de zones en mémoire (pile)
- la plupart des applications des P impliquent des échanges d’informations, données et
commandes avec des dispositifs périphériques, en entrée et en sortie. Souvent, les
informations de commande et d’états se traduiront par quelques digits binaires dont la
signification est étroitement liée au matériel.
6) Jeu d’instruction
• Ensemble d’instructions spécifique à un processeur donné
• Types d’instructions:
arithmétiques
logiques
transfert de données
décalage et rotation
branchements et appel sous-programme ……
Chapitre 3
Les informations traitées par un ordinateur sont de différentes natures (nombres, caractères
alphanumériques, instructions, images, sons) mais elles sont toujours représentées, à la base,
sous forme binaire. On classe ces informations en 2 types : les instructions et les données
(numériques et non numériques).
1) Numération
Pour définir une numération, on choisit une base B et on représente un nombre A par
l’assemblage d’un certain nombre (n) de caractères : xn-1 , xn-2 , …, x0 pris parmi les nombres
entiers compris entre 0 et B-1
(A)B = xn-1 xn-2 … x0
Remarques :
- La base B, dans son propre système, s’écrit toujours 10.
- Dans la base B, avec n caractères, on peut représenter Bn nombres différents, autrement
dit, on peut compter de 0 à Bn-1.
Pour écrire un nombre décimal A dans un système de base B donnée, on procède comme suit :
on divise le nombre décimal par B puis le quotient obtenu par B jusqu’à ce que le quotient
devienne nul. Les restes successifs, lus de bas en haut, représentent le nombre A dans la base
B.
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 1 0 1
- Conversions :
Binaire Décimal :
exemple: (1011)2 = 1.23 + 0.22 + 1.21 + 1.20 = 8+0+2+1= 11
Décimal Binaire : on divise le nombre décimal par 2 puis le quotient obtenu par 2 jusqu’à
ce que le quotient devienne nul. Les restes successifs, lus de bas en haut, représentent le
nombre dans la base 2.
Exemple : 14 2
0 7 2 (14 )10 = (1110)2
1 3 2
1 1 2
1 0
Pour les nombres élevés, la notation binaire naturel est lourde et l’on préfère utiliser le code
octal ou hexadécimal.
- Conversions :
Binaire Octal : on groupe les chiffres binaires par 3 et on convertit séparément
exemple: (10 / 010 / 000 / 011 / 001)2 =
(2 2 0 3 1)8
Octal Binaire : chaque caractère octal est converti en binaire sur 3 bits
exemple: (5 2 4)8 =
(101/ 010/ 100)2
- Conversions :
Binaire Hexadécimal : on groupe les chiffres binaires par 4 et on convertit séparément
exemple: (010 / 010 0/ 1101)2 =
(2 4 D)16
Hexadécimal Binaire : chaque caractère hexadécimal est converti en binaire sur 4 bits
exemple: (1 F C)16 =
(1 / 1111/ 1100)2
De manière générale, avec n bits on peut représenter des nombres positifs de 0 à (2 n-1-1) et des
nombres négatifs de –1 à –2n-1.
–2n-1 (2n-1-1)
1 0000…00000 01111 …….111
1
Par exemple, sur 16 bits, on peut représenter les nombres compris entre –32768 et 32767.
Exemple : On dispose d’une machine où les valeurs numériques réelles sont représentées sur
16 bits, avec:
- un bit (SM) pour le signe de la mantisse
- un exposant (E) biaisé sur 7 bits SM E M
- une mantisse (M) sur 8 bits
La représentation sur cette machine du nombre décimal 13,875 est : 0 1000100 11011110
L’intérêt de ce code est de faciliter les opérations d’entrées/sorties puisque chaque entité BCD
est associée à un caractère. Ce code est donc très utilisé dans les ordinateurs orientés gestion
(peu de calcul et beaucoup d’entrées/sorties) et dans les appareils de mesures numériques pour
lesquels il facilite l’affichage du résultat sur des afficheurs à un chiffre comme les 7 segments
par exemple. Par contre, ce code complique les opérations arithmétiques. Dans le cas de
l’addition, par exemple, on doit ajouter 6 si le résultat est supérieur à 9, afin d’obtenir un
résultat correct.
3.3 Code EBCDIC (Extended Binary Coded Decimal Interchange Code) (8 bits)
Ce code est utilisé essentiellement par IBM (code de A : C1 hexa).