Vous êtes sur la page 1sur 12

PREMIERS PAS AVEC UN PIC

Sommaire
Remerciements Prambule Quest-ce quun PIC ? Pourquoi sintresser aux PIC ? Nos objectifs Ralisation guide dune application La carte de programmation JDM Programmer Le logiciel de programmation IC-Prog La carte application Mmo PIC Ouf ! Ca marche ! Conception et ralisation de notre propre application Rappel de lobjectif Lexistant La modification envisage La nouvelle version de la carte imprime Le logiciel de dveloppement BASIC F84 Notre programme BASIC De la compilation au tlchargement Les essais et les dboires Ca marche enfin ! Nos projets futurs

Premiers pas avec un PIC

07/06/2002

Page 1

Remerciements Je tiens remercier avant tout les lves avec lesquels jai fait quipe pour mener bien ce projet : Jean-Franois Fvrier, Jrmy Lefillastre, Johann Marie, David Pennec et Benot Sorgues. Je voudrais aussi remercier Alain Reboux, auteur du livre sur lequel nous nous sommes appuys pour raliser notre objectif de conception. Je ne le remercie pas pour avoir crit son livre ; je le flicite plutt. Mais je le remercie pour la disponibilit dont il fait preuve dans les changes par ml. Je ne sais pas sil y a beaucoup dauteurs comme lui qui assurent une sorte de service aprs-vente en direct avec ses lecteurs. Merci aussi Yannick BR et Ludovic LE MOIGNE, professeurs dlectronique en STI Electronique au lyce Alexis de Tocqueville Cherbourg, pour nous avoir fourni le support de notre deuxime objectif. Prambule Nous avons men ce projet dans le cadre des heures alloues aux PPCP (Projets Pluridisciplinaires Caractre Pdagogique) en 2me anne de formation au BEP des Mtiers de lElectronique. Seuls quelques lves se sont impliqus dans ce projet initi par mes soins. Quest-ce quun PIC ? Un PIC (Programmable Intelligent Chip) est un microcontrleur conu pour ncessiter un minimum de composants annexes pour fonctionner. Pourquoi sintresser aux PIC ? Tant quun lve na pas compris quun microcontrleur est conu pour fonctionner de faon autonome au sein dune application, il na rien compris aux microcontrleurs. Or, le support que nous utilisons habituellement pour tudier la logique programme est un systme de dveloppement professionnel performant et complexe. Il faut alors une bonne dose dimagination un lve, et mme un professeur, pour transposer par la pense le microcontrleur et son programme dans un objet rel. Limaginer, cest bien ; le voir, cest mieux. Les PIC sont faciles, matriellement, mettre en uvre. Pas de support PLCC. Le PIC que nous avons choisi est sans doute le plus connu. Il sagit du PIC16F84 de MICROCHIP. Il est mont sur un support DIL18. Mais il existe des PIC 8 broches ! Les principaux logiciels de dveloppement sont gratuits. La carte de programmation est ridiculement simple. Enfin, pour quelques units deuros, le PIC choisi est programmable environ 1000 fois ! Il y a de quoi faire. Nos objectifs Nous nous sommes fixs deux objectifs. Le deuxime tant subordonn la russite du premier. Premier objectif : Raliser, de faon guide, une application modeste conue autour du PIC16F84. Lapplication que nous avons choisie est celle prsente par la revue Electronique Pratique dans son numro 258. Il sagit dun jeu appel Mmo PIC. Lintrt ludique est minime puisquil sagit de mmoriser et de reproduire une srie dallumages de LED accompagns dun son, laide de boutons poussoirs.

Premiers pas avec un PIC

07/06/2002

Page 2

