Sunteți pe pagina 1din 69

Royaume du Maroc Ecole Suprieure de technologie de Casablanca Dpartement : Gnie lectrique Option : Electrotechnique & Electronique Industrielle

Etude & Ralisation dune carte dacquisition de donnes base de microcontrleur PIC 16F876
Refait

Encadr par : Mer AOUFOUSSI HABIB Ralis par : KHALFI YOUSSEF

Anne universitaire : 2007/2008

P.F.E. 2007/2008

E.S.T.C.

SOMMAIRE
A-INTRODUCTION GENERALE..4 1- Objectif de la rgulation & intrt du rgulateur numrique....4 2- Principe gnral de la rgulation..4 3- Les caractristiques du rgulateur PID5 3.1- Actions PID6
3.1.1- Action proportionnelle6 3.1.2- Action drive..6 3.1.3- Action intgrale6

3.2- Rgulateur PID.7 B-CAHIER DE CHARGE..8 C- Conception Hardware..9 1-Dfinition du PIC9 2-Distinction des PIC.10 3-Familles des PIC..10 4-Les trente cinq instructions du PIC 16F87610 5-Organisation du PIC 16F876...15 a- Schma interne du PIC 16F876 .15 b- Composition interne du PIC 16F876..15 c- Caractristiques communes des PIC...16 d- Description des broches du PIC 16F87617 e-Organisation de la RAM..20
1- Accs la RAM par ladressage DIRECT...................................................................................................20 2- Accs la RAM par ladressage INDIRECT21

f- Description du convertisseur analogique-numrique (CAN)du PIC 16F876.24


-Rsolution dun convertisseur analogique-numrique....24 -chantillonnage de linformation25 -Dtail de fonctionnement du CAN contenu dans le 16F876..25 -Les registres ADRESH et ADRESL .26 -Linterruption fin de conversion associe au module CAN ..29 -Droulement dune conversion analogique-numrique ....30

-2-

P.F.E. 2007/2008

E.S.T.C.

D-Ralisation du rgulateur numrique base de PIC......31 1-Circuit de conversion A/N.31


1 Premire dmarche : circuit dadaptation du signal dentre..32 2 Deuxime dmarche : circuit du reset du microprocesseur 32 3 Troisime dmarche : circuit de frquence dhorloge du microprocesseur.33 4 Quatrime dmarche : circuit intgral..........34

2-Dcodage du clavier36

E-Conception Software......37 1-Premire dmarche : criture du programme & assemblage......37 2-Deuxime dmarche : implantage du programme assembl..40
-Conversion analogique-numrique & frquence dchantillonnage :.42

3-Troisime dmarche : essais sur un logiciel de simulation46

F- Essais49 1-Circuit de conversion A/N....49 2-Circuit final ralis avec les deux binmes .54 3-Circuit dalimentation..58 G- Conclusion..60

H- Bibliographie & Annexe61

-3-

P.F.E. 2007/2008

E.S.T.C.

A-INTRODUCTION GENERALE
1- Objectif de la rgulation & intrt du rgulateur numrique

Rguler une grandeur, cest obtenir delle un comportement donn, dans un environnement susceptible de prsenter des variations. Lintrt de lutilisation du rgulateur numrique rside dans le fait quil est totalement reprogrammable souhait, efficace, assure la continuit du processus rgul avec une trs grande efficacit & prcision. Ce qui lui a permis dtre utilis souvent dans lindustrie. Le rgulateur numrique est construit spcialement avec des circuits lectroniques base de microprocesseurs ou de microcontrleurs.
2- Principe gnral de la rgulation

Dans la plupart des appareils et installations industrielles, tertiaires et mmes domestiques, il est ncessaire de maintenir des grandeurs physiques des valeurs dtermines, en dpit des variations externes ou internes influant sur ces grandeurs. Le niveau dun rservoir deau, la temprature dune tuve, le dbit dune conduite de gaz, tant par nature variables, doivent donc tre rgls par des actions convenables sur le processus considr. Si les perturbations influant sur la grandeur contrler sont lentes ou ngligeables, un simple rglage (dit en boucle ouverte) permet dobtenir et de maintenir la valeur demande (par exemple : action sur un robinet deau). Dans la majorit des cas, cependant, ce type de rglage nest pas suffisant, parce que trop grossier ou instable. Il faut alors comparer, en permanence, la valeur mesure de la grandeur rgle celle que lon souhaite obtenir et agir en consquence sur la grandeur daction, dite grandeur rglante. On a, dans ce cas, constitu une boucle de rgulation et plus gnralement une boucle dasservissement (figure I.1). Cette boucle ncessite la mise en oeuvre dun ensemble de moyens de mesure, de traitement de signal ou de calcul, damplification et de commande dactionneur, constituant une chane dlments associs la chane de rgulation (ou dasservissement). Toute chane de rgulation (ou dasservissement) comprend trois maillons indispensables :

Lorgane de mesure, lorgane de rgulation et lorgane de contrle.


Il faut donc commencer par mesurer les principales grandeurs servant contrler le processus. Lorgane de rgulation rcupre ces mesures et les compare aux valeurs souhaites, plus communment appeles valeurs de consigne. En cas de non-concordance des valeurs de mesure et des valeurs de consigne, lorgane de rgulation envoie un signal de commande
-4-

P.F.E. 2007/2008

E.S.T.C.

lorgane de contrle (vanne, moteur, etc.), afin que celui-ci agisse


sur le processus. Les paramtres qui rgissent le processus sont ainsi stabiliss en permanence des niveaux souhaits.

FIGURE I. 1 : Schma de principe dune chane de rgulation

Le choix des lments de la chane de rgulation est dict par les caractristiques du processus contrler, ce qui ncessite de bien connatre le processus en question et son comportement.

3- Les caractristiques du rgulateur PID

Le rgulateur standard le plus utilis dans lindustrie est le rgulateur PID car il permet de rgler laide de ses trois paramtres les performances (amortissement, temps de rponse, ...) dun processus modlis par un deuxime ordre. Nombreux sont les systmes physiques qui, mme en tant complexes, ont un comportement voisin de celui dun deuxime ordre. Par consquent, le rgulateur PID est bien adapt la plupart des processus de type industriel et est relativement robuste par rapport aux variations des paramtres du procd, quand on nest pas trop exigeant sur les performances de la boucle ferme par rapport celles de la boucle ouverte (par exemple,

-5-

P.F.E. 2007/2008

E.S.T.C.

acclration trs importante de la rponse ou augmentation trs importante de lamortissement en boucle ferme).

3.1- Actions PID


3.1.1- Action proportionnelle

La sortie U (t) du rgulateur proportionnel est donne en fonction de son entre e (t) qui reprsente lcart entre la consigne et la mesure par la relation

Pour le cas discret, cette relation reste la mme telle que :

Le rle de laction proportionnelle est de minimiser lcart e entre la consigne et la mesure et elle rduit le temps de monte et le temps de rponse. On constate quune augmentation du gain KP du rgulateur entrane une diminution de lerreur statique et permet dacclrer le comportement global de la boucle ferme.
3.1.2- Action drive

