Microcontrôleur PIC16F887 A.OUMNAD 1
LES MICROCONTROLEURS
Par la pratique
Etude détaillée du
PIC® 16F887
Abdelmajid OUMNAD
Microcontrôleur PIC16F887 A.OUMNAD 2
INTRODUCTION
Un microcontrôleur est un composant électronique Autonome doté :
décoder et d'exécuter des instructions,
de la mémoire RAM,
de la mémoire permanente,
 série (RS232, I2C, SPI 

Des Timer pour gérer le temps
s plus au moins sophistiqués selon la taille du microcontrôleur
Un microcontrôleur 
8 ou 16 bits. Ceci en fait un composant très
bon marc parfaitement Adapté pour piloter les applications embarquées dans de nombreux

 grand) dans chaque équipement électronique :


Contrôle des processus industriels (régulation, pilotage)
Appareil de mesure (affichage, calcul statistique, mémorisation)
Automobile (ABS, injection, GPS, airbag)
Multimédia (téléviseur, carte audio, carte vidéo, MP3, magnétoscope)
Téléphones (fax, portable, modem)
Electroménager (lave-vaisselle, lave-linge, four micro-onde)
Un microcontrôleur peut être programmé une fois pour toutes pour effectuer une ou des tâches
précises au sein d'un appareil électronique. Les microcontrôleurs récents peuvent être reprogrammés
et ceci grâce à leur mémoire permanente de type FLASH un équipement)
Plusieurs Constructeurs se partagent le marché des microcontrôleurs, citons INTEL, MOTOROLA,
ATMEL, ZILOG, PHILIPS et MICROCHIP® avec ses PIC® très populaires auxquels nous allons nous
intéresser dans cet ouvrage.
Microcontrôleur PIC16F887 A.OUMNAD 3
Les microcontrôleurs, quelque soit leurs constructeurs, ont des architecture très similaires et sont
constitués de modules fondamentaux assurant les mêmes fonctions : UAL 

seul le langage de programmation (Assembleurs) constitue la différence majeure en deux
microcontrôleur (similaires) venant de deux constructeurs différents.
Nous avons choisit dans ce document d'étudier les microcontrôleurs PIC® mid-range fabriqués par
Microchip®. Ce sont des microcontrôleurs à architecture RISC (Reduce Instructions Set Computer), ou
             
   décodage sera rapide ce qui augmente la vitesse de fonctionnement du
