Vous êtes sur la page 1sur 65

MULTI-PROG PIC

Multi-prog existe aussi pour les microcontrleurs Atmel, avec la mme interface graphique et des fonctionnalits identiques ou trs proches.

1 INTRODUCTION ............................................................................................................. 4
1.1 Utilit de Multi-prog.............................................................................................................. 4 1.2 Multi-prog et chane de dveloppement .............................................................................. 5 1.3 Dcomposition en algorigrammes ..................................................................................... 11 1.4 Mise jour automatique du logiciel .................................................................................. 12

2 PRINCIPALES CARACTERISTIQUES DE MULTI-PROG PIC........................................ 12


2.1 Particularits et limitation du compilateur CC5X ............................................................. 14 2.2 Particularits et limitation du compilateur SDCC ............................................................. 14

3 CREATION ET CONFIGURATION DUN PROJET....................................................... 15


3.1 Bote de configuration du projet ........................................................................................ 15 3.1.1 Dfinition du C cible et de la carte de programmation .....................................................15 3.1.2 Dfinition des entres / sorties...................................................................................................16 3.1.3 Dfinition (dclaration) des donnes ........................................................................................16 3.1.4 dclaration des fonctions .............................................................................................................17 3.1.5 Noms pour les donnes, les procdures et les fonctions ....................................................18 3.1.6 Interruptions et priphriques ....................................................................................................19 3.2 Choix du compilateur.......................................................................................................... 19

4 ELABORATION DUN ALGORIGRAMME ................................................................... 19


4.1 Dmarche ............................................................................................................................ 19 4.2 Constitution dun programme ............................................................................................ 20 4.3 Structures de base ............................................................................................................... 20 4.4 Placement et dition des Symboles .................................................................................... 23 4.4.1 Traitement (calcul) .........................................................................................................................24 4.4.2 Affectation dune valeur une sortie (Action) ........................................................................25 4.4.3 Procdure (SP)................................................................................................................................25 4.4.4 Structure if / do while / while .................................................................................................26 4.4.5 Boucle for ........................................................................................................................................27 4.5 Edition des symboles aprs placement............................................................................... 27 4.6 Placement des liaisons ........................................................................................................ 27 4.7 Manipulation de symboles dj placs .............................................................................. 27 4.7.1 Slection de symboles ..................................................................................................................27 4.7.2 Dplacement de symboles / copier / Coller ...........................................................................28 4.8 Insertion de lignes ou colonne entre les symboles dj placs ........................................ 28 4.9 Insertion de symboles ......................................................................................................... 28

5 PRODUCTION DU FICHIER EXECUTABLE / PROGRAMMATION ........................... 29


5.1 Vue densemble ................................................................................................................... 29 5.2 Traduction automatique en langage C et compilation ..................................................... 30
Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges 1

5.3 Programmation du PIC cible (transfert)............................................................................. 31 5.3.1 Programmation avec une carte CASTOR ou une carte quelconque avec un connecteur compatible ICD microchip ..............................................................................................32 5.3.2 Programmation avec une carte compatible IC-prog .............................................................33

6 OBSERVATION DU DEROULEMENT DU PROGRAMME .......................................... 33 7 GESTION DE PERIPHERIQUES & INTERRUPTIONS .................................................. 34


7.1 Vue densemble ................................................................................................................... 34 7.2 CAN ...................................................................................................................................... 35 7.3 Afficheur LCD ...................................................................................................................... 35 7.4 Liaison RS232 ...................................................................................................................... 36 7.5 Liaison I2C ........................................................................................................................... 36 7.6 Gnration dun signal rectangulaire rapport cyclique variable ................................... 37 7.7 Gestion du clavier ............................................................................................................... 37 7.8 EEPROM............................................................................................................................... 38 7.9 Interruption par dbordement du Timer 0 ........................................................................ 38 7.9.1 Interruption non priodique........................................................................................................39 7.9.2 Interruption priodique ................................................................................................................39 7.10 Interruption sur front de lentre RB0/INT ...................................................................... 39

8 FONCTIONS ET PROCEDURES .................................................................................... 40


8.1 Introduction ......................................................................................................................... 40 8.2 Fonction pour CAN ............................................................................................................. 41 8.3 Procdures pour afficheur LCD .......................................................................................... 42 8.4 Liaison RS232 ...................................................................................................................... 42 8.5 Liaison I2C ........................................................................................................................... 43 8.6 Gnration dun signal rectangulaire rapport cyclique variable ................................... 43 8.7 Fonction pour Clavier ......................................................................................................... 43 8.8 EEPROM............................................................................................................................... 44 8.9 Procdure pour interruption non priodique avec le timer 0 .......................................... 44 8.10 Procdure ou fonction utilisateur .................................................................................... 44 8.10.1 Procdure ou fonction dfinie par un texte ..........................................................................45 8.10.2 Procdure ou fonction dfinie graphiquement ....................................................................46

9 ALGORIGRAMMES POUR LES INTERRUPTIONS ...................................................... 46 10 UTILISATION DUNE BIBLIOTHEQUE UTILISATEUR .............................................. 47 11 CONFIGURATION & UTILISATION DIC-PROG...................................................... 47
11.1 Configuration pour Windows XP ..................................................................................... 47 11.2 Options dIC-prog ............................................................................................................. 50 11.3 Programmation du PIC cible ............................................................................................ 50

12 UN EXEMPLE DE A A Z : THERMOMETRE NUMERIQUE ........................................ 52


12.1 Introduction ....................................................................................................................... 52

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

12.2 Schma simplifi de la carte mre ................................................................................... 53 12.3 Valeurs en diffrents points de la chane de traitement ................................................. 53 12.4 Configuration du C ......................................................................................................... 54 12.5 Le programme complet ..................................................................................................... 56

13 FONCTIONNEMENT EN MODE MISE AU POINT ................................................... 59


ANNEXES

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

