POUR BIEN DEBUTER AVEC LES

uCONTROLEUR PIC 16F84

C.Rigot/Ph Dondon © Copyright  2000

 retour page accueil Ph.Dondon

Sommaire

Les outils de programmation de microcontrôleurs PICs *

· L’environnement de développement MPLAB : *

· L’assembleur MPASM : *

· Le simulateur MPSIM : *

· Le programmateur P16PRO : *

· Liste des microcontrôleurs programmables avec PICALL : *
 

Installation de MPLAB *
 
 Commencer avec MPLAB * · Description de la fenêtre de travail de MPLAB : *

· Définition des étapes de programmation d’un microcontrôleur PIC *

· Configuration du mode de développement : *

· Créer un nouveau projet simple: *

· Création d’un simple fichier source : *

· Entrée du code source : *

· Assembler le fichier source : *

· Simulation : *
 

PROGRAMMATION DES PICs A l’AIDE DE PICCALL * · Programmer le PIC : *

· Programme d’exemple: Chenillard *
 

Lexique : *
 
 

Les outils de programmation de microcontrôleurs PICs


Cet environnement fait partie des outils de génération de code et présente 2 particularités importantes : Malgré cette gratuité, c’est un outil indispensable et très puissant pour la programmation des microcontrôleurs PIC

Cet environnement MPLAB fonctionne actuellement avec tous les microcontrôleurs PIC. De plus il est multifenêtres, fonctionne sous Windows 3.1, 95, 98 et Me et permet de développer avec un maximum de confort toutes applications à base de microcontrôleurs PIC.

Il comporte :

Tous ces logiciels sont interactifs donc il est ainsi possible de passer immédiatement de la fenêtre affichant le listing source du programme assemblé à la fenêtre d’édition afin de corriger une erreur.

Le simulateur intégré permet de tester toutes applications grâce à de multiples possibilités de visualisation des registres, de la mémoire et des entrées/Sorties du circuit simulé.

L’assembleur MPASM contenu dans MPLAB dispose de toutes les fonctions dont on peut avoir besoin : En sortie, cet assembleur produit divers fichiers : Le simulateur permet de vérifier sur un PC le déroulement et le fonctionnement de votre programme. Il permet de simuler des Entrées/Sorties au moyen de commandes particulières.

Il dispose de multiples modes d’affichages et permet ainsi de visualiser le contenu de registres, de mémoires particulières ou de ports d’entrées/sorties.

On peut afficher, dans une autre fenêtre le listing source du programme en cours d’exécution avec une mise en évidence de chaque instructions au fur et à mesure qu’elles s’exécutent. On peut alors détecter les erreurs de programmation facilement.

On peut modifier un programme en cours de simulation.

Le programmateur P16PRO est destiné à être relié à un PC.

Pour programmer les microcontrôleurs PIC on utilise le logiciel PICALL.

Celui-ci a trois avantages majeurs :


 
REFERENCES
NOMBRE
DATA
VITESSE
PORTS
ADC
I/O
 
DE PATTES
RAM
MHZ
I/O
8-Bits
SERIE
PIC16F83
18
36
10
13
/
/
PIC16CR83
18
36
10
13
/
/
PIC16C84
18
 
 
 
 
 
PIC16F84
18
68
10
13
/
/
PIC16F84A
18
68
20
13
/
/
PIC16CR84
18
68
10
13
/
/
PIC16F627
18
224
20
15
/
Usart/Sci
PIC16F628
18
224
20
15
/
Usart/Sci
PIC16F870
28
128
20
22
5
Usart
PIC16F871
40
128
20
33
8
Usart
PIC16F872
28
128
20
22
5
MSSP
PIC16F873
28
192
20
22
5
Usart/MSSP
PIC16F874
40
192
20
33
8
Usart/MSSP
PIC16F876
28
368
20
22
5
Usart/MSSP
PIC16F877
40
368
20
33
8
Usart/MSSP
PIC16F73
28
192
20
22
5
SSP/Usart
PIC16F74
40
192
20
33
8
SSP/Usart
PIC16F76
28
368
20
22
5
SSP/Usart
PIC16F77
40
368
20
33
8
SSP/Usart
PIC16C432
18
 
 
 
 
 
PIC16C432
20
 
 
 
 
 
PIC16C505
14
 
 
 
 
 
