Académique Documents
Professionnel Documents
Culture Documents
I. Objectif du TP
L’objectif de ce TP est de se familiariser avec l’environnement MPLAB, la création d’un projet, la création,
l’assemblage et la simulation d’un programme pour le PIC16F84. Dans l’annexe B1, nous avons résumé les étapes à
suivre pour la création d’un fichier (.asm) spécialement pour ce type de PIC.
II. MPLAB-IDE
II.1. L'environnement MPLAB
MPLAB est l'environnement de développement intégré Assembleur de Microchip. C’est un environnement de
développement performant, téléchargeable gratuitement à partir de l'adresse suivante : http://www.microchip.com. Il
permet d'éditer le code source (sous la forme d'un fichier texte avec l’extension .asm), de le simuler et de le débugger.
Le compilateur fournit le code objet (fichier avec extension .HEX)
Dans ce TP, nous utilisons MPLAB6.6. La première chose à faire est d’aller chercher cette version sur le site de
Microchip : http://www.Microchip.com (section «archives»). Nous pouvons également utiliser une autre version (5.x,
6.x, 7.x ou bien 8.x).
Remarque : Créez un répertoire dans un endroit où vous rangez vos data et appelez-le, par exemple TP_PIC_16F84.
II.2. Création d’un premier projet
Le logiciel MPLAB-IDE peut être lancé à partir du menu démarrer ou à partir de l’icône affiché sur le bureau. Un écran
vide avec menu et barres d’outils est affiché après quelques instants. S’il y a des fenêtres ouvertes dans le bureau de
MPLAB6.6, fermez-les toutes. Un projet dans MPLAB-IDE permet de mémoriser tout l’environnement de travail avec
la possibilité de retrouver cet environnement après chaque redémarrage. MPLAB6.6 dispose aussi d’un «Wizard» qui
permet la création automatiquement de nouveaux projets. Les étapes suivantes résument les démarches à suivre pour la
création, la simulation et l’assemblage d’un programme assembleur pour un type défini de PIC :
1. Allez dans le menu « Project » et sélectionnez « new… ». La fenêtre qui s’ouvre vous permet d’introduire le nom
du projet et le répertoire de travail du dit projet. Pour le répertoire, vous disposez du bouton « browser » qui vous
permet de pointer sur le bon répertoire (le répertoire TP_PIC_16F84 par exemple).
2. Proposer un nom pour votre nouveau premier projet (TP04_A par exemple) et choisissez le répertoire de travail.
3. Cliquer sur le bouton <OK> pressé, une nouvelle fenêtre apparaît dans laquelle nous pouvons remarquer le nom
du projet (TP4_A.mcp), ainsi que l’emplacement des fichiers liés à celui-ci.
4. Commencer par la précision des paramètres importants de votre projet. Sélectionner le menu «configure→select
device», une fenêtre apparaît pour vous proposer le choix du PIC. Sélectionnez le PIC16F84 comme exemple.
La fenêtre vous montre alors, à l’aide de leds vertes ou rouges quels outils sont supportés par le PIC sélectionné.
Vous voyez donc que le simulateur intégré (MPLAB SIM) fonctionne avec ce PIC, et ainsi de même pour les
autres outils de développement disponibles chez Microchip. Une fois cliqué <OK>, la fenêtre se referme.
5. Nous allons maintenant préciser quel langage nous allons utiliser, sachant que nous travaillons en langage
d’assemblage, mais que différents compilateurs sont proposés par Microchip et d’autres sociétés. Sélectionnez le
menu «project → Select langage toolsuite». Dans la fenêtre qui s’ouvre, sélectionnez dans le menu déroulant :
«Microchip MPASM toolsuite». MPASM est en effet l’assembleur par défaut de Microchip. Dans les fenêtres
inférieures, vous voyez le nom des exécutables utilisés par MPASM. Cliquez sur <OK> pour fermer la fenêtre.
6. L’étape suivante consiste à ajouter le fichier .asm dans la fenêtre «TPA_A.mcw». Un fichier type (TP4_A.asm) est
donné dans l’annexe B2. Ce fichier contient le minimum d’information pour commencer un projet en utilisant le
PIC16F84. De préférence de copier ce fichier dans le répertoire de travail.
Pour ajouter ce fichier dans le projet, cliquez avec le bouton droit sur «source files» ensuite sélectionnez «Add».
Une fois sélectionné le fichier, le nom de celui-ci apparaît dans l’arborescence. Pour ouvrir ce fichier, la méthode
la plus simple est de double-cliquer sur son nom ou bien en utilisant la méthode classique «File→Open» en
indiquant leur emplacement exact dans l’arborescence.
7. Pour préciser le système de numération utilisé par défaut, sélectionnez le menu : «Project → build options →
project». Une fenêtre s’ouvre. Sélectionnez l’onglet «MPASM assembler». Cochez la case « Decimal ». Cette
option fait que tout nombre sans préfixe sera considéré comme décimal.
8. Il nous reste de faire des changements dans le programme model, suivant nos besoins et suivant l’application à
programmer. Ensuite, le MPASM serra prêt à assembler votre premier programme.
III. Réalisation d’un premier programme ASM
III.1. Création d’un programme : Nous utilisons le code assembleur d’un exercice donné dans le TD03 du même
module. Taper ce code dans l’éditeur de texte du fichier model.
#include <p16F84.inc> ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _HS_OSC
#DEFINE al 0x0c
#DEFINE bl 0x0d
#DEFINE cl 0x0e
#DEFINE ah 0x0f
#DEFINE bh 0x10
#DEFINE ch 0x11
main:
movlw 0xFF;
movwf al ;
movlw 0x01;
movwf bl ;
movlw 0x45;
movwf ah ;
movlw 0x85;
movwf bh ;
call add16bits
goto main
END
Compteur : …………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
Résultat final : ……………………………………………………………………………………………………………
…………………………………………………………………………………………………………..
C1 U1
16 17
OSC1/CLKIN RA0
15 18 R3
OSC2/CLKOUT RA1
1nF 1
RA2
X1 4
MCLR RA3
2
330
1Mhz 3
C2 RA4/T0CKI
6
RB0/INT
7 R4
RB1
1nF 8
RB2
9
RB3 330
10
RB4
11
RB5
12
RB6
13
RB7
PIC16F84A
Etape 2 : Sous l’environnement du logiciel MPLAB, éditer le programme .asm de la figure suivante. Ce programme est
réalisé spécialement pour l’application à base du PIC16F84.
100n
U1
13 33
OSC1/CLKIN RB0/INT
X1 14
OSC2/CLKOUT RB1
34
CRYSTAL RB2
35 D1 D2 D3
2 36 LED-RED LED-RED LED-RED
RA0/AN0 RB3/PGM
3 37
C2 RA1/AN1 RB4
4 38
RA2/AN2/VREF-/CVREF RB5
5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
100n 7
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9
RE1/AN6/WR RC2/CCP1
17 D4 D5 D6
10 18 LED-RED LED-RED LED-RED
RE2/AN7/CS RC3/SCK/SCL
23
RC4/SDI/SDA
1 24
MCLR/Vpp/THV RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
RD1/PSP1
20 D7 D8 D9
21 LED-RED LED-RED LED-RED
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A
R8 R6 R7
1k 1k 1k
C1 U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1nF 1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
X1 2
RA0/AN0 RB4
37
CRYSTAL 3 38
RA1/AN1 RB5
4 39
C2 RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI D1
R9 7
RA5/AN4/SS RC0/T1OSO/T1CKI
15 R1
1nF 1k 16
RC1/T1OSI/CCP2
8 17 100
RE0/AN5/RD RC2/CCP1
9 18 LED-RED
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
D2
RC6/TX/CK R2
26
RC7/RX/DT
100
19 LED-RED
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
D3
RD3/PSP3 R3
27
RD4/PSP4
28 100
RD5/PSP5
29 LED-RED
RD6/PSP6
30
RD7/PSP7
PIC16F877
D4
R4
100
LED-RED
D5
R5
100
LED-RED
I. L’application à commander
Dans ce TP, nous allons refaire le même travail que le TP02 sauf que nous utilisons dans ce cas un microcontrôleur de
type PIC16F84. L’application est composée de 12 lampes tri-color (rouge, jaune et vert) contrôlé par les 12 bits (des
sorties de votre choix du PIC16F84). Si le bit correspondant est égal à 1 la lampe est allumée. En plus des 12 lampes,
nous utilisons un bit en entrée (un interrupteur commandé par un policier) pour désactiver le système. Dans ce cas,
uniquement les 4 lampes « jaune » qui sont activées.
L’application est le diagramme de fonctionnement sont schématisés sur la figure suivante :
R1
J1 30s 10s 20s 10s
R3
V3
J3
V1
R2
J2
R4
V4
J4
V2
1 2 3
t
3 2
2 2
1.2. Décomposition en série de Fourier
Théoriquement, le point milieu de la source de tension est fictif. Les commandes des interrupteurs d'une même branche
sont disjointes. La décomposition en série de Fourier donne
Avec n désignant le rang de l’harmonique, k désignant le nombre d’angles et Xn représente l’amplitude du signal.
Le calcul des angles de commutation des interrupteurs doit répondre à certains critères portant sur le spectre fréquentiel
de l'onde résultante. Ces séquences sont alors mémorisées et restituées de manière cyclique pour assurer la commande
des interrupteurs. Les critères usuellement retenus sont : l’élimination d'harmoniques de rang spécifié, l’élimination
d'harmoniques dans une bande de fréquence spécifiée, et la minimisation d’un critère d'harmoniques global. La
modulation est caractérisée par angles électriques notés . Ces angles permettent : soit d'annuler harmoniques, soit
d'annuler harmoniques et de fixer L'amplitude de la fondamentale.
II. Travail demandé
Soit le montage de la figure suivante proposé pour la commande d’un onduleur monophasé en utilisant une PIC16F877.
Q3
A B2 IRFP054N
12V
R1
B
U111 100 Q1
C R3 IRFP054N
13 33 D1
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35 D 100
MCLR/Vpp/THV RB2 A
36
RB3/PGM 1N4007
2 37
RA0/AN0 RB4 B
3 38 D2
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC U2 C
5 40 3
C111 RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI D 1N4007
7
RA5/AN4/SS RC0/T1OSO/T1CKI
15 10
HIN VC VB
6 C1 3 U1
16 470nF
22pF 8
RC1/T1OSI/CCP2
17 11 7 C2
RE0/AN5/RD RC2/CCP1 SD HO 10 6 470nF
X19 RE1/AN6/WR 18 5 HIN VC VB
10
RC3/SCK/SCL
23 U3:A 12
VS
1 B1
C211 CRYSTAL
RE2/AN7/CS RC4/SDI/SDA LIN COM LO 11 7
24 1 SD HO 12V
RC5/SDO 5
25 3 VS
RC6/TX/CK 12 1
26 2 2 IR2112 LIN COM LO
RC7/RX/DT
22pF
19 4093
RD0/PSP0 2 IR2112
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29 Q4
RD6/PSP6
30
RD7/PSP7 R2 IRFP054N
PIC16F877 Q2
100 IRFP054N
R4
100