Les microcontrôleurs

Transcription

Les microcontrôleurs
Sciences de l’Ingénieur
PAGE 58
Les microcontrôleurs - PIC 16F84 – 04
Fonction :
Les microcontrôleurs µc permettent sous une taille réduite de réaliser des calculs. Ils peuvent
recevoir et envoyer des ordres grâce à des interfaces d'entrées et de sorties.
Ils présentent l'intérêt de réunir sous un volume réduit de la mémoire, un calculateur, des ports
E/S...
Une fois programmés, ils sont autonomes.
Structures
PC : (programme counter) permet de lire la mémoire programme
ALU : (Unité arithmétique et logique) il s'agit de l'unité de calcul
Les registres
Les données et les programmes sont toujours stockés en mémoire tandis que les opérations
exécutées par l'unité de calcul le sont au moyen de registres.
Un registre est un circuit logique capable de contenir des données. L'association de plusieurs
circuits (par exemple une bascule D) permet de réaliser un registre. Un groupe de huit bits est
nommé un octet.
Les registres servent aux calculs et à la configuration du µc
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 59
Mémoire
Afin de mémoriser plusieurs mots binaires, on empile des registres.
Cette association s'appelle une mémoire.
Afin d'accéder à chaque mot contenu dans la mémoire, ceux-ci ont une adresse qui correspond
à leur position physique dans la mémoire.
Les µc étant des circuits logiques, ils ne manipulent que du binaire (0 - 0V ; 1 - +5v).
L'écriture des contenus des registres ainsi que leur adresse devient vite lourde.
Afin de simplifier l'écriture, on utilise la notation hexadécimale.
L'adresse 0 0 0 0 0 1 1 0 devient alors 06, par défaut les nombres seront exprimés en hexa.
Matériel PIC 16 F 84 - 04 (4 MHz)
13 E / S à configurer
L'horloge s'obtient de deux façons
QUARTZ ou réseau RC
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 60
Entrées
Sorties
Principe de programmation
Le µc ne comprend que l’hexadécimal.
Le programme est écrit grâce à un éditeur comme notepad.
Le programme est transféré grâce à une carte électronique et un logiciel comme Icprog.
Il est possible de programmer les µcs en assembleur. Des mnémoniques remplacent
l’hexadécimal. Pour le pic qui est du type (RISC) reduced instruction set computer, il n’y a
que 35 instructions. Le programme est ensuite compiler en hexadécimal par un logiciel type
MPASMWIN.
Il est possible d’écrire le programme dans un langage évolué type c basic ou en logigramme et
de le compiler en assembleur et en hexadécimal
Résumé
hexadécimal
assembleur
MPASMWIN
µc
Icprog
Langage de
haut niveau :
C
basic
Ou
algorigramme
Principe fondamental de programmation :
Un microcontrôleur garde en mémoire les ordres donnés, il faut absolument
remettre à zéro les sorties quand on veut les couper.
Un µc exécute les actions les uns après les autres à la cadence du quartz
(environ 1 opération toutes les 1µs), il faut donc utiliser des boucles ou
attendre avec des temporisations.
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 61
NUMERATION – CODAGE
1 – la Numération
Système égyptien
-
Utilisation de symbole représentant un poids
La place n’a pas d’importance.
Exemple
Unité
Dizaine
Centaine
Mille
Dix mille

