Fiche Pratique Pic Dans Proteus

Embed Size (px)

Citation preview

Cblage dans Proteus dun PIC programm dans FlowcodeCette fiche pratique indique les grandes lignes pour utiliser rapidement dans vos montages lectroniques sous Proteus un microcontrleur PIC en tant que composant programmable. Le programme du PIC est mis au point dans Flowcode sous forme dun algorigramme, puis est ensuite transfr dans le microcontrleur PIC sous Proteus. Les niveaux logique prsents sur les sorties du PIC sont alors exploitable dans le montage.

I Programme de baseChacun des 4 paragraphes de cette fiche vous montre un exemple concret dutilisation dun PIC dans Proteus. Chaque exemple est compos dun algorigramme ( raliser dans Flowcode) et dun montage lectronique ( raliser dans Proteus). Pour apprendre par la pratique il est conseill de raliser une fois chacun de ces exemples sur ordinateur afin de les voir en fonctionnement rel. Une fois ces 4 exemples acquis, libre vous de les adapter votre problmatique. Ce premier exemple vous donne les principes de base pour transfrer le programme du PIC de Flowcode vers Proteus : Ralisez dans Flowcode lalgorigramme 1, enregistrez-le sous le nom exemple1, puis compilez-le pour obtenir le programme en hexadcimal dans un fichier (cliquez sur Compiler vers HEX dans le menu Puce de Flowcode) Crez dans Proteus un nouveau projet utilisant seulement un PIC16F88 comme unique composant, puis dans les proprits du PIC rglez lhorloge 19660800 Hz, et indiquez le fichier exemple1.hex dans le champs Program File : cela permet Proteus dexcuter dans le PIC lalgorigramme cr sous Flowcode Lancez sous Proteus la simulation temps rel (touche F12) puis observez lvolution des sorties du PIC : comme le montre lalgorigramme 1 les sorties passent 1 tour de rle, tel un chenillard.

Remarques complmentaires (le pic utilis dans flowcode comme dans proteus sera ici le 16f88 pour les 4 exemples) :Lhorloge doit tre la mme dans les 2 logiciels (19660800 Hz par dfaut, 17 un copier/coller de Flowcode vers Proteus convient, lunit nest pas 16 RA7/OSC1/CLKIN RA0/AN0 15 18 RA6/OSC2/CLKOUT RA1/AN1 obligatoire dans Proteus). 1 RA2/AN2/CVREF/VREF4 2 Le type doscillateur configur dans Flowcode (RC, XTAL ou internal) na RA5/MCLR RA3/AN3/C1OUT/VREF+ 3 aucune importance pour une simple simulation dans Proteus. RA4/AN4/T0CKI/C2OUT La borne 4 du PIC (RESET) est active au niveau bas : elle doit tre relie 6 RB0/INT/CCP1 7 au point dalimentation VDD (1 logique) pour dsactiver le Reset, mais elle RB1/SDI/SDA 8 RB2/SDO/RX/DT peut rester non connecte. 9 RB3/CCP1 Aucune borne particulire du PIC ne doit tre imprativement cble : un 10 RB4/SCK/SCL 11 PIC seul (sans fil ni composants externes) peut trs bien tre simul sous RB5/SS/TX/CK 12 RB6/AN5/T1OSO/T1CKI Proteus, les niveaux logiques des sorties (les 13 bornes de droite sur le 13 RB7/AN6/T1OSI symbole du PIC 16f88) tant indiqus par les petits carrs (rouge ou bleu). En indiquant Proteus le fichier de configuration .cof plutt que le simple code .hex on peut faire une simulation pas pas dans Proteus en suivant Montage lectronique 1 lvolution du code en assembleur. Les 13 bornes de droite du PIC (les 5 bits A0 A4 du port A et les 8 bits B0 B7 du port B) peuvent tre utilises indpendamment comme une entre ou comme une sortie : les bits utiliss dans un bloc sortie dans Flowcode seront des sorties dans Proteus, et les bits utiliss dans un bloc entre dans Flowcode seront des entres dans Proteus. Aucune autre configuration nest prciser pour le sens des entres/sorties.

PIC16F88

Algorigramme 1