Mais la carte ainsi ralise nous permettait ensuite de nous en servir comme carte de dveloppement pour dautres applications car elle contient 4 boutons poussoirs, 4 LED et un buzzer ; ce qui correspond parfaitement aux besoins du deuxime objectif. Deuxime objectif : Remplacer une carte lectronique contenant des composants non programmables (logique classique, transistors) par une carte base de PIC16F84 et qui remplirait, videmment, les mmes fonctions. Nous avons choisi une carte que nous avons tudie en tout dbut danne scolaire : La carte de gestion du niveau deau pour lobjet servomoteur de commande de pompe . Il sagit dun thme de Bac STI Electronique dont les parties commande et oprative ont t dveloppes et ralises par Yannick BRE et Ludovic LE MOIGNE. Vous pouvez retrouver ce thme complet sur le centre de ressources Gnie Electrique de lAcadmie de Caen www.discip.crdp.ac-caen.fr/crgelec/ Ralisation guide dune application La carte de programmation JDM Programmer Dans la revue numro 260 de Electronique Pratique, nous avons trouv les plans dune carte de programmation (JDM Programmer) extrmement simple que lon peut aussi trouver un peu partout sur Internet. Gros avantage : Cette carte est alimente par la liaison srie qui le raccorde lordinateur. Pas dalimentation prvoir donc.

Le logiciel de programmation IC-Prog Une fois le PIC install sur sa carte de programmation et le cble de transfert reli un des ports srie de lordinateur, il faut utiliser un logiciel de programmation pour raliser lopration. Le logiciel IC-Prog, disponible gratuitement sur www.ic-prog.com remplit parfaitement cette fonction. La fentre ci-dessous apparat la premire fois quon utilise le logiciel. On peut ensuite la faire rapparatre tout moment en cliquant sur loutil Hardware.

Premiers pas avec un PIC

07/06/2002

Page 3

Il faut bien entendu slectionner JDM Programmer dans la liste droulante et choisir le port srie utilis. Le paramtre I/O Delay permet de dterminer la vitesse de transfert. La fentre principale ressemble celle-ci :

Attention ! Si on nutilise pas le chien de garde du PIC, il faut dsactiver celui-ci en retirant loption WDT ( droite de la fentre) avant de lancer la programmation. Nous avons pass normment de temps comprendre cela car IC-Prog vous remet cette option par dfaut chaque fois que vous ouvrez un nouveau fichier. La carte application Mmo PIC

Comme dj expliqu plus haut, cette petite application se trouve dcrite tout fait convenablement dans le numro 258 dElectronique Pratique. Attention bien choisir un buzzer de type piezo. Cest le seul type de buzzer qui vous permet de jouer les notes que vous souhaitez.

Premiers pas avec un PIC

07/06/2002

Page 4

Le programme assembl, cest--dire prt tre ouvert par IC-Prog et tlcharg dans le PIC, se trouve sur le site Internet de la revue www.eprat.com Ouf ! Ca marche ! Aprs avoir insr tous les composants, nous avons bien entendu procd aux vrifications dusage en suivant la lettre notre fiche qualit maison . Aprs avoir tlcharg le programme dans le PIC et avoir vrifi son contenu en utilisant loutil Read All de IC-Prog, nous avons plac le PIC sur la carte Mmo PIC. Nous conseillons vivement dutiliser une pince extraire et insrer les composants ; sinon, les broches du PIC risquent de rendre lme avant dtre arriv au bout de la mise au point. Aprs les dboires lis la mconnaissance de loption chien de garde (voir plus haut), nous sommes arrivs faire tourner cette application convenablement. Ouf ! Et quel bonheur de voir un si petit composant commander au doigt et lil quelques LED et un buzzer sans autres composants que des rsistances et des condensateurs. Conception et ralisation de notre propre application Le premier objectif ne consistait somme toute qu reproduire ce que dautres ont conu et mis au point. Nous navons notamment pas vu une ligne de programme. Pour mener bien le deuxime objectif, nous allions tre obligs de mettre les mains dans le cambouis Rappel de lobjectif Remplacer une carte lectronique que nous avons tudie et que nous connaissons bien par une autre carte lectronique conue autour du PIC16F84. Le programme nexistant pas, il fallait bien entendu le concevoir lui aussi. Lexistant Il nest pas question ici de redfinir lobjet puisque cela a dj t fait par Yannick BR et Ludovic LE MOIGNE. Nous rappelons que leurs documents sont en libre accs sur le centre de ressources gnie lectrique de lAcadmie de Caen. Nous nous contenterons de donner des complments utiles la comprhension de notre travail. Tout dabord une photo de lensemble de lobjet o on distingue les 4 niveaux deau dtects par les 4 capteurs respectifs, ainsi que les cartes lectroniques, droite. La carte remplacer est celle qui est verticale devant.