= 151
Système utilisé par les Romains
I
1
-
V
5
X
10
L
50
C
100
D
500
M
1000
CLI = 151
Si à droite d’un chiffre on en écrit un autre de valeur moindre ou égal, la valeur du chiffre
est augmentée
VI = 6, XX = 20.
Si à gauche d’un chiffre on en écrit un autre de valeur moindre la valeur du chiffre est
diminuée
IV = 4, IC = 99.
La valeur d’un chiffre est multipliée par mille s’il est surmonté d’un trait …
Système dit arabe
-
Chaque chiffre a un poids, de 0 à n suivant la base ( 9 pour la base 10, 1 pour la base 2).
La place des chiffres dans le nombre a son importance.
Chaque place a son poids
Exemple
151
1 centaine
5 x 1 dizaine
en base 10
1 unité : 0 à 9
1 unité
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 62
2 - Bases
102, 9616,
Notation
5210
2 – 1 Base10
La base 10 est utilisée tous les jours, ce sont les nombres décimaux.
0
Une unité va de 0 à 9, au delà c’est à dire 10 unités on utilise le terme de dizaine.
1 dizaine
9
Ex
7
15
7 unités
15 unités ou 1 dizaine + 5 unités
1 dizaine
5 unités
1972
1 millier
9 centaines
=
7 dizaines
1000
+ 900
+ 70
+ 2
2 unités
Généralisation
1972 = 1 . 103 + 9 . 10² + 7 . 101 + 2 . 100
= 1000 + 900 +
70 + 2
2 – 2 Base 2
Une unité peut prendre l’état 0 ou 1
0
0
Ex
102
1
1
102 = 1 . 21 + 0 . 20
21
20
2 – 3 Base 16
Hexa
Décim
al
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
A B C D E F
10 11 12 13 14 15
0
0
E1916 = E . 16² + 1 . 161 + 9 . 160
F
F
E1916 = 14 . 16² + 1 . 161 + 9 . 160
161
160
E1916 = 3609
Ex
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 63
3 – Conversions entre bases
3 – 1 Bases 2 – 10
11012 = 1 . 23 + 1 . 22 + 0 . 21 + 1 . 20
= 1 .8 + 1 . 4 + 0 . 2 + 1 . 1
= 1310
3 – 2 Bases 16 –10
C116
= C . 161 + 1 . 160
= 12 .161 + 1 . 160
= 193
3 – 3 Bases 10 – n
Diviser par n le nombre en base 10
Puis diviser le quotient par n et garder le reste
Lire le résultat en partant de la fin et en remontant.
nbr n
r q n
r
q
Sens de lecture
4 – Addition de nombres binaires
1111001
+0101101
1
+ 1
10
5 - Codage
5 – 1 Notion de code
Le format le plus simple est le bit, il peut prendre deux états, 0 ou 1, facilement réalisable en
électricité en affectant une grandeur électrique au 1 et une autre au 0.
Oui
Etat logique 1
v = + vcc
Non
Etat logique 0
v=0v
1 bit
Mais si on veut différencier plus de cas, il faudra utiliser un ensemble de n bits faisant
correspondre à chaque cas une combinaison.
La table de correspondance entre les cas et les combinaisons sera le code.
5 – 2 Type d’information à coder
La plupart des informations à coder seront des nombres (une quantité, n° d’ordre ou adresse)
ou la transmission de textes grâce aux codes alphanumériques (ASCII).
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 64
6 - les codes numériques
6 – 1 Code binaire pur
C ‘est le code le plus simple. Son principe est le même que pour les nombres décimaux, mais
ici la base de numération est égale à 2 et l’on utilise que deux symboles : 0 et 1
Le code binaire pur est un code pondéré. On peut affecter à chaque bit un poids, et la valeur
du nombre représenté peut être obtenue directement en additionnant le poids des bits.
128 64
32
16
8
4
2
1
Un nombre X s’écrira :
X = an × 2 n + an −1 × 2 n −1 + ... + a1 × 21 + a0 × 20 avec an , an −1 ,.., a1 , a0 = 0 ou 1
X = 11001
X = 1 × 2 4 + 1 × 23 + 0 × 2 2 + 0 × 21 + 1 × 20
X = 16 + 8 + 0 + 0 + 1 = 25
Conversion rapide binaire décimale
Exemple
8
0
0110
4
1
2
1
1
0
4+2=6
Notations condensées
Notation hexadécimale
L’utilisation du système hexadécimal, ou système à base 16, relève du même principe que la
notation octale, mais on regroupe les éléments binaires par 4 au lieu de 3. Il faut utiliser 16
chiffres pour la représentation.
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
A
11
B
12
C
13
D
14
E
15
F
Conversion rapide hexa binaire
Exemples
101110 on fait des paquets de 4 0010 1110 on convertit caque paquet 2 E
Code BCD décimal codé binaire
Chaque chiffre est codé par son équivalent binaire, la représentation de nombres décimaux se
fait avec autant de groupe de 4 bits que le nombre a de chiffres.
3609
3
6
0
9
0011 0110 0000 1001
CI10_I11_µc
Sciences de l’Ingénieur
PAGE 65
Notation sous forme de mot binaire
8 bits : octet
16 bits : mot
32 bits : mot long
6 – 2 Code binaire réfléchi ou code gray
C’est un code non pondéré, les combinaisons n’ont qu’une valeur relative.
Il offre l’avantage de ne modifier qu’un bit à la fois.
binaire naturel
D2
0
0
0
0
1
1
1
1
D1
0
0
1
1
0
0
1
1
D0
0
1
0
1
0
1
0
1
nombre
décimal
0
1
2
3
4
5
6
7
binaire réfléchi
D2
0
0
0
0
1
1
1
1
D1
0
0
1
1
1
1
0
0
D0
0
1
1
0
0
1
1
0
6 – 3 Nombres binaires signés
Lorsqu’il est nécessaire d’utiliser des nombres binaires positifs et négatifs, on travaille en
binaire signé. Le signe est donné par le bit de poids fort (MSB). Si c’est 0 le nombre est
positif, si c’est 1 le nombre est négatif.
Conversion d’un nombre binaire négatif en nombre décimal
1000 0000 => 000 0000
Extraire le MSB pour le signe
111 1111
Complémenter les autres bits
+
1
Additionner 1
1000 0000 = - 128
Convertir le résultat en décimal
6 – 4 Conclusions
Le code binaire pur, qui se prête parfaitement au traitement dans les unités de calcul, est
malheureusement inadapté à l’interprétation directe par l’homme. La forme octale ou
hexadécimale bien que plus facile à écrire n’offre pas plus de facilité d’interprétation.
binaire pur
01101010
hexadécimal
6A
décimal
106
CI10_I11_µc