PIC12C508
8
25
4
6
/
/
PIC12C508A
8
25
4
6
/
/
PIC12C509
8
41
4
6
/
/
PIC12C509A
8
41
4
6
/
/
PIC12C518
8
 
 
 
 
 
PIC12C519
8
 
 
 
 
 
PIC12C671
8
128
10
6
4
/
PIC12CE673
8
128
10
6
4
/
PIC12C672
8
128
10
6
4
/
PIC12CE674
8
 
 
 
 
 
PIC14000
28
192
20
20
8
I²C/SMB
PIC16C52
18
 
 
 
 
 
PIC16C54
18
25
20
12
/
/
PIC16C55
28
24
20
20
/
/
PIC16C56
18
25
20
12
/
/
PIC16C57
28
72
20
20
/
/
PIC16C57C
28
72
20
20
5
/
PIC16C58
18
 
 
 
 
 
PIC16C554
18
80
20
13
/
/
PIC16C556
18
 
 
 
 
 
PIC16C558
18
128
20
13
/
/
PIC16C61
18
 
 
 
 
 
PIC16C62
28
 
 
 
 
 
PIC16C62A
28
128
20
22
/
I²C/SPI
PIC16C62B
28
128
20
22
/
I²C/SPI
PIC16CR62
28
 
 
 
 
 
PIC16C63
28
192
20
22
/
Usart/I²C/SPI
PIC16C63A
28
192
20
22
/
Usart/I²C/SPI
PIC16C64
40
 
 
 
 
 
PIC16C64A
40
128
20
33
/
I²C/SPI
PIC16C64B
40
 
 
 
 
 
PIC16CR64
40
192
20
33
8
Usart/I²C/SPI
PIC16C65
40
 
 
 
 
 
PIC16C65A
40
192
20
33
/
Usart/I²C/SPI
PIC16C65B
40
192
20
33
/
Usart/I²C/SPI
PIC16C66
28
368
20
22
/
Usart/I²C/SPI
PIC16C67
40
368
20
33
/
Usart/I²C/SPI
PIC16C620
18
80
20
13
/
/
PIC16C620A
18
96
20
13
/
/
PIC16C621
18
80
20
13
/
/
PIC16C621A
18
96
20
13
/
/
PIC16C622
18
128
20
13
/
/
PIC16C622B
18
128
20
13
/
/
PIC16CE623
18
96
20
13
/
/
PIC16CE624
18
96
20
13
/
/
PIC16CE625
18
128
20
13
/
/
PIC16C710
18
36
20
13
4
/
PIC16C71
18
36
20
13
4
/
PIC16C711
18
68
20
13
4
/
PIC16C712
18
128
20
13
4
/
PIC16C716
18
128
20
13
4
/
PIC16C72
28
128
20
22
5
I²C/SPI
PIC16C73
28
192
20
33
 
Usart/I²C/SPI
PIC16C73A
28
192
20
22
5
Usart/I²C/SPI
PIC16C73B
28
192
20
22
5
Usart/I²C/SPI
PIC16C74
40
72
20
20
5
 
PIC16C74A
40
192
20
33
8
Usart/I²C/SPI
PIC16C74B
40
192
20
33
8
Usart/I²C/SPI
PIC16C76
28
368
20
22
5
Usart/I²C/SPI
PIC16C77
40
368
20
33
8
Usart/I²C/SPI
PIC16C717
18
256
20
16
10
I²C/SPI
PIC16C770
20
256
20
16
6
I²C/SPI
PIC16C771
20
256
20
16
6
I²C/SPI
PIC16C773
28
256
20
22
6
Usart/I²C/SPI
PIC16C774
40
256
20
33
10
Usart/I²C/SPI
PIC16C745
28
256
24
19
5
USB, Usart/SPI
PIC16C765
40
256
24
30
8
USB,Usart/SPI
PIC16C923
64
176
8
52
/
I²C/SPI
PIC16C924
64
176
8
52
5
I²C/SPI
PIC16C715
18
 
 
 
 
 
PIC16C642
28
 
 
 
 
 
PIC16C662
40
 
 
 
 
 

 

Installation de MPLAB


Pour installer MPLAB, vous devez lancer le fichier MPL530.exe sur la première disquette d’installation.

Pour installer MPLAB vous devez :

  1. Lancer Microsoft Windows
  2. Insérer la disquette 1 de MPLAB dans le lecteur de disquette
  3. Lancer le programme d’installation