MUTI-PROG PIC
1 INTRODUCTION 1.1 UTILITE DE MULTI-PROG
Multi-prog est un logiciel de Dveloppement Rapide dApplications simples pour C PIC. Il permet de crer rapidement des programmes excutables sans ncessiter la lecture de la documentation technique du PIC cible et sans apprentissage dun langage de programmation. Cest la programmation graphique, associe de nombreuses botes de dialogues avec des options, des listes droulantes, des aides intgres, qui permet une utilisation particulirement facile. Pour utiliser Multi-prog, il suffit davoir quelques notions de logique. Voir par exemple mon document Introduction au microcontrleur et sa programmation (Intro C & prog graphique.doc). Multi-prog est conu pour tre utilis dans le cadre de manipulations ou dans le cadre de projet et de mini-projets. Multi-prog est essentiellement destin des applications pdagogiques. Il sert introduire les notions lmentaires de la programmation : organisation dun programme, algorithme, algorigramme. Il ne permet pas dintroduire les notions de structures de donnes, telles que structures, tableaux de structures, etc. (difficile assimiler par les lves). Il accepte cependant les tableaux de constantes et variables de types simples. Mutlti-prog permet aussi de raliser de petites applications qui peuvent fonctionner de faon autonome. Ces petites applications peuvent correspondre des projets ou mini-projets en Bac STI, en BTS, etc. Le fonctionnement autonome peut tre prcd dune phase dexcution du programme sur le PIC cible avec une liaison un ordinateur, pour voir le droulement du programme. Le fonctionnement autonome est possible avec toutes les cartes. Multi-prog permet aussi lapprentissage du C, en confrontant lalgorigramme de dpart et sa traduction en algorithme et langage C. Voir dtail plus loin. Voici quelques exemples dutilisation de Multi-prog selon le niveau denseignement. Niveau denseignement 2nde option MPI Cadre Partie thmatique. Extrait du programme officiel : La partie thmatique (laisse la libert de l'enseignant en fonction des spcificits locales et de l'intrt des lves) pourra tre l'occasion [] d'utiliser quelques notions de programmation (algorithme lmentaire : analyse d'un problme simple, instruction conditionnelle alternative) Remarque Il est possible par exemple de raliser un thermomtre autonome trs simplement avec une petite maquette comprenant un PIC + un afficheur cristaux liquides (commande prise en charge par Multi-prog) + un capteur + un conditionneur.

Bac STI Electronique Bac S option SI

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

STS Systmes Electroniques

STS Systmes Electroniques

Manipulations pour prparation Manipul lpreuve crite. Comptence terminale A3 : Expliciter une structure logicielle commente. Le candidat dispose [] de lalgorigramme ou de lalgorithme de fonctionnem fonctionnement [] Projet. Comptence terminale C2 : Adapter le logiciel un nouveau cahier des charges. charges (remarque personnelle : il est souvent ncessaire de crer un nouveau logilog ciel, souvent trs simple pour crer une procdure proc de test, etc.)

Les dernires preuves du BTS contiennent des questions sur des algorithmes.

Extrait des recommandations officielles : On cherche privilprivil gier l'utilisation d'un langage de haut niveau tel que le langage C ou la programmation gragr phique en vitant tant que pospo sible l'utilisation de l'assembleur.

1.2 MULTI-PROG PROG ET CHAINE DE DEVELOPPEMENT DE


Multi-prog prog est au cur dune chane de dveloppement trs simple demploi pour C PIC.

Chane de dveloppement Algorigramme source Programme excutable C cible

Carte cible

Ordinateur + logiciels : Multi-prog,

+ carte dinterface ou connexion onnexion directe avec certaines cartes cible

Multi-prog prog pour PIC / Philippe Morenton LT PE Martin Bourges

Multi-prog PIC est un logiciel qui permet : la saisie essentiellement graphique du programme source pour une application devant sexcuter sur un C PIC (avec de nombreuses botes de dialogue trs intuitives dutilisation) la gnration automatique du fichier source en langage C correspondant le lancement dune compilation en utilisant automatiquement de faon transparente lutilisateur le compilateur externe CC5X ou SDCC la programmation du PIC cible en utilisant automatiquement de faon transparente lutilisateur un logiciel de programmation Castor-prog (ou IC-prog ou PICFLASH de mikroElektronika). Aprs programmation, la carte cible peut fonctionner seule. lexcution du programme avec visualisation du droulement sur lalgorigramme + observation des variables si on a choisi cette option Lutilisation de Multi-prog est trs intuitive. Il nest presque jamais ncessaire de se rfrer au manuel. De nombreuses botes de dialogues avec listes droulantes, aide intgre, rendent la saisie trs simple. La programmation du PIC cible et lexcution du programme depuis Multi-prog nest possible quavec certaines cartes. Le programme est dessin sous forme dalgorigramme ou de Grafcet. Seul le dessin avec un algorigramme est dvelopp ici. Le prsent document est bas sur les versions 2 de Multi-prog (depuis fvrier 2006) et 1.10 1.12 (janvier 2006). Les indications sur ces dernires versions sont le plus souvent en annexe, en fin de ce document.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

Lorsque le programme source est cr sous forme dalgorigramme, la fentre principale est la suivante :
Algorigramme du programme principal, avec les symboles placs la souris Algorigramme dun gestionnaire dinterruption. La fentre est automatiquement cre aprs avoir coch une case dans un menu de configuration Listing du programme source en langage C automatiquement gnr

Algorithme (proche du langage C) automatiquement gnr

Code C automatiquement gnr daprs les options coches dans des menus de configuration

La condition est choisie avec des listes droulantes dans une bote de dialogue. Seul 50 a t entr au clavier.

Laction est choisie avec une liste droulante dans une bote de dialogue

Fentre principale correspondant la version 2 La liaison de la carte cible + une carte dinterface avec lordinateur (uniquement avec certaines cartes) permet de voir le droulement du programme sexcutant sur le PIC cible sur lalgorigramme.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

Multi-prog permet aussi lapprentissage du C, en confrontant lalgorigramme de dpart et sa traduction en langage C. Lutilisation de couleurs permet didentifier facilement les structures. Algorigramme principal Algorithme et programme en langage C

Avec certaines cartes, il est possible de Programmer in situ le PIC cible Lancer lexcution du programme et visualiser le droulement du programme directement sur lalgorigramme. On peut aussi observer les valeurs des ports et des variables globales.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

Les cartes utilisables avec Multi-prog sont : o La carte Castor LPT vendue par le mme distributeur que Multi-prog (Micrelec)

o Nimporte quelle carte avec un des PIC supports par Multi-prog et quipe dun connecteur pour la programmation in situ Ce connecteur peut tre du type RJ 12 au format standard Microchip:

Cette carte se connecte directement sur le port imprimante dun PC. La partie ncessaire pour linterfaage est sur la carte.

Une petite carte trs simple dinterfaage doit tre utilise entre le PC et la carte cible. Lalimentation de cette carte est prleve sur la carte cible ou sur le port USB pour la version USB. Carte Castor pour linterfaage USB

o La carte Castor USB vendue par Micrelec

Cette carte se connecte directement sur le port USB dun PC. La partie ncessaire pour linterfaage est sur la carte. o Une carte EasyPIC conue par mikroElektronika Cette carte se connecte directement sur le port USB dun PC. La partie ncessaire pour linterfaage est sur la carte.

Il est aussi possible de raliser une carte dinterfaage pour le port parallle du PC (imprimante)

Si on dsire raliser une carte cible pouvant ensuite fonctionner de manire autonome, le schma utiliser pour les connexions entre les broches du PIC cible et le connecteur est le suivant :
Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges 9

VCC

R9 100k U1 1 MCLR/Vpp RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3 RA4/TOCKI RA5/AN4/SS RB0/INT RB1 RB2 OSC1/CLKIN RB3 RB4 RB5 RB6 RB7 OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT PIC16F876 2 3 4 5 6 7 21 22 23 24 25 26 27 28 11 12 13 14 15 16 17 18 VCC VPP/MCLR J4 1 2 3 4 5 6 1 2 3 4 5 6 Connecteur pour module ICD Microchip ou module interf ace Multiprog

R10 1k

C8 33pf 9 BP1 XTAL1 16MHz 10 C9 33pf

PGD PGC

brochage Microchip

A rajouter sur la carte cible Avec le schma ci-dessus, le cble utiliser entre les 2 connecteurs RJ12 (carte cible et carte interface Castor) est un cble non crois. Les connecteurs mles sont placs sur les 2 cts du cble plat. Cette disposition rend le cble compatible avec le module ICD1 ou ICD2 ralis par Touzet. Toutes les informations pour ces modules sont disponibles sur Internet.

Multi-prog est en constante et rapide volution. Son auteur, Jean Yves Laronde, est lcoute des utilisateurs et apporte chaque fois quil le peut et quil le juge intressant des modifications pour rpondre de nouveaux besoins.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

10

1.3 DECOMPOSITION EN ALGORIGRAMMES


Pour une meilleure lisibilit, le programme source peut correspondre plusieurs algorigrammes : Un algorigramme principal Un algorigramme pour chaque source dinterruption Un algorigramme pour chaque bloc SP (Sous Programme = fonction ou procdure). Tout programme peut se dcomposer en algorigrammes relativement simples, faciles analyser. Onglets pour les algorigrammes de traitement dinterruptions.

Fentre principale correspondant la version 2 Dans lexemple ci-dessus, les actions importantes (commandes de triacs) sont effectues dans un des algorigrammes de traitement dinterruption en tche davant plan (foreground). Lalgorigramme principal correspond larrire plan (background).

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

11

1.4 MISE A JOUR AUTOMATIQUE DU LOGICIEL


Depuis la version 1.12.6, il est possible de mettre jour le logiciel par internet en cliquant sur Aide / Mise jour automatique

Une bote de dialogue indique le droulement des oprations

Si une nouvelle mise jour est disponible, le tlchar- Sinon, une bote de dialogue indique gement a lieu. quaucune nouvelle mise jour nest disponible.

2 PRINCIPALES CARACTERISTIQUES DE MULTI-PROG PIC


Le tableau ci-dessous donne quelques unes des caractristiques de Multi-prog. PICs supports Srie 16 PIC16F54*, PIC16F84(A)*, PIC16F627(A), PIC16F628(A), PIC16F648A, PIC16F818, PIC16F819, PIC16F81, PIC16F870 877, PIC16F876A, PIC16F877A. Srie 18** PIC18F242, PIC18F252, PIC18F442, PIC18F452 * : ces PICs ne permettent pas lexcution du programme avec visualisation sur lalgorigramme car ils nont quun timer et Multi-prog utilise le 2me timer. ** A la date de rdaction de ces lignes (juin 2007), ces PICs ne sont pas supports par le logiciel de programmation Castor-prog. Voir 5.3. Structures alternative si (if), boucles (do while / while / for), bloc affectation de sorties, bloc traitement, bloc utilisation de fonction (au sens du C, sous programme), bloc temporisation. Dans un bloc traitement ou utilisation dune fonction, la syntaxe est celle du C (sans le ; en fin de ligne). 1 pour le programme principal + 1 pour le gestionnaire de chacune des interruptions gres (par exemple pour un PIC 16F87x : interruption dbordement du timer0, interruption externe sur lentre RB0, interruption en rception RS232) + 1 algorigramme pour chaque fonction ou proc-

Symboles pour lalgorigramme

Nombre dalgorigrammes

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

12

Compilateurs externes Types de donnes

Visualisation

Taille du code produit

Fichiers produits

Registres et bits de config du PIC directement accessibles

Ressources rserves en mode mise au point Taille du code supplmentaire en mode mise au point

dure dfinie par lutilisateur en mode graphique. Multi-prog offre le choix entre CC5X (Multi-prog est livr avec la version gratuite limite) et SDCC (compilateur gratuit GNU sans limitation) Multi-prog supporte les variables de types simples et les tableaux (constantes ou variables). Pour les tableaux de constantes, seule une dimension est supporte. Les types de variables supports dpendent du compilateur utilis. Types simples: entiers non signs et signs sur 8 et 16 bits (+32 bits avec SDCC) rel en notation flottante sur 24 bits (CC5X. Non pris en charge pour linstant par Multi-prog au niveau des dclarations) ou sur 32 bits (SDCC. Non pris en charge pour linstant par Multi-prog au niveau des dclarations) Tableau 1 dimension seulement avec tous les types prcdents (CC5X) ou tableaux 2 dimensions et plus (SDCC). Structure autorise, avec comme champ tous les types prcdents, y compris un tableau. (CC5X. Non pris en charge pour linstant par Multiprog au niveau des dfinitions) Algorithme + code en langage C automatiquement gnrs. Non modifiable. En mode mise au point : droulement du programme sur algorigramme + visualisation des ports et des variables. Mode continu (qqs diximes de secondes par bloc) ou pas pas. Le droulement nest pas visible sur les algorigrammes des interruptions. 1024 mots max avec la version gratuite du compilateur CC5X. En achetant la version complte, la seule restriction est la taille da la mmoire du PIC cible. Pas de limitation autre que la mmoire disponible dans le PIC avec le compilateur SDCC. Toutes les indications pour lalgorigramme (ou le Grafcet) sont dans le fichier NomProjet.gpi. Les fichiers suivants sont dans le dossier dinstallation de Multi-prog (\Program Files\MULTI-PROG PIC) : pic.c (langage C. idem code visualis + instructions caches pour la mise au point) / pic.asm (listage en langage dassemblage) / pic.hex (fichier pour la programmation). Avec certaines versions de Multi-prog, les fichiers prcdents peuvent tre dans le dossier du projet et se nommer NomProjet.c, NomProjet.asm, NomProjet.hex, NomProjet.occ (avec le compilateur CC5X uniquement. Fichier statistique) Oui par leur nom. Certains noms peuvent diffrer de leur dsignation Microchip. Voir le fichier .h fourni avec le compilateur et correspondant au PIC utilis. Avec CC5X, ce fichier est plac dans le dossier dinstallation de Multiprog. Avec SDCC, le fichier est dans Program Files\SDCC\include\PIC Timer 1 + 2 broches RB6 et RB7 dj utilises pour la programmation in situ 200 mots + qqs mots par bloc sur lalgorigramme

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

13

2.1 PARTICULARITES ET LIMITATION DU COMPILATEUR CC5X


La version fournie avec Multi-prog est la version gratuite limite 1kmot de code excutable. La version gratuite a une optimisation limite. La version complte permet de gagner de 10 20% sur la taille du code excutable. Il est possible dacheter la version complte et de placer le compilateur dans le dossier dinstallation de Multi-prog. http://www.bknd.com/cc5x/index.shtml La documentation du compilateur CC5X nest pas place automatiquement dans le dossier dinstallation de Multi-prog. Il est possible de se procurer la documentation sur Internet : http://www.bknd.com/cc5x/index.shtml Le manuel complet est cc5x-32.pdf. Voir aussi le document de lauteur de ces lignes Compilateur C CC5X.doc. En voici quelques extraits : Le compilateur a des possibilits limites pour allouer des variables temporaires A cause de cela les instructions complexes ont souvent tre rcrites en dcomposant en plusieurs instructions plus simples. De toute faon, Multi-prog ne permet pas dcrire des lignes longues. En plus des bases du C ANSI, le compilateur CC5X accepte la base 2. Notation : 0bnombre ou 0Bnombre. Ex : 0b01110011 Il est possible de sparer les bits par des points pour plus de visibilit. Exemple : 0b1101.1001, 0b1.101.11.00 On peut donc crire une ligne du type suivant dans une bote Multi-prog : Var = 0b1101.1001 Les variables globales initialises ne sont pas supportes. Le compilateur ninitialise pas 0 les variables globales, comme un compilateur C ANSI. Si la valeur initiale 0 est importante, il faut placer une ligne de code dans un bloc de traitement en tout dbut dalgorigramme.

2.2 PARTICULARITES ET LIMITATION DU COMPILATEUR SDCC

SDCC = Small Device C Compiler. Cest un compilateur gratuit, sans aucune limitation sur la taille du code produit. Il supporte tous les PICs accepts par Multi-prog + de nombreux autres. La dernire version du compilateur peut tre tlcharge ladresse : http://sdcc.sourceforge.net/ Le PIC est le dernier C support par le compilateur. La documentation actuelle donne peu dindications sur les particularits du compilateur. Voir les prochaines versions de la documentation. A la date de rdaction de ces lignes (avril 2006), Le code produit par le compilateur SDCC nest pas optimis. Le code produit est jusqu 75% plus important que le code produit par la version gratuite de CC5X, qui nest pourtant pas compltement optimise. Cette augmentation de la taille est surtout importante pour les petits programmes. Pour les programmes de tailles plus importantes, le code produit avec SDCC est de lordre de 50% plus important quavec CC5X.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

14

3 CREATION ET CONFIGURATION DUN PROJET


La configuration du projet, seffectue avec : la bote de Configuration du projet le choix de la carte cible le choix du compilateur Lors du lancement de Multi-prog ou aprs la fermeture du projet en cours ddition, la fentre de travail est grise et seules quelques rubriques des menus sont accessibles. Pour crer un nouveau menu, il faut cliquer sur Fichier / Nouveau. Ceci a pour effet douvrir la bote de configuration du projet.

3.1 BOITE DE CONFIGURATION DU PROJET


La bote de configuration du projet est automatiquement ouverte lors de la cration dun nouveau projet. Elle peut aussi tre ouverte tout moment avec la commande Projet / Configuation (Algorigramme) ou Configuration (Grafcet). Tous les paramtres peuvent tre modifis sauf la taille de la page qui est choisie lors de la cration. Elle ne peut plus tre modifie ensuite. La bote de configuration de projet dispose de plusieurs onglets. 3.1.1 DEFINITION DU C CIBLE ET DE LA CARTE DE PROGRAMMATION Le premier onglet permet de choisir le C cible, la frquence de loscillateur (quartz uniquement) et la carte de programmation : Certaines cartes de dveloppement disposent de linterface de programmation. La carte de programmation / dveloppement peut aussi tre choisie partir du menu.

Frquence dhorloge du PIC cible. Permet Multi-prog de calculer les valeurs des registres de contrle pour les timers, les liaisons srie, etc.

Largeur x longueur par rapport nb tapes (Grafcet). Taille symbole algorigramme > taille tape.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

15

3.1.2 DEFINITION DES ENTREES / SORTIES Le deuxime onglet permet de dfinir les entres / sorties

Dfinition du nom utilisable dans le programme pour chaque E/S. Permet une meilleure lisibilit.

Entre CAN. Attention : toutes les combinaisons permises par le PIC ne sont pas supportes

3.1.3 DEFINITION (DECLARATION) DES DONNEES Le troisime onglet permet de dfinir les variables et les tableaux de constantes. Dfinition (ou dclaration) de variables Il suffit dentrer un nom de variable par ligne (sans aucun signe suivant la variable pas de ;) On peut dclarer un tableau avec NomVar[Taille]. Taille est un entier. Les valeurs du tableau sont fixes et modifies dans le programme. Les types de variables dpendent du compilateur utilis. Multi-prog permet de choisir entre CC5X (version gratuite limite) et SDCC (compilateur gratuit non limit). Ci-dessous, longlet Variables avec le compilateur SDCC.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

16

Dclaration de tableaux de constantes : Il faut cocher la case Tableau dans la zone de dclaration des donnes

Lorsquon clique sur Valeurs, une bote de dialogue souvre :

Il suffit de complter la bote de dialogue. Lutilisation dun tableau supprime un type de donne disponible. Cette particularit peut tre annule dans une prochaine version de Multi-prog. 3.1.4 DECLARATION DES FONCTIONS Le quatrime onglet permet de dclarer les fonctions

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

17

Les fonctions et procdures peuvent tre dfinies soit toutes avec du texte soit toutes graphiquement, selon la case Mode Graphique. Si le mode graphique est choisi, laspect est le suivant : Les fonctions sont dtailles plus loin.

3.1.5 NOMS POUR LES DONNEES, LES PROCEDURES ET LES FONCTIONS Le langage C utilise des noms rservs qui sont interdits pour nommer les donnes et les fonctions. Multi-prog utilise aussi des fonctions propres, de faon transparente lutilisateur. Les noms de ces fonctions ne doivent pas tre employs par lutilisateur pour nommer dautres fonctions. Les tableaux ci-dessous donnent tous les noms rservs : Noms rservs du langage C : auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

Noms rservs pour les fonctions non documentes de Multi-prog : init() i2c_init() lcd_init() delay_ms() delay_us() lcd_command()

Les autres fonctions non documentes ont des noms tels quil est sr que lutilisateur ne pourra les employer pour ses propres fonctions. Remarque : Comme le C fait la distinction entre minuscule et majuscule, il est possible dutiliser des noms avec mme orthographe, mais avec une casse diffrente. Par exemple, la fonction Init() cre par lutilisateur sera accepte car diffrentie de init() utilise par Multi-prog.

Le compilateur CC5X utilise aussi les noms suivants : bit, int8, s8, int16, s16, int24, s24, int32, s32, uns8, u8, uns16, u16, uns24, u24, uns32, u32. Le compilateur SDCC utilise les noms suivants : A complter

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

18

3.1.6 INTERRUPTIONS ET PERIPHERIQUES Les interruptions et les priphriques sont dvelopps plus loin.

3.2 CHOIX DU COMPILATEUR

Le compilateur est choisi laide du menu Projet.

Le menu projet permet aussi de choisir la carte de programmation. La partie ncessaire la programmation peut aussi tre sur la carte de dveloppement. Un des items CASTOR est cocher si on utilise une carte spcifique CASTOR ou une carte quelconque avec un connecteur compatible Microchip ICD. Dans ce cas, il faut utiliser une petite carte dinterface (Castor par exemple). La carte compatible IC-PROG est une carte quelconque avec un connecteur compatible Microchip ICD. Elle ncessite une carte dinterface. Voir plus haut. La carte easyPIC2 de mikroElektronik (ou une autre carte de la mme srie) se connecte directement au PC par la liaison USB. Avec AUTRE CARTE, la programmation ne seffectue pas in situ.

4 ELABORATION DUN ALGORIGRAMME

Llaboration dun algorigramme est trs intuitive. Seules les grandes lignes sont donnes ici. Pour plus de dtail, voir le fichier daide quon peut lancer depuis Multi-prog avec la commande Aide / Aide.

4.1 DEMARCHE
La dmarche est la suivante : Placement de symboles + renseignements dans des botes de dialogues automatiquement ouvertes lors du placement Placement des liaisons Dplacement des blocs pour la rorganisation ncessaire en cours de saisie Ajout de commentaires pour une meilleure lisibilit Une fois lalgorigramme termin, on lance la traduction automatique en langage C et la compilation, puis la programmation du PIC cible et enfin lexcution du programme.
Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges 19

Un algorigramme commence ncessairement par un bloc dbut. Le bloc configuration fait partie du bloc dbut. Il correspond au code qui sera automatiquement gnr lors de la traduction automatique algorigramme langage C

Lalgorigramme principal comporte obligatoirement une boucle sans fin ralise avec une structure while la condition est de type valeur logique = 1. On ne passe jamais par la sortie non du test.

Dans cet exemple, un traitement est ralis avant la boucle sans fin

Tout algorigramme se termine par un bloc fin.

Le traitement de la boucle sans fin est placer ici

4.2 CONSTITUTION DUN PROGRAMME


Un programme graphique est constitu dun ou plusieurs algorigrammes : Un algorigramme obligatoire pour le programme principal (correspond au main() en langage C). Un algorigramme pour chacun des gestionnaires dinterruption (ou programme de traitement dinterruption, ISR en anglais = Interrupt Service Routine), si une ou plusieurs interruptions sont utilises. Un algorigramme pour chacune des fonctions dfinies graphiquement Pour linstant les interruptions suivantes peuvent tre utilises : interruption provoque par le timer 0 interruption sur entre externe RB0 interruption provoque par la rception dun caractre sur la liaison srie asynchrone (RS232) Une nouvelle fentre, accessible par un onglet, est automatiquement cre lorsquon coche loption dutilisation dune interruption. Les interruptions sont dcrites plus loin.

4.3 STRUCTURES DE BASE


Un algorigramme est constitu dun assemblage de structures de base. Les noms placs au dessus des dessins des symboles dans la barre doutils correspondent aux instructions en langage C.
Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges 20

Pour certains symboles placs sur la feuille de travail, le nom de linstruction en langage C est rappel. TRAITEMENT (CALCUL) Un traitement correspond une ou plusieurs instructions. Le symbole traitement permet dcrire 4 lignes dinstructions. Une instruction peut utiliser un appel de fonction. Voir plus loin. OPERATION DE SORTIE (ACTION) Ce symbole ne permet que daffecter une valeur une sortie. Jusqu 4 affectations peuvent tre ralises par symbole

PROCEDURE Ce symbole permet de raliser : une temporisation un appel de sous programme sans valeur de retour (procdure au sens du Pascal)

STRUCTURE ALTERNATIVE (IF) Condition Equivalent en C : If (PB==0) {Traitement 1} else {Traitement 2} Le traitement 2 est facultatif.

Symbole if Condition fausse

Condition vraie Traitement 1 sous forme dun ou plusieurs blocs Fin de la structure Traitement 2 sous forme dun ou plusieurs blocs Symbole fin if

Cette structure ncessite de placer 2 symboles : if et fin if + les traitements + les liaisons. Remarque : Multiprog ne permet pas de dessiner lquivalent dun choix multiple (switch() case du langage C). STRUCTURES ITERATIVES (BOUCLES) Il existe plusieurs structures itratives.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

21

Structure while Equivalent C : while (PB==1) {traitement}

Symbole while

Condition

Fin de la structure Traitement sous forme dun ou plusieurs blocs

Traitement rpt tant que la condition est vraie

Cette structure ncessite de placer 1 seul symbole + le traitement + les liaisons Structure do while Equivalent en langage C : do {traitement} while (BP==0) ; Traitement rpt tant que la condition est vraie

Symbole do

Traitement sous forme dun ou plusieurs blocs Symbole while (do)

Sortie de la boucle Cette structure ncessite de placer 2 symboles : do et while (do) + les traitements + les liaisons.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

22

Structure for Equivalent C : for(i=0 ;i<=0 ;i++) {..}

Valeur initiale de la variable de boucle Modification de la variable de boucle : incrmentation ou dcrmentation selon les cas Condition de maintien dans la boucle sortie de la boucle

Symboles placs avec le bloc for

Ici, le traitement est ralis 11 fois.

Traitement sous forme dun ou plusieurs blocs

Cette structure ncessite de placer 1 seul bloc + le traitement + les liaisons

4.4 PLACEMENT ET EDITION DES SYMBOLES


Il suffit de slectionner un symbole ou un lment de liaison dans la barre doutils puis de la placer sur la feuille de travail en cliquant lendroit dsir.

Selon le type de symbole, une bote de dialogue souvre ou non lors du placement.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

23

4.4.1 TRAITEMENT (CALCUL) Aprs avoir cliqu sur la feuille de travail pour placer un symbole Traitement (Calcul), la bote de dialogue ci-contre souvre : Il faut complter la ligne en utilisant la syntaxe de C, sans ; en fin de ligne. Cette syntaxe est assez intuitive pour les calculs. Pour les oprateurs, les noms des variables, des fonctions, des rsultats de CAN, des tableaux de constantes, il suffit de les slectionner dans des listes droulantes. Dans lexemple ci-contre, seuls 23, 0 et 2 ont t entrs au clavier. Une aide est disponible sur les oprateurs du langage C. En amenant le pointeur sur le bouton daide, la fentre suivante apparat. Une ligne peut utiliser la valeur renvoye par une fonction. Ex : MaVar2= MaFonc(MaVar1)*2 MaFonc() est une fonction qui effectue un calcul partir de la valeur passe en argument, ici MaVar1. MaFonc() est une fonction qui est dfinie par lutilisateur. Multi-prog fournit quelques fonctions lies aux priphriques. Voir le sur les fonctions et procdures.

0101

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

24

4.4.2 AFFECTATION DUNE VALEUR A UNE SORTIE (ACTION) Aprs avoir cliqu sur la feuille de travail pour placer un symbole action, la bote de dialogue ci-contre souvre : Chaque liste droulante contient toutes les variables de sorties et toutes les affectations possibles.

4.4.3 PROCEDURE (SP) Le symbole procdure permet de raliser une temporisation ou un appel de sous programme. Lappel de sous programme est vu plus loin. Aprs avoir cliqu sur la feuille de travail pour placer un symbole procdure, la bote de dialogue ci-contre souvre : Le choix de la dure est trs simple. Elle peut tre rgle jusqu 65535 ms (codage par un entier non sign sur 16 bits). Cette temporisation est ralise avec une fonction qui utilise une boucle for. La dure nest pas dune grande prcision. Elle peut changer si on utilise la version complte du compilateur avec optimisation. Pour un appel de sous programme, voir plus loin.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

25

4.4.4 STRUCTURE IF / DO WHILE / WHILE Aprs avoir cliqu sur la feuille de travail pour placer un symbole if ou while (un des deux), la bote de dialogue ci-contre souvre : Liste de toutes les conditions simples sur les entres dfinies Cette bote de dialogue est constitue pour que lutilisateur ait le moins de donnes possibles entrer au clavier. Pour boucle sans fin avec structure while Oprateurs relationnels. Pour construire des expressions complexes Dnomination Grafcet Valeur retourne par une fonction, variable, rsultat de CAN Non ditable. Rsulte des choix prcdents. Chaque partie est entre aprs appui sur Validation

Oprateurs de comparaison

Avec cette bote de dialogue, on peut avoir une rceptivit du type : E0==0.E1==1+S0==0 Pour que cette expression soit facilement comprhensible, elle ne respecte pas la syntaxe du C. Le et est traduit par un point et le ou par un +. Comme il nest pas possible de placer des parenthses, les priorits des oprateurs en langage C sappliquent. La syntaxe C aurait donn : E0 == 0 && E1 == 1 || S0 == 0. Remarque : Cette bote de dialogue est prvue pour rentrer des expressions relativement simples pour les conditions. Un utilisateur un peu expriment peut cependant entrer des expressions plus complexes. Ex :

Variable choisie dans la liste droulante

Entr au clavier dans une zone normalement prvue pour un choix dans liste droulante

Entr au clavier

Aprs avoir cliqu sur Validation, on peut vrifier quon obtient bien lexpression souhaite

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

26

4.4.5 BOUCLE FOR Aprs avoir slectionn for dans la barre doutils et cliqu sur la feuille de travail pour placer le symbole, la bote de dialogue ci-contre souvre : Selon que la valeur de dbut est infrieure ou non la valeur de fin, la variable est automatiquement incrmente ou dcrmente. Equivalent C : for(Cmpt=0 ;Cmpt<=100 ;Cmpt=Cmpt+1) Cmpt est une variable qui a t dclare.

4.5 EDITION DES SYMBOLES APRES PLACEMENT


Pour diter, il suffit de se placer sur un symbole, avec loutil slection (flche) actif. En cliquant sur le bouton droit, on accde un menu contextuel. La rubrique proprits permet douvrir la mme bote de dialogue que lors du placement.

4.6 PLACEMENT DES LIAISONS


Il suffit dutiliser les symboles trait de la barre doutils. On peut aussi utiliser un trac automatique. Il faut choisir la fonction lien, avec nimporte quel outil actif. Il suffit douvrir le menu contextuel puis de cliquer sur lien. La dmarche suivre est rappele en haut de lcran. Il faut cliquer avec le bouton gauche sur le point de dpart puis nouveau sur le point darrive.

4.7 MANIPULATION DE SYMBOLES DEJA PLACES


Il est possible de : Insrer un symbole entre des symboles dj placs ( partir de la version 2) Insrer une ligne ou une colonne entre les symboles Dplacer des symboles la souris Couper ou copier / coller des symboles dans Multiprog Copier tout ou partie de lalgorigramme dans le presse papier vers une autre application Pour effectuer certaines de ces manipulations, il faut dabord slectionner un ou plusieurs blocs. En cas derreur de placement ou dplacement, il est possible dannuler les dernires oprations avec la commande Edition / Annuler. 4.7.1 SELECTION DE SYMBOLES La slection seffectue avec loutil slection (flche dans la barre doutils).

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

27

Il faut : amener le pointeur pour que le carr de slection encadre le symbole ou le premier symbole du groupe dplacer Avec les versions 1.12 et ultrieures, il suffit de placer le pointeur sur un bloc.

Cliquer en maintenant et tirer. Le ou les symboles slectionns deviennent encadrs. Il faut ensuite relcher le bouton de la souris lorsque la slection est termine.

4.7.2 DEPLACEMENT DE SYMBOLES / COPIER / COLLER Une fois le symbole slectionn, on peut raliser les oprations suivantes : Dplacement comme dans toutes les applications Windows : clic maintenu bouton gauche souris + dplacement souris Suppression : appui sur la touche Suppr Copier dans le presse papier vers une application externe : menu Edition / Copier vers ou menu contextuel Copier vers Copier pour Multi-prog : Ctrl + C ou menu contextuel,

4.8 INSERTION DE LIGNES OU COLONNE ENTRE LES SYMBOLES DEJA PLACES


Il suffit de placer le pointeur lendroit o on souhaite insrer une ligne ou une colonne, douvrir le menu contextuel et de cliquer sur Insrer ligne ou insrer colonne. Tous les symboles sont dplacs, y compris les liaisons, pour faire apparatre une nouvelle ligne ou colonne

4.9 INSERTION DE SYMBOLES


Cette possibilit nexiste qu partir de la version 2.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

28

Il faut choisir le symbole insrer puis placer le pointeur au dessus droite du symbole au dessus duquel le nouveau symbole doit tre insr. Lindication Inser apparat. Il faut cliquer sur cette indication et linsertion est automatique.

5 PRODUCTION DU FICHIER EXECUTABLE / PROGRAMMATION 5.1 VUE DENSEMBLE


La production du fichier excutable se fait en 2 temps : Traduction automatique en langage C (et algorithme) Compilation (en utilisant le compilateur CC5X ou SDCC de faon transparente lutilisateur) Selon la carte cible choisie, la programmation peut suivre ou non la compilation. Selon une option choisie lors de la traduction automatique, lexcution du programme avec animation sur lalgorigramme peut tre lance ou non en fin de programmation. Pour linstant Multi-prog offre le choix entre 3 logiciels pour la programmation. Le choix seffectue automatiquement selon la carte cible slectionne. Il suffit de choisir une carte dans le menu Projet.

Carte

Logiciel lanc automatiquement pour la programmation Castor_prog Castor_prog Castor_prog IC-Prog PICFlash programmer

Castor LPT Castor Wifi Castor USB Carte compatible IC-Prog Carte EasyPIC de mikroElektronika Autre carte (sans transfert)

Mise au point possible (excution avec visualisation sur algorigramme) Oui Oui Oui Oui ? ( vrifier)

Pas de programmation depuis Non Multi-prog

Il est prfrable de choisir Castor-prog qui na pas besoin de configuration particulire et qui fonctionne avec une liaison USB ou par Wifi. Avant de lancer la compilation, il est ncessaire de vrifier que les logiciels de programmation sont bien configurs. Voir 5.4).

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