II Utilisation des bits A5, A6 et A7Problme : par dfaut la borne 4 du PIC est le RESET (actif au niveau bas), ce qui interdit une utilisation direct du bit A5. De mme les bornes 15 et 16 du PIC permettent de cbler un oscillateur externe (quartz ou circuit RC), et interdisent une utilisation directe des bits A6 et A7 (mme si les bornes 15 et 16 ne sont pas connectes dans Proteus). Question : comment utiliser les bits A5, A6 et A7 comme simple entre/sortie utilisateur ? Rponse :le rle de la borne 4 du PIC (choix entre entre de RESET ou entre/sortie utilisateur) est configurable dans Flowcode en allant dans le menu Puce + Configurer + Bouton Switch To Expert Config Screen , puis choisir RA5 la place de MCLR sur la 4me ligne pour utiliser les bits A6 et A7 il faut configurer le PIC en oscillateur interne (dans le menu Puce + Configurer de Flowcode). Ainsi les bornes 15 et 16 ne sont pas rserves un oscillateur externe et deviennent des entres/sorties utilisateur comme les autres Le PIC 16f88 peut donc tre vue en un premier temps comme un simple circuit logique programmable avec 16 entres/sorties logiques. Il peut par exemple permettre de raliser trs rapidement un squenceur logique (en lieu et place dun montage bascules), sans utiliser un seul composant externe pour le fonctionnement du PIC. Les fonctionnalits avances du PIC (oscillateur externe, reset, convertisseur analogique/numrique, interruptions, etc.) ne sont pas indispensables matriser et pourront tre vue en un second temps et progressivement. Voici lexemple 2 :

Algorigramme 2FICHE PRATIQUE : Utilisation dun PIC dans Proteus www.gecif.net

Montage lectronique 2Page 1 / 2

III Connexion dun afficheur et dun clavier un PIC dans ProteusEn cblant dans Proteus un afficheur 7 segments anode commune au PIC comme indiqu dans Flowcode il est possible de le piloter en utilisant les macros de Flowcode. Rappel : sur un afficheur anode commune les segments seront allums sils sont relis un 0 logique (niveau bas). Utilisation directe dun clavier matriciel et dun afficheur 7 segments dans Proteus avec un PIC 16f88 (sans transistor ni rsistance de tirage) : Connecter dans Proteus le clavier KEYPAD-PHONE au port B du PIC 16f88 comme indiqu dans Flowcode (le bit B3 nest pas utilis) : colonne 1, 2 et 3 aux bits B0 B2 et lignes A, B, C et D aux bits B4 B7 (voir le Montage 3) Dans Flowcode, connecter les 7 segments de lafficheur au bits A0 A6, lanode commune B3 et le point dcimal A7 Dans Proteus, connecter les 7 segments de lafficheur 7SEG-COM-ANODE aux bits A0 A6, et son anode commune un point dalimentation (lment POWER du mode Terminal) reli VDD Laisser le bit B3 du PIC non connect dans Proteus (lafficheur de Proteus ne possde pas de point dcimal)VDD

7SEG-COM-ANODEA16 15 4 RA7/OSC1/CLKIN RA0/AN0 RA6/OSC2/CLKOUT RA1/AN1 RA2/AN2/CVREF/VREFRA5/MCLR RA3/AN3/C1OUT/VREF+ RA4/AN4/T0CKI/C2OUT RB0/INT/CCP1 RB1/SDI/SDA RB2/SDO/RX/DT RB3/CCP1 RB4/SCK/SCL RB5/SS/TX/CK RB6/AN5/T1OSO/T1CKI RB7/AN6/T1OSI 17 18 1 2 3 6 7 8 9 10 11 12 13

G

1

2

A

1 4 7

2 5 8 0

3 6 9 #

PIC16F88B C

D

KEYPAD-PHONEAlgorigramme 3 Montage lectronique 3Il est alors possible dafficher sur lafficheur 7 segments le chiffre correspondant la touche enfonce, en utilisant un simple algorigramme contenant 2 bloc Routine de composant (voir lalgorigramme 3) : Le premier bloc Routine de composant appelle la macro GetKeypadNumber du clavier et enregistre la valeur de la touche enfonce dans la variable n (variable de type octet crer) Le second bloc appelle la macro AfficheChiffre de lafficheur en lui communiquant la valeur de la variable n pour afficher le chiffre

Remarque : pour teindre lafficheur 7 segments lorsque aucune touche nest enfonce il faut mettre 255 dans le port A (toutes les soties 1).

IV Utilisation des entres analogiquesCe dernier exemple montre comment utiliser le convertisseur analogique/numrique du PIC (le C.A.N.) afin de mesurer une tension et de la convertir en valeur numrique exploitable par le PIC. Dans le montage lectronique 4 le potentiomtre POT-LIN cre une tension variant de 0 V 5 V (en fonction de la position du curseur du potentiomtre). Cette tension est applique sur lentre analogique AN0 du PIC. Dans lalgorigramme 4 le rsultat de la conversion analogique/numrique est enregistr dans la variable n grce la macro lire_comme_Octet du composant ADC(0).

Algorigramme 4 Montage lectronique 4 Remarque : le PIC 16f88 possde 7 entres analogiques utilisables. Elles sont notes AN0 (borne 17) AN6 (borne 13) sur le symbole du PICFICHE PRATIQUE : Utilisation dun PIC dans Proteus www.gecif.net Page 2 / 2

3