Elle est une action qui tient compte de la vitesse de variation de lcart entre la consigne et la mesure, elle joue aussi un rle stabilisateur, contrairement laction intgrale. En effet, elle dlivre une sortie variant proportionnellement la vitesse de variation de lcart :

avec Td le dosage de laction drive, exprim en minutes ou en secondes. Laction drive va ainsi intervenir uniquement sur la variation de lerreur ce qui augmente la rapidit du systme (diminution des temps de rponses). En pratique, il est souhaitable de limiter laction drive afin de ne pas amplifier les bruits haute frquence et de limiter lamplitude des impulsions dues aux discontinuits de lcart.
3.1.3- Action intgrale

Laction intgrale agit proportionnellement la surface de lcart entre la consigne et la mesure, et elle poursuit son action tant que cet cart nest pas nul. On dit que laction intgrale donne la prcision statique

-6-

P.F.E. 2007/2008

E.S.T.C.

(Elle annule lerreur statique). L'action intgrale est conditionne par le temps d'intgrale Tiv.

Comme dans le cas de laction proportionnelle, un dosage trop important de laction intgrale engendre une instabilit de la boucle de rgulation. Pour son rglage, il faut l aussi trouver un compromis entre la stabilit et la rapidit. Enfin, le correcteur intgral prsente le dfaut de saturer facilement si lcart ne sannule pas rapidement ce qui est le cas des systmes lents. En effet, tout actionneur est limit : un moteur est limit en vitesse, une vanne ne peut pas tre plus que totalement ouverte ou totalement ferme. Il se peut que la variable de commande amne lactionneur sa limite ce qui suspend la boucle de retour et le systme aura une configuration assimilable une boucle ouverte puisque lactionneur demeurera satur indpendamment de la sortie du systme. Quand lerreur est rduite (action intgrale non sature), il se peut quil faille un temps important pour que les valeurs des variables ne soient correctes de nouveau : on appelle ce phnomne lemballement du terme intgral.

3.2- Rgulateur PID


Laction conjugue PID permet une rgulation optimale en associant les avantages de chaque action : la composante P ragit lapparition dun cart de rglage, la composante D soppose aux variations de la grandeur rgle et stabilise la boucle de rgulation et la composante I limine lerreur statique. Et cest pour cela que ce type de correcteur est le plus utilis en milieu industriel. Dans un rgulateur PID, il existe plusieurs faons dassocier les paramtres P, I et D. En effet, le correcteur PID peut avoir une structure srie, parallle ou mixte .

-7-

P.F.E. 2007/2008

E.S.T.C.

B-CAHIER DE CHARGE
Le cahier de charge nous impose de raliser un rgulateur numrique sous forme dune carte dacquisition de donnes base de microcontrleur PIC. A nous de raliser ; selon le schma ci-dessous, premirement un circuit permettant de convertir un signal analogique en numrique via le convertisseur A/N du PIC ; puis de raliser un autre circuit permettant la communication du PIC avec un clavier. Lautre binme devra ; entre autres, raliser un circuit permettant la reconversion N/A, la commande des paramtres du rgulateur numrique & laffichage des ces diffrentes valeurs sur un afficheur cristaux liquides.

Schma synoptique du rgulateur numrique souhait

-8-

P.F.E. 2007/2008

E.S.T.C.

C-CONCEPTION MATRIELLE

1.

Dfinition du PIC

Un microcontrleur est un composant lectronique autonome compos : - dun microprocesseur. - de la mmoire RAM. - de la mmoire permanente. - des interfaces dE/S //, srie (RS232,I2C ). - des interfaces dE/S analogique. - des Timer pour grer le temps. - dautres modules plus au moins sophistiqus . Il est gnralement moins puissant quun microprocesseur en terme de rapidit ou de taille mmoire, il se contente le plus souvent dun bus 8 ou 16 bits. Ceci en fait un composant trs bon march parfaitement Adapt pour piloter les applications embarques dans de nombreux domaines dapplication : - linformatique (souris, modem ) - Vido (Appareil photos numrique, camra numrique ) - Contrle des processus industriels (rgulation, pilotage) -Appareil de mesure (affichage, calcul statistique, mmorisation) - Automobile (ABS, injection, GPS, airbag) -Multimdia (tlviseur, carte audio, carte vido, MP3) - Tlphones (fax, portable, modem) -Electromnager (lave-vaisselle, lave-linge, four micro-onde) Ils intgrent en un seul circuit toutes les ressources propres un systme minimum contrairement un microprocesseur qui lui ncessite des fonctionnalits extrieures. Ils sont constitus autour dune architecture appele RISC (Reduced Instruction Set Computer : Circuit jeu dinstructions rduit 33 ou 35 instructions). La composition des PIC est de faible consommation avec une rapidit accrue facilitant leur intgration dans la plupart des circuits. Tous les PIC Mid-Range (y inclus le 16F876) ont un jeu de 35 instructions, stockent chaque instruction dans un seul mot de programme, et excutent chaque instruction (sauf les sauts) en 1 cycle. On atteint donc de trs grandes vitesses, et les instructions sont de plus trs rapidement assimiles. Lexcution en un seul cycle est typique des composants RISC. Lhorloge fournie au PIC est pr divise par quatre au niveau de celleci. Cest cette base de temps qui donne la dure dun cycle. Si on utilise par exemple un quartz de 4MHz, on obtient donc 1000000 de cycles/seconde, or, comme le PIC excute pratiquement 1 instruction

-9-

P.F.E. 2007/2008

E.S.T.C.

par cycle, hormis les sauts, cela nous donne une puissance de lordre de 1MIPS (1 Million dInstructions Par Seconde).

2.

Distinction des PIC

Pour identifier un PIC, on utilise simplement son numro. Les 2 premiers chiffres indiquent la catgorie du PIC, 16 indique un PIC Mid-Range utilisant des mots de 14 bits. Vient ensuite parfois une lettre L : Celle-ci indique que le PIC peut fonctionner avec une plage de tension beaucoup plus tolrante. Ensuite, la lettre C indique que la mmoire programme est une EPROM ou plus rarement une EEPROM ; CR pour indiquer une mmoire de

type ROM ou F pour indiquer une mmoire de type FLASH.


Donc le 16F876 sera un Mid-Range de 8 bits (largeur du bus de donnes) avec une mmoire de type FLASH reprogrammable souhait.

3.

Familles des PIC

La famille Base-Line qui utilise des mots dinstructions de 12 bits, la Base-Line, famille Mid-Range, qui utilise des mots de 14 bits (et dont fait partie Midnotre PIC 16F876), et la famille High-End qui utilise des mots de 16 High-End, bits. Par la suite, dautres familles sont apparues ; plus sophistiques, comme la Enhanced family .

4.

Les trente cinq instructions du PIC 16F876

La programmation du PIC 16F876 par le logiciel MPlab de

Arizona Microchip Electronics se rsume en


trente cinq instructions :

INSTRUCTIONS DOPERATIONS SUR LES REGISTRES(ci-dessous)

- 10 -

P.F.E. 2007/2008 Instructions


ADDLW k

E.S.T.C. Descriptions
Additionner le contenu du registre W et la valeur immdiate "k" La somme est stocke dans W