29

5.2 TRADUCTION AUTOMATIQUE EN LANGAGE C ET COMPILATION

Une fois lalgorigramme termin, il suffit de cliquer sur licne flche tion automatique en langage C + la compilation. Une bote de dialogue demande si une mise au point in situ est prvue ou non. Lorsque aucune mise au point nest prvue, la carte cible fonctionne seule aprs programmation du PIC cible.

pour lancer la traduc-

Lorsque la mise au point est prvue, la traduction rajoute de faon cache lutilisateur des instructions pour le dialogue avec le PC. La mise au point nest possible quavec une carte cible qui possde la programmation in situ et qui peut se connecter au module dinterface. Selon la carte cible choisie au niveau du projet, loption Compilation avec Mise au point est accessible ou non. Aprs la traduction automatique, le fichier cr (ou une partie dans le cas avec mise au point) est observable dans la fentre avec longlet Programme C. De mme, on peut aussi voir lalgorithme dans la fentre avec longlet Algorithme. Traduction avec erreurs dans lalgorigramme Certaines erreurs sont signales. Il faut les corriger avant de lancer une nouvelle compilation

Dautres erreurs ne gnrent aucun message lors de la traduction. Exemple : emploi dun symbole do la place dun symbole fin if. Lerreur sera gnre la compilation. La compilation fait appel, de faon transparente lutilisateur, au compilateur CC5X ou SDCC. Si tout se passe bien, le fichier .hex pour la programmation est gnr et la programmation commence ensuite. En cas derreur, une fentre souvre automatiquement.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

