Vous êtes sur la page 1sur 11

Mise en route du compilateur MPLAB XC8 - LED clignotant

1 Programmation MPLAB XC8


1.1 Registres d'criture
1.1.1 Ecriture Bit par bit:
1.1.2 criture au Registre entier
1.2 Code - LED clignotant
2 Schma de circuit
3.0.1 Oscillateur de cristal
3.0.2 PIC 16F877A Microcontrleur
3.0.3 PIC programmateur USB PICkit 2

Dans ce tutoriel, nous allons apprendre clignoter une LED avec un microcontrleur PIC l'aide du
compilateur MPAB XC8. Rcemment Microchip a publi une srie d'outils de dveloppement, y compris
MPLAB X IDE et MPAB XC Compilers. MPLAB X IDE est un logiciel qui fonctionne sur un ordinateur destin
dvelopper des applications pour les microcontrleurs Microchip et les processeurs de signal numrique
DSP.
Il peut tre utilis avec les systmes d'exploitation Windows, Mac et Linux. Il s'appelle un environnement de
dveloppement intgr car il fournit des installations compltes aux dveloppeurs. Contrairement aux
versions prcdentes de MPLAB, MPLAB X IDE est bas sur une open source l'IDE NetBeans par Oracle.
Les compilateurs MPLAB XC sont des solutions gnrales pour tous les microcontrleurs microchip PIC et
peuvent tre utiliss pour tout projet. Il remplace tous les compilateurs MPLAB C et Hi-Tech C. Microchip
recommande chaque dveloppeur d'utiliser les compilateurs MPLAB XC. Ces compilateurs s'intgrent avec
MPLAB X IDE pour fournir une interface graphique intgrale.
Dans ce projet d'exemple, nous allons clignoter une LED l'aide du microcontrleur PIC 16F877A. Pour cela,
nous allons utiliser MPLAB X IDE et le compilateur MPLAB XC8. Vous pouvez tlcharger MPLAB X IDE et XC8
Compiler partir des pages respectives.

Vous devez installer Java avant d'installer MPLAB X.

Tlchargez et installez MPLAB X IDE.


Tlchargez et installez le compilateur MPLAB XC8.
Ouvrez MPLAB X IDE.
Cliquez sur File >> New Project

Slectionnez Microchip Embedded >> Standalone Project


Cliquez sur Suivant
Slectionnez Family et Device.
Cliquez sur Suivant

Slectionnez votre outil matriel. Ne vous inquitez pas si votre programmeur n'est pas pris
en charge. Vous pouvez directement crerr le fichier hexagonal aprs la construction du
projet.
Cliquez sur Suivant
Slectionnez le Compilateur XC8.
Cliquez sur Suivant

Entrez le nom du projet, l'emplacement du projet, etc.


Cliquez sur Terminer
Cliquez avec le bouton droit sur Source Files dans l'arborescence du projet.

Slectionnez New >> C Main File


Donner le nom et l'emplacement du fichier
Le nouveau fichier source est cr, vous pouvez ajouter un code ici.

Programmation MPLAB XC8


Les broches d'entre sorties du microcontrleur PIC sont divises en diffrents PORTS
contenant un groupe de broches GPIO (General Purpose Input Output).
Puisque PIC 16F877A est un microcontrleur 8 bits, chaque PORT contient 8 broches
d'entre sortie.
Dans les microcontrleurs 16F, chaque port est associ deux registres: TRIS et PORT. Par
exemple: TRISB, PORTB, TRISD, PORTD.
TRIS signifie Tri-State, il dtermine la direction de chaque broche GPIO. Le 1 logique un
bit particulier du registre TRIS rend la broche correspondante en entre tandis que la logique
0 un bit particulier rend la broche correspondante en sortie.
Toutes les entres seront dans l'tat Hi-Impedance.
Le registre PORT est utilis pour lire les donnes ou crire des donnes sur les broches de
sortie d'entre.
Pour une broche en sortie (le bit TRIS est 0), la logique 1 au registre PORT rend la broche
correspondante au niveau logique haut (VDD) et Logic 0 dans le registre PORT rend la
broche correspondante au niveau logique bas (VSS).

Ecriture aux registres

Vous pouvez crire sur les registres PORT et TRIS entirement ou bit par bit.

Ecriture Bit par bit:

TRISC0 = 1; //Rend le 0th bit du PORTC en entre


TRISC5 = 0; //Rend le 5th bit du PORTC en sortie
RB3 = 1; // Rend le 3th bit du PORTB au niveau logique haut
RB7 = 0; // Rend le 7th bit du PORTB au niveau logique bas

Ecriture dur le registre entier

Vous devez tre familier avec les concepts suivants de programmation C.

Un nombre avec un prfixe '0b' indique un nombre binaire.


Un nombre avec un prfixe '0' indique un nombre octal.
Un nombre avec un prfixe '0x' indique un nombre hexadcimal.
Un nombre sans prfixe est un nombre dcimal.
Voyons quelques exemples ...
Dcimal Binaire Octal Hexadcimal
0 0b00000000 00 0x00
1 0b00000001 01 0x01
128 0b10000000 0200 0x80
255 0b11111111 0377 0xFF
PORTB=0xFF ; //Rend toutes les broches du PORTB au niveau logique haut
TRISC=0x00 ; //Rend toutes les broches du PORTC en sortie
PORTD=128 ; //Rend le 7eme bit du PORTD au niveau logique haut.

Code - LED clignotant

#define _XTAL_FREQ 8000000

#include <xc.h>

// BEGIN CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = ON // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming En
able bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code pro
tection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off
; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off
)
//END CONFIG

int main()
{
TRISB0 = 0; //RB0 as Output PIN
while(1)
{
RB0 = 1; // LED ON
__delay_ms(1000); // 1 Second Delay
RB0 = 0; // LED OFF
__delay_ms(1000); // 1 Second Delay
}
return 0;
}

La premire instruction #define _XTAL_FREQ 8000000 dfinit la frquence d'horloge du


microcontrleur qui sert calculer les retards dans la fonction __delay_ms (). La deuxime
dclaration #include <xc.h> comprend le fichier d'en-tte xc.h qui contient la dfinition de la
fonction __delay_ms () et TRIS, les registres PORT.
La suite est #pragma config directives, qui est utilis pour indiquer au compilateur de dfinir
des bits de configuration du Microcontroller PIC. Vous pouvez le gnrer en utilisant l'IDE
MPLAB comme suit.
Aller la fentre Window >> PIC Memory Views >> Configuration Bits
Vous pouvez slectionner la configuration au bas de l'IDE comme indiqu ci-dessous

Cliquez Generate Source Code to Output


Vous pouvez copier coller simplement ce code gnr l'diteur de code.
Ensuite, entrez le code restant pour le clignotement de la LED.
Construire le projet (build the project)

Le fichier .hex sera gnr dans l'emplacement de votre dossier de projet >> dist >> default
>> production

Schma de circuit
VDD et VSS du microcontrleur PIC sont connects + 5V et GND respectivement.
L'oscillateur cristaux de 8MHz est utilis pour fournir l'horloge ncessaire pour le
fonctionnement du microcontrleur. Les condensateurs 22pF sont utiliss pour stabiliser
l'horloge gnre par l'oscillateur cristaux liquides. Une LED est connecte RBO (broche
33) via une rsistance de 470 pour limiter le courant.