Indicateurs affects
C est mis 1 s'il y a une retenue DC est mis 1si la somme des quatre bits de poids faible est > 15 Z est mis 1 si le rsultat est nul C est mis 1 s'il y a une retenue DC est mis 1si la somme des quatre bits de poids faible est > 15 Z est mis 1 si le rsultat est nul

ADDWF f,d

Additionner le contenu des registres W et f. La somme est stocke suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f

SUBLW k

Soustraire la valeur immdiate "k" au contenu du registre W. La somme est stocke dans W

C est mis 1 s'il y a une retenue DC est mis 1si la somme des quatre bits de poids faible est > 15 Z est mis 1 si le rsultat est nul C est mis 1 s'il y a une retenue DC est mis 1si la somme des quatre bits de poids faible est > 15 Z est mis 1 si le rsultat est nul

SUBWF f,d

Soustraire le contenu du registre f du contenu du registre W. La somme est stocke suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f "ET" bit bit entre le contenu du registre W et la valeur immdiate "k" Le rsultat est stocke dans W

ANDLW k

Z est mis 1 si le rsultat est nul

ANDWF f,d "ET" bit bit entre le contenu des registres W et f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f IORLW k "OU" bit bit entre le contenu du registre W et la valeur immdiate "k" Le rsultat est stocke dans W "OU" bit bit entre le contenu des registres W et f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f "OU exclusif" bit bit entre le contenu du registre W et la valeur immdiate "k"

Z est mis 1 si le rsultat est nul

Z est mis 1 si le rsultat est nul

IORWF f,d

Z est mis 1 si le rsultat est nul

XORLW k

Z est mis 1 si le rsultat est nul

- 11 -

P.F.E. 2007/2008
Le rsultat est stocke dans W XORWF f,d "OU exclusif" bit bit entre le contenu des registres W et f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Complmente le contenu du registre f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Dcrmente le contenu du registre f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Incrmente le contenu du registre f. Le rsultat est stock suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Rotation gauche du contenu du registre f. si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f RRF f,d Rotation droite du contenu du registre f. si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f SWAPF f,d change de quartets entre le contenu du registre f. Le rsultat est stock suivant "d" b7b6b5b4 b3b2b1b0 --> b4b3b2b1b0 b7b6b5b4 si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Mise 0 du bit b du registre f Mise 1 du bit b du registre f

E.S.T.C.

Z est mis 1 si le rsultat est nul

COMF f,d

Z est mis 1 si le rsultat est nul

DECF f,d

Z est mis 1 si le rsultat est nul

INCF f,d

Z est mis 1 si le rsultat est nul

RLF f,d

C est mis 1 si le bit 7 tait 1 avant rotation

C est mis 1 si le bit 0 tait 1 avant rotation

BCF f,b BSF f,b

- 12 -

P.F.E. 2007/2008

E.S.T.C.

INSTRUCTIONS DE CHARGEMENT DE REGISTRE

Instruction
MOVF f,d

Description
Copier le contenu du registre f dans le registre spcifi suivant "d" si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Charge la valeur immdiate "k" dans le registre W Charge le contenu du registre W dans le registre f Efface le contenu du registre f Efface le contenu du registre W Efface le contenu du temporisateur du chien de garde (watchdog)

Indicateurs affects
Z est mis 1 si le contenu du registre R est nul

MOVLW k

MOVWF f

CLRF f CLRW CLRWDT

Z mis 1 TO et PD sont miss 1

INSTRUCTIONS SPECIALES

Instruction
NOP

Description
Aucune opration. Cette instruction est utilis pour passer un cycle machine Mise en veille du microcontrleur (Power Down mode)

Indicateurs affects

SLEEP

TO est mis 1 et PD est mis 0

- 13 -

P.F.E. 2007/2008

E.S.T.C.

INSTRUCTIONS DE BRANCHEMENT
Instruction
GOTO Etiquette

Description
Branchement inconditionnel ladresse du programme nomme "Etiquette" Test du bit "b" du contenu du registre f. Saut d'une instruction s'il est l'tat 0 Test du bit "b" du contenu du registre f. Saut d'une instruction s'il est l'tat 1 Dcrmentation du contenu du registre f et saut d'une instruction si le rsultat est nul si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Incrmentation du contenu du registre f et saut d'une instruction si le rsultat est nul si d= 0 le rsultat va dans le registre W si d= 1 le rsultat va dans le registre f Appel du sous programme "sousprog" Retour de sous programme aprs l'adresse d'o il a t appel (aprs le" CALL sousprog") Se comporte comme le "RETURN" avec en plus le contenu du registre W charge par la valeur immdiate "k Retour du programme d'interruption vers le programme interrompu l'endroit de l'interruption L'entre dans le sous programme d'interruption dvalide de nouveaux appels en interruption et l'instruction RETFIE les revalident

Indicateurs affects

BTFSC f,b

BTFSS f,b

DECFSZ f,d

INCFSZ f,d

CALL sousprog(subroutine)

RETURN

RETLW k

RETFIE

- 14 -

P.F.E. 2007/2008

E.S.T.C.

5.

Organisation du PIC 16F876


a. Schma interne du PIC 16F876

b. Composition interne du PIC 16F876

- 15 -

P.F.E. 2007/2008

E.S.T.C.

Le PIC 16F876 est compos de :


Une mmoire programme de type EEPROM flash de 8K mots de 14 bits. Une RAM de donne de 368 octets. Une mmoire EEPROM de 256 octets. Horloge allant jusqu' 20 MHz, Cycle instruction 200 ns. Trois ports d'entre sortie, A(6 bits), B(8 bits), C(8 bits). Convertisseur Analogiques numriques 10 bits 5 canaux. USART, Port srie universel, mode asynchrone (RS232) et mode synchrone. SSP, Port srie synchrone supportant I2C. Trois TIMERS avec leurs Prescalers, TMR0, TMR1, TMR2. Deux modules de comparaison et Capture CCP1 et CCP2. Un chien de garde. 13 sources d'interruption. Gnrateur d'horloge, quartz ou Oscillateur RC. Protection de code. Fonctionnement en mode sleep pour rduction de la consommation. Programmation par mode ICSP(In Circuit Serial Programming) 12V ou 5V. Tension de fonctionnement de 2 5V. Jeux de 35 instructions.

c. Caractristiques communes des PIC


- 16 -

P.F.E. 2007/2008

E.S.T.C.