30

Les messages derreurs concernent le fichier .c non observable. On trouve lerreur en saidant du fichier en langage C visible depuis Multi-prog. Il faut lancer une compilation sans mise au point et compter les lignes. Ici lerreur est signale sur la ligne 56. On peut saider dun diteur de texte qui numrote les lignes. Il faut ouvrir le fichier pic.c plac dans le dossier dinstallation de Multi-prog (ou le fichier NomProjet.c plac dans le dossier du projet avec certaines versions de Multi-prog).

5.3 PROGRAMMATION DU PIC CIBLE (TRANSFERT)


La programmation peut tre in situ, avec les cartes qui le permettent, ou tre ralise avec un programmateur. Dans ce dernier cas, le PIC une fois programm doit tre plac sur la carte cible. La programmation du PIC cible seffectue avec le bouton Transfert.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

31

Pour la programmation in situ, avec lutilisation ventuelle dune carte dinterfaage, Multi-prog utilise un logiciel externe parmi 3 : PICFLASH Programmer (pour les cartes de mikroElektronika), IC-prog ou Castor-prog. Ce dernier est spcialement conu pour travailler avec les cartes Castor mais il peut aussi sutiliser avec une autre carte munie dun connecteur compatible Microchip ICD + une carte dinterfaage spcifique (Castor pour la liaison USB). Le choix de lun ou lautre de ces logiciels dpend de la carte cible retenue pour le projet (voir 3). IC-Prog a t choisi lorigine du dveloppement de Multi-prog. Castor-prog dvelopp spcifiquement pour Multi-prog est plus adapt. Il est plus rapide, surtout sur la version USB. 5.3.1 PROGRAMMATION AVEC UNE CARTE CASTOR OU UNE CARTE QUELCONQUE AVEC UN CONNECTEUR COMPATIBLE ICD MICROCHIP La carte cible est choisie laide du menu Projet