Premiers pas avec un PIC

07/06/2002

Page 5

Lalgorigramme de fonctionnement de la gestion du niveau deau ; N signifie ici niveau deau .

Dbut

N > N1

non

oui Signal sonore intermittent mis

N < N4

non

oui

N < N3

non

Signal visuel intermittent rouge mis

Signal visuel continu vert mis

oui Signal visuel continu vert mis non Pompe en fonctionnement

N < N2

non

oui Pompe en fonctionnement ? oui Signal visuel continu vert mis

Arrt Pompe

Pompe en fonctionnement Signal sonore intermittent mis

Arrt pompe

Signal visuel intermittent orange mis

Pompe en fonctionnement

Premiers pas avec un PIC

07/06/2002

Page 6

Un gros plan de la carte remplacer ; carte de gestion du niveau de leau. On y distingue les 3 LED, le buzzer et son interrupteur ; composants que lon retrouvera ncessairement sur la nouvelle carte.

Premiers pas avec un PIC

07/06/2002

Page 7

Le schma structurel de cette carte o on trouve les quatre entres Cap1 Cap4 gauche, correspondant respectivement aux capteurs 1 4. Pour les entres Cap1 Cap3, un niveau logique 1 correspond un capteur actif (niveau deau atteint). Pour Cap4, la logique est inverse.
AC
1 R27 10k R17 10k R20 10k R19 10k R18 10k 2 CI1A

AC

&
CD4093B R2 82k

3 S1

R13 10k

2 1

3 T2 BC327 R14 270 D4 LED Rouge Alarme haute

Cap1

13 12

CI2D

&
CD4081B CI2B

11

SCap1

C2 10uF

MC
4 SCap3

MC AC
R16 10k 2 1 3 T4 BC327 R15 180 RP

Cap3

5 6

&
CD4081B CI2A

Cap2

1 2

&
CD4081B CI2C

SCap2

Cap4

8 9

AC
10 SCap4 R8 120 D5 LED Verte Commande pompe T3 BC337 3 7

&
CD4081B

AC
8 3 S3 R7 4.7k 2 1

Cap4 Cap3 Cap2 Cap1

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Connecteur2 A2 A4 A6 A8 A10 A12 A14 A16 A18 A20 A22 A24 A26 A28 A30 A32 C2 C4 C6 C8 C10 C12 C14 C16 C18 C20 C22 C24 C26 C28 C30 C32

34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

Cn8 Cn4 Cn2 Cn1 Dz8 Dz4 Dz2 Dz1 Un8 Un4 Un2 Un1 Dx8 Dx4 Dx2 Dx1

4 2 6

CI3 R

[ ]
CExt NE555 1

RExt

5 [V Ref]

CP

MC
5 CI1B

AC
4 S4 R12 10k 1 R6 270 D3 LED Orange Alarme basse 2 3 T1 BC327

DIN 32_ABC-H RJ45 1 2 3 4 5 6 7 8 HEADER 8 Cap1 Cap2 Cap3 Cap4 ID CP RP MC

6 D2 D1N4148 D1 D1N4148

&
CD4093B R11 82k

R3 10k

C3 10uF

AC

Condensateurs de dcouplage
C_CI2 10nF C_CI3 10nF

MC
CI1C C 10 H R5 100k

MC
13 12 CI1D

MC

C_CI1 10nF

8 9

&
CD4093B R4 82k

&
CD4093B R1 10k

11

S2

MC AC VCC VDD

Switch SW SPST

C1 10uF

C4 220nF

BUZ1 BUZZER

MC MC GND VSS

MC

MC

Premiers pas avec un PIC