Les PIC de Arizona Microchip ont des caractristiques communes permettant autrui de suivre le dveloppement continu de la technologie des PIC sans tre nullement dpays dans leur programmation & que sont :
Programmable sur site ICSP (In Circuit Serial Programming). Dbuggable sur site ICD. Frquence de fonctionnement leve, jusqu 20 Mhz. Une mmoire vive de 192 368 octets. Une mmoire EEPROM pour sauver des paramtres de 128 256 octets. Une mmoire morte de type FLASH de 4 Kmots 8 Kmots (1mot = 14 bits). Chien de garde WDT. Surveillance d'horloge OST. Surveillance de tension dalimentation BOR. De 21 32 Entres et sorties suivant le type de micro contrleur. Chaque sortie peut sortir un courant maximum de 25mA. 3 Temporisateurs : TIMER0 (8 bits avec pr diviseur), TIMER1 (16 bits avec pr diviseur avec possibilit dutiliser une horloge externe rseau RC ou QUARTZ) et TIMER2 (8 bits avec pr diviseur et post diviseur) 2 entres de captures et de comparaison avec PWM (Modulation de largeur dimpulsions). Convertisseur analogique numrique 10 bits avec de 5 8 entres multiplexes maximum. Une interface de communication srie asynchrone et synchrone. (USART/SCI). Une interface de communication srie synchrone. (SSP/SPI et I2C). Plusieurs modes de fonctionnements faible consommation. Une seule tension d'alimentation 2 ou 5V. Conservation des informations en mmoire vive jusqu' 1.5V. Faible consommation : <2mA 5V pour Fquartz=4Mhz. 20A 3V pour Fquartz 32Khz. <1A pour en mode sommeil.

d. Description des broches du PIC 16F876


Le PIC 16F876 a 28 broches :

- 17 -

P.F.E. 2007/2008

E.S.T.C.

Description des vingt-huit broches du PIC 16F876 :

- 18 -

P.F.E. 2007/2008

E.S.T.C.

-Le port A : dsign par PORTA est un port de 6 bits (RA0 RA5).La
broche RA4 est multiplexe avec l'entre horloge du timer TMR0, elle peut donc tre utilise soit comme E/S normale du port A, soit comme entre horloge pour le Timer TMR0. RA4 est une E/S drain ouvert, si on veut l'utiliser comme sortie (pour allumer une LED par exemple), il ne faut pas oublier de mettre une rsistance externe vers Vdd ; Les
- 19 -

P.F.E. 2007/2008

E.S.T.C.

autres broches(RA0, RA1, RA2, RA3 et RA5) peuvent tre utilises soient comme E/S numriques soient comme entres analogiques. Au RESET, ces E/S sont configures en entres analogiques.

-Le port B : dsign par PORTB est un port bidirectionnel de 8 bits


(RB0 RB7). Toutes les broches sont compatibles TTL.

-Le port C : dsign par PORTC est un port bidirectionnel de 8 bits


(RC0 RC7). Toutes les broches sont compatibles TTL. La configuration de direction se fait l'aide du registre TRISC, positionner un bit de TRISC 1 configure la broche correspondante de PORTC en entre & inversement. Toutes les broches du port C peuvent tre utilises soit comme E/S normales soit comme broches d'accs diffrents modules comme le timer 1, le timer 2, le port I2C ou le port srie.

e. Organisation de la RAM du 16f876


Lespace mmoire RAM adressable est de 512 positions de 1 octet chacune :
- 96 positions sont rserves au SFR (Special Function Registers) qui sont les registres de configuration du PIC. - Les 416 positions restantes constituent les registres GPR (General Propose Registers) ou RAM utilisateur. Sur le 16F876 et 16F877, 3 blocs de 16 octets chacun ne sont pas implants physiquement do une capacit de RAM utilisateur de 368 GPR. Pour accder la RAM, on dispose de deux modes dadressage :

1- Accs la RAM par adressage DIRECT Avec ce mode dadressage, on prcise dans linstruction la valeur de ladresse laquelle on veut accder. Par exemple, pour copier le contenu de l'accumulateur W dans la case mmoire d'adresse 50, on utilise l'instruction MOVWF 50. Cette instruction sera code sur 14 bits, la partie adresse est code sur 7 bits ce qui va poser quelques petits problmes. En effet, 7 bits permettent dadresser seulement 128 positions. Pour pouvoir adresser les 512 positions accessibles, il faut 9 bits dadresse. Pour avoir ces 9 bits, le PIC complte les 7 bits venant de linstruction par deux bits situs dans le registre de configuration STATUS. Ces bits sont appels RP0 et RP1 et doivent tre positionns correctement avant toute instruction qui accde la RAM par ladressage direct.

- 20 -

P.F.E. 2007/2008

E.S.T.C.

La RAM apparat alors organise en 4 banks de 128 octets chacun. L'adresse instruction permet d'adresser l'intrieur d'un bank alors que les bits RP0 et RP1 du registre STATUS permettent de choisir un bank. La Figure II.1 montre lorganisation de la RAM avec les zones alloue au SFR et aux GPR. Les zones hachures ne sont pas implantes physiquement. Si on essaye dy accder, on est aiguill automatiquement vers la zone [70h,7Fh] appele zone commune. Mme si on prcise une adresse suprieure 127 (+ de 7 bits) dans une instruction, elle est tronque 7 bits puis complte par les bits RP0 et RP1 pour former une adresse 9 bis. Par exemple, pour copier laccumulateur W dans la case mmoire dadresse 1EFh, il faut dabord placer les bits RP0 et RP1 1 (bank 3), ensuite on utilise soit linstruction MOVWF 6Fh soit linstruction MOVWF 1EFh, qui donne le mme rsultat. En effet, que lon crive 6Fh = 0110 1111 ou 1EFh = 0001 1110 1111, le PIC ne prend que 7 bits soit : 1101111 = 6Fh et complte avec les bits RP1,RP0 pour obtenir 11 1101111 = 1EFh

2- Accs la RAM par ladressage INDIRECT Pour accder une position de la RAM en utilisant ladressage indirect, on passe toujours par une position fictive appele INDF. Exemple :
- 21 -

P.F.E. 2007/2008

E.S.T.C.

linstruction CLRF INDF signifie : mettre zro la case mmoire dadresse INDF. Mais quelle est ladresse de cette position appele INDF ? INDF est la case mmoire pointe par le registre (pointeur) FSR Cela signifie que si on place 74h dans le registre FSR et ensuite on excute linstruction CLRF INDF, cela va remettre zro la case mmoire dadresse 74h. Ceci nest pas tout fait complet car (comme pour ladressage direct) on va avoir un problme de capacit dadressage. En effet, comme tous les registres, le registre de pointage FSR est un registre 8 bits, il peut donc adresser au maximum 256 positions mmoire (de 00h FFh), cest seulement la moiti de la RAM don on dispose. Il nous manque un bit pour avoir les 9 bits ncessaires. On utilise le bit IRP qui se trouve dans le registre STATUS.

Donc en rsum, chaque fois que le PIC rencontre le mot INDF dans un programme, il sait quil sagit de la case mmoire dont ladresse (9 bits) se trouve dans le registre FSR complt par le bit IRP du registre STATUS

- 22 -

P.F.E. 2007/2008

E.S.T.C.

- 23 -

P.F.E. 2007/2008

E.S.T.C.

f. Description du convertisseur analogique-numrique (CAN)du PIC 16F876


