Page d'accueil

 

1) Les microcontrôleurs

 

Les microcontrôleurs sont des composants électroniques programmables. Ils regroupent dans un seul boîtier relativement compacte, un processeur, de la mémoire, et des périphériques externes permettants d'établir une communication avec l'extérieur. Il existe des dizaines de modèles :

- Les 68HC11 de Motorola

- Les 8051 d'Intel

- Les AVR d'ATMEL

- ...

- Les PIC de Microchip

 

Toutes les spécification des différents microcontrôleur se trouvent dans des documents appelé Datasheet, que l'on peut trouver sur les sites de chacun des constructeurs.

 

 

2) Les PIC 16FXX

 

Les microcontrôleurs de Microchip ont la particularités d'avoir une technologie RISC, ce qui signifie qu'ils possèdent un jeux d'instruction réduit, et ainsi une plus grande facilité de programmation. On peut trouver 3 familles principales :

- Les 12F, qui embarquent peu de mémoire, et qui correspondent à la classe des petits microcontrôleurs.

- Les 16F, qui correspondent à la classe moyenne, et qui embarquent suffisement de mémoire pour créer un très grand nombre d'application diverses et variés.

- Les 18F, qui possèdent plus d'instructions et de mémoire, et qui serviront pour des applications un peu plus conséquentes.

 

On peut également trouver une nouvelle famille, les DsPIC, qui sont un mélange entre les microcontrôleurs et les DSP (Digital Signal Processing), qui permettent de faire des applications en temps réel.

 

Nous allons donc nous intéressés à la famille des 16F, de classe moyenne.

 

 

3) La série 16FXX

 

La série 16FXX embarque de la mémoire "Flash", qui est reprogrammable des centaines de fois (idéale pour faire du développement).

Le modèle 16F84, dans un boîtier 18 broches, comporte ainsi 1 Ko de mémoire et des périphériques réduits (13 entrées / sorties, 1 timer).

Le 16F877, dans un boîtier 40 broches, dispose lui de 8 Ko de Flash et de nombreux périphériques (entrées / sorties, 3 timers, 1 convertisseur analogique-numérique à 8 entrées, un port parallèle et série, gestion des bus SPI et I2C pour connecter d'autres périphériques...).

Ce sont les 2 modèles les plus utilisés pour les applications diverses.

 

 

4) L'architecture des 16FXX

Voici l'architecture interne du PIC 16F84 :

 

Voici l'architecture interne des PIC 16F87X :

 

Seul 2 élements sont indispensables pour faire fonctionner les PIC :

1) Une alimentation de 5V avec sa masse

2) Une horloge : On utilise le plus souvent un quartz associé à 2 condensateurs. Les quartz sont relativement stable et précis. Il est également possible d'utiliser un réseau de type RC, qui est une solution permettant une faible consommation. On peut encore utiliser une horloge externe.

 

5) La programmation des 16FXX

La programmation des PIC 16FXX peut s'effectuer en plusieurs languages :

- En Pascal

-En Basic

- En C

- En Assembleur

- ...

 

a) Les début avec MPLAB

Le logiciel le plus courant qui permet de programmer ces composant aussi bien en Assembleurs qu'en C est le logiciel MPLAB, qui est fourni gratuitement sur le site de Microchip (Télecharger MPLAB). Ce logiciel très pratique permet d'écrire les programmes, de les compiler, et même de les simuler.

Pour démarrer avec MPLAB, procédez comme suit :

- Télechargez le, puis installez le ou bon vous semble.

- Lancer MPLAB IDE, puis cliquez sur "Project/Project Wizard..."

Une nouvelle fenêtre apparaît, cliquez sur suivant :

Ensuite choisissez le type de microcontrôleur que vous désirez programmer :

Puis sélectionner le type de language que vous voulez utiliser : (CC5X pour programmer en C, MPASM pour l'assembleur)

Attention, si vous avez des croix rouges à coté de MPASM, MPLINK, ou MPLIB, il vous faudra pour chacun cliquer sur "Browse..." pour indiquer ou ce trouve chacun des outils nécessaires (chacun des fichiers mpasmwin.exe, mplink.exe, ...). En général, ces fichiers se trouvent dans "MPLab IDE 7.3\MPASM Suite\".

Une fois que vous avez bien spécifier les différents outils nécessires à MPLAB, vous pouvez appuyer sur suivant.

Il vous faut maintenant entrer un nom de projet, par exemple essai, et le dossier dans lequel vous voulez enregistrez ce projet, par exemple C:\Projets MPLAB :

Enfin, cliquez sur suivant pour n'inclure aucun fichier, puis sur terminer. Cliquez maintenant sur "File/New" pour créer une nouvelle feuille de programme.

Je vous conseil d'enregistrer immédiatement votre page (même vièrge) au format .asm et de l'inclure dans "Source Files" (en faisant un clique droit sur "Source Files" puis en cliquant sur "Add Files") pour ne pas oublier de le faire plus tard, et de ne pas savoir d'où proviènent les erreurs.

Vous pouvez désormais commencé à taper votre programme.

 

b) Les premiers programmes

Voici la structure d'un programme Assembleur :

Si vous voulez télécharger ce fichier cliquez ici. Cela vous permettera de réutiliser cette base pour tous les programmes que vous vouderez créer.

Une chose essentielle à avoir sous les yeux ou à connaitre pour pouvoir programmer est la liste des instructions suivantes :

 

Vous pourrez remarquer que le jeux d'instruction est très réduit. C'est justement l'intérêt d'utiliser de tels microcontrôleurs.

Voici l'excellent cours du maître en la matière : BIGONOFF

Dans ce cours, vous retouverez absolument tout ce qu'il faut savoir pour programmer les PIC 16F84. (Création de Tempo, utilisation des interruptions, les différents registres,...)