Un des items CASTOR est cocher si on utilise une carte spcifique CASTOR ou une carte quelconque avec un connecteur compatible Microchip ICD. Dans ce cas, il faut utiliser une petite carte dinterface. Avec Castor LPT, on utilise le port // (imprimante) pour la programmation. Avec la Castor USB, cest la liaison USB qui est utilise. La carte easyPIC2 se programme par la liaison USB.

Les fichiers correspondant au programme Castor-prog sont automatiquement placs dans le dossier dinstallation de Multi-prog. Le logiciel Castor-prog (version 2.6 de mars 2007) permet de programmer les PIC suivants : 12F629, 12F630, 12F675, 12F676, 16F84, 16F627A, 16F628A, 16F648A, 16F818, 16F819, 16F871, 16F873, 16F873A, 16F876, 16F876A, 16F877, 16F877A, PIC18F2550 et 18F4550 (non supports par Multi-prog). Castor-prog utilise un fichier devices.ini (devices_lpt.ini pour lutilisation du port // ; devices_usb.ini pour lutilisation de la liaison USB) pour les bits de configuration du PIC cible. Pour modifier la configuration souhaite, il faut diter le fichier et le modifier. Voici par exemple la partie concernant le PIC16F876 : [09E] device=PIC16F876 algo=2 rom=8192 eeprom=256 bits=U,U,WRT,/CPD,*LVP,BOR,*/PWRT,WDT num bits=11,10,9,8,7,6,3,2 bits osc=RC,*HS,XT,LP num bits osc=1,0 bits flash write=*OFF,1F00h-1FFFh,1000h-1FFFh,0000h-1FFFh num bits flash write=13,12,5,4 Pour modifier une option, il faut enlever ou mettre une *.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

32

Lutilisation de Castor-Prog est transparente lutilisateur. Le lancement est automatique. La programmation est trs rapide.

Lors de la programmation, une barre indique la progression. En fin de programmation, une vrification est automatiquement lance. On peut aussi utiliser Castor-prog indpendamment de Multi-prog. Le logiciel reconnat automatiquement le PIC cible. Castor-prog dispose des commandes habituelles : charger un fichier, programmer le composant, lire, etc.

5.3.2 PROGRAMMATION AVEC UNE CARTE COMPATIBLE IC-PROG Pour utiliser IC-prog avec une carte quelconque, il faut une carte dinterface pour la liaison //. Cette carte dinterface est la mme que celle pour Castor-prog. Depuis la mise au point de Cator-prog, cette solution est obsolte. Voir 11. Avant la 1re utilisation dIC-prog, il faut le configurer pour Windows. Voir plus loin. Remarque sur la programmation par la liaison // Pour que la programmation fonctionne correctement, il faut quune imprimante soit dclare. Peu importe limprimante.

6 OBSERVATION DU DEROULEMENT DU PROGRAMME


Lobservation du droulement du programme sur lalgorigramme ne peut avoir lieu que lorsque la programmation est effectue. Il faut dabord choisir le type de droulement : continu ou pas pas avec la commande Mise au point / Mode continu ou Mode pas pas. Il faut ensuite cliquer sur Connexion avec le C. Si le mode continu est slectionn, le programme est lanc et on peut voir un cadre rouge se dplacer sur les diffrents symboles.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

33

En cliquant sur Visualisation E/S + Variables, une nouvelle fentre souvre :

En mode pas pas, il faut cliquer sur le bouton pas de la barre doutil pour faire avancer le programme dun symbole sur lalgorigramme. Pour arrter le mode mise au point, il faut fermer la fentre de visualisation des E/S et des variables et cliquer sur Mise au point / Dconnexion avec le C.

7 GESTION DE PERIPHERIQUES & INTERRUPTIONS 7.1 VUE DENSEMBLE


La dclaration de priphriques seffectue en ouvrant la bote de configuration du projet avec Projet / Configuration (Algorigramme) / Onglet Priphriques.

La dclaration de lutilisation du CAN intgr, seffectue avec longlet Configuration E/S de la bote de configuration.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

34

Pour les interruptions, il faut utiliser longlet Interruptions. La dclaration de priphriques permet de disposer de fonctions et procdures permettant de grer les priphriques : intgrs au C : liaison RS232, EEPROM, Timer ou externes : LCD, clavier Les fonctions et procdures sont dcrites dans le 8). Les instructions pour la configuration des priphriques intgrs sont automatiquement gnres, dans la partie CONFIGURATION de lalgorigramme (aprs le symbole DEBUT), selon les options choisies. Remarque 1: il est impossible dutiliser tous les priphriques dans une mme application. Lafficheur ncessite 7 bits dun port. La liaison srie utilise ncessairement 2 broches spcialises dun port qui ne peuvent plus alors tre utilises pour lafficheur. La programmation in situ utilise elle aussi 2 broches dun port, etc. Il faut consulter attentivement la documentation des PIC. Si un conflit existe entre les diffrents priphriques, une bote de dialogue le signale.

Remarque 2 : lors dune interruption, le drapeau correspondant est automatiquement test puis remis 0 en fin de traitement de linterruption.

7.2 CAN
Pour utiliser le CAN intgr, il suffit juste de cocher la case CAN ct des entres du port A et du port E, comme mentionn dans le 7.1). 1 fonction permet de grer la CAN. Voir 8.2), aprs la prsentation gnrale des fonctions et procdures. Attention : toutes les combinaisons permises par le PIC pour des mlanges entres analogiques / logiques ne sont pas supportes par Multi-prog.

7.3 AFFICHEUR LCD


Multi-prog permet de commander un afficheur LCD, avec un bus de donne de 4 bits et les commandes sur le mme port du PIC.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

35

La bote de dialogue Interruptions et priphriques permet de dclarer un LCD, de choisir le port de connexion. Les bits sont imposs. Ils sont prendre en compte lors de la conception de la carte cible.

4 procdures permettent de grer lafficheur LCD. Voir 8.2), aprs la prsentation gnrale des fonctions et procdures.

7.4 LIAISON RS232


La dclaration dune liaison RS232 dans la bote de dialogue Interruptions et priphriques ouvre une zone pour choisir la vitesse de transmission. Les broches du PIC utiliser sont donnes dans la doc du PIC.

Un CI spcialis dans la transformation des niveaux (ex : MAX232) est indispensable entre le PIC et le connecteur DB9. La dclaration ouvre aussi une fentre pour un gestionnaire dinterruption avec longlet RX232. Voir plus loin pour les interruptions. Une procdure et une fonction permettent de grer la liaison RS232. Voir 8.3), aprs la prsentation gnrale des fonctions et procdures.

7.5 LIAISON I2C


La liaison I2C nest utilisable quen mode matre (le plus rpandu).

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

36

La vitesse de transfert peut tre choisie entre 400kbits/s et 100kbits/s. Ces deux vitesses sont les standards I2C. Plusieurs procdures et une fonction permettent de grer la liaison I2C. Voir plus loin, aprs la prsentation gnrale des fonctions et procdures.

7.6 GENERATION DUN SIGNAL RECTANGULAIRE A RAPPORT CYCLIQUE VARIABLE

Il est possible de gnrer 2 signaux. Le Timer 2 est utilis pour gnrer ces signaux. Quelques frquences sont disponibles en choisissant une division de la frquence dhorloge du timer 2 avec une liste droulante. Une fonction permet de choisir le rapport cyclique.

7.7 GESTION DU CLAVIER


Le clavier utiliser est un clavier matric 4x4 (16 touches).

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