Le 16F876 est constitu d'un module convertisseur 5 entres pour le botier 28 broches . Les 5 premires entres sont sur le Port A en PA0, PA1, PA2, PA3 et PA5. Le rsultat de la conversion est cod sur 10 bits. C'est une valeur comprise entre h'000' et h'3FF'. Les tensions de rfrence haute et basse peuvent tre choisies par programmation parmi: VDD ou la broche PA3 pour VREF+ et VSS ou la broche PA2 pour VREF- . Les 4 registres utiliss par le module convertisseur A/D sont : - ADRESH en h'1E' page 0 : MSB des 10 bits du rsultat. - ADRESL en h'9E' page 1 : LSB des 10 bits du rsultat. - ADCON0 en h'1F' page 0 : registre de contrle n0 du convertisseur. - ADCON1 en h'9F' page 1 : registre de contrle n1 du convertisseur. Le principe de la conversion analogique-numrique est dattribuer une grandeur numrique correspondant un tat physique. Le CAN convertit donc une tension dite analogique en une valeur numrique. Le PIC 16F876 utilis pour le calcul de la correction P.I.D. intgre un convertisseur 10 bits. Il ne sera donc pas ncessaire dutiliser un circuit supplmentaire pour la conversion analogique-numrique.

Rsolution dun convertisseur analogique-numrique

La rsolution dun CAN correspond la plus petite mesure ralisable

- 24 -

P.F.E. 2007/2008

E.S.T.C.

par le CAN, autrement dit la prcision du CAN. Par exemple, si on utilise un CAN 8 bits, ce CAN ne pourra fournir que 255 valeurs diffrentes. La plus petite diffrence de tension mesurable ses bornes va tre fonction de la plage de mesure en tension utilise. Si la tension est comprise entre 0 et 5V, la mesure minimale correspond : 5/255 = 19,6mV. On dira que la rsolution dun CAN 8 bits pour une tension de plage de mesure de 5V est de 19,6mV. Dune faon gnrale, la rsolution est gale la plage de tension de la mesure divise par le nombre de bits du CAN : plage _ de _ mesure Rsolution = Nombre _ de _ bits _ du _ CAN Par consquent, pour augmenter la rsolution dun systme, on a 2 possibilits : - soit augmenter le nombre bits du CAN utilis - soit diminuer la plage de mesure On utilise dans ce projet un CAN 10 bits (celui contenu dans le PIC 16F876) pour convertir le signal dentre. Nanmoins un CAN 8 bits aurait suffi car on nglige les deux bits les moins significatif lors de la correction effectue par le PIC. chantillonnage de linformation La premire tape du processus de numrisation est lchantillonnage. Cela consiste passer d'un signal temps continu (un signal lectrique en loccurrence), en une suite discrte de valeurs (valeurs mesures intervalles rguliers). Cet chantillonnage est de lordre de la dizaine de microsecondes. Une relation existe entre la frquence maximale du signal dentre et la frquence chantillonnage. En effet, pour viter le phnomne de recouvrement spectral il faut respecter le thorme de Shannon : Fe > 2.Fmax
Dtail de fonctionnement du CAN contenu dans le 16F876

- 25 -

P.F.E. 2007/2008

E.S.T.C.

Le microcontrleur 16F876 intgre un module de conversion analogique-numrique qui est associ un multiplexeur analogique multivoie des entres. Autrement dit on peut raliser des mesures sur plusieurs voies dentre analogiques (jusqu 5). Ces voies analogiques correspondent aux broches du port A. Module CAN 10 bits implique que le rsultat de la conversion est un nombre de 10 bits, c'est--dire compris entre 000H et 3FFH (11 1111 1111 en binaire ou 1023 en dcimal). Ceci correspond donc 1023 niveaux de mesure, ce qui pour 5V donne une rsolution de 4,8mV, prcision largement suffisante. Le temps de conversion de ce module est de lordre de : 40 s ce qui permet en pratique de raliser jusqu 25000 mesures par seconde.

Les registres ADRESH et ADRESL

Le convertisseur Analogique Numrique est 10 bits et par consquent 1 octet (=8 bits) ne suffit pas pour contenir le rsultat de la mesure.

- 26 -

P.F.E. 2007/2008

E.S.T.C.

Cest pour cela que 2 registres sont ncessaires et sont donc utiliss. De fait 6 bits restent inutiliss sur les 16 disponibles. Il est possible de dfinir la justification du rsultat au sein de ces 2 octets laide dun bit du registre ADCON1 : le bit ADFM. Voici la disposition des bits de rsultats dans les 2 octets en fonction de la valeur du bit ADFM :

Le registre ADCON0 :
Ce premier registre de contrle contient plusieurs bits qui configurent le fonctionnement du module CAN :

- Bits ADCS1, ADCS0 : bits de slection de lhorloge utilise pour le module CAN.

- Bits CHS2, CHS1, CHS0 : les bits de slection du canal analogique mesurer. Avant toute conversion, il faut dfinir quel est le canal qui va tre utilis pour cette conversion. Ceci se fait grce ces 3 bits selon le tableau suivant :

- Bit GO/DONE : Le bit de lancement de la conversion et tmoin de la fin de conversion.


- 27 -

P.F.E. 2007/2008

E.S.T.C.

Ce bit nest actif que si le bit ADON=1, c'est--dire si le module CAN est actif. Il sert lancer la conversion : en mettant ce bit 1, on lance la conversion partir de la voie analogique slectionne par les bits CHS2, CHS1 et CHS0. Une fois que la conversion est termine, ce bit passe 0 automatiquement. Il sera donc possible dutiliser ce bit pour attendre la fin de la conversion en cours.

- Bit ADON : Le bit dallumage du module CAN.


Ce bit sert allumer le module CAN. Si ADON=0, le module CAN est inactif. Si le bit ADON=1, le module est oprationnel.

Le registre ADCON0 :
Ce second registre de contrle contient plusieurs bits qui configurent le fonctionnement du module CAN :

- Bit ADFM : Configuration du format du rsultat.

Ce bit sert configurer le rsultat au sein des 2 registres ADRESL et ADRESH selon le tableau qui suit :

Les cases vertes reprsentent le rsultat sur 10 bits, X0 correspond au bit de poids faible et X9 au bit de poids fort. - Bits PCFG0 , CFG1, PCFG2 et PCFG3 : Bits de configuration des ports A (en analogique ou numrique). Les broches des ports A ( lexception de PA4) peuvent tre configures soit en analogique soit en numrique. Lorsquune broche de ce port est configure en analogique, elle devient un des canaux de mesure utilisables par le CAN. Lorsquelle est configure en numrique, elle est une broche E/S comme les autres broches des autres ports.

- 28 -

P.F.E. 2007/2008

E.S.T.C.

La configuration de la nature des broches du port A est dcrite dans le tableau suivant :

Linterruption fin de conversion associe au module CAN

Il existe galement une source dinterruption lie au module CAN : la fin de conversion. Comme toute interruption, celle-ci doit tre active pour tre oprationnelle ce qui se fait par les bits :

- PEIE=1 (activation des interruptions priphriques) - ADIE=1 (activation de linterruption fin de conversion)
Le bit de drapeau associ cette interruption est ADIF. Il faudra le mettre 0 avant toute activation de linterruption. Ce dernier est automatiquement mis 1 en fin de conversion si linterruption est active. Cette interruption est intressante uniquement si lon souhaite optimiser la vitesse de conversion au maximum.

- 29 -

P.F.E. 2007/2008

E.S.T.C.

Tableau de synthse issu de la datasheet du 16F876 :

