>
Débuter avec un microcontrôleur PIC

Le schéma et le cablâge

Dans cet exemple je choisis un microcontrôleur 8 bits de Microchip un PIC12F629. Il possède 6 entrées/sorties numériques, 1 Koctets de mémoire flash et il se loge dans un boitier DIL à 8 broches.

Le but est de programmer ce microcontrôleur pour faire clignoter une LED en utilisant le basic ou le C. Un premier programme qui permettra après de passer à d'autres plus complexes ultérieurement.

Le pic sera câblé comme sur le schéma structurel ci-contre : Il est alimenté en 5 V ( attention il ne supporte guère plus!), un condensateur de 100 nF assure le découplage de l'alimentation, la broche 4 (MCLR) est mise au + 5V car c'est la broche de remise à zéro du microcontrôleur à l'état bas.
Sur la sortie 5 (GP2) une LED et sa résistance série sont montées. Les autres sorties GP0 à GP5 peuvent être utilisées de la même façon. Attention toutefois à ne pas surcharger le microcontrôleur ( 25 mA maxi pour les sorties).

On utilise l'oscillateur interne du PIC à 4 Mhz, on se passe d'un oscillateur à quartz, ce qui simplifie le schéma.

La réalisation du montage peut se faire sur une boite de connexions comme sur la photo ci-contre ou sur une plaquette d'expérimentation.

La programmation en basic

Programmer un microcontrôleur en basic est de loin la méthode la plus simple. Ici pas d'assembleur, quelques lignes de programmes suffisent.

Il faut pour cela un environnement de développement (IDE) et un programmateur pour PIC :

- Le programmateur est le PIC-01 disponible chez Conrad, mais tout autre programmateur convient.

- L'IDE est MikroBasic de Mikroelectronika en version de démonstration, la limitation de code à 2Koctets suffit largement pour cette application.

Voici le programme

Quelques commentaires supplémentaires :

' représente des commentaires et ne sont pas pris en compte pour la compilation. Le programme commence à main :

TRISIO =0 met les broches GP0 à GP5 en sorties

Do Loop until est une boucle qui se répète sans fin, car la condition 0 = 1 ne sera jamais vraie.
Dans la boucle, toute les 0,5 seconde on change l'état des sorties, avec la fonction delay_ms ( délai d'attente en mS)

$FF est de l'héxadécimal et égal à 255 en décimal, ce qui met tout le Port GP à 1.

Programme au format Texte

L'utilisation de MikroBasic est très simple, il suffit de choisir le PIC et son horloge, écrire les lignes de code et de les compiler.

La programmation en C

Programmer un microcontrôleur en C est un peu plus compliqué. Il faut bien respecter la syntaxe. Des fichiers complémentaires sont à charger.

L'environnement de développement (IDE) est celui du constructeur, MPLAB de Microchip et le programmateur le PICKIT2 que l'on trouve pour pas cher, mais tout autre programmateur convient.

Voici le programme

 

Quelques commentaires supplémentaires :

// représente des commentaires et ne sont pas pris en compte pour la compilation. Le programme commence à void main ()

{} encadre les instuctions qui doivent se terminer par un ; (point virgule)

#include inclus les fichiers d'entête pic12rf675.h bibliothèque pour ce microcontrôleur et delay.h fichier pour la temporisation en µs. delay.c est nécessaire pour la fonction externe DelayMs() : temporisation en Ms.

TRISIO donne la direction du Port GP, ici en sortie

while (1) est une boucle sans fin car la valeur 1 ne peut être vraie.

Programme au format Texte

La bibliothèque pic12rf675.h convient car le pic12F675 est le même que le PIC12F629 avec des entrées analogiques en plus.

L'utilisation de MLAB est moins aisée que MikroBasic, car il faut inclure dans le projet des fichiers d'entête et de programme. Sans ces fichiers le programme ne peut être compilé. Voici un fichier d'aide pour configurer ce projet avec MPLAB.

Créer un projet en C sous MPLAB V8

Programmer le microcontrôleur

Il faut un programmateur et son logiciel. On utilise le fichier au format Intel (.hex) créé par le compilateur.

Tous les fichiers sont disponibles pour les 2 IDE.

Fichiers Mikrobasic
Fichiers MPLAB