microcontrôleur.
La famille des PIC® est subdivisée en 3 grandes familles :
La famille Base-Line12 bits, elle constitue l'entrée de gamme
des microcontrôleurs fabriqués par Microchip®
la famille Mid-Range, qui utilise des mots de 14 bits. C'est la famille des microcontrôleurs moyenne
puissance
la famille High-End, qui utilise des mots de 16 bits. C'est la famille haut de gamme.
Au lieu de nous lancer dans l'étude générale sur les microcontrôleurs, qui de notre avis, apporte
peu d'aide aux lecteurs ciblés par cet ouvrage, nous avons opté pour une étude détaillée du
microcontrôleur 16F887 qui est le remplaçant désigné du très populaire 16F877. C'est un élément
très représentatif de la famille mid-range puisqu'il est doté de la plupart des modules qui équipent les
circuits de cette famille.
Cet ouvrage est organisé d'une façon telle que le lecteur peur passer rapidement à la pratique. Tous
les aspects nécessaires à l'écriture, la compilation et l'implantation d'un programme sur le PIC® sont
regroudans les cinq premiers chapitres, volontairement courts pour éviter au lecteur de s'égarer.
Ensuite l'ouvrage peut servir comme document de référence, le lecteur n'est pas obligé d'étudier le
reste des chapitres dans l'ordre présenté.
Microcontrôleur PIC16F887 A.OUMNAD 4
Table des matières
INTRODUCTION ................................................................................................................................................... 2
Chapitre I ............................................................................................................................................................... 7
LES ELEMENTS DE BASE DU PIC16F887 ........................................................................................................ 7
I.1 Eléments essentiels du PIC 16F887 ................................................................................................................... 7
I.2 Brochage du 16F887............................................................................................................................................... 8
I.3 L'Horloge .................................................................................................................................................................... 8
I.3.1 Oscillateur à quartz ...................................................................................................................................... 9
I.3.2 Oscillateur RC. ..............................................................................................................................................10
I.3.3 Horloge externe. ..........................................................................................................................................10
I.3.4 Oscillateur interne. .....................................................................................................................................10
I.4 Les Registres de configuration CONFIG1 et CONFIG2 ...............................................................................11
I.4.1 Exemple de Configuration générique ...................................................................................................14
I.5 L'unité de traitement centrale (CPU) .............................................................................................................14
I.6 Organisation de la mémoire RAM ....................................................................................................................15
I.6.1 Accès à la RAM par adressage DIRECT .................................................................................................15
I.7 Accès à la RAM INDIRECT ....................................................................................................17
I.8 Quelques registres de configuration et leurs bits ......................................................................................19
Chapitre II............................................................................................................................................................ 20
LE JEUX D'INSTRUCTIONS DU PIC16F887 ................................................................................................... 20
II.1 Les instructions orientées Registre ...............................................................................................................20
II.2 Les instructions orientées bits .........................................................................................................................20
II.3 Les instructions opérant sur une valeur .......................................................................................................21
II.4 Les instructions de saut et appel de procédures ........................................................................................21
II.5 Le jeu d'instructions .............................................................................................................................................21
II.5.1 Les instructions movwf et movf ..............................................................................................................22
II.5.2 Les instructions btfss et btfsc .................................................................................................................22
II.5.3 Les instructions incfsz et decfsz .............................................................................................................22
II.5.4 goto ........................................................................................................................................23
II.5.5 call ..........................................................................................................................................23
II.6  .....................................................................................................................24
II.6.1 Les indicateurs, la soustraction et la comparaison..........................................................................24
II.7 Les directives de l'assembleur MPASM ..........................................................................................................24
II.7.1 La directive LIST ..........................................................................................................................................25
II.7.2 La directive INCLUDE.................................................................................................................................25
II.7.3 La directive EQU ..........................................................................................................................................25
II.7.4 Les directives CBLOCK/ENDC .................................................................................................................25
II.7.5 La directive ORG ..........................................................................................................................................25
II.7.6 La directive #DEFINE ................................................................................................................................26
II.7.7 Les directives LOW et HIGH .....................................................................................................................26
II.7.8 La directive DE .............................................................................................................................................26
II.7.9 La directive DT .............................................................................................................................................27
II.7.10 La directive END : ........................................................................................................................................27
II.7.11 La directive __CONFIG ................................................................................................................................27
II.8 Les opérateurs arithmétique et logique de l'assembleur ........................................................................27
II.9 Les macros ...............................................................................................................................................................28
Microcontrôleur PIC16F887 A.OUMNAD 5
Chapitre III .......................................................................................................................................................... 29
LES OUTILS DE DEVELOPPEMENT ................................................................................................................ 29
III.1 Procédure de travail .............................................................................................................................................29
III.1.1 Programmeur simple .................................................................................................................................29
III.1.2 PIC® en mode exécution .........................................................................................................................30
III.2 MPLAB® ..........................................................................................30
III.3 Programme type : adressage direct ................................................................................................................32
III.3.1 Des macros pour sélectionner les banks .............................................................................................34
III.4 Boucles de temporisation ...................................................................................................................................35
III.4.1 Temporisation avec une boucle .............................................................................................................35
III.4.2 Temporisation avec 2 boucles imbriquées .........................................................................................36
III.4.1 Temporisation avec 3 boucles imbriquées .........................................................................................36
Chapitre IV .......................................................................................................................................................... 38
LES PORTS d’ENTRÉE SORTIES ...................................................................................................................... 38
IV.1 Le port d' E/S PORTA ...........................................................................................................................................38
IV.2 Le port d'E/S PORTB ............................................................................................................................................39
IV.3 Le port d' E/S PORTC ............................................................................................................................................39
IV.4 Le port d' E/S PORTD ...........................................................................................................................................39
IV.5 Le port d'E/S PORTE ............................................................................................................................................40
IV.6 Situation au démarrage .......................................................................................................................................40
IV.7 Programmes types ................................................................................................................................................40
IV.7.1 Faire clignoter une LED.............................................................................................................................40
IV.7.2 Commande d'un relai .................................................................................................................................42
IV.8 Commande d'un afficheur sept segments .....................................................................................................44
IV.9 Commande d'un afficheur LCD .........................................................................................................................46
IV.9.1 Initialisation de l'afficheur en mode 8 bits .........................................................................................47
IV.9.2 Initialisation de l'afficheur en mode 4 bits .........................................................................................47
IV.9.3 Exemple de branchement.........................................................................................................................49
Chapitre V ............................................................................................................................................................ 50
LES MÉMOIRES PERMANENTES ..................................................................................................................... 50
V.1 La mémoire EEPROM de données ....................................................................................................................50
V.2 Procédure de lecture dans la EEPROM...........................................................................................................51
V.3 Procédure d'écriture dans la EEPROM ...........................................................................................................51
V.4 La mémoire EEPROM Programme ou mémoire flash ...............................................................................52
V.5 Procédure de lecture dans la mémoire programme .................................................................................52
V.6 Procédure d'écriture dan la mémoire programme ....................................................................................53
V.7 Mécanisme d'écriture dan la mémoire programme ..................................................................................53
Chapitre VI .......................................................................................................................................................... 55
LES INTERRUPTIONS ........................................................................................................................................ 55
VI.1 roulement d'une interruption .....................................................................................................................55
VI.2 Les sources d'interruption .................................................................................................................................56
VI.3 L'interruption INT (Entrée RB0 de PORTB) .................................................................................................56
1 / 80 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !