DUT GEII 1 Prof. A. RAIHANI [email protected] Page 1
Travaux Pratiques PIC
I. Description du matériel utilisé:
Dans ce TP, on se sert du Kit "PIC Controller Board" pour réaliser les différentes manipulations. la face avant d'un tel kit se présent comme suit:
1: Mains connection 2: DOT Matrix display 3: 7- Segment-display 4: DC motor
5: Jacks Fields 6: GND
7: Fastening screws 8: Switches
9: Analog instrument 10: H/L jacks 11: Adapter Field
12: Switch RUN / STDBY / PROG 13: RESET Button
14: IC socket (18-pins) 15: IC socket (28-pins) 16: RS 232 Interface 17: 5V OUTPUT
18: Slot for USB-PICkit2 19: Port A, B und C
20: Temperature Sensor (PTC) 21: LCD Display
La programmation du PIC est assurée par un kit de développement USB "PICkit 2 DEVELOPMENT PROGRAMMER/DEBUGGER":
1: Status LEDs 2: Push Button
3: Lanyard Connection 4: USB Port Connection 5: Pin 1 Marker
6: Programming Connector
DUT GEII 1 Prof. A. RAIHANI [email protected] Page 2
II. Les outils de développement
Pour la réalisation des différents TPs, on utilise: (i) l’environnement de développement intégré MPLAB fournit gratuitement par Microchip (MPLAB Integrated Development Environment "MPLAB-IDE") et le kit de développement "PICkit 2 Development Programmer/Debugger" pour la programmation du PIC.
1. MPLAB-IDE:
MPLAB est un environnement de développement qui contient tous les outils nécessaires à la mise au point d'une application avec un cœur de microcontrôleur PIC.
Il contient un :
• Editeur de texte interactif,
• Compilateur assembleur (et C),
• Simulateur.
Un tel environnement est à télécharger et installer gratuitement à partir du site officiel de MICROCHIP www.microship.com
Après installation de MPLAB, lancer MPLAB et faire la configuration suivante:
• Configure Select Device PIC16F876A Création d'un projet:
• Project Project Wizard suivant
• Choisissez le PIC à utiliser (par défaut celui choisi dans l'étape configure) suivant
• Choisissez le langage de programmation. Dans notre cas on va programmer en assembleur donc choisissez le MPASM Assembler suivant
• Choisissez le Nom et l’emplacement du projet. De préférence, créez un nouveau dossier qui va contenir tout vos projets suivant
Dans notre cas, on va nommer notre projet "MyFirstProject" à placer dans le répertoire "TP PIC" dans le bureau.
...\Desktop\TP PIC \ MyFirstProject
• Ajoutez ou non les fichiers que vous allez utiliser dans votre projet suivant
• Terminez la création Terminer Edition d'un fichier:
On peut utiliser n'importe quel éditeur de texte pour éditer un fichier .asm Avec l'éditeur du MPLAB:
• File New : ouvre la fenêtre d'édition
• Taper le fichier en respectant la syntaxe de l'éditeur
• sauvez votre fichier dans le répertoire de travail (par défaut extension .asm) Dans notre cas: Exemple.asm
Insertion du fichier dans le projet:
• Bouton droit sur Source File Add File
• Choisissez le fichier "Exemple.asm" déjà crée
DUT GEII 1 Prof. A. RAIHANI [email protected] Page 3
Compiler un programme et le simuler
• Compiler: Project Build all ou Make
Corriger les erreurs éventuelles (consulter le fichier Exemple.lst) et refaire la compilation.
Une fois la compilation réussie (BUILD SUCCEEDED), le fichier Exemple.hex sera généré.
C'est le fichier objet qui sera à exécuter.
• Simuler son programme:
o Debugger Select Tool MPLAB SIM
o Debugger Run ou Animate ou Step into ou Step over ...
2. PICkit 2 Programmer Application:
Après avoir réalisé les différentes connexions KIT-PC via le PICkit2, on lance l'application PICkit2.
C'est une application qui sert à programmer l'EEPROM du PIC utilisé (16F84A ou 16F876A).
Une fois lancé, une détection automatique du PIC est effectuée. Dans le cas où l'identification du PIC n'est pas faite, on la réalise manuellement à partir de Device Family
• Importer un fichier .hex:
File Import Hex Fichier .hex (dans notre cas Exemple.hex)
Une fois l'import est réalisé correctement, un message le confirme:
"Hex File sucessfully imported" et le fichier apparaît dans la fenêtre
"Program Memory".
• Transferer le programme vers le PIC:
Attention: Le Switch 12 du Kit "PIC Controller Board" doit être en position PROG
Bouton Write
Une fois la programmation réussie, le message "Programming Successful" est affiché.
3. Exécution du programme:
Faire passer le Switch 12 du Kit "PIC Controller Board" sur la position RUN.
DUT GEII 1 Prof. A. RAIHANI [email protected] Page 4
TP: Les Ports d'entrées-sorties
I. Rappels:
1. Définitions:
Le PIC 16F876 dispose de 3 PORTS (A,B et C). Tous les ports d’entrées-sorties (I/O) sont bidirectionnels.
La plupart de ces lignes ont une double fonction.
• Le PORT A (5 bits) I/O pure et/ou convertisseur analogique et/ou TIMER 0.
La broche RA4 du PORT A (Entrée du TIMER 0 T0CKI) est du type DRAIN OUVERT.
• Le PORT B (8 bits) I/O pure et/ou programmation in situ ICSP/ICD (Broche RB3/PGM, RB6/PGC et RB7/PGD) et l’entrée d’interruption externe RB0/INT.
Remarque : Si le PIC est utilisé en mode ICSP/ICD il faut laisser libre les broches RB3/PGM, RB6/PGC ainsi que RB7/PGD) et les configurer en entrée.
• Le PORT C (8 bits) I/O pure et/ou TIMER 1 et/ou SPI/I2C et/ou USART.
Toutes les lignes de PORTs peuvent fournir un courant de 25mA par ligne de PORT. Une limite de 40mA par PORT doit être respectée pour des questions de dissipation.
2. Configuration des PORTx , les registres PORTx et TRISx.
Tous les ports sont pilotés par deux registres :
• Le registre de PORTx, si le PORT x ou certaines lignes de PORT X sont configurées en sortie, ce registre détermine l’état logique des sorties.
• Le registre TRISx, c’est le registre de direction. Il détermine si le PORTx ou certaines lignes de port sont en entrée ou en sortie. L’écriture d’un 1 logique correspond à une entrée (1 comme Input) et l’écriture d’un 0 logique correspond à une sortie (0 comme Output).
Remarque :
- Au RESET toutes les lignes de ports sont configurées en entrées.
- Les registres TRISx appartiennent à la Bank1 des SFR.
- Lors de l’initialisation du μC il ne faut pas oublier de changer de page mémoire pour les configurer.
DUT GEII 1 Prof. A. RAIHANI [email protected] Page 5
TP 1
Affichage 7-Segments
Il s'agit, dans ce TP, de commander l'afficheur 7-segments (figure 1) par le port B du PIC 16F876A (figure 2).
Figure 1 Figure 2
Le câblage est le suivant:
RB0 a - RB1 b - RB2 c - RB3 d - RB4 e - RB5 f - RB6 g- RB7 dp
1. Déterminer quel niveau logique allume les différents segments de l'afficheur.
2. Remplir le tableau suivant:
Digit a b c d e f g Nombre Hex
0 1 2 3 4 5 6 7 8 9 A B C D E F
3. Ecrire le programme pour lire le contenu du tableau (cf.2) et l'affiche sur l'afficheur 7-segments via le PORT B.
Important : Prévoir une temporisation entre l'affichage de deux caractères.
4. Valider le programme sur MPLAB et le tester sur le KIT.