Droulement dune conversion analogique-numrique

tudions comment le module CAN 10 bits ralise une conversion analogique numrique. Le schma suivant rsume la squence dune conversion analogique-numrique par le module utilis :

1. Lensemble de la conversion est lanc lorsque le bit GO/Done est mis 1 par lutilisateur. 2. Sen suit un temps de latence interne li la prsence dun condensateur interne. 3. Puis la conversion commence avec le calcul des 10 bits 4. Lorsque la conversion analogique-numrique est termine : a. le rsultat est stock dans les registres ADRESL et ADREH b. le bit GO/Done est mis 0 automatiquement tmoignant de la fin de la conversion c. le drapeau de linterruption fin de conversion est mis 1 (si cette interruption est active comme expliqu prcdemment)

- 30 -

P.F.E. 2007/2008

E.S.T.C.

D-Ralisation du rgulateur numrique base de PIC


Dans cette partie, on va se focaliser sur la ralisation du rgulateur. Dans les premires sances du projet de fin dtudes on sest concentr sur une ide de ralisation, on la dveloppe jusqu sa ralisation dans une maquette dessai & aprs de nombreuses exprimentations on a trouv une faille dans le circuit ralis puisquil ne permettait pas de convertir le signal analogique dentre puis de le mettre sur le port C sous forme dun signal numrique. Cette premire exprimentation fut vite abandonne.

1.

Circuit de conversion A/N

Premier circuit ralis

- 31 -

P.F.E. 2007/2008

E.S.T.C.

Premier circuit ralis abandonn

On a eu donc recours une nouvelle conception beaucoup plus efficace dont la description sera relate.
1- Premire dmarche : circuit dadaptation du signal dentre

Au dbut il faut penser adapter le signal dentre analogique pour le convertisseur analogique-numrique intgr au PIC 16F876. Pour cela on a pens utiliser un pont de diodes de rfrence 1N4148(en vert dans limage) au lieu des amplificateurs oprationnels utiliss dans notre premire conception du rgulateur. Le graphe ci-dessous montre clairement ladaptation de la tension :

- 32 -

P.F.E. 2007/2008

E.S.T.C.

2- Deuxime dmarche : circuit du reset du microprocesseur

Le circuit du reset du PIC est constitu dune rsistance,dun bouton poussoir,dun condensateur & dune diode.

3- Troisime dmarche : circuit de frquence dhorloge du microprocesseur

Le circuit de frquence dhorloge du PIC est constitu dun quartz & de deux cendensateurs.

- 33 -

P.F.E. 2007/2008

E.S.T.C.

4- Quatrime dmarche : circuit intgral

En runissant le tout on obtient notre circuit de rgulateur numrique :

- 34 -

P.F.E. 2007/2008

E.S.T.C.

- 35 -

P.F.E. 2007/2008

E.S.T.C.

2.

Dcodage du clavier

Le clavier doit permettre la saisie et la modification des paramtres du correcteur PID : Kp, Ki, Kd et la limite dintgration.

Ce circuit va permettre la communication du PIC avec le clavier pour permettre lautre binme de changer les valeurs du rgulateur P.I.D. Il est constitu de trois boutons-poussoirs avec une capacit de dcouplage en parallle pour limiter le phnomne de rebonds.

- 36 -

P.F.E. 2007/2008

E.S.T.C.

E-CONCEPTION LOGICIELLE
Le rgulateur ainsi ralis ncessite un programme quil va excuter, donc il faut crire le programme, le compiler & le transfrer vers la mmoire du PIC 16F876.
1- Premire dmarche : criture du programme & assemblage

Comme le PIC est un composant trs utilis dans llectronique grand-public & professionnelle, Arizona Microchip donc a mis gratuitement disposition des utilisateurs de PIC un logiciel MPLAB propritaire ;constamment mis jour, dcriture & dassemblage de programme achemin vers le PIC 16F876. Quelques fentres de ce logiciel :

On slectionne le logiciel via son raccourci dans le menu dmarrer qui est mplab ide.

- 37 -

P.F.E. 2007/2008

E.S.T.C.

La fentre du logiciel MPlab se reprsente sous cette forme.

On cre un nouveau projet via les manipulations prsentes sur limage.

- 38 -

P.F.E. 2007/2008

E.S.T.C.

On nomme le nouveau projet puis on dfinie sa location.

On ajoute le fichier texte vierge avec une extension *.asm ou on ajoute un fichier *.asm fait doffice avec un logiciel ddition de texte.

- 39 -

P.F.E. 2007/2008

E.S.T.C.

Aprs insertion du fichier *.asm on lassemble via la manipulation cidessus.

Finalement une fentre indique si lopration dassemblage cest bien droule. 2- Deuxime dmarche : implantage du programme assembl
- 40 -

P.F.E. 2007/2008

E.S.T.C.

Dans le rpertoire de sauvegarde du projet, le fichier *.HEX (en hexadcimale) a t crer (image ci-dessus). Ce fichier sera implant dans la mmoire flash du 16f876 via un autre software nomm ICPROG(ce nest pas le seul qui existe Icprog.lnk mais cest le plus rpandu dans la communaut des PIC, le plus sr aussi).

On ouvre le fichier *.hex puis on linjecte vers le 16f876.

- 41 -

P.F.E. 2007/2008

E.S.T.C.

Conversion analogique-numrique & frquence dchantillonnage :


Cette routine ralise lchantillonnage sur une entre analogique. La conversion se fait en plusieurs tapes : - la valeur de lchantillon prcdent est mmorise (car elle est ncessaire au calcul du PID), - le convertisseur est activ par la mise 1 de ADON , - attente de la fin de lacquisition (le convertisseur intgr au PIC a un temps dacquisition Tacq = 19,7s), - la conversion analogique numrique dbute lors de la mise 1 de GO , - attente de la fin de la conversion (le convertisseur intgr au PIC a un temps de conversion Tad = 3,2s), - lecture de la valeur de lchantillon. Chaque chantillon est stock sur 10 bits dans la paire de registres ADRESH et ADRESL . La justification tant faite gauche, et pour des raisons de commodit, on nexploite que les 8 bits de poids fort que lon trouve dans le registre ADRESH . Le registre ADCON1 permet de choisir le nombre dentres analogiques ainsi que le type de justification. Nous avons besoin dune seule entre de ce type do la valeur des bits de configuration du port : PCFGx = 1110. Le convertisseur intgr dans le PIC effectue une conversion sur 10 bits. Le rsultat est stock sur 2 octets : ADRESH (octet de poids fort) et ADRESL (octet de poids faible). Le processeur ayant une architecture RISC 8 bits, il serait inutile, et assez complexe, de conserver et dexploiter ce rsultat sur 10 bits. Nous faisons donc abstraction des deux bits les moins significatifs. Il suffit de choisir une justification gauche (ADFM = 0), ainsi les 8 bits de poids forts de la conversion sont stocks dans le registre ADRESH . Il ne reste plus qu le lire. Le registre ADCON0 permet de dfinir la frquence dchantillonnage du PIC, et de choisir la pin sur laquelle sera effectue la conversion. Loscillateur utilis tant fix 4MHHz, la frquence dchantillonnage maximum que lon puisse choisir est de 500KHz (ADCSx = 01). Pour terminer la configuration du module de conversion analogiquenumrique, il reste dfinir le canal dentre. Nous choisissons la pin RAO du PORTA qui correspond au canal A/D 0 (CHSx = 000). Une relation existe entre la frquence maximale du signal dentre et la frquence chantillonnage. En effet, pour viter le phnomne de recouvrement spectral il faut respecter le thorme de Shannon : Fe > 2.Fmax.