07/06/2002

Page 8

La modification envisage La nouvelle carte construite autour du PIC16F84 devait tre entirement compatible avec la prcdente. Le PIC pouvait remplacer tous les circuits intgrs et tous les transistors lexception du transistor de commande de la sortie RP (Relais Pompe) car ce relais a un rle de scurit pour couper la pompe en cas de dpassement du niveau deau maximum. La solution dorigine choisie pour commander ce relais laide du capteur 1 est dailleurs fort discutable sur le plan de la scurit. Mais ceci est une autre histoire. La nouvelle version de la carte imprime Nous avons donc abouti la solution suivante :
AC VDD AC R2 10k U1 17 18 1 2 3 6 7 8 9 10 11 12 13 R9 470 LED1 LED rouge LED2 LEDverte LED3 MC VSS MC MC R11 270 R3 10k R4 10k R5 10K AC R1 10k R6 10k 1 R7 180 Cap1 Cap2 Cap3 Cap4 ID CP RP RA0 RA1 RA2 RA3 RA4/TOCKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 RJ1 1 2 3 4 5 6 7 8 HEADER 8 R12 470 LEDorange SWITCH1 SW SPST MC BUZZER BUZ1 2 AC

3 BC327 Q1

R8 1k C1 MC 100nF AC R10

4 15 16

MCLR OSC2/CLKOUT OSC1/CLKIN

4.7k C2 MC 22pF PIC16F84_P CONNECTEUR1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 A2 A4 A6 A8 A10 A12 A14 A16 A18 A20 A22 A24 A26 A28 A30 A32 C2 C4 C6 C8 C10 C12 C14 C16 C18 C20 C22 C24 C26 C28 C30 C32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64

CP RP ID Cap4 Cap3 Cap2 Cap1 AC MC

DIN 32_ABC-H

On constate que le PIC peut commander directement une LED sur chaque broche de port en limitant nanmoins le courant laide dune rsistance. Il commande directement aussi le buzzer. Aprs placement, routage double face, tirage et implantation, on obtient cette nouvelle carte :

Premiers pas avec un PIC

07/06/2002

Page 9

Le logiciel de dveloppement BASIC F84 Pour concevoir notre programme, nous avons voulu contourner la difficult en utilisant un langage structur simple. Nous avons choisi le basic. Il existe une foule de basic pour programmer les PIC. Nous nous sommes tourns vers un basic fourni sur CD-ROM avec un livre du commerce intitul Sinitier la programmation des PIC crit par Alain Reboux. Avantages : Pour lachat du livre, le basic est gratuit ainsi que les mises jour de celui-ci par ml interpose avec lauteur. Nous verrons plus loin que le logiciel est facile utiliser. Notre programme BASIC Inutile de vous donner toutes les versions du programme que nous avons testes. Celle-ci est la bonne :
;Programme de gestion du servomoteur de commande de pompe ;Attention : A programmer en dsactivant le chien de garde (Fuse WDT) ORG 0 CONFIG PORTA,%11111111 CONFIG PORTB,%11100000 OUT PORTB,0 ;initialisation du port B BITSOUND PORTB,3 ;dclare la broche du buzzer DEBUT BTFSS PORTA,1 ;saute si Cap1=1 GOTO INFN1 BCF PORTB,1 ;arrt pompe NOP ;laisse le temps au port de changer d'tat BSF PORTB,0 ;allumer Led Rouge SOUND 190 ;mettre un son BCF PORTB,0 ;teindre Led Rouge SOUND 170 GOTO DEBUT INFN1 BTFSS PORTA,4 ;saute si Cap4=1 GOTO SUPN4 BSF PORTB,1 ;Pompe en marche + Led Verte NOP ;laisse le temps au port de changer d'tat BSF PORTB,2 ;Allumer Led Orange SOUND 190 ;Emettre un son BCF PORTB,2 ;Eteindre Led Orange SOUND 170 GOTO DEBUT BTFSC PORTA,3 GOTO SUPN3 BSF PORTB,1 GOTO DEBUT ;saute si cap3=0 ;Pompe en marche + Led verte