Aller dans le menu GESTIONNAIRE DE PROGRAMMES, cliquez sur FICHIER et EXECUTER.

Tapez a:\mpl530.exe dans le champ LIGNE DE COMMANDE.

Cliquez sur OK et suivez la procédure d’installation

Cliquez sur DEMARRER, puis EXECUTER.

Tapez a:\mpl530.exe dans le champ LIGNE DE COMMANDE.

Cliquez sur OK et suivez la procédure d’installation

Figure 2.1 : Fenêtre d’installation de MPLAB







Lors de l’installation je vous recommande d’installer MPLAB sur un disque Local plutôt qu’un disque partagé sur un réseau.
 
 

Commencer avec MPLAB

Lancer MPLAB en cliquant sur DEMARRER, PROGRAMMES, MICROSHIP MPLAB, MPLAB.
 
 

la fenêtre de travail de MPLAB (figure 3.1) se compose :
  1. D’une Barre de Menu en première ligne
  2. D’une barre d’outil en dessous du Menu
  3. D’un espace de travail où peuvent être affichées de multiples fenêtres
  4. D’une barre d’état en bas

 
 



Figure 3.1 : La fenêtre de travail sous MPLAB

Configuration du mode de développement :

Nous allons utiliser MPLAB en mode Simulation.

Pour régler le mode de développement de MPLAB allez dans le menu

OPTIONS > DEVELOPMENT MODE et cliquez sur l’onglet TOOLS.

Ce menu permet de choisir les outils de développement et le type de microcontrôleur utilisé.


 
 






























Figure 3.2 : La boîte de dialogue du mode de Développement

Sélectionnez MPLAB SIM simulator et choisissez le PIC16F84 car MPLAB supporte la simulation avec ce microcontrôleur. Cliquez sur OK.

Le simulateur est initialisé et vous devez voir PIC16F84 et SIM dans la barre d’état.

Vous êtes maintenant en mode simulation pour le PIC16F84.
 
 

Le simulateur fonctionne à partir du même fichier ( .HEX ) que celui qui va être programmé dans le PIC. Pour que le simulateur fonctionne, vous devez créer d’abord un fichier source et réussir à l’assembler.

Pour avoir le fichier assemblé avec l’extension .hex, vous devez créer un projet. Par la suite une fois le fichier assemblé créé, vous n’avez pas besoin de vous resservir de l’environnement MPLAB pour programmer un PIC. Vous utilisez le fichier assemblé directement.

Pour créer un nouveau projet il faut aller dans le menu FILE > NEW.

Une boite de dialogue alors s’ouvre à vous ( figure 3.3 ).
 
 




Figure 3.3 : Boite de dialogue de création de projet







Cliquer YES, une autre boite de dialogue s’ouvre alors ( figure 3.4 ) et vous demande où enregistrer votre nom de projet et le lieu où vous voulez l’enregistrer.
 
 

Figure 3.4 : Boîte de dialogue pour un nouveau projet







Pour commencer nous allons appeler notre projet essai et nous allons le sauvegarder dans c:\program files\MPLAB. Par la suite vous pouvez choisir le nom de projet que vous voulez mais sachez que le fichier.hex portera le nom du projet.

Cliquez sur OK et une nouvelle fenêtre s’ouvre alors ( figure 3.5 ). Il s’agit de la définition du Projet.
 
 


















Figure 3.5 : Boîte de définition du Projet









Vérifiez que le DEVELOPMENT SETUP est bien MPLAB SIM PIC 16F84 et que le LANGUAGE TOOL SUITE est bien MICROCHIP.
 
 

Dans cette fenêtre vous devez trouver dans la fenêtre PROJECT FILES essai[.hex]
 
 

Avant toutes choses, vous devez indiquer à MPLAB le format du fichier.hex. Pour Cela sélectionnez essai[.hex] et cliquez sur NODE PROPERTIES… Une nouvelle fenêtre apparait alors (figure 3.6)

Vérifiez que le LANGUAGE TOOL est bien MPASM

Pour la programmation du PIC 16F84 choisissez les mêmes options de format que la figure 3.6 et cliquez sur OK

Figure 3.6 : Node Properties

Apres avoir cliquez sur OK, vous revenez sur la fenêtre d’édition de projet (figure 3.5).