37

Multiprog est prvu pour lutilisation dun clavier standard. Il faut placer des rsistances (la valeur importe peu, on peut retenir 10k par exemple) entre les lignes Y1, Y2, Y3, Y4 et la masse. La dclaration dun clavier nomme automatiquement les entres lignes Y1, Y2, Y3, Y4 et sorties colonnes en X1, X2, X3, X4. Ces E/S apparaissent dans les listes droulantes de certaines botes de dialogues prsentes au 4.4).

KB1 Clav ier 16 touches 1 D4 D5 D6 D7 Y1 Y2 Y3 Y4 5 4 6 7 7 A 8 R1 10k R2 10k R3 10k R4 10k 0 B C 8 9 D 5 6 E 2 3 F

D0 D1 D2 D3

X1 X2 X3 X4

Une fonction est disponible pour la gestion du clavier. Voir 8.4), aprs la prsentation gnrale des fonctions et procdures. Multiprog donne le code de la touche appuye. Si plusieurs touches sont appuyes simultanment, cest le numro de la touche appuye sur la colonne dindice le plus lev qui est renvoy.

7.8 EEPROM
LEEPROM est une zone mmoire qui peut tre crite et lue un trs grand nombre de fois. Les informations sont conserves mme aprs la coupure de lalimentation. La dclaration de lutilisation de lEEPROM permet dutiliser une procdure pour lcriture et une fonction pour la lecture. Voir 8.5), aprs la prsentation gnrale des fonctions et procdures.

7.9 INTERRUPTION PAR DEBORDEMENT DU TIMER 0


Le timer 0 est constitu dun registre 8 bits qui est incrment chaque front actif dun signal obtenu partir de lhorloge systme dont la frquence est divise par un certain nombre. Certains PICs offrent dautres possibilits qui ne sont pas exploites ici. Lorsque que le registre du timer atteint 255, il repasse 0 au front suivant. On dit quil y a dbordement du timer. Il est possible de choisir 2 types dinterruption par dbordement : Interruption non priodique : lutilisateur doit programmer le timer dans un des algorigrammes pour gnrer une interruption unique aprs un certain temps. Multi-prog fournit une procdure pour cette programmation. Interruption priodique : lutilisateur choisir la frquence des interruptions avec des listes droulantes et na rien programmer dans les algorigrammes

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

38

Dans les 2 cas, une fentre pour lalgorigramme de traitement de linterruption avec longlet Timer0 est automatiquement cre. Voir 9 pour les interruptions.

7.9.1 INTERRUPTION NON PERIODIQUE Il suffit de choisir la division en frquence de lhorloge du timer et la priode de lhorloge du timer est automatiquement calcule en fonction de la frquence de loscillateur fixe dans la bote de dialogue principale de la configuration du projet. La procdure fournie permet de programmer la dure avant interruption en multiple de ce temps de base. La dure max est de 255 fois le temps de base. Voir 8 sur les fonctions fournies. 7.9.2 INTERRUPTION PERIODIQUE Il suffit de choisir par essais successifs la division en frquence pour lhorloge du timer et le contenu dun registre pour obtenir la frquence souhaite des interruptions priodiques

Remarque : la valeur du registre est celle qui est utilise, de faon transparente lutilisateur, pour reprogrammer le registre du timer chaque interruption pour obtenir une nouvelle interruption aprs la dure dsire (1/Frquence).

7.10 INTERRUPTION SUR FRONT DE LENTREE RB0/INT

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

39

Quand linterruption sur lentre RB0 est choisie, une liste droulante permet de dterminer le front ou ltat qui dclenche linterruption. Une fentre pour lalgorigramme de traitement de linterruption avec longlet INT0 est automatiquement cre. Voir 9 pour les interruptions. Remarque : Pour la validation des interruptions sur fronts montant ou descendant, quelques bits de registres de commande sont positionns une fois pour toutes lors de linitialisation en dbut de programme. Pour la validation des interruptions sur fronts montant et (puis) descendant, en plus de linitialisation, un bit est modifi chaque interruption.

8 FONCTIONS ET PROCEDURES 8.1 INTRODUCTION


Multi-prog fournit certaines procdures et fonctions (au sens du Pascal) en relations avec les priphriques utiliss. Si un afficheur LCD est dclar, 4 procdures sont fournies. Si une liaison RS232 est en service, une procdure + une fonction sont disponibles, etc. Les procdures apparaissent dans la bote de dialogue Procdure qui souvre automatiquement lorsquon place un symbole SP sur la feuille de travail.

Les fonctions apparaissent dans deux botes de dialogue : la bote de dialogue Condition qui souvre automatiquement lorsquon place un symbole if ou while

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

40

La bote de dialogue Calcul qui souvre automatiquement lorsquon place un symbole Calcul.

Lutilisateur peut aussi crire ses propres procdures et fonctions. Elles apparaissent automatiquement dans les listes droulantes des botes de dialogue prcdentes. Les fonctions ou procdures peuvent aussi tre utilises dans les traitements. Les procdures ou fonctions peuvent ncessiter des paramtres. Les rgles dcritures sont celles du C. Ex : lcd_gotoxy(0,1) 0 et 1 sont les 2 paramtres de la procdure. Pour enter une valeur, il suffit de slectionner une procdure ou fonction dans une bote de dialogue, puis de placer le point dinsertion au bon endroit et entrer le texte.

Une fonction (au sens du Pascal) renvoie une valeur qui se substitue au nom de la fonction dans lexpression. Exemple : Valeur = CAN(0)*3. CAN est une fonction qui ncessite un paramtre (ici 0) et qui renvoie une valeur (ici le rsultat dune conversion A/N). Les rgles dcritures des procdures et fonctions sont celles du C.

8.2 FONCTION POUR CAN


1 seule fonction CAN() est disponible. Elle renvoie un entier positif cod sur 16 bits. La valeur max renvoye est 1023 (CAN 10 bits). Elle ncessite un paramtre : le numro de la voie utilise de 0 7. Syntaxe : Result_CAN = CAN(1)

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

41

Cette fonction aiguille lentre vers le CAN, lance une CAN, attend la fin de la conversion et renvoie le rsultat. La dure totale de la conversion dpend de la frquence de lhorloge du C. Elle est de lordre de quelques dizaines de s. Remarque : Result_CAN doit tre une variable code sur 16 bits de type unsigned short ou signed short. Si on utilise une variable code sur 8 bits, ce sont les 8 bits de poids faibles qui sont transfrs. Pour obtenir les 8 bits de poids forts, il faut crire : Result_CAN = CAN(1)>>2

8.3 PROCEDURES POUR AFFICHEUR LCD


4 procdures (au sens du Pascal = fonctions au sens du C) sont fournies pour la gestion de lafficheur : Nom proc- Description de la procdure dure lcd_clear() Effacement de tout lafficheur lcd_gotoxy(,) Positionnement du curseur Syntaxe

lcd_putsf() lcd_puts() lcd_aff_nbr()

lcd_gotoxy(NumCol,NumLigne) La numrotation des colonnes et des lignes part de 0. Pour afficher sur la colonne de dbut de la 2me ligne, il faut crire : lcd_gotoxy(0,1) Affichage de la chane transmise en lcd_putsf( bonjour ) argument. Affichage du caractre ASCII dont le lcd_puts(0x30) code est transmis en argument. Affiche en chiffres la valeur en base lcd_aff_nbr(NomVariable) 10 de la variable (entire signe co- ex : lcd_aff_nbr(Cmpt) de sur 16 bits max) transmise en argument

8.4 LIAISON RS232


3 procdures (au sens du Pascal = fonction au sens du C) et 3 fonctions sont fournies pour la gestion de la liaison srie : Nom TX_RS232() Type Description Procdure Transmet un octet qui correspond la valeur transmise en paramtre. Sil sagit dune constante, la rgle dcriture est celle du C + extension du compilateur CC5X (notation en binaire). Procdure Transmet les codes qui correspondent la chane de caractres transmise en paramtre. Le texte doit tre plac entre guillemets doubles. Fonction A complter Fonction Retourne la valeur (code sur un octet) reue par la liaison srie Syntaxe TX_RS232(Valeur) Ex : TX_RS232(0x33) hexadcimal TX_RS232(Var)

en

TX_string_RS232()

TX_string_RS232(Bonjour)

val_RS232() RX_RS232()

Var = RX_RS232()

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

42

asynchrone RS232. La rception dune donne provoque une interruption (algorigramme RX RS232) Lutilisation de cette fonction ralise un acquittement de linterruption. RX_string_RS232() Procdure A complter cmp_str_RS232() Fonction A complter

8.5 LIAISON I2C


3 procdures et une fonction permettent de contrler le fonctionnement dune liaison I2C en mode matre : procdures : i2c_start(), i2c_stop() et i2c_write() fonction : i2c_read() Pour lutilisation, voir la documentation du bus I2C.

8.6 GENERATION DUN SIGNAL RECTANGULAIRE A RAPPORT CYCLIQUE VARIABLE


La procdure PWM1() ou PWM2() permet de fixer le rapport cyclique de la sortie. Exemple : Pour fixer le rapport cyclique 50%, il suffit dcrire : PWM1(50)

8.7 FONCTION POUR CLAVIER


La fonction Keyb() est fournie pour la gestion du clavier. Elle ne ncessite pas de paramtre. Elle renvoie une valeur code sur 8 bits qui correspond au code de la touche appuye. La scrutation du clavier a lieu une fois. Elle trs rapide (quelques dizaines de S max). Les rebonds ne sont pas grs. KB1 Multiprog donne le code de la touche apClav ier 16 touches puye. Si aucune touche nest appuye, la 1 2 3 F valeur retourne est 16. D4 Y1 5 4 5 6 E Si plusieurs touches sont appuyes simultanD5 Y2 6 ment, la valeur dpend des touches. Dans 7 8 9 D D6 Y3 7 certains cas, cest un numro gal 16 ou A 0 B C D7 Y4 8 suprieur ; dans dautres cas, cest le code de la touche de la colonne de plus haut indice.
R1 10k R2 10k R3 10k R4 10k 1 2 3

Pour un clavier standard, le code renvoy est celui de la touche indiqu ci-contre. Exemple dutilisation : CodeTouche=Keyb()
D0 D1 D2 D3 X1 X2 X3 X4

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

43