SUPN4

SUPN3

BTFSC PORTA,2 ;saute si cap2=0 GOTO SUPN2 BTFSS PORTB,1 ;saute si CP=1 GOTO DEBUT BSF PORTB,1 ;pompe en marche + led verte GOTO DEBUT BCF PORTB,1 ;arrt pompe GOTO DEBUT END

SUPN2

De lcriture au tlchargement Nous avons crit le programme en basic dans la fentre de gauche du logiciel BASIC F84 (voir ci-dessous).

Premiers pas avec un PIC

07/06/2002

Page 10

Ensuite, nous avons demand au logiciel de traduire ce programme en langage assembleur (fentre de droite du logiciel). Et cest bien la magie de ce logiciel : Lopration se fait automatiquement en une seule fois et il ny a pas toucher au rsultat, bien que ce soit possible.

Une fois le programme assembleur enregistr sur le disque dur, lopration suivante a consist assembler le programme, cest--dire obtenir le fichier hexadcimal qui sera tlcharg dans le PIC. Pour ce faire, le logiciel BASIC F84 fait appel un autre logiciel : MPASM de MICROCHIP (le constructeur du PIC). La fentre ouverte ressemble alors celle-ci :

Une fois obtenu le fichier hexadcimal, il ne restait plus qu faire ce que nous savions dj faire : Tlcharger le programme dans le PIC laide dIC-Prog. Premiers pas avec un PIC 07/06/2002 Page 11

Les essais et les dboires Ecrire que nous avons russi du premier coup serait mentir. Inutile de vous faire la liste des erreurs et des corrections successives ; lintrt est nul. Sauf pour un problme que nous ne pouvions rsoudre sans une lecture approfondie de la documentation technique du PIC16F84 : Vous aurez peut-tre remarqu quil y a deux fois linstruction NOP dans notre programme. Or cette instruction ne sert rien, sauf perdre du temps. Et ici, cette instruction est place entre deux critures successives sur des bits dun mme port. Mais une criture sur un bit de port, nous raconte la documentation technique du composant, consiste en fait par une lecture complte du port suivie dune criture. Or si le port na pas eu le temps de se mettre jour suite linstruction prcdente, la lecture du port linstruction suivante sera errone. Il faut donc mettre une instruction bidon pour laisser le temps au port de se mettre jour. Linstruction NOP est parfaite pour a. Ca marche enfin ! Comment pouvait-il en tre autrement ? Nous avons donc install la nouvelle carte de gestion du niveau deau la place de lancienne. La gestion du niveau deau est identique celle que nous avions prcdemment. La seule diffrence se situe au niveau de la frquence de clignotement des LED dalarme et au niveau du son restitu par le buzzer. Les notes sonnent plus justes ! Nos projets futurs Le servomoteur de commande de pompe a deux autres cartes qui servent compter et afficher le dbit deau consomm par la cuve. La technologie de ces cartes est compltement obsolte car elle contient de nombreux circuits de comptage et dinterface pour afficheurs qui peuvent tre remplacs par un circuit spcialis. En associant celui-ci au PIC, il y a probablement moyen de remplacer les trois cartes lectroniques de lobjet par une seule. Cest ce que nous allons essayer de prouver. Cette nouvelle technologie ce cot ouvre de nouvelles possibilits. Nous avons de nombreux objets ou cartes dtudes qui pourraient tre mises au got du jour en remplaant leurs logiques de commande par des structures base de PIC. Le cot et la complexit de mise en uvre des microcontrleurs laissait encore jusqu aujourdhui la part belle llectronique analogique et aux circuits logiques classiques. Avec les PIC, les cartes sont redistribues et le partage nest plus vraiment quitable. Vincent LEROUVILLOIS, Professeur dlectronique au lyce professionnel Alexis de Tocqueville, Cherbourg, France vincent.lerouvillois@wanadoo.fr

Premiers pas avec un PIC

07/06/2002

Page 12

Vous aimerez peut-être aussi