- 42 -

P.F.E. 2007/2008

E.S.T.C.

;************************************************************** ; Ecole Suprieure de Technologie de Casablanca 2007/2008 ; Projet de fin d'tudes : Conversion analogique/numrique ; Fait par /Hecho por : KHALFI YOUSSEF ; Encadrant: Monsieur El Aoufoussi habib ;************************************************************** list p=16f876 #include <P16f876.INC> ERRORLEVEL -302 ;SUPPRESS BANK SELECTION MESSAGES ;********************************************************** ; Variable utilise wait EQU 0x20 ;Commencement initialisation init ; Prparation du PortB bsf STATUS, RP0 movlw B'00000000' movwf TRISB bcf STATUS, RP0 clrf PORTB ; ADC ON BSF

; Bank 1 forcer le bit d'un emplacement mmoire 1 ; PortB en sortie uniquement ; forcer le bit d'un emplacement mmoire 0

ADCON0, 0

; ADON=1

; ADC-ACCES AN0 Selection BCF ADCON0, 5 BCF ADCON0, 4 BCF ADCON0, 3

; ADCHS2=0 ; ADCHS1=0 ; ADCHS0=0

BSF BCF BSF BCF BCF

ADCON0, 7 ADCON0, 6 STATUS,RP0 ADCON1, 7 STATUS,RP0

; ADCS1=1 ; ADCS0=0 ; Bank1 ; ADFM=0 ; Bank0

;********************************************************** ; Programme principal Main BSF loop BTFSC ADCON0, 2 GOTO loop ADCON0, 2 ; ADC On

Stockage des 8 bits du rsultat dans le registre ADRESH sur movfw ADRESH
end *;**********************************************************

8 bits

Le programme crit sur MPlab pour la Conversion analogique/numrique.

- 43 -

P.F.E. 2007/2008

E.S.T.C.

; Ecole Suprieure de Technologie de Casablanca 2007/2008 ; Projet de fin d'tudes : Dcodage d'un clavier ; Fait par /Hecho por : KHALFI YOUSSEF ; Encadrant: Monsieur El Aoufoussi habib ; On ralise un dcodage de clavier sur les broches RB0 RB5 ; Le port A est programm en sortie les broches RA0 RA3 renvoient le code binaire ; de la touche appuye. ; Les touches sont mmorises en EPROM ainsi on peut configurer n' importe quel clavier.

;------------ Directive d' assemblage pour MPLAB --------------list p=16f876 #include <P16f876.INC> ERRORLEVEL -302 ;SUPPRESS BANK SELECTION MESSAGES

;------------ Dfinition des registres temporaires --------------retard1 retard2 colonne tampon rang key EQU EQU EQU EQU EQU EQU 0x0C ; le registre temporaire retard1 se trouve l' adresse 0C 0x0F ; le registre temporaire retard2 se trouve l' adresse 0F 0x14 ; le registre colonne est l'adresse 14 0x10 ; le registre tampon est l'adresse 10 0x11 ; le registre rang est l'adresse 11 0x12 ; le registre key est l'adresse 12

;------------ Mise en EPROM du clavier utilis --------------org H'2100' ; Donnes EEPROM les 16 touches sont mmorises ; selon le type de clavier ; 1 ere range ( 1,2,3,A ) ; 2 eme range ( 4,5,6,B ) ; 3 eme range ( 7,8,9,C ) ; 4 eme range ( E,0,F,D )

DE DE DE DE

0x01,0x02,0x03,0x0A 0x04,0x05,0x06,0x0B 0x07,0x08,0x09,0x0C 0x0E,0x00,0x0F,0x0D

;------------ Init des ports A et B --------------ORG 0 bsf STATUS,5 ; on met 1 le 5eme bit du registre status pour accder ; la 2eme page mmoire ( pour trisa et trisb ) ; on met C3 dans le registre W ; on met C3 dans le port B il est programm partiellement en E/S ; on met 00 dans le registre W ; on met 00 dans le port A il est programm en sortie ; on remet 0 le 5eme bit du registre status pour accder ; la 1eme page mmoire

MOVLW B'11000011' MOVWF TRISB MOVLW 0x00 MOVWF TRISA bcf STATUS,5

;------------ Init --------------MOVLW 0x00 MOVWF PORTA init MOVLW 0x00 MOVWF tampon MOVWF PORTB ; on met 00 dans le registre W ; on met 00 dans le registre tampon ; on met W sur le port B ; on met 00 dans le registre W ; on met 00 sur le port A ( leds eteintes )

- 44 -

P.F.E. 2007/2008
MOVLW 04 MOVWF rang ; on met 4 dans le registre W ; on met W rang ( 1 ere range scrute )

E.S.T.C.

;-------------------- Programme principal ---------------------debut movf rang,w MOVWF PORTB MOVLW 0x00 MOVWF colonne BTFSC PORTB,6 call sauve MOVLW 0x01 MOVWF colonne BTFSC PORTB,7 call sauve MOVLW 0x02 MOVWF colonne BTFSC PORTB,1 call sauve MOVLW 0x03 MOVWF colonne BTFSC PORTB,0 call sauve ; on met rang dans W ; on met W sur le port B ( N rang= N ligne alimente ) ; on met 00 dans le registre W ; on met 00 dans la variable colonne ; on teste le bit RB6 si = 0 on saute la prochaine instruction ; appel du sous programme si la touche est appuye ; on met 01 dans le registre W ; on met 01 dans la variable colonne ; on teste le bit RB7 si = 0 on saute la prochaine instruction

; on met 02 dans le registre W ; on met 02 dans la variable colonne ; on teste le bit RB1 si = 0 on saute la prochaine instruction

; on met 03 dans le registre W ; on met 03 dans la variable colonne ; on teste le bit RB0 si = 0 on saute la prochaine instruction

movf rang,W SUBLW 0x20 BTFSC STATUS,2 GOTO init movf rang,W ADDWF rang, F MOVLW 0x04 ADDWF tampon, F GOTO debut

; on met rang dans W ; W - 32 -> W ; on teste le bit Z si Z=0 on saute la prochaine instruction

; on met rang dans W ; on additionne rang + rang ; on met 4 dans le registre W ; on additionne tampon + 4

;------------ Dtermination de la touche appuye --------------sauve movf PORTB,W MOVWF key ; on met le port B (clavier) dans W ; on sauve W dans key

MOVF tampon, W addwf colonne,W MOVWF EEADR bsf STATUS,5

; on met tampon dans W ; tampon + colonne --> W ; on met W sur EEADR ( adresse EPROM ) ; on met 1 le 5eme bit du registre status pour accder ; la 2eme page mmoire ( EECON1 ) ; on met 01 dans le registre W ; on met 01 dans le registre EECON1 ; on remet 0 le 5eme bit du registre status

