You are on page 1of 8

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é
assembleur hexadécimal µc

MPASMWIN 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 
= 151
 Dix mille 

Système utilisé par les Romains

I V X L C D M
CLI = 151
1 5 10 50 100 500 1000

- 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 en base 10


1 unité : 0 à 9

1 centaine 5 x 1 dizaine 1 unité

CI10_I11_µc
Sciences de l’Ingénieur PAGE 62

2 - Bases
Notation 102, 9616, 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 7 unités
15 15 unités ou 1 dizaine + 5 unités

1 dizaine 5 unités

1972 = 1000
+ 900
+ 70
+ 2
1 millier 9 centaines 7 dizaines 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 0 1 2 3 4 5 6 7 8 9 A B C D E F
Décim 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
al
0 0 E1916 = E . 16² + 1 . 161 + 9 . 160
Ex
F F E1916 = 14 . 16² + 1 . 161 + 9 . 160

161 160 E1916 = 3609

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 nbr n
r q n
Diviser par n le nombre en base 10 r
Puis diviser le quotient par n et garder le reste q
Sens de lecture
Lire le résultat en partant de la fin et en remontant.

4 – Addition de nombres binaires

1 1111001
+ 1 +0101101
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


1 bit
Non Etat logique 0 v=0v

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


8 4 2 1
Exemple 0110 4+2=6
0 1 1 0

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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E 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 nombre binaire réfléchi


décimal
D2 D1 D0 D2 D1 D0
0 0 0 0 0 0 0
0 0 1 1 0 0 1
0 1 0 2 0 1 1
0 1 1 3 0 1 0
1 0 0 4 1 1 0
1 0 1 5 1 1 1
1 1 0 6 1 0 1
1 1 1 7 1 0 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


Extraire le MSB pour le signe 1000 0000 => 000 0000
Complémenter les autres bits 111 1111
Additionner 1 + 1
Convertir le résultat en décimal 1000 0000 = - 128

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 hexadécimal décimal


01101010 6A 106

CI10_I11_µc

You might also like