Cliquez maintenant sur ADD NODE…. Une fenêtre apparaît alors (figure 3.7) et vous demande le nom et l’endroit du fichier asm.

Figure 3.7 : Ajout de fichier ASM



Tapez le même nom de fichier que le nom du projet. Ici nous appellerons notre fichier essai.asm et nous le laisserons dans c:\program files\MPLAB

Puis cliquez sur OK.

Vous devez revenir sur la fenêtre d’édition de projet et vous devez voir apparaître en dessous de ESSAI [.hex] le fichier ESSAI [.asm] comme sur la figure 3.8.

Figure 3.8 : Boîte de définition du Projet

Cliquez maintenant sur OK pour revenir sur l’espace de travail MPLAB.

Voilà votre projet est maintenant bien définit. Maintenant il vous reste à créer le fichier source essai.asm.
 
 

Normalement vous devez avoir une fenêtre nommée Untitle vide. Si ce n’est pas le cas faîtes FILE > NEW pour en avoir une.

Une fois cette fenêtre obtenue, enregistrez la en faisant FILE > SAVE AS… et appelez la essai.asm en prenant soin de l’enregistrer la où vous l’avez indiqué dans le projet. Pour notre cas il s’agit de C:\program files\MPLAB. (figure 3.9 )

Une fois le nom et le chemin choisis cliquez sur OK.

Figure 3.9 : Enregistrement du fichier source


Utilisez la souris et placez-vous dans la fenêtre pour rentrer votre programme.

Votre programme doit commencer par les lignes suivantes afin de définir le PIC utilisé :

List p=16f84

Include <p16F84.inc>

Un exemple est donné à la fin de ce fascicule.

Après avoir rentré votre programme faîtes FILE > SAVE afin de sauvegarder votre travail.
 
 

Pour assembler votre projet faîtes PROJECT > BUILD ALL. Ceci va lancer l’assembleur MPASM et réaliser le fichier .Hex définit dans votre projet.

Après l’assemblage, un message apparait et normalement vous dit qu’il a été réussi (Figure 3.10). Si ce n’est pas le cas c’est qu’il y a une erreur dans vote fichier source. L’assembleur vous indique où se trouve l’erreur et vous pouvez directement cliquer sur l’erreur pour qu’il vous montre où elle se trouve dans votre fichier source.
 
 






Figure 3.10 : Build successfully


Une fois votre fichier .Hex construit vous pouvez simuler votre programme.

Toutes les commandes de simulation sont dans le menu DEBUG >> RUN.

Pour visualiser vos variables ou vos ports, il faut créer une Watch Windows.

Pour cela il faut aller dans le menu WINDOW >> WATCH WINDOWS >> NEW WATCH WINDOWS… Une fenêtre apparaît alors pour vous demander les variables que vous voulez visualiser.

Par exemple si vous voulez voir la valeur du Port B, sélectionnez portb, faites Properties pour choisir le format (decimal, Hexadecimal ou binaire ), cliquez ensuite sur OK et enfin ADD.

Une fois toutes les variables choisies, vous pouvez faire CLOSE. La fenêtre WATCH_1 vous affiche alors les valeurs des variables choisies.

Pour ajouter une variable dans la Watch Windows, allez dans le menu Window >> Watch Windows >> Add to active Watch Windows.
 
 

PROGRAMMATION DES PICs A l’AIDE DE PICCALL


Une fois votre fichier .Hex réalisé, vous devez lancer PICCA afin de programmer le PICs.

Figure 4.1 : Le Logiciel PICCALL







Ouvrez votre .HEX en allant dans le menu FILE >> OPEN PROGRAMM. (ou F2).

Allez dans c:\Pograms files\MPLAB et choisissez votre fichier .Hex.

Si une message Warning apparait, c’est que dans votre programme vous n’avez pas définit les options du compilateur (Chien de garde, Oscillateur … ).

figure 4.2 : Message Warning

Ceci n’est pas grave puisque vous pouvez définir ces options manuellement en allant dans le menu CONFIG.
 
 

Figure 4.3 : Menu Config

Par défaut, je vous conseille Power Up timer et XT (Oscillation par Quartz) cochés quand au reste laissez le non coché. Une fois cette opération réalisée faites OK.
 
 

Enfin vérifier que les options sont cochées de la façon suivante et que le PIC16F84 est bien sélectionné.