Le tableau suivant donne le code renvoy selon la touche enfonce. Code renvoy Touche appuye 0 Y4 X2 1 Y1 X1 2 Y1 X2 3 Y1 X3 4 Y2 X1 5 Y2 X2 6 Y2 X3 7 Y3 X1 8 Y3 X2 9 Y3 X3 10 Y4 X1 11 Y4 X3 12 Y4 X4 13 Y3 X4 14 Y2 X4 15 Y1 X4

Remarque : la gestion du clavier fait appel un balayage des colonnes Y. Un tat 1 est appliqu successivement sur les diffrentes colonnes. La lecture de ltat des lignes permet de dterminer la touche enfonce.

8.8 EEPROM
1 procdure (au sens du Pascal = fonction au sens du C) et une fonction sont fournies pour la gestion de la liaison srie : Nom write_eeprom() Type Description Procdure Ecrit un octet transmis en paramtre ladresse transmise en paramtre read_eeprom(adresse) Fonction Retourne la valeur (code sur un octet) lue ladresse donne en paramtre Syntaxe write_eeprom(adresse,valeur) ex : write_eeprom(10,Var) read_eeprom(adresse) ex : read_eeprom(10)

8.9 PROCEDURE POUR INTERRUPTION NON PERIODIQUE AVEC LE TIMER 0


La procdure Time_timer0() permet de fixer la dure avant une nouvelle interruption. La syntaxe est Time_timer0(Nb_Temps_de_Base). Le temps de base est indiqu dans la boite de dialogue Interruptions et priphriques. Nb_Temps_de_Base est une valeur entire code sur 8 bits. Exemple : on souhaite une interruption provoque par le timer0 dans 8ms avec un temps de base de 51,2s. Nb_Temps_de_Base = 8.10-3 / 51,2.10-6 = 156 (valeur arrondie de 156,25). Il faut crire Time_timer0(156)

8.10 PROCEDURE OU FONCTION UTILISATEUR


Les procdures ou fonctions utilisateurs sont dclares partir de la bote de configuration de projet. Elles peuvent tre dfinies sous forme graphique ou sous forme de texte.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

44

8.10.1 PROCEDURE OU FONCTION DEFINIE PAR UN TEXTE

Il faut dclarer la procdure ou fonction sans cocher sur la case Mode Graphique Dans ce champ, il faut crire le nom de la fonction ou procdure exactement comme elle apparatra dans les listes droulantes des botes de dialogues. Voir 8.1). Il est donc prfrable de placer les parenthses et une ou plusieurs virgules sil y a plusieurs paramtres.

Pour crire la dfinition de la fonction ou procdure, il faut cliquer sur le bouton Texte. Une nouvelle fentre souvre. Il suffit dcrire la fonction en respectant la syntaxe du C.

On peut utiliser des variables locales. Elles ne seront pas visibles dans la fentre dobservation quon peut ouvrir lors du droulement du programme sur lalgorigramme. Attention : il est indispensable que laccolade ouvrante soit sur la 2me ligne et non en fin de 1re ligne. Multi-prog se sert de la 1re ligne pour tablir la dclaration de la fonction.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

45

8.10.2 PROCEDURE OU FONCTION DEFINIE GRAPHIQUEMENT

Il faut dclarer la procdure ou fonction en cochant sur la case Mode Graphique. Si on renomme une procdure ou fonction, il ne faut pas oublier les parenthses accoles au nom.

Un onglet supplmentaire apparat dans la fentre principale pour chaque procdure ou fonction.

Il suffit alors de complter la feuille de travail pour la procdure ou la fonction.

9 ALGORIGRAMMES POUR LES INTERRUPTIONS


3 sources dinterruptions font apparatre automatiquement une fentre pour un algorigramme de traitement dinterruption : dbordement du timer 0 front ou tat sur lentre RB0/INT rception dune donne sur la liaison srie asynchrone Les rgles pour les algorigrammes de traitement dinterruption sont identiques celles de lalgorigramme principal. Ils doivent commencer par le symbole dbut et se terminer par le symbole fin. Ils ne doivent bien entendu pas contenir de boucle sans fin.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

46

10 UTILISATION DUNE BIBLIOTHEQUE UTILISATEUR


Multi-prog permet de dfinir une bibliothque utilisateur. Il faut appeler la bote de configuration de projet avec la commande Projet / Configuration (Algorigramme). Il faut ouvrir la bote de dialogue de slection et choisir le nom dun fichier c qui contient des dfinitions de fonctions. Aprs slection, le nom du fichier apparat sous Librairie.

Avec CC5X, les dfinitions des fonctions doivent tre places entre les directives #pragma library 1 et #pragma library 0. Les fonctions non utilises ne seront pas compiles. Ex : #pragma library 1 void Temporisation(unsigned int Duree) { unsigned int i; for(i=Duree;i!=0;Duree--) ; } #pragma library 0

Attention : Pour que la compilation soit correcte, il faut absolument placer un retour ligne aprs le dernier #pragma. Lors de la traduction automatique de lalgorigramme en langage C, la ligne suivante est place : #include Chemin_daccs \ MaBib.c Les fonctions de la bibliothque napparaissent pas automatiquement dans les botes de dialogues de Multi-prog. Lors du dplacement des fichiers dun projet, il faut penser mettre jour le chemin daccs.

11 CONFIGURATION & UTILISATION DIC-PROG


IC-Prog ncessite dtre configur. Les fichiers pour IC-prog sont automatiquement placs dans le dossier dinstallation de Multi-Prog. Lexcutable est Icprog.exe.

11.1 CONFIGURATION POUR WINDOWS XP


Cette configuration nest ncessaire quune fois, avant la 1re utilisation.
Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges 47

Lancer le logiciel IC-Prog. Si cest la premire utilisation, une bote de dialogue indique quil faut dabord le configurer. La bote de dialogue suivante souvre. Il faut fixer les options comme sur le dessin. Si ce nest pas la 1re utilisation, il faut utiliser la commande Config/ Hardware ou Configuration / Hardware. Aprs avoir cliqu sur OK, le message suivant apparat :

Lors de la 1re configuration, aprs avoir cliqu sur OK, le logiciel se lance puis le message suivant apparat devant la fentre principale de ICProg :

Ce problme va tre rsolu en suivant les indications ci-dessous. Cliquer sur OK, puis fermer la fentre principale de IC-Prog. Placez-vous dans le rpertoire contenant l'excutable ICPROG.EXE, slectionnez-le et cliquez sur le bouton droit de votre souris. Dans le menu contextuel, cliquez sur Proprits comme ci-contre :

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

48

Dans la fentre Proprits de ICProg , cliquez sur l'onglet Compatibilit, cochez "Excuter ce programme en mode de compatibilit pour" et slectionnez dans la liste le systme d'exploitation Windows 2000. Cliquer sur OK. Deux messages apparaissent. Il faut cliquer chaque fois sur OK. Le logiciel peut se lancer maintenant normalement. Au lancement, le message suivant apparat :

La fentre principale de IC-Prog apparat

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

49

Avec la commande Settings / Option, on peut choisir la langue. Aprs avoir choisi French, les menus sont traduits. Il faut configurer longlet Misc comme suit :

11.2 OPTIONS DIC-PROG

Les options dIC-prog sont dfinies avec la commande Settings / Option, ou Configuration / Option. La bote de dialogue avec onglets permet de choisir la langue, la vrification de la programmation du composant, etc.

Avec Multi-prog, il est inutile de cocher la vrification aprs programmation dans ICProg car Multi-prog lance systmatiquement une vrification. Si loption est coche, il y a 2 vrifications, ce qui ralentit inutilement le processus de programmation.

Attention : Il faut vrifier chaque 1re utilisation dun nouveau PIC que le PIC choisi dans ICProg est bien le mme que celui dfini dans Multi-prog.

11.3 PROGRAMMATION DU PIC CIBLE


Choix du PIC cible dans IC-prog A chaque fois quon utilise un nouveau PIC par rapport au PIC du dernier projet, il faut modifier le PIC cible dans IC-prog et une valeur dans Multi-prog.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

50

Pour lancer IC-prog, il faut se placer dans le dossier dinstallation de Multi-prog et double cliquer sur icprog.exe.

Choix du PIC cible Bits de configuration selon : le type doscillateur (HS = High Speed = quartz > 8 MHz) la protection des donnes une fois la programmation termine (CP = Code Protection) diffrentes possibilits (WDT = Watch Dog Timer ; PWRT = PoWeR up Timer ; BODEN = Brown Out reset ENable ; LVP = Low Voltage Programming ; CPD = Code Protection Data EEPROM ; WRT = flash programm memory WRiTe enable)

la valeur correspondant aux bits de configuration est donne dans le coin.

Il faut noter cette valeur qui est utilise dans Multi-Prog. On peut ensuite fermer IC-Prog qui nest plus lanc manuellement par la suite. Il nest pas ncessaire denregistrer une configuration ou un fichier pour que le PIC dsign soit conserv en mmoire. Configuration de Multi-prog pour IC-prog Aprs avoir not le mot de configuration, il faut choisir la commande Projet / Configuration (IC-prog). Il faut alors recopier le mot dans la bote de dialogue qui souvre.

Droulement de la programmation En fin de compilation, une bote de dialogue demande si on souhaite bien programmer le composant.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

51

Aprs avoir rpondu oui, la programmation commence. Diverses botes de dialogues informent sur lavancement de la programmation et de la vrification. Aprs la programmation, une vrification est lance. Si la programmation sest effectue correctement, la bote de dialogue suivante apparat :

12 UN EXEMPLE DE A Z : THERMOMETRE NUMERIQUE 12.1 INTRODUCTION


On utilise une maquette avec un microcontrleur PIC pour raliser un thermomtre. Les lignes ci-dessous sont extraites dun document lve (option MPI en 2nde). Le schma fonctionnel du thermomtre est donn ci-dessous :

Tension image de la temprature Temprature

Tension image de la temprature, avec valeur adapte

Nombre cod sur 10 bits

CAPTAGE

CONDITIONNEMENT DU SIGNAL

CONVERSION ANALOGIQUE NUMERIQUE

TRAITEMENT NUMERIQUE

AFFICHAGE

La fonction CAPTAGE permet de convertir la temprature en une tension image de cette temprature. Elle est constitue avec un capteur de temprature intgr (de nombreux composants lmentaires sont intgrs sur une puce lectronique dans un petit botier plastique). La fonction CONVERSION ANALOGIQUE NUMERIQUE permet de convertir la tension image de la temprature en un nombre image de cette temprature. La tension lentre doit tre adapte la tension pleine chelle du convertisseur. Cest pour permettre ladaptation de valeur quest utilise la fonction CONDITIONNEMENT DU SIGNAL. La tension en sortie est toujours image de la temprature, mais la valeur est adapte au CAN. La valeur pour la temprature maximale mesurable correspond la tension pleine chelle. La fonction TRAITEMENT NUMERIQUE permet dobtenir un nombre gal la temprature exprime en C partir du nombre en sortie de la conversion analogique numrique.