MOVLW 0x01 MOVWF EECON1 bcf STATUS,5

MOVF EEDATA, W MOVWF PORTA CALL tempo

; on met la donne EPROM dans W ; on met W sur le port A ; appel du sous programme de temporisation

- 45 -

P.F.E. 2007/2008
;---------------- test de l'appui maintenu --------------------appui BTFSC PORTB,6 GOTO appui BTFSC PORTB,7 GOTO appui BTFSC PORTB,1 GOTO appui BTFSC PORTB,0 GOTO appui ; on teste le bit RB6 si = 1 on va appui ; on teste le bit RB7 si = 1 on va appui ; on teste le bit RB1 si = 1 on va appui ; on teste le bit RB0 si = 1 on va appui

E.S.T.C.

return

;------------ Programme de temporisation --------------tempo MOVLW 0xff MOVWF retard1 MOVWF retard2 attente DECFSZ retard1,F GOTO attente movlw 0xFF movwf retard1 DECFSZ retard2,F GOTO attente RETURN END ; on dcrmente retard1 et on saute la prochaine instruction si ; le registre retard1 = 0 sinon retour tempo ; on recharge retard1 ; on met ff dans le registre W ; on met W dans le registre retard1 ; on met W dans le registre retard2

; on dcrmente retard2 et on saute la prochaine instruction si ; le registre retard2 = 0 sinon retour tempo ; retour au programme principal aprs l 'instruction CALL

3- Troisime dmarche : essais sur un logiciel de simulation Avant de faire la ralisation,il faut vrifier le bon fonctionnement du circuit & de la validit du programme. Pour cela, on va utiliser un logiciel de simulation pour satisfaire ces conditions. Proteus ;logiciel de simulation & de ralisation se prsente nous de part sa simplicit ,efficacit & sa performance.

- 46 -

P.F.E. 2007/2008

E.S.T.C.

Les fentres de ce logiciel :

Isis professional 7

- 47 -

P.F.E. 2007/2008

E.S.T.C.

ares professional 7

- 48 -

P.F.E. 2007/2008

E.S.T.C.

F-Essais
Comme dit dans le cahier de charge, notre tche consiste raliser deux circuits permettant dune part la conversion analogique numrique & dautre le dcodage dun clavier.
1-Circuit de conversion A/N Comme Lessai se fera sur le logiciel Isis Professional 7, le circuit devra adapter le signal analogique lentre pour le vhiculer vers le convertisseur A/N du 16f876 , ce dernier va le numriser & le mettre sur le port C du PIC ; pour une exploitation par lautre binme. Le schma ralis est le suivant.

- 49 -

P.F.E. 2007/2008

E.S.T.C.

- 50 -

P.F.E. 2007/2008

E.S.T.C.

- 51 -

P.F.E. 2007/2008

E.S.T.C.

Lessai est concluant le signal est numris puis mis sur le port B comme montr sur les images ci-dessus. Le signal A en jaune reprsente le signal dentre qui va tre numris. Le signal B en bleu reprsente le signal adapt pour la conversion A/N. Le signal C en rouge reprsente le signal numris & mis dans le port B. Le signal D en vert reprsente le signal numris & mis dans le port B.

Diffrents schmas du circuit ainsi imprim

- 52 -

P.F.E. 2007/2008

E.S.T.C.

- 53 -

P.F.E. 2007/2008 2-Circuit final ralis avec les deux binmes :

E.S.T.C.

- 54 -

P.F.E. 2007/2008

E.S.T.C.

- 55 -

P.F.E. 2007/2008

E.S.T.C.

- 56 -

P.F.E. 2007/2008

E.S.T.C.

Le signal A en jaune reprsente le signal dentre qui va tre numris. Le signal B en bleu reprsente le signal adapt pour la conversion A/N. Le signal C en rouge reprsente le signal final de tout le circuit aprs conversion A/N & reconversion N/A puis adaptation(fait par lautre binme) . Lessai est concluant ; le circuit met en pratique ce qui a t demand dans le cahier de charges savoir la conversion & le dcodage de clavier via un PIC.

Schma du circuit final des deux binmes ainsi imprim :

- 57 -

P.F.E. 2007/2008

E.S.T.C.

3120-Circuit dalimentation Pour alimenter les diffrents composants de notre circuit final ; savoir en +15v,-15v ,+5v , on a besoin de raliser la carte dalimentation cidessous :

- 58 -

P.F.E. 2007/2008

E.S.T.C.

Schma du circuit dalimentation des deux binmes ainsi imprim :

- 59 -

P.F.E. 2007/2008

E.S.T.C.

G-Conclusion La ralisation du projet de fin dtudes tait une occasion tant espre de se familiariser avec le rgulateur PID base de PIC, dacqurir les notions davoir un projet raliser : lenvironnement de travail, les dmarches suivre dans un temps compt. Ainsi ; dans lacquisition de ces notions fondamentales, nous serons plus aptes dans le march de travail.

- 60 -

P.F.E. 2007/2008

E.S.T.C.

H-Bibliographie & Annexe


Nombreux sont les sites Internet & les ouvrages qui se focalisent notamment sur lunivers du PIC ,ceux qui nous sont les plus captifs sont :
http://www.sprut.de (riche en informations & ralisations mais en allemand) http://www.bh-automation.fr/Ressources/Automaticiens/#Sakli-MOUADH datasheet du16F876. programmation 16f876 par Bigonoff(il exagre tellement). www.abcelectronique.com kudelsko.free.fr fribotte.free.fr/bdtech/PidSurPic/PidSurPic1.html perso.wanadoo.fr/yves.heilig/ElecRob/page1.htm moteurs de recherches : Altavista ,google. memotech lectronique. Projets de fin dtudes des annes prcdentes.

- 61 -

P.F.E. 2007/2008

E.S.T.C.

- 62 -

P.F.E. 2007/2008

E.S.T.C.

- 63 -

P.F.E. 2007/2008

E.S.T.C.

- 64 -

P.F.E. 2007/2008

E.S.T.C.

- 65 -

P.F.E. 2007/2008

E.S.T.C.

- 66 -

P.F.E. 2007/2008

E.S.T.C.

- 67 -

P.F.E. 2007/2008

E.S.T.C.

- 68 -

Nom du document : RAPPORT PFE REFAIT Rpertoire : C:\youssef Modle : C:\Documents and Settings\a.EVO\Application Data\Microsoft\Modles\Normal.dot Titre : projet de fin d'tudes Sujet : PIC Auteur : Khalfi youssef Mots cls : pic Commentaires : te odio Kawtar! Date de cration : 30/05/2008 22:10:00 N de rvision : 57 Dernier enregistr. le : 07/06/2008 14:03:00 Dernier enregistrement par : a Temps total d'dition :162 Minutes Dernire impression sur : 07/06/2008 14:20:00 Tel qu' la dernire impression Nombre de pages : 68 Nombre de mots : 8 439 (approx.) Nombre de caractres : 46 419 (approx.)

S-ar putea să vă placă și