Mettez le PIC 16F84 comme indiqué par PICALL sur le programmateur, alimentez le programmateur (12v) puis faites Program.

LIST P=16F84;f=inhx8m Indique au compilateur le microcontrôleur utilisé

include <p16f84.inc> Spécifie au compilateur les définitions à utiliser

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

(Protection code off, oscillation à quartz, chien de garde off et power_on on)

Définition des variables dans mémoire RAM

count1 equ 0C count1 à l’adresse 0C de la RAM

count2 equ 0D count1 à l’adresse 0D de la RAM

valeura equ 0E valeuraà l’adresse 0E de la RAM

Programme principal

org 0000 Point de départ du programme ou après un Reset

goto debut

org 0005 Adresse de début du programme (0004 est interdit car il

debut s’agit de l’adresse du vecteur interruption )

call init Appelle du sous programme init

reset movlw B'00000000' Mise à zero du port B

movwf PORTB w Þ portB

bsf STATUS,C Mise à 1 de la carry

boucle movf PORTA,w PortA Þ w

movwf valeura w Þ valeura

btfsc valeura,0 Si le bit0 de valeura est à1, fait l’instruction suivante

goto boucle

btfsc valeura,1 Si le bit1 de valeura est à1, fait l’instruction suivante

goto rotg

goto rotd

finrot btfsc valeura,2 Si le bit2 de valeura est à1, fait l’instruction suivante

goto lent

goto rapide

retour btfsc valeura,3 Si le bit3 de valeura est à1, fait l’instruction suivante

goto reset

goto boucle

Sous programme d’initialisation des Ports

init bsf STATUS,RP0 Sélection de la Bank 1

movlw B'00000000' Tout le port B en sortie

movwf TRISB w Þ TRISB

movlw B'00001111' Tout le port A en entrée

movwf TRISA w Þ TRISA

bcf STATUS,RP0 On remet la bank à 0

retlw 00 Retour

Sous programme rotation à gauche

rotg btfsc PORTB,7 Si le bit7 de PORTB est à1, fait l’instruction suivante

goto g

movlw B'11111110' 11111110 Þ w

movwf PORTB w Þ PORTB

goto finrot

g rlf PORTB,1 Rotation de 1 vers la gauche de PORTB

goto finrot

Sous programme rotation à droite

rotd btfsc PORTB,0 Si le bit0 de PORTB est à1, fait l’instruction suivante

goto d

movlw B'01111111' 01111111 Þ w

movwf PORTB w Þ PORTB

goto finrot

d rrf PORTB,1 Rotation de 1 vers la droite de PORTB

goto finrot

Sous programme vitesse lente

lent movlw .300 300 (décimal) Þ w

movwf count1 w Þ count1

goto tempo

Sous programme vitesse rapide

rapide movlw .150 150 (décimal) Þ w

movwf count1 w Þ count1

goto tempo

Sous programme de temporisation

tempo

d1 movlw .250 250 (décimal) Þ w

movwf count2 w Þ count2

d2 decfsz count2,1 Décrémente count2 de 1. Si count2¹ 0 fait l’instruction suivante

goto d2

decfsz count1 Décrémente count1 de 1. Si count1¹ 0 fait l’instruction suivante

goto d1

goto retour

end
 
 

Lexique :

Le langage assembleur est le langage qui traduit le code machine binaire en code lisible par l’utilisateur L’assembleur est un outil qui traduit le code source ( .asm ) en code machine ( .hex ). L’assembleur de Microchip est MPASM Build est une fonction qui recompile tout le fichier source pour une application. L’émulation est un processus qui permet d’exécuter et de tester un programme à l’aide d’une mémoire d’émulateur avant la programmation finale d’un PIC L’émulateur est la machine permettant l’émulation. Le Linkeur est le langage outil qui combine le fichier objet et les librairies afin de créer le code exécutable. Sous MPLAB, il s’agit de MPLINK Le fichier .Hex est un fichier ASCII contenant les adresses et les valeurs nécessaires a la programmation du composant. Ce format est lisible par le programmateur. C’est un composant qui intègre une puce contenant un contrôleur compressé. Généralement, cela comprend un CPU,de la RAM, des Entrées/Sorties, des Ports et un Timer. Un projet est la configuration du fichier source et des instructions afin de créer le fichier objet ou le fichier .Hex
 
 

 retour sommaire