Le thermomtre est constitu de 2 cartes lectroniques : Une carte fille qui comprend la fonction de CONDITIONNEMENT DU SIGNAL

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

52

Une carte mre qui comprend les fonctions de CONVERSION ANALOGIQUE NUMERIQUE, TRAITEMENT NUMERIQUE et AFFICHAGE.

12.2 SCHEMA SIMPLIFIE DE LA CARTE MERE


VDD VDD R5 100k 1 R6 1k RaZ manuelle BP1 U2 PIC16F876 MCLR/Vpp RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/TOCKI RA5/AN4/SS 2 3 4 5 6 7 21 22 23 24 25 26 27 28 11 12 13 14 15 16 17 18 VDD 1 2 3 4 5 6 J2 1 2 3 4 5 6 connecteur pour module ICD R9 10k R10 10k Masse logique Masse analogique Sortie_Cond REF_CAN REF_CAN n'est pas utilise av ec Multi-prog Le potentiomtre permet de dliv er une tension v ariable pour raliser une comparaison, etc. VDD_A POT3 100k 1 BP2 R12 1k R11 100k 2 3

1 2 3

K2 Connecteur pour commande relais, etc.

VDD

C12 100n

LD1

U3 LCD VDD 2 3 1

R8 8,2k

C1 33pF C2 33pF

RB0/INT RB1 RB2 9 OSC1/CLKIN RB3 RB4 RB5 XTAL1 RB6 8MHz RB7 10 OSC2/CLKOUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT

1 2

4 3

7 8 9 10 11 12 13 14

2 micro interrupteurs et un bouton poussoir permettent de choisir dif f rents modes de f onctionnement SW1 VDD

AFFICHEUR LCD 2 LIGNES


RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7

VO VSS

POT2 1k

4 5 6

ajustage contraste

Conn 6 pts

Sur ce schma ne sont pas reprsents : les circuits pour les alimentations (tension de rfrences pour le CAN du PIC, pour la carte fille, etc.) les condensateurs de dcouplage etc. La tension de rfrence pour le CAN du PIC nest pas utilise par Multi-prog. Celui-ci programme le PIC pour que la tension dalimentation soit utilise. Un C PIC ralise la conversion A/N et le traitement numrique. Laffichage est ralis avec un afficheur cristaux liquides standard de 2 lignes avec contrleur intgr.

12.3 VALEURS EN DIFFERENTS POINTS DE LA CHAINE DE TRAITEMENT


Le fonctionnement du capteur et du conditionneur ne sont pas dcrits ici. Le tableau ci-dessous rcapitule les diffrentes valeurs pour une plage de mesure de temprature de 40C +100C.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

53

Temprature en C

-50C -40 C 100 C 110C

Tension Vs2 en sortie du conditionneur du signal 0 0,31V 4,6875 V 5V

Rsultat CAN R 0

Valeur afficher V -50 -40 100 110

1023

-50C et 110C sont en ralit impossibles afficher, car il est impossible dobtenir 0V et 5V en sortie du conditionneur, cause des tensions de dchet de lamplificateur utilis. La temprature peut tre affiche par pas de 160/1023 = 0,16C. A cause des incertitudes de mesures (notamment la prcision du capteur), un tel pas na pas de sens. Avec un pas daffichage de 1C, la valeur afficher V est gale au rsultat du calcul suivant : V = -50 + R/1023 * 160 V est un entier sign cod sur 8 bits ou plus. La conversion en caractres ASCII est simple. Pour les calculs intermdiaires, il faut utiliser des rels (float), ou des entiers cods sur 32 bits (long). On peut raliser une approximation satisfaisante avec la formule suivante : V = -50 + R/102 * 16 Comme R est au maximum gal 1023, 1023*16 est infrieur la valeur max quon peut coder avec un entier non sign cod sur 16 bits (65535) ou mme un entier sign (32767). Il faut effectuer les calculs dans lordre : R * 16 /102 -50

12.4 CONFIGURATION DU C
Lancer le logiciel Multi-prog puis crer un nouveau projet. Une bote de dialogue est automatiquement ouverte. Il faut dclarer le C de la carte et fixer la frquence de loscillateur utilis et indiquer la carte dinterface

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

54

Il faut ensuite cliquer sur longlet priphrique pour dclarer lutilisation dun afficheur cristaux liquide (LCD) sur le port C (un port = un ensemble de broches).

Il faut ensuite choisir longlet Configuration E/S. Certains champs ont t remplis par la dclaration de lafficheur. Pour les manipulations, on utilise 2 entres qui peuvent tre aiguilles en entre du CAN intgr au C. Il sagit de RA1 et RA5. Il faut dclarer que ces entres RA1 et RA5 sont utilises en entres du CAN. Les autres E / S doivent tre fixes comme suit :

Remarque : la slection des 2 entres dsires du CAN entrane automatiquement la slection des autres entres. BP2 va permettre de tester le bouton poussoir.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

55

Pour les calculs, il faut utiliser des variables signes codes sur 16 bits quil faut dclarer dans le projet, avec longlet Variables.

Aprs avoir complt la bote de dialogue, il faut cliquer sur OK. Un page vierge apparat avec une barre doutils contenant des symboles quon place sur la feuille de travail pour raliser lalgorigramme.

12.5 LE PROGRAMME COMPLET


3 procdures utilisateurs ont t dfinies.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

56

Les procdures sont dcrites ci-dessous :

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

57

Procdure Aff_Msg_Acc()

Procdure CAN_et_Aff()

Procdure CAN_Calc_et_Aff()

Toutes les informations ont t entres avec les botes de dialogues. Exemple :

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

58

13 FONCTIONNEMENT EN MODE MISE AU POINT

A complter

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

59

ANNEXES

Comparaison compilateurs

Programme

Gradateur avec BP

Compilateur CC5X (estimation Compilateur SDCC 2.7 (estimaavec version complte optimise) tion, il ny a pas de fichier produit avec la taille exacte) FLASH : 162 mots (138 mots) FLASH : 231 mots (218 mots RAM : 13 avec la version 2.6) RAM : FLASH : FLASH : RAM : RAM :

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

60

Version 1.x de Multiprog Fentre principale


Algorigramme du programme principal, avec les symboles plac la souris Algorigramme dun gestionnaire dinterruption. La fentre est automatiquement cre aprs avoir coch une case dans un menu de configuration

Listing du programme source en langage C automatiquement gnr

Algorithme (proche du langage C) automatiquement gnr

Code C automatiquement gnr daprs les options coches dans des menus de configuration

La condition est choisie avec des listes droulantes dans une bote de dialogue. Seul 50 a t entr au clavier.

Laction est choisie avec une liste droulante dans une bote de dialogue

Fentre principale correspondant la version 1.12

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

61

Onglets pour les algorigrammes de traitement dinterruptions.

Fentre principale correspondant la version 1.12

Bote de configuration du projet


La bote de configuration du projet est automatiquement ouverte lors de la cration dun nouveau projet. Elle peut aussi tre ouverte tout moment avec la commande Projet / E-S Algorigramme ou E-S Grafcet. Tous les paramtres peuvent tre modifis sauf la taille de la page qui est choisie lors de la cration. Elle ne peut plus tre modifie ensuite.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

62

Frquence dhorloge du PIC cible. Permet Multi-prog de calculer les valeurs des registres de contrle pour les timers, les liaisons srie, etc. Largeur x longueur par rapport nb tapes (Grafcet). Taille symbole algorigramme > taille tape. Entre CAN. Attention : toutes les combinaisons permises par le PIC ne sont pas supportes Dclaration de fonctions et procdures (au sens du Pascal) (sous programmes) personnelles. Elles peuvent tre dfinies sous forme graphique ou par du texte. Le texte est entr en appuyant sur le bouton texte. La syntaxe est celle du C.

Dfinition des interruptions (avec un algorigramme par inter.), des priphriques internes (timer, liaison srie, EEPROM) et externes (LCD, clavier) utiliss. Dfinition du nom utilisable dans le programme pour chaque E/S. Permet une meilleure lisibilit.

Dclaration des variables globales. Le nb limit de types est d la version gratuite du compilateur CC5X. Avec SDCC dautres types sont disponibles. Le nb de types peut voluer pour les versions futures de Multiprog

Fentre pour les versions 1.x

Placement et dition des Symboles


Il suffit de slectionner un symbole ou un lment de liaison dans la barre doutils puis de la placer sur la feuille de travail en cliquant lendroit dsir.

Selon le type de symbole, une bote de dialogue souvre ou non lors du placement. La bote de dialogue pour le symbole calcul est la suivante : Il faut tout entrer au clavier.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

63

Slection des symboles La slection seffectue avec loutil slection (flche dans la barre doutils). Il faut : amener le pointeur pour que le carr de slection encadre le symbole ou le premier symbole du groupe dplacer avec les versions 1.11 et antrieures, placer le pointeur dans le coin suprieur droit ou infrieur gauche, trs prs dun repre Cliquer en maintenant et tirer. Le ou les symboles slectionns deviennent encadrs. Il faut ensuite relcher le bouton de la souris lorsque la slection est termine.

Fichiers produits
Toutes les indications pour lalgorigramme (ou le Grafcet) sont dans le fichier NomProjet.gro (version 1.11 et prcdentes) ou NomProjet.gpi (depuis la version 1.12).

Programmation du PIC cible


Avec la version 1.12, la programmation du PIC cible seffectue avec le bouton Transfert.

Dclaration de priphriques intgrs


La dclaration de priphriques seffectue en ouvrant la bote de configuration du projet avec Projet / E-S Algorigramme.

La dclaration de lutilisation du CAN intgr, seffectue dans la partie Configuration E/S de la bote de configuration.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

64

Pour les autres priphriques et interruptions, il faut cliquer sur le bouton Interruptions Priphriques.

Utilisation dune interruption


Une fentre pour lalgorigramme de traitement de linterruption (ex : onglet Timer0) est automatiquement cre.

Multi-prog pour PIC / Philippe Morenton LT PE Martin Bourges

65

Vous aimerez peut-être aussi