Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
MINISTRE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE LARBI BEN M’HIDI D’OUM EL BOUAGUI
FACULTE DES SCIENCES ET SCIENCES APPLIQUE
DEPARTEMENT GENIE ELECTRIQUE
FILIERE GENIE ELECTRIQUE
MEMOIRE DE FIN D’ETUDESEn vue de l'obtention du
DIPLÔME DE MASTER
Spécialité : Informatique Industrielle
THEME :
ETUDE ET REALISATION D’UNFREQUENCEMETRE NUMERIQUE A BASE
DE MICROCONTROLEUR PIC16F877
Mémoire de fin d'étude soutenu publiquement à OUM EL BOUAGUI
Le : 04 Juin 2016
Par:
Rabir Ahmed
Dirigé par:
Dr. Ait Kaki Abdelaziz
Année Universitaire : 2015/2016
DédicaceJE DÉDIE CE MÉMOIRE
A MA MÈRE…….ET A MA MÈRE
ET AUSSI A MA MÈRE******
A MON PÈRE QUE JE RESPECTEBEAUCOUP….
******A MA SOEUR MERYAM ET CHERE
AMIE HANA ET MON FRÈRESMAMMAR ET RAOUF ET AMINE
HAMZA HALIM IMAD ET TOUS LESPROCHES AMES ET AMIS SANS
EXEPTIONS
RABIR AHMED
Nous remercions Dieu de nous avoir donné la force et la volonté
pour accomplir ce mémoire
Nous exprimons nos profondes gratitudes à nos parents pour leurs
encouragements, leur soutien et pour les sacrifices qu'ils ont enduré.
Ainsi, nous tenons également à exprimer nos vifs remerciements à
notre Encadreur Dr. AIT KAKI ABDELAZIZ pour avoir d'abord
proposé ce thème, pour suivi continuel tout le long de la réalisation
de ce mémoire, et qui n'a pas cessé de nous donner ses conseils.
Nous remercions aussi Les responsables des laboratoires des sciences
et technologies Ain El Beida, spécialement Mr .ALI Djermene
Nos remerciements vont aussi à tous les enseignants du
département d'électronique qui a contribué à notre formation.
Enfin nous tenons à exprimer notre reconnaissance à tous nos amis
pour le soutient moral et matériel…
MerciRABIR
AHMED
Table des matières
Introduction générale……………………………………………………………………………. 1
Chapitre I: Description générale du fonctionnement des fréquencemètres numériques
I.1. Introduction………………………………………………………………………………….. 3I.2. Principe de mesure de la fréquence………………………………………………………….. 3I.3. Mesure de fréquence et période……………………………………………………………… 4I.4. Synoptique du fréquencemètre………………………………………………………………. 6I.5. Conclusion…………………………………………………………………………………….. 7Chapitre II : Présentation du Microcontrôleur PIC16F877
II.1 Introduction………………………………………………………………………………….. 9II.2 Généralités sur les PICs……………………………………………………………………….. 9
II.2.1. Définition………………………………………………………………………………….. 9II.2.2. Les avantages du microcontrôleur……………………………………………………….. 9II.2.3. Les différentes familles des PICs…………………………………………………………. 10II.2.4. Identification du PIC……………………………………………………………………... 10
II.3. Choix d'un Microcontrôleur…………………………………………………………………... 11II.3.1. Le microcontrôleur PIC 16F877A………………………………………………………… 11II.3.2. Caractéristiques générales………………………………………………………………… 12
II.4. Architecture externe…………………………………………………………………………... 12II.5. Architecture interne…………………………………………………………………………… 14
II.5.1. Les ports entrée/sortie…………………………………………………………………….. 15II.5.1.1.PortA…………………………………………………………………………………. 15II.5.1.2.PortB…………………………………………………………………………………. 15II.5.1.3.Port C ……………………..…………………………………………………………. 15II.5.1.4.Port D…………………………………………………………………………………... 15II.5.1.5.Port E………………………………………………………………………………… 15
II.5.2.Les particularités électriques……………………………………………………………. 16II.5.3.Les mémoires du PIC 16F877A…………………………………………………………… 16
II.5.3.1.La mémoire FLASH…………………………………………………………………. 16II.5.3.2.La mémoire RAM……………………………………………………………………. 16II.5.3.3.L’EPROM interne…………………………………………………………………… 17
II.5.4.Les TIMERS……………………………………………………………………………... 17II.5.4.1.TIMER 0……………………………………………………………………………... 17II.5.4.2.TIMER 1……………………………………………………………………………... 17II.5.4.3.TIMER 2……………………………………………………………………………... 18
II.5.5.Watchdog………………………………………………………………………………… 18II.5.6.L’oscillateur……………………………………………………………………………… 18II.5.7.Les principaux registres du PIC 16F877A……………………………………………… 19
II.5.7.1.Le registre «Status» …………………………………………………………………. 19II.5.7.2.Le registre «Option» ………………………………………………………………… 20II.5.7.3.Le registre «INTCON» (INTerrupt CONtrol) ……………………………………... 21II.5.7.4.Le registre du travail «W» ………………………………………………………….. 22II.5.7.5.Le registre PIE1……………………………………………………………………... 22II.5.7.6.Le registre PIR1……………………………………………………………………... 22
II.5.7.7.Le registre PIE2……………………………………………………………………… 22II.5.7.8.Le registre PIR2……………………………………………………………………… 22II.5.7.9.Le registre «ADCON0»………………………………………………………………. 23II.5.7.10.Le registre «ADCON»……………………………………………………………… 23II.5.7.11.Les registres «PORTx et TRISx» ………………………………………………….. 23II.5.7.12.Registres «ADRESL et ADRESH» ………………………………………………… 23
II.5.8.Le convertisseur Analogique-Numérique……………………………………………….. 23II.5.8.1.Configuration de la conversion………………………………………………………. 24
a. Registre ADCON0 ……………………………………………………………………… 24b. Registre ADCON ……………………………………………………………………….. 26c. Registre ANSEL ………………………………………………………………………… 26
II.5.9.Les Interruptions………………………………………………………………………… 26II.5.9.1.Les sources d’interruption…………………………………………………………… 27
II.6. Conclusion …………………………………………………………………………………... 28
Chapitre III: étude et réalisation pratique du fréquencemètre numérique à base de
pic16f877
III.1. Introduction………………………………………………………………………………... 30III.2. Présentation générale du projet…………………………………………………………... 30III.3. Les différents blocs………………………………………………………………………… 31III.4. Etude et réalisation du Fréquencemètre…………………………………………………. 32
III.4.1. Partie Logiciel-Simulation…………………………………………………………… 32III.4.1.1. Présentation de PROTEUS……………………………………………………... 32
III.4.1.1.1. Logiciel ISIS………………………………………………………………... 33III.4.1.1.2. Logiciel ARES……………………………………………………………... 34
III.4.2. Programmation du PIC……………………………………………………………… 36III.4.2.1. Présentation de Compilateur mikroC pro pour PIC 16F877…………………. 36III.4.2.2. Organigramme du programme implanté dans le microcontrôleur…………... 38III.4.2.3. Etapes de programmation du PIC avec le logiciel WINPIC 800……………… 40
III.4.3. Partie électronique…………………………………………………………………… 41III.4.3.1. convertisseur fréquence/tenson………………………………………………… 41
III.4.3.1.1. LM331……………………………………………………………………… 41a)Les références de ces circuits intégrés…………………………………………… 41b) convertisseur LM331……………………………………………………………. 42c) schéma interne de LM331……………………………………………………….. 43
III.4.3.1.2Méthode Convertisseur fréquence/tension ……………………………….. 44III4.3.1.3 convertisseur (2) …………………………………………………………… 49
III.5. Allure de la tension de sortie en fonction de la fréquence d’entrée…………………….. 50III.6. Réalisation de la carte électronique………………………………………………………. 51III.7. Les étapes de réalisation…………………………………………………………………... 54III.8. Conclusion………………………………………………………………………………….. 57Conclusion générale………………………………………………………………………….. 59
Liste des figuresChapitre I
Figure (I.1): Principe générale de fonctionnement d’un fréquencemètre……………………... 4Figure (I.2):Mesure de fréquence et de période………………………………………………… 4Figure (I.3): Schéma synoptique de fonctionnement d’un fréquencemètre numérique 6
Chapitre II
Figure (II.1): PIC 16F877………………………………………………………………………… 11Figure (II.2): Brochage du PIC 16F877………………………………………………………….. 13Figure (II.3): Architecture Interne du PIC16F877……………………………………………… 14
Chapitre III
Figure (III.1): Les différentes phases de la réalisation…………………………………………. 31Figure (III.2): Démarrage du simulateur PROTEUS…………………………………………... 32Figure (III.3): Illustration du démarrage de l’ISIS……………………………………………… 33Figure (III.4): Schéma électronique du Fréquencemètre………………………………………... 34Figure (III.5): Illustration du démarrage de l’ARES…………………………………………… 35Figure (III.6): Dessin des composants montage de l’appareil de mesure sur l’ARES………….. 35Figure (III.7): Le circuit du fréquencemètre en 3D…………………………………………….. 36Figure (III.8): Page de démarrage du simulateur MikroC……………………………………… 37Figure (III.9): simule le Code de MikroC………………………………………………………… 37Figure (III.10): programmation du pic………………………………………………………….. 38Figure (III.1): Organigramme du programme implanté………………………………………. 39Figure (III.12): Schéma du programmateur JDM……………………………………………… 40Figure (III.13): schéma de bloc convertir 1 LM331…………………………………………... 42Figure(III.14): Caractéristiques électrique du circuit LM331………………………………… 43Figure (III 15): Schéma synoptique interne et brochage des circuits intégrés………………... 44Figure (III.16): Schéma du Convertisseur fréquence/tension a utiliser……………………….. 44Figure (III.17): Formule à utiliser pour calculer la valeur des résistances R3 et R4 et C2…. 47Figure (III.18): schéma de bloc convertir 2……………………………………………………... 49Figure (III.19): Les allures des tensions V1, V2, V3……………………………………………. 50Figure (III.20): La tension Vout en volt en fonction de la fréquence Fin en Hertz…………… 51Figure (III.21): schéma de bloc d’affichage LCD……………………………………………….. 51Figure (III.22): la carte électronique du fréquencemètre réalisée sur la plaque d’essai……. 52Figure (III.23): Typon réalisé du montage du Fréquencemètre à base de PIC16F877……… 52Figure (III.24): Figure.III.24. Mesure de fréquence avec tension moyenne du signal
Simultanément sur l’afficheur LCD pour une fréquence fin=200 Hz………………...53
Figure (III.25): Figure.III.25.Lecture de la fréquence et de la tension moyenne du signalSur la carte électronique réalisé pour fin=200 Hz……………………………………….
53
Figure (III.26): Figure.III.26. Mesure de fréquence et tension moyenne du signal parSimulation Pour une fréquence de fin=0 Hz……………………………………………..
54
Figure (III.27): Photos de plaque d’époxy et d’insole use………………………………………. 55Figure (III.28): Méthode de placer la plaque d’époxy………………………………………….. 56
Index des tableauxTableau. II.1. Caractéristiques du PIC 16F877………………………………………………….. 12
Tableau. II.2. Les différents bits de registre Status……………………………………………… 19
Tableau. II.3. Les différents bits de registre Option……………………………………………... 20Tableau. II.4. Configuration des bits (PS0 :PS2) de registre option pour effectuer Les présdiviseurs………………………………………………………………………………………......
21
Tableau. II.5. Les différents bits de registre INTCON Bit Au…………………………………… 21Tableau. II.6. Registre ADCON0…………………………………………………………………... 24Tableau. II.7. Temps de conversion TAD en fonction du Quartz et des bits du Clock Select… 25Tableau. II.8. Sélection l’entrée de la conversion…………………………………………………. 25Tableau. II.9. Registre ANSEL…………………………………………………………………….. 26Tableau. II.10. Les différents registres d'interruption…………………………………………… 27
Paramètres électroniques
Liste des abréviations :
raccourcis concept
capa Capacités
LCD liquidé Crystal display
CAN convertisseur Analogique-numérique
OPAMP opérationnel amplifier
PIC Programmable Intelligent Computer ou ProgrammableIntegrated Circuit
LM331 Convertisseur fréquence/tension
VHDL Hardware Description Langage
FPGA A field-programmable gate array
HF/BF haute Fréquence/Base Fréquence
OSC oscillateur
CAO Conception assistée par ordinateur
RISC Reduced Instructions Computing Set,
EPROM mémoire de programme effaçable
EEPROM mémoire de programme effaçable électriquement
E/S Entres /sorties
VDD +5V d'alimentation
VSS 0V d'alimentation
MCLR patte de reset de PIC
PORT/TRIS registre de contrôle des entres/sorties
INTRODUCTION GENERALE
1
INTRODUCTION GENERALE
Le but de ce projet est la mise au point d’un fréquencemètre numérique à base de
PIC16F877 possédant deux fonctions de mesure, et qui permettra de mesurer la fréquence d’un
signal périodique en hertz ainsi que sa valeur moyenne en volts.
La mesure de la fréquence possède des applications vastes en électronique
analogique et numérique ainsi que dans le domaine des télécommunications. Aujourd'hui
beaucoup de méthodes de mesure permettent cela en faisant appel aux différentes méthodes de
mesures électrique et électronique en utilisant par exemple différents types de circuits intégrés
spécialisés.
En général un fréquencemètre numérique comprend quatre modules: et un
microcontrôleur qui assure la commande et l’affichage de la distance mesurée.
Pour cela, ce projet comporte trois chapitres :
-Le premier chapitre présente des généralités sur le principe de fonctionnement des
fréquencemètres basses fréquences et hautes fréquences à affichage numérique,
-Le deuxième chapitre permet de décrire le microcontrôleur PIC16F877 utilisé pour notre
appareil de mesure, ainsi que son mode de fonctionnement.
-Le troisième chapitre sera consacré à l’étude des circuits électroniques utilisés, et à la
description du fonctionnement de notre appareil de mesure, le programme du
microcontrôleur utilisé ainsi qu’à la réalisation pratique de notre fréquencemètre numérique.
CHAPITRE I
DESCRIPTION GENERALE DUFONCTIONNEMENT DES
FREQUENCEMETRESNUMERIQUES
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
3
I.1.Introduction :
-La conception et réalisation d'un fréquencemètre reste assez simple, de plus la mesure
de fréquence est un instrument indispensable arrivant juste après le multimètre.
I.2. Principe de la mesure de fréquence (1,2,3):
-Le Hertz est définit comme étant le nombre de transition d'un signal dans une
seconde. Le principe de la mesure consiste donc à compter les impulsions du signal à mesurer
pendant une seconde. Heinrich Hertz (1857-1894) fut le premier à produire et à détecter des
ondes électromagnétiques à une fréquence de l'ordre de 1GHz.
-Pour mesurer des fréquences faibles, le mode période mètre est généralement utilisé
afin d'avoir une meilleure précision sur le résultat. Dans ce cas, le signal à mesurer définit
l'enveloppe de comptage d'une horloge de référence de 1ms ou 1us : le système compte donc
le nombre de ms pendant une période du signal. Une détection de front du signal à mesurer
permet de mémoriser et remettre à zéro le compteur millisecondes, ce qui permet de
s'affranchir du rapport cyclique.
-La mise en forme est chargée de transformer un signal périodique en un signal de
même période en forme de créneaux (attention, cette opération ne marche pas pour tous les
signaux… on peut citer par exemple les signaux qui sont toujours de même signe) (Figure.1).
Nous verrons qu’une mise en forme peut conduire à une fréquence erronée quand le signal
passe plus de deux fois par zéro au cours d’une période (signal cardiaque, …).
- Le compteur voit sa sortie en binaire incrémentée de 1 à chaque front montant reçu
sur son entrée d’horloge (sortie de la mise en forme).
- L’ensemble oscillateur à quartz/diviseur de fréquence permet d’activer ou d’inhiber
le comptage pendant une durée connue précisément (grâce à l’oscillateur à quartz très stable
dans le temps !). Les créneaux en sortie de cet étage ont une fréquence F =1/T= 215/2n
Où n est le numéro de la sortie du diviseur.
- L’afficheur comporte un décodeur qui permet, à partir du résultat binaire de la sortie
du compteur, de faire apparaître sur des afficheurs à LED la valeur décimale correspondante.
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
4
-donc suivant la gamme de fréquence étudiée (vis à vis de l’horloge interne), le
système nous donne soit la fréquence (on parle alors de fréquencemètre), soit la période (on
parle alors de période mètre).
Figure. I.1. Principe générale de fonctionnement d’un fréquencemètre
I.3. Mesure de fréquence et période (2,4) :
Figure. I.2. Mesure de fréquence et de période
Pour réaliser un fréquencemètre, il est possible de faire appel aux timer internes d'un
microcontrôleur, ou plus simplement utiliser une multitude de compteur diviseur par 10. La
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
4
-donc suivant la gamme de fréquence étudiée (vis à vis de l’horloge interne), le
système nous donne soit la fréquence (on parle alors de fréquencemètre), soit la période (on
parle alors de période mètre).
Figure. I.1. Principe générale de fonctionnement d’un fréquencemètre
I.3. Mesure de fréquence et période (2,4) :
Figure. I.2. Mesure de fréquence et de période
Pour réaliser un fréquencemètre, il est possible de faire appel aux timer internes d'un
microcontrôleur, ou plus simplement utiliser une multitude de compteur diviseur par 10. La
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
4
-donc suivant la gamme de fréquence étudiée (vis à vis de l’horloge interne), le
système nous donne soit la fréquence (on parle alors de fréquencemètre), soit la période (on
parle alors de période mètre).
Figure. I.1. Principe générale de fonctionnement d’un fréquencemètre
I.3. Mesure de fréquence et période (2,4) :
Figure. I.2. Mesure de fréquence et de période
Pour réaliser un fréquencemètre, il est possible de faire appel aux timer internes d'un
microcontrôleur, ou plus simplement utiliser une multitude de compteur diviseur par 10. La
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
5
solution retenue ici est l'utilisation d'un FPGA d'entrée de gamme. L'utilisation d'un
composant numérique programmable présente plusieurs avantages :
Dimensions réduites,
Évolution et ajout de fonctionnalités,
Apprentissage à la programmation numérique VHDL.
Les circuits CMOS permettent des mesures jusqu'à 40 ou 50MHz au maximum; les
circuits numériques tels que les FPGA fonctionnent jusqu'à 100 ou 200MHz. Il est donc
nécessaire d'abaisser la fréquence d'entrée. Pour cela un pré diviseur est utilisé ; ici le choix
s'est porté sur un circuit admettant une fréquence maximum de 1 GHz et une division de 128,
mais rien n'empêche l'utilisation du MB506 par exemple qui accepte des fréquences de
2.5GHz et réalise une pré division de 256. La pré division de 128 ou 256 est relativement
facile à traiter et ne consiste qu'à une succession de sept ou huit décalages.
Pour le fonctionnement en fréquencemètre (Figure.2), le signal d’activation/inhibition
du compteur de fréquence F est de période grande devant celle du signal à étudier (fréquence
f) (il y aura donc au moins une impulsion pendant T/2 !). Lorsque ce signal est au niveau haut,
le compteur est actif. Il incrémente de 1 à chaque fois que le signal mis en forme présente un
front montant.
Pendant T/2, on va compter N front montants. La fréquence f du signal à analyser est
alors telle que ;
(N-1).1/f ≤ T/2 ≤ (N+1) (1)
Soit : (N −1).2F ≤ f ≤ (N+1).2F (2)
Pour que l’erreur relative soit raisonnable, il faut que N soit grand (et donc que F soit
petit devant f). En effet, on a :
∆f/f=2/N (3)
Lorsque f est faible, même après division, on ne peut plus faire en sorte f soit très
grand devant F. La précision devient alors catastrophique. Il faut envisager un autre
fonctionnement, celui du période mètre.
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
6
Pour le cas du période mètre, on va tout simplement inverser les entrées CLK et
activation/inhibition. On compte alors le nombre de fronts montants d’horloge pendant une
demi période 1/(2.f) du signal mise en forme. Alors :
(N-1).1/F ≤ 1/2f ≤(N+1).1/F (4)
Soit : F/(2.(N-1)) ≥ f ≥ F/(2.(N+1)) (5)
I.4. Synoptique du fréquencemètre (1,2) :
Figure. I.3. Schéma synoptique de fonctionnement d’un fréquencemètre numérique
Afin d'assurer une bonne sensibilité de mesure, un amplificateur est placé devant le pré
diviseur, il s'agit d'un hybride, amplificateur monolithique large bande style ERA5 ou
INA10386 qui nécessite relativement peu de composants externes.
Une deuxième entrée (BF ou LF) est utilisée pour des fréquences inférieures à
200MHz, le pré diviseur ne fonctionnerait plus très bien pour des fréquences faibles. Dans ce
cas, le signal est aussi amplifié par des étages à transistors cette fois. Ces deux signaux sont
envoyés vers deux entrées du composant programmable et attaqueront le compteur; la
Chapitre I : Description générale du fonctionnement des fréquencemètres numériques
7
commutation entre le signal BF et HF est effectuée au niveau du traitement numérique par un
multiplexeur d'horloge (Figure.3).
La référence de temps de 10MHz permet de générer les différentes horloges de
traitement : 1 seconde, 1 ms et 1 us. Cette référence doit évidemment avoir une bonne
précision et une faible dérive afin d'assurer une bonne mesure. Un quartz peut faire l'affaire
mais dérivera en température, sinon le choix se portera sur l'utilisation d'un VCXO ou d'un
TCXO, oscillateur contrôlé en température. Tout dépend de la précision désirée ainsi que du
budget.
I.5. Conclusion :
Un fréquencemètre est un instrument de mesure destiné à afficher la fréquence d'un
signal périodique.
L'appareil est principalement un compteur d'occurrences d'une transition
caractéristique du signal entrant.
Un étage de mise en forme transforme le signal d'entrée en impulsions de même
fréquence.
Un oscillateur aussi stable que possible appelé base de temps fournit la référence à
laquelle comparer les fréquences. La mesure peut se faire soit en comptant les impulsions
issues de l'entrée dans un temps donné (correspondant à un nombre déterminé de périodes de
la base de temps). On obtient directement la fréquence :
soit en comptant le nombre de périodes de la base de temps dans l'intervalle entre un
nombre déterminé d'impulsions issues du signal d'entrée. On obtient un multiple de la période
du signal à mesurer, à partir duquel il faut calculer la fréquence,
Soit, indirectement, en mélangeant un signal dérivé des transitions caractéristiques à
un autre, de fréquence proche, constitué à partir de la base de temps, et en mesurant ensuite,
par l'un ou l'autre des moyens précédents, la fréquence des battements qui s'ensuivent.
L’affichage est généralement numérique. Il donne une fréquence moyenne et parfois une
indication de la déviation du signal par rapport à cette fréquence.
CHAPITRE II
PRESENTATION DUMICROCONTROLEUR
PIC16F877
Chapitre II Présentation du microcontrôleur PIC 16F877
II.1. Introduction :
Un objet technique, intégrant de l’électronique, fait souvent apparaître des fonctions ayant pour
rôle le traitement d’information : opérations arithmétiques (Addition, multiplication…) ou
Logiques (ET, OU…) entre plusieurs signaux d’entrée permettant de générer des signaux de
sortie. Ces fonctions peuvent être réalisées par des circuits analogiques ou logiques.
Mais, lorsque l’objet technique devient complexe, et qu’il est alors nécessaire de réaliser un
ensemble important de traitements d’informations, il devient plus simple de faire appel à une
structure à base de microcontrôleur PIC.
Au niveau de ce chapitre on va essayer de mieux connaître le PIC16F877 (PIC choisie pour ce
projet), de savoir manipuler ces instructions internes.
II.2. Généralités sur les PICs :
II.2.1. Définition :
Un PIC n’est rien d’autre qu’un microcontrôleur, c’est à dire une unité de traitement
de l’information de type microprocesseur à laquelle on a ajouté des périphériques internes
permettant de réaliser des montages sans nécessiter l’ajout de composants externes.
La dénomination PIC est sous copyright de Microship, donc les autres fabricants ont été dans
l’impossibilité d’utiliser ce terme pour leurs propres microcontrôleurs.
Les PICs sont des composants dits RISC (Réduc Instructions Computing Set), ou encore
composant à jeu d’instructions réduit.
II.2.2. Les avantage du microcontrôleur :
L’utilisation des microcontrôleurs pour les circuits programmables à plusieurs points forts et bien
réels. Il suffit pour s’en persuader, d’examiner la spectaculaire évolution de l’offre des fabricants de
circuits intégrés en ce domaine depuis quelques années.
9
Chapitre II Présentation du microcontrôleur PIC 16F877
Nous allons voir que le nombre d’entre eux découle du simple sens.
-Tout d’abord, un microcontrôleur intègre dans un seul et même boîtier ce qui, avant
nécessitait une dizaine d’éléments séparés. Il résulte donc une diminution évidente de
l’encombrement de matériel et de circuit imprimé
-Cette intégration a aussi comme conséquence immédiate de simplifier le tracé du circuit
imprimé puisqu’il n’est plus nécessaire de véhiculer des bus d’adresses et de donnée
d’un composant à un autre.
-L’augmentation de la fiabilité du système puisque, le nombre des composants diminuant,
le nombre des connexions composants/supports ou composants/circuits imprimer
diminue.
-Le microcontrôleur contribue à réduire les coûts à plusieurs niveaux
-Moins cher que les autres composants qu’il remplace.
-Diminuer les coûts de main d’œuvre.
II.2.3. Les différentes familles des PICs (5) :
Il y en a trois grandes familles de PICs :
-La famille Base Line, qui utilise des mots d’instructions de 12 bits.
-La famille Mid-Range, qui utilise des mots de 14 bits.
-La famille High-End, qui utilise des mots de 16 bits.
Toutes les PICsMid-Range ont un jeu de 35 instructions, stockent chaque instruction dans un
seul mot de programme, et exécutent chaque instruction (sauf les sauts) en un cycle. On atteint
donc des très grandes vitesses, et les instructions sont de plus très rapidement assimilées.
II.2.4.Identification du PIC (6) :
Pour identifier une PIC, on utilise simplement son numéro. Les 2 premiers chiffres indiquent la
catégorie de la PIC, 16 indique une PIC Mid-Range.
Vient ensuite parfois une lettre L : Celle-ci indique que la PIC peut fonctionner avec une plage
de tension beaucoup plus tolérante. Ensuite, on trouve :
-C indique que la mémoire programme est une EPROM ou plus rarement une EEPROM CR
pour indiquer une mémoire de type ROM.
- F pour indiquer une mémoire de type FLASH.
10
Chapitre II Présentation du microcontrôleur PIC 16F877
II.3. Choix d'un microcontrôleur (7) :Il existe plusieurs microcontrôleurs fabriqués par : INTEL, MOTOROLA, HITACHI,
NECTEXAS instrument… etc. Le choix d’un microcontrôleur dépend de plusieurs
critères de sélection dont le développeur doit tenir compte (6).
Les critères de choix du microcontrôleur sont les suivantes :
-Il faut dans un premier temps déterminer le nombre d’entrées-sorties pour l’application
-Etre doté d’un minimum de pin pour simplifier ou maximum la réalisation de la carte
-Il faut si l’application nécessite un convertisseur analogique /numérique ce qui va centrer un peu
plus vers le choix d’une famille de PIC.
-La rapidité d’exécution est un élément important, il faut consulter les DATA-BOOK. Elledoit
être dotée d’une mémoire qui satisfait à notre application ;
-Il est parfois judicieux de réaliser l'application en ajoutant un circuit externe au PIC, cette
solution peut faciliter la programmation et diminuer le coût de revient.
Le 16F877 est un microcontrôleur de MICROCHIP, fait partie intégrante de la famille des
MidRange (16) dont la mémoire programme est de type flash (F) de type 877 et capable
d’accepter une fréquence d’horloge maximale de 20Mhz.
II.3.1. Le microcontrôleur PIC 16F877:
Le pic 16F877 est un circuit intègre contenu dans un boîtier nommer «DIL 40», il présente 40
broches, 20 de chaque côté. Les broches sont virtuellement numérotées de 1 à 40. La 1ere broche est
placé dans le coin situé à gauche de l’encoche de repérage (Figure.1).
Figure. II.1. PIC 16F877A
11
Chapitre II Présentation du microcontrôleur PIC 16F877
II.3.2. Caractéristiques générales:
Voici un tableau récapitulatif des principales caractéristiques du PIC16F877.
Caractéristiques 16F877
Broches 40
E/S max 33
µy flash 8 KO
µy E²PROM 256 O
CAN 7
PWM 2 DE 10 BITS
TIMER r 3
Comparateurs 2
Interruption 13
oscillateur 20 MHz MAX
Port série USART/SSP
Tableau. II.1. Caractéristiques du PIC 16F877
II.4. Architecture externe (5, 6,9) :
La figure ci-dessous montre l'architecture externe d'un PIC 16F877.
12
Chapitre II Présentation du microcontrôleur PIC 16F877
Figure. II.2. Brochage du PIC 16F877(6)
-Le boitier du PIC 16F877 décrit par la figure.2 comprend 40 pins : 33 pins
D’entrées/sorties, 4 pins pour l'alimentation, 2 pins pour l'oscillateur et une pin pour le
Reset (MCLR).
-La broche MCLR sert à initialiser le μC en cas de la mise sous tension, de remise à zéro
Externe, de chien de garde et en cas de la baisse de tension d'alimentation.
-Les broches VDD et VSS servent à alimenter le PIC.
On remarque qu'on a 2 connections "VDD" et 2 connections "VSS". La présence de
ces 2 pins s'explique pour une raison de dissipation thermique. Les courants véhicules dans
le pic sont loin d'être négligeables du fait des nombreuses entrées/sorties disponibles.
13
Chapitre II Présentation du microcontrôleur PIC 16F877A
II.5. Architecture interne (6,9):
La figure 3 présente l'architecture interne de PIC16F877 (Data Sheet PIC16F877/8742007).
Figure. II.3. Architecture Interne du PIC16F877
14
Chapitre II Présentation du microcontrôleur PIC 16F877
II.5.1. Les ports entrée/sortie (6) :
Le PIC 16F877 comporte cinq ports entrées / sorties :
II.5.1.1. Port A : c’est un port d’entrée sortie, il contient 6pin d’entrées /sorties de RA0 à RA5
repartie sur deux registres : le registre port A et le registre tris A. Le bit 6 et7 ne sont pas
implémente, ils seront lus comme 0.
Au moment de reset on doit forcer une valeur dans le registre ADCON1, pour pouvoir utiliser ce
port en entrée/sortie de type générale.
II.5.1.2. Port B : le pin RB0 qui, en configuration d’entrée, est de type «Trigger de Schmitt» quand
elle est utilisée en mode interruption «INT».La lecture simple de RB0 se fait, elle, de façon tout à fait
classique, en entrée de type TTL.
II.5.1.3. Port C : c’est un port qui n’existait pas sur le 16F84. Voyons donc, toujours au niveau de
son utilisation classique, quel que soit les caractéristiques.
La mise sous tension du PIC, ou reset, force tous les bits utiles de TRIS x à 1, ce qui place toutes
les pins en entrée.
II.5.1.4. Port D : ce port n’est présent que sur le 16F877.il fonctionne d’une façon identique aux
autres, dans son mode de fonctionnement général.
Le registre TRISD comporte donc les 8 bits de direction.
Les 8 pins I/O, en mode entrée, sont de type «Trigger de Schmitt».le fonctionnement de ce port
dépend de la valeur placée dans TRISE, qui concerne, a première vue, le port E. Mais au moment
de mise sous tension, la valeur placée dans TRISE configure le PORTD en port I/O de type général.
I.5.1.5. Port E : Ce port n’est présent que sur les PICs 16F877.
Il ne comporte que 3 pins, RE0, RE1 et RE2 contrairement aux autres ports, les bits non concernés de
TRISE sont implémentées pour d’autres fonctions.
On remarque que les pins Rex peuvent être utilisés comme pins d’entrées analogiques. C’est le
registre ADCON1 qui détermine si ce port sera utilisé comme port I/O ou comme port analogique.
15
Chapitre II Présentation du microcontrôleur PIC 16F877
Au niveau électronique, les Rex utilisées en entrée seront, une fois de plus, du type «Trigger de
Schmitt».
II.5.2. Les particularités électriques(7,9) :
Les pins d’alimentation sont placés d’une part et d’autre en position centrale du PIC. La
connexion de MCLR au +5v, cette pin est utilisée pour effectuer un reset du composant en cas de
connexion à la masse.
On trouve le quartz, qui peut être remplacé par un résonateur ou par un simple réseau RC. Les
condensateurs de découplage, du fait de la fréquence plus importante du quartz utilisé, sont de
valeur environ 15pF.
II.5.3. Les mémoires du PIC 16F877 (7) :
Les mémoires sont de trois types différents :
II.5.3.1. La mémoire FLASH :
C’est une mémoire programme de taille 8K octets .Chaque case mémoire unitaire est de taille 13
bits. Cette mémoire est de type mémoires stable, c'est-à-dire qu’on peut réécrire dessus à volonté,
car le 16F877 est caractérisé par la possibilité d’écrire des données.
La zone mémoire est caractérisée par une adresse de 13 bits, alors ceci nous impose donc pour
l’adressage les registres EEAR et EEADRH. De même, nous aurons pour les données, les
registres EEDATA et EEDATH.
II.5.3.2. La mémoire RAM :
Cette mémoire de taille 368 octets est une mémoire d’accès rapide et elle est volatile (les données
seront perdus lorsque elle n’est plus sous tentions). Elle contient tous les registres de
configuration du PIC ainsi que les différents registres de données. Elle contient également les
variables utilisées par le programme. La RAM est la mémoire la plus utilisée. Toutes les données qui
y sont stockées sont perdues lors d’une coupure de courant.
16
Chapitre II Présentation du microcontrôleur PIC 16F877
II.5.3.3. L’EPROM interne :
Le pic 16F877contient également la mémoire électriquement effaçable, réécrivable et stable. Ce
type de mémoire est d’accès plus lent. Pour gérer cette EEPROM on a besoin de quatre registres, à
savoir EEDR, EEDATA, EECON1 et EECON2.
L’adresse relative de l’accès EEPROM est donc comprise entre 0000 et 00FF ce qui nous
permet d’utiliser un registre de huit bit pour définir cette adresse.
II.5.4. Les TIMERS (5,6,9) :
Le microcontrôleur PIC16F877 comporte trois Timers, chacun deux peut générer une
interruption.
II.5.4.1. TIMER 0:
Dans le passé, le Timer0 s’appelait RTCC. C’est un compteur 8 bits (0 à 255) simple, qui compte
des impulsions soit internes, soit d’une source externe. On peut par ailleurs lui appliquer une pré
division programmable entre 1 et 256.
On peut librement lire ou écrire dans le registre de comptage associé. On peut donc le pré charger
avec une valeur, à partir de laquelle il comptera jusqu’à atteindre 255.
II.5.4.2. TIMER 1 :
Le Timer1 fonctionne sur le même principe que le Timer0, mais avec un registre de comptage
plus gros : 16 bits au lieu de 8, ce qui étend notablement ces capacités de comptage. De plus, il
possède un mode de fonctionnement particulier : on peut l’utiliser en association avec un des
modules CCP (modules de capture et de comparaison, voir plus loin). Voyons rapidement le
mode « capture » : lorsqu’un événement survient sur l’entrée du module CCP, la valeur du
Timer1 est lue.
Le mode Timer :
Dans ce mode, TMR1 est incrémenté par l’horloge système Fosc/4 éventuellement pré-divisée.
Le bit de synchronisation n'a pas d'effet car l'horloge Fosc/4 est toujours synchronisée sur
l'horloge système.
17
Chapitre II Présentation du microcontrôleur PIC 16F877
Le mode Compteur :
Dans ce mode, TMR1 est incrémenté à chaque front montant de l'horloge externe T1CKI
(RC0) ou l'horloge dédiée générée par l’oscillateur T1OSC à condition de positionner le bit
T1OSCENa 1 et de brancher un quartz entre les broche RC0 et RC1.
En mode compteur, RC0 et RC1 sont automatiquement configurées en entrée, on n’a pas besoin de
configurer les bits TRISC, 0 et TRISC, 1.
II.5.4.3. TIMER 2 :
Le Timer2 a un fonctionnement différent des Timer0 et Timer1. C’est un compteur 8 bits avec
pré-diviseur et post-diviseur. On s’en sert pour générer des signaux carrés, ou, en association avec
le module CCP, des signaux PWM.
PWM étant l’acronyme de «Pulse Width Modulation» ou, en français, Modulation de Largeur
d’Impulsion (MLI).
II.5.5. Watchdog(7,8,9) :
Cette fonction est capable de surveiller le bon fonctionnement du programme que le
micro contrôleur exécute. Le rôle du Watchdog (ou chien de garde) est de "Reseter" le micro
contrôleur si 1 'on ne remet pas à zéro périodiquement (à intervalle définissable) un registre
interne grâce à 1 'instruction clrwdt (Clearwatchdog), si le programme tourne par exemple dans
une boucle sans fin (qui est un bug dans le programme) la fonction de watchdog va permettre de
remettre à 0 le micro contrôleur afin de relancer le programme.
II.5.6. L’oscillateur (9) :
L'horloge système peut être réalisée soit avec un quartz, soit avec une horloge extérieure, soit
avec un circuit RC. Dans ce dernier cas, la stabilité du montage est limitée.
Le PIC 16F877 peut sous les mêmes modes classiques que les 16F84 ou 16F628, c'est à dire:
-Mode LP : Avec des quartzs de fréquence basse (200 KHz max).
-Mode XT: Avec des quartzs de fréquence max 4 MHz.
-Mode HS: Avec des quartzs de fréquence max 20 MHz.
-Mode RC: Avec un condensateur et une résistance extérieure.
18
Chapitre II Présentation du microcontrôleur PIC 16F877
- Le bloc oscillateur interne :
Le 16F877A possède un bloc oscillateur qui produit un signal de 31,25 KHz et un signal de 8
MHz. Le premier sert à piloter le "watchdog". Le signal à 8 MHz qui passe à travers un pré
diviseur, peut servir d'horloge système. L'oscillateur étant divisé par 4, on aura une horloge
cycle maximum de 2 MHz soit un temps de cycle de 500 ns. Le choix du pré diviseur pour lesi
gnalde 8 MHz est fait par les 3 bits IRCF0, IRCF1 et IRCF2 du registre OSCCON.
II.5.7. Les principaux registres du PIC 16F877A (5,6,9) :
II.5.7.1. Le registre «Status» :
C’est un registre dont chaque bit a une signification particulière. Il est principalement utilisé
pour tout ce qui concerne les tests. On accède indifféremment à ce registre par une quelconque de
ces 4 adresses.
Tableau. II.2. Les différents bits de registre Status
Au reset : STATUS = 00011XXX
Bit 7 : IRP = permet la sélection des pages en adressage indirect. Pour la PAGE 0 (de 00 à 7F) et la
PAGE 1 (de 80 à FF) ce bit doit être laissé à "0". Mis à "1" il permettra d'atteindre la PAGE 3 (de
100à17F) et la PAGE 4 (de 180 à 1FF).
Bits 6 et 5 : RP1 et RP0 permettent la sélection des pages en adressage direct.
Bit 0: C : Carry (report), ce bit est en fait le 9ème bit d’une opération. Par exemple, si une
addition de 2 octets donne une valeur >255, ce bit sera positionné à 1.
Bit 1: DC : Digit Carry, ce bit est utilisé principalement lorsque l’on travaille avec des nombres
BCD : il indique un report du bit 3 vers le bit 4.
Bit 2: Z : Zéro, ce bit est positionné à 1 si le résultat de la dernière opération vaut 0.
Bit 3: PD : Power down, indique quel événement a entraîné le dernier arrêt du PIC (instruction
sleep ou dépassement du temps du watchdog).
19
Chapitre II Présentation du microcontrôleur PIC 16F877
Bit 4: TO : Time-Out bit, ce bit indique (si 0), que la mise en service suit un arrêt provoqué par
un dépassement de temps ou une mise en sommeil. Dans ce cas, PD effectue la distinction.
II.5.7.2. Le registre «Option» :
Ce registre en lecture écriture permet de configurer les prédiviseurs du Timer et du
Watchdog, la source du Timer, le front des interruptions et le choix du Pull up sur le Port B.
Tableau. II.3. Les différents bits de registre Option
Au Reset : OPTION = 11111111
Bit 7 : RBPU = Pull up Enable bit on Port B. 1 =Pull up désactivé sur le Port B. 0 = Pull
up activé.
Bit 6 : INTEDG = InterruptEdge select bit. 1 = Interruption si front montant sur la broche
PB0/IRQ (pin 6). 0 = Interruption si front descendant sur PB0/IRQ.
Bit 5 : TOCS = Timer TMR0 Clock Source select bit. 1 = L'horloge du Timer est l'entrée
PA4/Clk(pin 3). 0 = Le Timer utilise l'horloge interne du PIC.
Bit 4 : TOSE = Timer TMR0 Source Edge select bit. 1 = Le Timer s'incrémente à chaque front
montant de la broche PA4/Clk. 0 = Le Timer s'incrémente à chaque front descendant de la broche
PA4/Clk.
Bit 3 : PSA = Prescaler Assignement bit. 1 = Le prédiviseur est affecté au Watchdog.. 0 = Le
prédiviseur est affecté au TimerTMR0.
Bits 2 à 0 : PS2 PS1 PS0 = Prescaler Rate Select bits.
20
Chapitre II Présentation du microcontrôleur PIC 16F877
PS2 PS1 PS0 Prédiv Timer Prédiv Watchdo
0 0 0 2 1
0 0 1 4 2
0 1 0 8 4
0 1 1 16 8
1 0 0 32 16
1 0 1 64 32
1 1 0 128 64
1 1 1 256 128
Tableau. II.4. Configuration des bits (PS0 :PS2) de registre option pour effectuer
Les prés diviseurs
II.5.7.3. Le registre «INTCON» (Interrupt Control) :
Ce registre en lecture écriture permet de configurer les différentes sources d'interruption.
Tableau. II.5. Les différents bits de registre INTCON Bit
AuReset : INTCON = 0000000X
Bit 7 : GIE = Global InterrupEnable bit 1 = Autorise toutes les interruptions non masquées.
0 = Désactive toutes les interruptions.
Bit 6 : PEIE = PeripheralInterruptEnable bit. 1 = Autorise les interruptions causées par les
périphériques. 0 = Désactive les interruptions causées par le périphériques.
Bit 5 : TMR0IE = Timer TMR0 OverflowInterrupEnable bit. 1 = Autorise les interruptions du
TimerTMR0. 0 = Désactive les interruptions du Timer TMR0.
Bit 4 : INT0IE = RB0/Int InterrupEnable bit. 1 = Autorise les interruptions sur la broche :
PB0/IRQ (pin6). 0 = Désactive les interruptions sur la broche : PB0/IRQ (pin6).
Bit 3 : RBIE = RB Port Change InterrupEnable bit. 1 = Autorise les interruptions par changement
d'état du Port B (PB4 à PB7). 0 = Désactive les interruptions par changement d'état du Port B
(PB4 à PB7).
21
Chapitre II Présentation du microcontrôleur PIC 16F877
Bit 2 : TMR0IF = Timer TMR0 OverflowInterrup Flag bit. 1 = Le Timer à débordé. Ce flag doit
être remis à zéro par programme. 0 = Le Timer n'a pas débordé.
Bit 1 : INT0IF = RB0/Int Interrup Flag bit. 1 = Une interruption sur la broche PB0/IRQ (pin 6)
est survenue. 0 = Pas d’interruption sur la broche PB0/IRQ (pin 6).
Bit 0 : RBIF = RB Port Change Interrup Flag bit. 1 = Quand au moins une entrée du port B (de
PB4 à PB7) a changé d'état. 0 = Aucune entrée de PB4 à PB7 n'a changé d'état.
NB: Ce flag doit être remis à zéro par programme. Ceci n'est possible qu'après une lecture du
Port B.
II.5.7.4. Le registre du travail «W» :
C’est un registre fondamental, utilisé par les pics pour réaliser toutes sortes de calculs.
La destination d’un résultat peut en général être un emplacement RAM (f) ou le registre de travail
(W).
II.5.7.5. Le registre PIE1
Ce registre contient les bits individuels d'autorisation pour les Interruptions des
périphériques. Le bit 6de INTCON (PEIE) doit être mis à "1" pour autoriser une quelconque
IT de périphérique.
II.5.7.6. Le registre PIR1 :
Ce registre contient les FLAG associés aux interruptions des périphériques. Ces Flag passent à
"1" quand une IT correspondante survient et que le bit d'autorisation est bien positionné. Ces Flag
doivent être remis à "0" par Soft.
II.5.7.7. Le registre PIE2 :
Ce registre contient les bits individuels d'autorisation pour les Interruptions de l'EEPROM
en écriture.
II.5.7.8. Le registre PIR2 :
Ce registre contient les flag pour les Interruptions de l'EEPROM en écriture( Bit 7).
22
Chapitre II Présentation du microcontrôleur PIC 16F877
II.5.7.9. Le registre «ADCON0» :
Ce registre permet de définir l’horloge de conversion (bit ADCS1 et ADCS0), le canal à convertir
(CHS2, CHS1 et CHS0) et ADON; bit de mise en fonctionnement
II.5.7.10. Le registre «ADCON1» :
Il permet de déterminer le rôle de chacune des pins PA0, PA1, PA2, PA3 et PA4, et
les 2 dernières sur le Port B en PB6 et PB7. Il permet donc de choisir si une pin sera utilisée
comme entrée analogique, comme entrée/sortie standard, ou comme tension de référence.
II.5.7.11. Les registres «PORTx et TRISx» :
Tous les ports sont pilotés par deux registres :
-Le registre de PORTx, si le PORTx ou certaines lignes de PORTx sont configurées en
sortie, ce registre détermine l'état logique des sorties.
-Le registre TRISx, c'est le registre de direction. Il détermine si le PORTx ou certaines
lignes de port sont en entrée ou en sortie. L'écriture d'une 1 logique correspond à une
entrée (1 comme Input) et l'écriture d'une 0 logique correspond à une sortie (0 comme
Output). Les registres TRISx appartiennent à la banque 1 des SFR.
II.5.7.12. Registres «ADRESL et ADRESH» :
Le convertisseur donne un résultat sur 10 bits, ce résultat sera sauvegardé dans deux registres
ADRESL et ADRESH. Ces deux registres contiennent 16 bits, et que nous n'en utilisons que 10
bits, on peut soit justifier le résultat à gauche ou à droite. Le choix de la méthode s'effectue à
l'aide du bit 7 du registre ADCON1 .
II.5.8. Le convertisseur analogique numérique (5,9) :
ADC = Analog to Digital Converter = convertisseur analogique - numérique (CAN en français).
Le rôle du convertisseur analogique - numérique est de transformer une tension analogique en un
nombre binaire (proportionnel à la tension analogique). Le microcontrôleur PIC 16F877 a
l'avantage de posséder un module ADC interne, contrairement au PIC 16F84 (il faut alors
adjoindre un ADC externe, ce qui complique le schéma électrique et la programmation du PIC) [4] .
23
Chapitre II Présentation du microcontrôleur PIC 16F877
Le convertisseur A/D convertit le signal analogique présent sur une de ses 8 entrées en
son
équivalent numérique, codé sur 10 bits. Les pattes AN2 et AN3 peuvent être utilisées comme
références de tension ou comme entrées analogiques standard, les références de tension étant dans
ce dernier cas prises sur les tensions d’alimentations du PIC : VDD et VSS. (VDD pour le + et
VSS pour le -).
On peut donc numériser jusqu’à 8 signaux analogiques. Pas tous en même temps, bien sûr,
étant donné qu’il n’y a qu’un seul module de conversion pour 8 signaux d’entrée multiplexés.
Mais si vos signaux n’évoluent pas trop vite (fréquence basse), vous pouvez numériser le signal
sur la patte AN0, puis celui sur AN1.
II.5.8.1. Configuration de la conversion :
a. Registre ADCON0 :
Tableau. II.6. Registre ADCON0
Au Reset : ADCON0 = 00000000
Bit 7 et bit 6 : ADSC1 et ADSC0 = Clock Select bits.
Ces 2 bits permettent de choisir la vitesse de conversion :
- Si le bit ADCS2 = 0 (b6 du registre ADCON1) = diviseur par 2 inactif.
00= Fosc/2.
01= Fosc/8.
10= Fosc/32.
11= Oscillateur RC interne.
- Si le bit ADCS2 = 1 (b6 du registre ADCON1) = diviseur par 2 activé.
00= Fosc/4.
01= Fosc/16.
10= Fosc/64.
11= Oscillateur RC interne.
Le temps de conversion d'un bit est TAD.
-Pour une conversion totale des 10 bits il faut : 12.TAD.
24
Chapitre II Présentation du microcontrôleur PIC 16F877
-Pour que la conversion soit correcte il faut que TAD soit au minimum de 1,6 µs.
-Avec l'oscillateur interne RC on a : TAD = 4 µs typique (entre 2 et 6 µs).
QUARTZ CLOCK TAD 12.TAD Ne convient pas si TAD<1,6µs
Fosc/2 = 4 MHz 0,25 µs 3 µs Ne convient pas
8 MHz Fosc/4 = 2 MHz 0,50 µs 6 µs Ne convient pasFosc/8 = 1 MHz 1 µs 12 µs Ne convient pas
Fosc/16 = 500 KHz 2 µs 24 µs OK
Fosc/32 = 250 KHz 4 µs 48 µs OK
Fosc/64 = 125 KHz 8 µs 96 µs OK
Fosc/2 = 10 MHz 0,1 µs 1,2 µs Ne convient pas
20 MHz Fosc/4 = 5 MHz 0,2 µs 2,4 µs Ne convient pasFosc/8 = 2,5 MHz 0,4 µs 4,8 µs Ne convient pas
Fosc/16 = 1,25 MHz 0,8 µs 9,6 µs Ne convient pas
Fosc/32 = 625 KHz 1,6 µs 19,2 µs OK
Fosc/64 = 312,5 KHz 3,2 µs 38,4 µs OK
Tableau. II.7. Temps de conversion TAD en fonction du Quartz et des bits du Clock
Select
Bit 5 bit4 et bit 3 : CHS2 CHS1 et CHS0 = Channel Select bits.
Canal CHS2 CHS1 CHS0 PORT
0 0 0 0 PA0
1 0 0 1 PA1
2 0 1 0 PA2
3 0 1 1 PA3
4 1 0 0 PA4
5 1 0 1 PB6
6 1 1 0 PB7
Tableau. II.8. Sélection l’entrée de la conversion
Bit 2: GO/DONE: Status bit si ADON=1.
1 = Démarre la conversion A/D. Ce bit est remis à "0" par hard. 0 =
La conversion A/D est terminée.
Bit 1 : Bit non implanté.
25
Chapitre II Présentation du microcontrôleur PIC 16F877
Bit 0 :ADON : A/D on bit.
1= Convertisseur A/D en service.
0 = Convertisseur A/D à l'arrêt.
b. Registre ADCON :
Au Reset : ADCON1 = 00000000
Bit 7: ADFM = A/D Result format.
1 = Justifié à droite. ADRESH ne contient que les 2 MSB du résultat. Les 6 MSB de ce registre
sont lus comme des "0".
0 = Justifié à gauche. ADRESL ne contient que les 2 LSB du résultat. Les 6 LSB de ce registre
sont lus comme des "0".
Bit 6 : ADCS2 = A/D ClockDivide by 2.
1 = Clk divisée par 2.
0 = diviseur par 2 inactif.
Bit 4 et 5 : VCFG0 et VCFG1 = Voltage Reference Configuration
c. Registre ANSEL :
Ce registre permet la sélection des entrées analogiques.
Tableau. II.9. Registre ANSEL
II.5.9. Les Interruptions (6,8,9) :]
Une interruption provoque l’arrêt du programme principal pour aller exécuter une
procédure d'interruption. A la fin de cette procédure, le microcontrôleur reprend le programme
principal à l’endroit où il l’a laissé. A chaque interruption sont associes deux bits, un bit de
validation et un drapeau. Le premier permet d'autoriser ou non l'interruption, le second permet au
programmeur de savoir de quelle interruption il s'agit.
26
Chapitre II Présentation du microcontrôleur PIC 16F877
Sur le 16F877A, les interruptions sont classées en deux catégories, les interruptions
primaires et les interruptions périphériques. Elles sont gérées par les registres :
INTCON: GIE PEIE T0IE INT RBIE T0IF INTF RBIF
E
PIE1 (bk1): PSPI ADIE RCI TXI SSPIE CCP1I TMR2I TMR1I
E E E E E E
PIR1 (bk0): PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2I TMR1I
F F
PIE2 (bk0): EEIE BCLI CCP2IE
E
PIR2 (bk1): EEIF BCLIF CCP2IF
OPTION_REG(bk1) INTED
: G
Tableau. II.10. Les différents registres d'interruption
- Toutes les interruptions peuvent être validées/interdites par le bit INTCON.GIE.
-Toutes les interruptions périphériques peuvent être validées/interdites par le bit INTCON.PEIE.
Chaque interruption peut être validée/interdite par son bit de validation individuel
- Les sources d'interruption :
Interruption : Source d’interruption ValidationFlag PEIE.
T0I : Débordement Timer 0 INTCON, T0IE INTCON, T0IF.
INT : Front sur RB0/INT INTCON, INTE INTCON, INTF.
RBI : Front sur RB4-RB7 INTCON, RBIE INTCON, RBIF.
ADI : Fin de conversion A/N PIE1, ADIE PIR1, ADIF.
RCI : Un Octet est reçu sur l'USART PIE1, RCIE PIR1, RCIF.
TXI : Fin transmission d'un octet sur l'USART PIE1, TXIE PIR1, TXIF.
SSPI : Caractère émis/reçu sur port série synchrone PIE1, SSPIE PIR1, SSPIF.
TMR1I : Débordement de Timer 1 PIE1, TMR1IE PIR1, TMR1IF.
TMR2I : Timer 2 a atteint la valeur programmée PIE1, TMR2IE PIR1, TMR2IF.
PSPI : Lecture/écriture terminée sur Port parallèle (16F877) PIE1, PSPIE PIR1, PSPIF.
CCP1I : Capture/comparaison de TMR1 avec module CCP1 PIE1, CCP1IE PIR1,
CCP1IF.
27
Chapitre II Présentation du microcontrôleur PIC 16F877
CCP2I : Capture/comparaison de TMR1 avec module CCP2 PIE2, CCP2IE PIR2,
CCP2IF.
EEI : Fin d'écriture en EEPROM PIE2, EEIE PIR2, EEIF.
BCLI : Collision sur bus SSP en mode I2C PIE2, BCLIE PIR2.BCLIF.
II.6. Conclusion :
Dans ce second chapitre, nous avons présenté le mode de fonctionnement du
Microcontrôleur PIC16F788 avec ses différents circuits internes qu’il contient (CAN,
Compteur, Ports, Registres, Watchlog, Oscillateur…), et avec ses différents modes
d’Interruptionet cela dans le but de coordonner et de contrôlerles différentes étapes de la mesure
de la fréquenceet la valeur moyenne du signal avec une grande précision.
28
CHAPITRE III
ETUDE ET REALISATIONPRATIQUE DU
FREQUENCEMETRENUMERIQUE A BASE DE
PIC16F877
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
30
III.1. Introduction:
Dans ce chapitre on va expliquer d'une manière simple le fonctionnement du
fréquencemètre à base de PIC16F877 de façon clair et méthodique. On va décrire
brièvement les différentes étapes de la réalisation du projet jusqu’à son implémentation
sur circuit imprimé.
III.2. Présentation générale du projet :
Notre projet a pour objectif de la réalisation d’un fréquencemètre numérique à
base de PIC 16F877 qui permet de mesurer les valeurs des fréquences dans la gamme
(0Hz-100KHz). Et des tensions moyennes électriques. Le fréquencemètre peut
simplement mesurer la fréquence grâce au convertisseur Analogique-numérique
(CAN) en stockant la valeur calculée dans les deux registre de 16bits, la fonction
fréquencemètre est plus compliquée par rapport à la fonction de mesure de tensions
moyennes car l’opération de mesure présente beaucoup d’étapes surtout
Le travail de conception présente deux étapes donnée en figure1:
a) Réalisation de la partie électronique sur plaque d’essai puis sur circuit imprimé.
b) Partie information avec la programmation du PIC16F877 avec le programme MikroC
pro, avec simulation des différents montages par le simulateur ISIS Professionnel pour
s’assurer de leur bon fonctionnement électronique et par conséquent du montage
électronique de l’appareil de mesure.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
31
Réalisation du fréquencemètre a base de pic16F877
Partie électronique : partie informatique :Montage des composants et programmation du pic avec le programmeCircuits intégrés MikroC pro, le simulateur des montages se: (Résistances, condensateur, fait par le simulateur ISIS professionnel, Diodes),Sélecteur à deux états, Quartz,Régulateur, Interrupteur,Convertisseur fréquence tension,PIC16F877, Afficheur LCDSur la plaque d’essai puis laRéalisation de circuit imprimé.
Figure (III.1) Les différentes phases de la réalisation
III.3. Les différents blocs :
-Dans un notre projet, le Microcontrôleur PIC16F877 va gérer toutes les opérations, les
différents traitements et d’assurer par conséquence les liaisons entre les différentes
parties électroniques de l’appareil de mesure.
-L’alimentation:
Une alimentation stabilisée de 5V pour l'alimentation de pic 16F877 et LCD
Une alimentation stabilisée de 15V pour l'alimentation de LM331 et LM741
-Un générateur de fréquence (0 , 100KHz) un convertisseur fréquence tension: LM331,
et un oscillateur OPAMP(LM741)
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
32
-Un afficheur LCD (2 lignes, 16 caractères) permet d’afficher les résultats, le traitementfaisant intervenir le microcontrôleur PIC
III.4. Etude et réalisation du Fréquencemètre:
L'étude et la réalisation se divisent en deux parties :
III.4.1. Partie Logiciel-Simulation :
Dans ce cas nous allons travailler avec le logiciel de simulation très utilisé
PROTEUS, il s’agit du Lab centre de l’électronique, il est très simple et efficace.
III.4.1.1. Présentation de PROTEUS :
Logicielle ISIS Logicielle ARESFigure (III.2). Démarrage du simulateur PROTEUS
PROTEUS est une application logicielle destinée à l'électronique. Développé par
la société Lab center Electroniques, les logiciels incluant PROTEUS permettent la
CAO (Conception assistée par ordinateur) dans le domaine électronique. Deux
logiciels principaux composent cette suite logicielle: ISIS, ARES. La page de
démarrage de ce simulateur est représentée en figure.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
33
III.4.1.1.1. Logiciel ISIS [10]:
Le logiciel ISIS de Proteus est principalement connu pour éditer des schémas ou
montages électroniques. Par ailleurs, le logiciel permet également de simuler ces
schémas ce qui permet de déceler certaines erreurs dès l'étape de conception.
Indirectement, les circuits électriques
Conçus grâce à ce logiciel peuvent être utilisé dans des documentations car le logicielpermet de contrôler la majorité des aspects graphiques des circuits et montagesélectroniques. Voici en Figure.3 la page de démarrage de l’ISIS
Figure (III.3). Illustration du démarrage de l’ISIS
-Notre montage électronique simulé par PROTEUS 7.4 est représenté ci-dessous(Figure.4) :
Il est composé d’un circuit d’entre pour l’adaptation avec un oscillateur Quartz externe qui
permet de commander le quartz interne du microcontrôleur, convertisseur fréquence
tension, Osculateur (OPAMP. LM741), PIC16F877 et le bloc d’affichage LCD.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
34
Figure (III.4). Schéma du montage électronique du Fréquencemètre
III.4.1.1.2. Logiciel ARES [10] :
Le logiciel ARES est un outil d'édition et de routage qui complètement parfaitement
ISIS. Un schéma électrique réalisé sur ISIS peut alors être importé facilement sur
ARES pour réaliser le PCB de la carte électronique. Bien que l'édition d'un circuit
imprimé soit plus efficiente lorsqu'elle est réalisée manuellement, ce logiciel permet
de placer automatiquement les composants et de réaliser le routage automatiquement.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
35
Les figures 5, 6, et 7 représentent respectivement la page de démarrage de
l’ARES et le dessin du montage de notre appareil sur ce logiciel, ainsi que la
représentation du montage du circuit en dimensions...
Figure (III.5). Illustration du démarrage de l’ARES
Figure (III.6). Dessin des composants du montage de l’appareil de mesure sur l’ARES
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
36
Figure (III.7). Le circuit du fréquencemètre en 3D
III.4.2. Programmation du PIC :
-Dans un notre projet nous avons utilisé le microcontrôleur 16F877 qui le
programme par mikroC pro.
III.4.2.1. Présentation de Compilateur mikroC pro pour PIC 16F877:
Le langage mikroC pour PIC a trouvé une large application pour le
développement des systèmes embarqués sur la base de microcontrôleur. Il assure une
combinaison de l'environnement de programmation avancée IDE (Integrated
Development Environment), et d’un vaste ensemble de bibliothèques pour le
matériel, de la documentation complète et d’un grand nombre d’exemples. Après la
compilation le fichier source est sauvegardé avec l'extension .C.
Une fois que le programme source est figé, le compilateur mikroC donne une
facilitée de programmer le PIC directement en transformant le programme
source en un programme exécutable en "Binaire". L'extension du fichier sera alors
.HEX (hexadécimal).
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
37
La figure suivante montre l’ouverture de la page de démarrage du simulateur
PROTEUS.
Figure (III.8) : Page de démarrage du simulateur MikroC
Figure (III.9) simulation parle Code de MikroC
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
38
Le fichier source est sauvegardé avec l’extension .C. Une fois que le
programme source est figé, l'étape suivante consistera à compiler le programme,
c'est à dire à transformer le programme source en un programme exécutable
"binaire". L’extension du fichier sera alors
.HEX (hexadécimal).
Figure III.10 : programmation du PIC
III.4.2.2. Organigramme du programme implanté dans le microcontrôleur :
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
39
Début
Configuration de LCD
Déclaration de variables
Configuration de CAN
Initialisation de LCD du port de sortie
Configuration de port entrée / sortie
Afficher la tension moyenneet fréquence sur l’afficher
Boucle c1=1
Stoker les bits
Start la conversion
Lire pin A1
Calculé de latension moyenne
Bin2BCD En(V)
Fréquencemètre
Lire pin A0
Start la conversion
Stoker la valeur
Bin2BCDEn(Hz)
La sorte de
LM741,LM331
Cnt++Cnt++
Oui Oui
NoNo
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
40
Figure.III.11. Organigramme du programme implanté
Figure (III.12). Schéma du programmateur JDM[16]
Lorsque le programme est compilé, on peut transférer le fichier (.hex) vers la
mémoire programme du PIC à travers un programmateur appelé JDM . Le logiciel
permettant ce transfert est le (WINPIC800 v 3.64 f).
III.4.2.3. Etapes de programmation du PIC avec le logiciel WINPIC 800 :[11]
-Premièrement, on lance le programme WINPIC 800.
-On clique sur le bouton « Hardware », on sélectionne le programmateur «JDM»
et le numéro du port série connecté à notre programmateur «COM1».
-On clique sur le bouton «Test hardware» pour voir si le programmateur
fonctionne correctement.
-On met le programmateur hors tension et on insère le microcontrôleur dans le
programmateur (son support correspondant), en respectant le sens. On met ensuite le
programmateur à nouveau sous tension. La Led doit s'illuminer.
-On lance à nouveau le logiciel WINPIC 800, et on clique sur le bouton
«detection device», il apparait un message de détection de la famille du PIC inséré (PIC
16F877).
-On clique sur le bouton «Effacer» afin de supprimer l'éventuel contenu de la
mémoire de notre microcontrôleur.
-On clique sur le bouton «Ouvrir» afin de sélectionner le fichier HEX à
programmer au sein du microcontrôleur.
-On clique sur l'onglet «Fusibles» afin de définir la configuration liée à la
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
41
programmation de notre microcontrôleur PIC16F877.
-On clique ensuite sur le bouton «Programmer», durant cette phase la Led PROG
du programmateur doit clignoter.
-Maintenant, on peut retirer le microcontrôleur de son support et on passe ensuite
à la partie pratique.
III.4.3. Partie électronique :
Le circuit de l’appareil de mesure réalisé est compose des blocs fonctionnels plus
le circuit intégré du Microcontrôleur PIC16F877
III.4.3.1. Convertisseur fréquence/ tenson [12]
La réalisation d’un fréquencemètre simple et économique. Pour ce faire, il faut
l’utilisation d’un circuit intégré convertisseur fréquence/tension qui permettra de lire,
sur un simple multimètre, une fréquence allant de quelques hertz jusqu’à 100 kHz.
Pour mesurer une fréquence en utilisant un simple multimètre, il suffit de
prendre un circuit intégré en mesure de convertir une fréquence en une tension pour
connaître avec une précision suffisante la valeur en hertz, kilohertz ou mégahertz d’une
fréquence.
Si le circuit est étalonné de manière à obtenir une tension de 10 volts lorsque sur
l’entrée du convertisseur est appliquée une fréquence de 10 000 Hz, en appliquant une
fréquence de 8 000 Hz, nous lirons 8 volts et si nous appliquons 4 500 Hz, nous lirons
4,5 volts.
Si le circuit est étalonné de manière à pouvoir lire une tension de 10 volts
lorsque sur l’entrée du convertisseur est appliquée une fréquence de 1000 Hz, nous
pouvons déduire que si nous appliquons 100 Hz, nous lirons 1 volt et que si nous
appliquons 300 Hz, nous lirons 3 volts.
Les circuits intégrés en mesure de convertir une fréquence en une tension,
peuvent aussi effectuer l’opération inverse.
Ils permettent également de convertir une tension en une fréquence.
Si nous appliquons sur leur entrée une tension continue variable de 1 à 10 volts,
nous pouvons obtenir, sur leur sortie, un signal carré proportionnel à la valeur de la
tension.
III.4.3.1.1. LM331 :
a)Les références de ces circuits intégrés
Actuellement les circuits intégrés que nous pouvons trouver pour convertir une
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
42
fréquence en une tension ou une tension en une fréquence, ont les références suivantes
LM131 - LM231 - LM331 - XR4151
Ces quatre circuits intégrés sont équivalents et, de plus, ils ont le même
brochage.
Nous pouvons donc les utiliser les uns à la place des autres sans problème.
Les seules différences, concernent la température de fonctionnement et la valeur
maximale de la tension d’alimentation.
Mais, pour notre application, comme nous utilisons toujours une tension
comprise entre 12 et 15 volts, nous pouvons utiliser celui dont nous disposons.
Les circuits intégrés LM131 - LM231 - LM331 sont fabriqués par National Semi-
conducteur.
L’unique différence qui existe entre ces trois modèles de circuits intégrés,
concerne la température maximum que peut atteindre leur boîtier sans être endommagé.
Le circuit intégré LM331, le plus commun, peut atteindre une température
maximale de 70°, le LM231, peut atteindre une température maximale de 85° et le
LM131, une température maximale de 125°.
Figure (III.13): schéma de bloc convertir 1 LM331
b) convertisseur LM331 :
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
43
Figure (III.14): Caractéristiques électrique du circuit LM331
(Tension / Fréquence)
c) schéma interne de LM331
Sur la figure III 14, le schéma synoptique des principaux étages contenus à l’intérieur
de ces circuits intégrés convertisseurs.
A = Etage comparateur de tension,
B = Etage monostable,
C = Commutateur électronique,
D = Générateur de courant constant.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
44
Pour obtenir un convertisseur fréquence/tension, ou bien un convertisseur
tension/fréquence, il faut seulement modifier la configuration du circuit.
Figure III 15 Schéma synoptique interne et brochage des circuits intégrés
Convertisseurs fréquence/tension ou vice-versa
III.4.3.1.2Méthode Convertisseur fréquence/tension :
Pour convertir une fréquence en une tension, il faut utiliser le schéma de la figure III 16
Figure.III.16.Schéma du Convertisseur fréquence/tension a utiliser
Pour convertir une fréquence en une tension, on donne les valeurs suivantes derésistances et capacités :
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
45
R1 = 10 kΩ
R6 = 5 kΩ trimmerR2 = 10 kΩ
R7 = 100 kΩ R3 = suivant calcul
C1 = 470 pF céramiqueR4 = suivant calcul
C2 = suivant calcul R5 = 12 kΩ
C3 = 1 μF polyester
La fréquence qui est appliquée sur la broche d’entrée 6, doit nécessairement être
un signal carré. Si appliquer sur cette entrée un signal sinusoïdal, n’obtiens aucune
conversion.
Sur la broche 1, trouvons une tension proportionnelle à la valeur de la fréquence.
L’amplitude du signal à appliquer sur l’entrée, ne doit pas être inférieure à 3 volts crête
à crête, ni dépasser la valeur de la tension d’alimentation.
Ainsi, si le circuit est alimenté sous 15 volts, Conseillé de ne pas dépasser 11
volts.
Pour faire fonctionner correctement ce convertisseur fréquence/tension, il faut
utiliser une valeur de 10 kohms pour la résistance R2, puis devez calculer la valeur de la
résistance R3 en fonction de la tension d’alimentation.
Pour calculer cette valeur, il faut utiliser la formule suivante :
R3 kΩ = (Vcc – 2) : 0,2 (1)
Pour alimenter le circuit intégré avec une tension de 15 volts, il faut utiliser une
résistance qui a une valeur de :
(15 – 2) : 0,2 = 65 kΩ (2)
Cette valeur n’étant pas standard, on peut tranquillement utiliser une résistance de 68
kΩ.
Pour alimenter le circuit intégré avec une tension de 12 volts, on doit utiliser une
résistance de:
(12 – 2) : 0,2 = 50 kΩ (3)
Dans ce cas, on utilise une valeur standard de 47 kΩ ou 56 kΩ. Outre la résistanceR3,
on doit également calculer la valeur de la résistance R4 avec la formule suivante :
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
46
R4 kΩ = 750 : (1,1 x kHz max.) (4)
Sachant que la fréquence maximale appliquée sur l’entrée de ce convertisseur est de 100
kHz, pour R4, il faut utiliser une résistance de valeur :
750 : (1,1 x 100) = 6,818 kΩ (5)
Cette valeur n’étant pas standard, on pourra utiliser une résistance de 6,8kΩ.
Si, entre la broche 5 et la masse, on connecte un condensateur de 1000 pF (voir C2), sur
la broche de sortie, on peut prélever une tension variable de 0 à 10 volts.
Ainsi, on obtient les tensions suivantes en fonction des fréquences appliquées sur
l’entrée :
0 V avec une fréquence de 0 Hz
1 V avec une fréquence de 10 000 Hz
2 V avec une fréquence de 20 000 Hz
3 V avec une fréquence de 30 000 Hz
4 V avec une fréquence de 40 000 Hz
5 V avec une fréquence de 50 000 Hz
6 V avec une fréquence de 60 000 Hz
7 V avec une fréquence de 70 000 Hz
8 V avec une fréquence de 80 000 Hz
9 V avec une fréquence de 90 000 Hz
10 V avec une fréquence de 100 000 Hz
Si cette configuration permet de lire une fréquence maximale de 100 kHz, il sera par
contre difficile d’évaluer avec une certaine précision des fréquences inférieures à 10000
Hz ou à 1 000 Hz.
On peut modifier le schéma pour obtenir en sortie une tension de 10 volts avec une
fréquence de 10 000 Hz ou bien avec une fréquence de 1000 Hz.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
47
Pour obtenir cette condition, il faut seulement changer la valeur du condensateur C2 enutilisant la formule ci-dessous :
C2 pF = 750 000 : (R4 kΩ x 1,1 x kHz)
Figure.III.17 : Formules à utiliser pour calculer la valeur des résistances R3 et R4
et du condensateur C2
Note : Vcc est la valeur de la tension d’alimentation du circuit intégré.
Ainsi, pour obtenir une tension de 10
volts en appliquant sur l’entrée une fréquence de 10 000 Hz, il faut utiliser un
condensateur de :
750 000 : (6,8 x 1,1 x 10) = 10 026 pF
Avec cette capacité, obtenez les tensions suivantes :
0 V avec une fréquence de 0 Hz
1 V avec une fréquence de 1 000 Hz
2 V avec une fréquence de 2 000 Hz
3 V avec une fréquence de 3 000 Hz
4 V avec une fréquence de 4 000 Hz
5 V avec une fréquence de 5 000 Hz
6 V avec une fréquence de 6 000 Hz
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
48
7 V avec une fréquence de 7 000 Hz
8 V avec une fréquence de 8 000 Hz
9 V avec une fréquence de 9 000 Hz
10 V avec une fréquence de 10 000 Hz
Pour Obtenir une tension de 10 volts en appliquent sur l’entrée une fréquence de
1 000 Hz, devient utiliser, pour C2, une valeur de :
750 000 : (6,8 x 1,1 x 1) = 100 267 pF
Avec cette capacité, obtenez :
0 V avec une fréquence de 0 Hz
1 V avec une fréquence de 100 Hz
2 V avec une fréquence de 200 Hz
3 V avec une fréquence de 300 Hz
4 V avec une fréquence de 400 Hz
5 V avec une fréquence de 500 Hz
6 V avec une fréquence de 600 Hz
7 V avec une fréquence de 700 Hz
8 V avec une fréquence de 800 Hz
9 V avec une fréquence de 900 Hz
10 V avec une fréquence de 1 000 Hz
La résistance R4 et le condensateur C2 ayant une certaine tolérance par
rapport à la valeur marquée sur le composant, il est utile de connecter en série avec la
résistance R5, un trimmer (R6) qui sera ajusté de façon à obtenir une tension de 10 volts
avec la fréquence maximale choisie en fonction de la valeur du condensateur C2.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
49
Si choisi une valeur de 1000 pF pour C2, devez appliquer sur l’entrée une
fréquence de 100 kHz, puis tourner le curseur de R6, jusqu’au moment où lire une
tension de 10 volts sur le multimètre.
Si utilisez pour C2 une valeur de 10 000 pF, faut appliquer sur l’entrée une
fréquence de 10 kHz, puis tourner le curseur de R6 afin de lire une tension de 10 volts
sur le multimètre.
Enfin pour C2 = 100 000 pF, il faut appliquer sur l’entrée une fréquence de 1
kHz, puis tourner le curseur de R6 afin de lire une tension de 10 volts.
III4.3.1.3 convertisseur (2)
Analyse de fonctionnement du montage convertisseur (2) de fréquence / tension
à base du circuit RC
Figure (III.18): schéma de bloc convertir 2
La cellule C4.R8 est montée en dérivateur, il permet de convertir un signal carré
en un signal impulsionnel (Dirac), le temps d’amortissement de l’impulsion dépend de
la fréquence du signal d’entrée.
L’intérêt de cette étape de conversion et de convertir une transition bas ou haut
du signal carré à un temps de mente ou de descente, la surface d’intégration du Dirac
V1
V2V3
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
50
dépond de la fréquence. La diode D1 en direct permet d’enlever la partie négative du
signal.
R7.C5.R9 est un filtre de lissage/ moyenner il sert à réduire les ondulations et
extraire la valeur moyenne du signal. La résistance R7 permet d’agir sur la valeur
moyenne du signal (pont diviseur avec R9).
L’amplificateur à un gain de 101, amplifie la tension du circuit de la cellule afin
de gagner en précision de mesure de l’ADC du microcontrôleur (environ 6 bits de plus
!)
Figure.III.19.Les allures des tensions V1, V2, V3
III.5 Allure de la tension de sortie en fonction de la fréquence d’entrée :
Les valeurs de la tension correspondent aux valeurs moyenne calculées par le
microcontrôleur par un filtre de taille 256 échantillons. Le pas de fréquence est de
200Hz (0, 200, 400…10KHz).
s=[4.88e-3
,8.95e2,0.18,0.2688,0.3601,0.4496,0.5376,0.6273,0.7184,0.81133,0.8944,0.972,1.075,1
.1632,1.25122,1.33918,1.42716,1.51514,1.6032,1.6911,1.78,1.867,1.9562,2.0576,2.130
9,2.2189,2.3069,2.394,2.48,2.566,2.6539,2.7566,2.848,2.9423,3.005,3.09,3.177,3.260,3
.34746,3.4388,3.519,3.607,3.6902,3.777,3.8628,3.9589,4.061,4.13977,4.2375,4.3238,
4.3988].
On constate que la courbe de transfert est bien linéaire dans une bande de
fréquence 200-10KHz
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
51
Figure .III.20. La tension Vout en volt en fonction de la fréquence Fin en Hertz
On donne ci-dessous le schéma du bloc d’affichage à cristaux liquides LCD.
Figure (III.21) schéma de bloc d’affichage LCD
III.6. Réalisation de la carte électronique :
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
52
Les photos ci-dessous représentées en figures.21 et 22 la carte électronique
réalisées sur la plaque d’essai
Figure (III.22) : la carte électronique du fréquencemètre réalisée sur la plaque
d’essai
Figure. III.23 Typon réalisé du montage du Fréquencemètre à base de PIC16F877
On présentera ci-dessous en figures 23 et 24 un exemple de mesure de fréquence
Convertisseur2
Parte fréquencemètre
Et tension
LM741(OPAMP)
Convertisseur 1
LM331
Parte fréquencemètre
Quartez
2 capa
Pic16F877a
LCD 16*2
5v
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
53
et de tension moyenne d’un signal périodique de fréquence fin= 200 Hz avec affichagesur LCD.
Figure.III.24. Mesure de fréquence avec tension moyenne du signal simultanémentsur l’afficheur LCD pour une fréquence fin=200 Hz
Figure.III.25.Lecture de la fréquence et de la tension moyenne du signal sur lacarte électronique réalisé pour fin=200 Hz
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
54
On donne ici en Figure.III.26 la mesure de la fréquence fin=0Hz suite à la
simulation réalisée
Figure.III.26. Mesure de fréquence et tension moyenne du signal par simulation
Pour une fréquence de fin=0 Hz
III7 . Les étapes de réalisation
Avant de passer à la réalisation du circuit imprimé, on va présenter d’abord la
plaque du circuit imprimé utilisée. C’est une plaque en verre époxy de couleur
verte, recouverte d’une mince pellicule de cuivre, cette dernière est aussi recouverte
d’une couche de produit chimique sensible aux ultraviolets appelée « résine ». Pour ne
pas être exposés aux rayonnements UV naturel de soleil, cette couche est livrée
avec un film protecteur anti UV (Cours circuits imprimés, 2012)
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
55
Figure III.27 : Photos de plaque d’époxy et d’insole use
Après l’élaboration des typons, on passe à la réalisation des circuits imprimés.
On choisit les plaques d’époxy et on les découpe à la taille de typon à
l’aide de la scie circulaire.
L’insolation de circuit : cette étape sert à attaquer la résine par les
rayonnements
UV délivrés par l’insole use, la procédure se fait comme suit :
• On éteint la lumière au niveau de laboratoire, puis on découle le film
protecteur.
• On place le typon sur le verre de l’insole use de telle façon que le côté
cuivré sur
le typon, en respectant l’orientation et on ferme le capot.
• On allume l’insole use pendant 1 minute, ce temps d’insolation
est très important, car si ce dernier est trop long, les rayons UV passeront
au travers les zones noires du typon.
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
56
Figure IV.28 : Méthode de placer la plaque d’époxy.
La révélation : c’est l’étape qui suit l’étape de l’insolation. Le
produit nécessaire pour cette étape est un produit chimique assez
dangereux, qui impose le port de gants.
On a utilisé un révélateur sous forme de poudre à diluer avec l’eau (un
sachet dans une 1/3 lettre d’eau) d’où la température de cette solution
est de 20 à 25°. On plonge alors la platine dans le bain de
révélateur, puis on agite dans ce temps la lumière est illuminée.
Le révélateur sert à éliminer la résine attaquée par UV, et il ne
reste que le cuivre et la résine protégée par l’encre imprimé sur la
carte lors de l’étape de l’insolation. On rince soigneusement la plaque
sous le robinet en frottant avec les doigts jusqu’à ce qu’elle ne soit
plus « grasse » au toucher.
Gravure : la gravure consiste à plonger le circuit dans un bain
d’acide (perchlorure de fer). Le cuivre mis à nu lors de la révélation
sera éliminé. Seules les pistes protégées par la résine resteront. La
procédure de gravure se fait comme suit :
• On plonge la plaque d’époxy dans le bain d’acide, la
température du bain de la solution doit être de 40° et de temps de
20 minutes.
• Lorsque tout le cuivre a disparu, on sort le circuit puis on le
rince sous le robinet en frottant avec les doigts jusqu’à ce
CHAPITRE III : étude et réalisation pratique du fréquencemètre numérique a base de pic16f877
57
qu’elle ne soit plus « grasse » au toucher.
• pour retirer la résine et ainsi apparait les pistes de cuivres, on
met le circuit à Nouveau dans l’insole use, la durée est de 2
minutes.
Perçage : l’opération de perçage est l’ultime étape dans la réalisation
du circuit imprimé. On a utilisé une perceuse manuelle, les forets utilisés
est de diamètre de 8mm.
Le test du circuit imprimé : nous avons utilisé un multimètre pour
tester et vérifier :
• La continuité des pistes.
• L’absence de court-circuit.
La soudure : l’opération de la soudure se fait à l’aide d’un fer à souder et
de l’étain, on commence par :
• Des composants neutres : supports de circuit intégrés, connectiques…
• Passifs : Résistances, potentiomètre, fiches, les diodes lods,…
• Actifs : diode, Résistance.
III.8. Conclusion:
Dans ce chapitre on a présenté notre projet expérimental qui consiste à concevoir un
fréquencemètre numérique avec calcul de la tension moyenne d’un signal
périodique. Après avoir présenté en détails les déférentes étapes de la conception et
réalisation, on peut conclure que notre objectif a étêta complet les résultats obtenus
sont très satisfaisants.
CONCLUSION GENERALE
Conclusion générale
59
CONCLUSION GENERALE
Ce projet nous a permis de faire le lien entre l’étude théorique d’un
montage électronique et sa réalisation pratique dans le but d’estimer la marge de
différence entre ces deux parties, puisque parfois on néglige quelques paramètres
dans nos calculs mais on les trouve dans la réalisation, et cela dans le but de
trouver des solutions pratiques afin d’atteindre notre objectif.
Nous avons ensuite procédé à des tests pour vérifier le bon fonctionnement
de notre fréquencemètre numérique afin de déterminer ses limites d'utilisation et
cela en visualisant à l’aide de l’oscilloscope l’allure des différents signaux de
tension aux entrées et aux sorties des différents circuits utilisés ainsi que de mesurer
différentes valeurs de tensions électriques et les fréquences des différents signaux
en utilisant un multimètre numérique de très bonne résolution ainsi qu’avec un
oscilloscope de précision.
Ce projet est multidisciplinaire, car il englobe deux aspects au
même temps tel que: l'électronique, et l'informatique. Cette diversité nous a
permis d'approfondir nos connaissances théoriques d'acquérir une expérience au
niveau de réalisation pratique notamment :
- La réalisation pratique des circuits électroniques sur la plaque.
- La compréhension de l'architecture des microcontrôleurs, et apprendre sa
programmation en Langage C.
-La connaissance des plusieurs fonctionnalités des composantes électroniques
- La familiarisation avec le simulateur « ISIS professionnel » et ses plusieurs
fonctionnalités
Pour le futur nous proposons la réalisation d’un fréquencemètre de très
haute gamme avec très large bande de fréquence en utilisant un
microcontrôleur plus performant que celui déjà utilisé pour notre projet.
REFERENCESBIBLIOGRAPHIQUES
REFERENCES BIBLIOGRAPHIQUES
[1]-B. Wehkamp, Funkschau, Munich, N°9/86 p69.
[2]-Electronique pratique, N°249, Fréquencemètre 2 GHz.
[3]-Nouvelle électronique, N°20, Mars 1996 Fréquencemètre 2,3GHz.
[4]-Electronique Radio Plan, N°548, juillet 1993 Compteur universel HP-53131.
[5]-Sakli, M. Projet de fin d'étude en Vue de l'obtention du diplôme d'ingénieur en génie
électrique et automatique. Régulation Industrielle de Processus, Système de Régulation de
niveau d'eau, Interface à base de PIC 16F877, Commande et Régulation avec LabVIEW.
Gabès, Tunisie.(2007).
[6]-Ben Haddada Tarek et Hamam Mohammed Annacer et MahjoubRiadh. Rapport de projetde fin d’étude. Un robot suiveur de ligne. Université El Manar Tunisie. 2010.
[7]-Noxyben. Cours de programmation des PIC en C, microcontrôleurs faciles pourélectronicien amateur. Partie 01. 2007.
[8]-D.Menesplier.Documentation interne ELE. Microcontrôleurs PIC 16F877 et 16F877A.
[9]-V.Tourtchine.Cours de programmation en mikroC. Application pour lesmicrocontrôleurs de la famille PIC .Boumerdes. 2012.
[10]- site internet : http://www.elektronique.fr/logiciels/proteus.php 2016
[11]-www.sndl.cerist.dz www.picprog.com consulté le 24/03/2016
[12]- www.sonelec-convert.com/electronique_realisations/frequence/hertz.html
[13]- www.datasheetcatalog.com consulté le 04/03/2016 et 09/05/2016 pour le capa etlm331 et lm741 diodes
ANNEXE
ANNEXE : A
1- Liste des composants :composent référence Quantité valeur descriptionsCircuit intégré PIC16F877A 1 / U3
Condensateur céramique 8 / C2.C3.C4.C5.C6.C7.C8.CT
Diodes BR1 1 / D1
Résistances / / R1.R2.R6.R7.R8.R9.R10.R11.R12
RL.RS.RT. RV1.RV2
LCD 16*2 1 / LCD1
LM331 convertisseur 1 / U2
LM741 OPAMP 1 / U4Régulateur 7805 /7815 1 ,1 / /Quartz / 1 8MHz X1
Botton / 1 1 /
ANNEXE : BLM331 LM741
3. Les diodes 1N4007:[7]
4. Capacités:[7]
5. Crystal : [7]
6. LCD 16*2 : [7]
7. LM331 [7]
8. LM741 : [7]
9. Le régulateur LM7805
: ملخصبال الترددقیاسھماأساسیانلھدفان16f877المتحكمماطریق استخدعنالترددقیاسجھازفيالمتمثلالتطبیقيالعملھذاطبالفولالجھدوقیاسزھرت
16f877بيالمسميكونترولروالمایكرمنالنوعوھذاثابتةوودقیقةجیدةنتائجیعطيللقیاسالمخصصالجھازھذاCبلغةیكتببرنامجطریقعنوذلكللقیاسالمراحلمختلفوینسقیتحكم
الكھربائیةالمكوناتعلىخطأأقلمعمن الفوضىبالحدیتكفلالتنفیذمنالنوعھذافي
لمختلفتصمیمأوتغییراتخاللمنوالترددالجھدقیاسنطاقاتزیادةخاللمنتتحسنأنیمكنالجھازفإنذلك،ومع.البرنامجتصمیمعلىإدخالھایمكنالتيوالتحسیناتعلمعنالمسبقةالموافقةالخارجیةالدوائر
LM741.LM331. LCD.CAN.microcontrôleur .fréquencemètre. Fréquence. الكلمات المفتاحیة
Abstract:The work is of designing a frequency-based PIC16F877 is of practical importance of the useperspective to measure two important electric quantities and are the voltage in volts andfrequency in Hz.The meter gives good explanations and resolutions on the measurement values. It has aPIC16F877 microcontroller type that controls and coordinates the variousstages of the two measurements following written language programmer Micro CIn this type of implementation is ensured a reduction of clutter components with less error onmeasured electrical quantities.However, the device can be improved by increasing the measuring ranges of the voltage andfrequency of the capacitor by making changes to the design or various external circuits PICand improvements that can be made to the designed program.Keywords: frequency, LM331, LM741, LCD, microcontroller, CAN.
RésuméLe travail réalisé est qui consiste à concevoir un fréquencemètre à base de PIC16F877 estd’une importance pratique du point de vue utilisation pour la mesure de deux grandeursélectriques importantes et qui sont la tension électrique en Volt et la fréquence en Hz.L’appareil de mesure donne des bonnes précisions et résolutions sur les valeurs des mesures.Il est doté d’un microcontrôleur de type PIC16F877 qui contrôle et coordonne les différentesétapes des deux mesures, suivant un programmateur écrit en langage Micro C.
Dans ce type de réalisation on assure une diminution de l’encombrement des composants avecmoins d’erreur sur les grandeurs électriques mesurées.
Néanmoins, l’appareil peut être amélioré en augmentant les gammes de mesure sur la tensionélectrique et le fréquence en apportant des changements ou dimensionnement aux différentscircuits externes au PIC et avec des améliorations qui peuvent être apportées au programmeconçu.
Mots-clés : fréquencemètre, LM331, LM741, LCD, microcontrôleur, CAN.