Vous êtes sur la page 1sur 37

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université Abderrahmane Mira – Bejaia
Faculté de la Technologie
Département d’Electronique
Master 1

Thème

Thermomètre à base du PIC 16F877

Présenté par : Encadré par :

 Mr. :BOUKHELIFA Makhlouf  Mr. :HADJI Slimane

2009/2010
SOMMAIRE
Introduction générale………………………………………………………………………………………………………….1

Chapitre I : thermométrie et différents capteurs de température.

Introduction………………….………………………………………………………………………………………………2

1. Méthode électrique …………………………………………………………………………………………………2

1.1. Thermomètres à résistance et à thermistance ……………………………………………………..2

1.2. Thermomètre par thermocouple …………………………………………………………………………….3

1.3. Capteur LM335 ……………………………………………………………………………………………………….3

Chapitre II : description et mise en œuvre du PIC 16F877.

1. Définition d’un PIC ……………………………………………………………………………………………………..5

2. Les différentes familles des PIC ………………………………………………………………………………….5

3. Identification d’un PIC ………………………………………………………….…………………………………….5

4. Architecture interne du PIC 16F877 ……………………………………………………………………………6

5. organisation de la mémoire …………………………………………………………..…………………………..6

6. les ports d’entrées sorties ………………………….………………………………………………………………7

7. convertisseur analogique numérique …………………………………………………………………………8

7.1. Registres utilisées dans la conversion ……………………………………………………………………..9

8. Horloge ……………………………………………………………………………….……………………………………11

8.1. Oscillateur à Quartz ou Résonateur Céramique…………………………………………………….11

8.2. Oscillateur RC..………………………………………………………………………………………………………12

9. TIMER0……………………………………………………………………………………………………………………..12

10. TIMER 1 …………………………………………………………………….…………………………………………..13

11. TIMER2 …………………………………………………………………….…………………………………………….14

Chapitre III: Etude et conception du thermomètre.

Introduction.……………………………………………………………………………………………..………………..15

1. Représentation synoptique du thermomètre ……….………………………………………………..15

2. Description électrique des différents blocs ………………………………………………………………15


2.1. Afficheur à 7 segments ………………………………………………………………………….……………..15

2.1.1. Constitution d’un afficheur 7 segments à diodes électroluminescentes………………15

2.1.2. Le circuit intégré 74LS47……………………………………………………………….……………………16

2.2. Alimentation …………………………………………………………………………………………………………16

2.3. Capteur de température ………………………………………..……………………………………………..17

Chapitre IV: programmation du PIC et simulation.

Introduction ………….……………………………………………………………………………..……………………..19

1. Procédure de contrôle du convertisseur analogique numérique………………………………19

2. Fonction de signe………………………………………………………………………………………………………21

3. Fonction d’affichage………………………………………………………………………………………………….22

4. Compilation du programme sous C et simulation sous ISIS……….………………………………23

Conclusion générale………..…………………….……………………………………………………………………………………..25

Bibliographie.

Annexe.
Introduction générale

La température constitue une information importante dans plusieurs processus industriels et de


laboratoire. Elle intervient comme une grandeur principale dont la valeur doit être connue avec
précision ou comme paramètre influant sur la qualité d’autres mesures. Sa valeur sera utilisée pour
la correction ou la compensation. Certains procèdes industriels ou biologiques favorisent des
environnements de températures spécifiques, ainsi la régulation de température s’impose. Cette
régulation passe par la mesure de température de manière continue.

Les possibilités offertes par l’utilisation de système à base de microprocesseur ont permis de traiter
les signaux issus des capteurs numériquement (linéarisation et conversion). Ceci à conduit à des
appareils précis et bon marché. Les systèmes à base de microcontrôleurs constituent la solution la
plus attractive.

Dans ce travail nous avons fait la conception d’un thermomètre à base de PIC 16F877 de Micro
chip. Notre thermomètre utilise un capteur intégré LM335 pour la mesure de température. Les
calculs et la conversion nécessaires sont confiés au microcontrôleur, et l’affichage sur des afficheurs
7 segments.

1
Chapitre I

Thermométrie et différents capteurs


de température
Chapitre I thermométrie et différents capteurs de température

Introduction : [1]

La température est une grandeur physique mesurée à laide d’un thermomètre et étudiée en
thermométrie. Dans la vie courante, elle est reliée aux sensations de froid et de chaud, provenant
du transfert de chaleur entre le corps humain et son environnement. En physique, elle se définit de
plusieurs manières, comme fonction croissante du degré d’agitation thermique des particules, par
l’équilibre des transferts thermiques entre plusieurs systèmes. La température est une variable
importante dans d’autres disciplines. Il existe plusieurs méthodes de mesure de température parmi
ces méthodes la méthode électrique.

I.1. Méthode électrique :

En se basant sur la variation thermique de la valeur d’une résistance, sur l’effet Seebeck ou sur la
sensibilité thermique de la fréquence d’oscillation d’un quartz.

Ces méthodes ont l’avantage d’une plus grande souplesse d’emploi.

I.1.1. Thermomètres à résistance et à thermistance : [2]

Le fonctionnement des thermomètres à résistance et des thermistances est basé sur un même
phénomène physique, à savoir la variation de la résistance électrique d’un conducteur avec la
température.

Thermomètres à résistance :

D’une façon générale la résistivité d’un métal ou d’un alliage dépend de la température :

ρ=ρ0(1+α(T-T0)) (I.1)
ρ0 : résistivité du matériau.

α : sensibilité thermique. α=

Relation résistance –température :

R(T)=R(0)(1+AT+BT2+CT3) (I.2)

R(0) : la résistance à 0°C

A, B, C : paramètres qui dépendent de matériaux.

Thermomètres à thermistance :

Une thermistance est un agglomérat d’oxydes métalliques frittés, c’est-à-dire rendus compacts
par haute pression exercée à température élevée, de l’ordre de 150 bars et 1000 °C.

Il existe deux types de thermistance. Les CTN à coefficient de température négatif, et les CTP à
coefficient de température positif.

2
Chapitre I thermométrie et différents capteurs de température

Relation résistance-température :

R(T)=R0expB(1 /T-1/T0) (I.3)


Avec T0 =25°C

3000°K<B<5000°K.

I.1.2. Thermomètre par thermocouple : [3]

Principe de thermocouple :

Deux fils composés de métaux différents sont

raccordés à leurs extrémités et que l’une d’elles est chauffées,

il se produit une circulation de courant continu dans le circuit.

C’est l’effet thermoélectrique. Figure (1.2)

Après des recherches de linéarité, de valeur de tension et de gamme de température, les


combinaisons les plus courantes sont.

Premier métal Second métal symboles type Limite en C° Force électromotrice en µV


Cuivre (Cu) Constantan (C) Cu/C T -192 à +400 4277 à 100°C
Fer (Fe) Constantan (C) Fe/C J -194 à +870 27390 à 500°C
Chromel (Cr) Constantan (C) Cr/C E +1000 37000 à 500°C
Chromel (Cr) Alumel (Al) Cr/Al K +1370 41310 à 1000°C
Platine (Pt) Rhodium (Rh) Pt/Rh SRB +1700 10450 à 1000°C

L’un des thermocouples le plus utilisé est le Chromel-Alumel ou thermocouple de type K.il possède
une plage de mesure étendue (-100 à +1370 °C), une force électromotrice importante (41310 µV à
1000 °C avec soudure froide à 0°C) et une courbe linèariser pour obtenir sur toute l’étendue de
mesure des précisions meilleures que 0.2%.

ALUMEL : est un alliage composé de 95% de nickel, 2% d’aluminium,2% de manganèse et 1% de


silicium.

CHROMEL : est un alliage composé de 80% de nickel et 20% de chrome.

I.1.3. Capteur LM335 : [4]


Lm335 est un capteur de température précis est facilement calibré. Il fonctionne comme une
diode zener dont la tension de claquage est directement proportionnelle à la température absolue
avec un facteur proportionnel de +10mV/°K. Avec une impédance dynamique inferieur à 1Ω.

Il peut fonctionner de -40°C à 100°C sous un courant constant pouvant varier de 400µA à 5mA. La
tension à ces bornes est de 2,98V à 25°C, le montage le plus utilisé pour ce composant est donnée
par figure (I.1).

3
Chapitre I thermométrie et différents capteurs de température

10mV/°K
Figure (I.1)

LM335

Figure (1.3)

4
Chapitre II

Description et mise en œuvre du


PIC 16F877
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

II.1. Définition d’un PIC :(Programmable Interface Controler) : [5]


Un microcontrôleur est un circuit intégré rassemblant dans un même boitier un microprocesseur,
plusieurs types de mémoires et des périphériques de communication (entrée –sorties).
II.2. Les différentes familles des PIC :

Il existe trois grandes familles de microcontrôleurs PIC

La famille Baseline : qui utilise des mots d’instructions codés sur 12 bits.
La famille Mid-range : utilise des mots d’instructions codés sur 14 bits.
La famille High performance : utilise des mots d’instructions codés sur 16 bits.

II.3. Identification d’un PIC :

La référence d’un microcontrôleur PIC est de la forme NN LLL XXX, où :

NN : désigne la famille à laquelle appartient le circuit.


LLL : est un ensemble d’une, deux ou trois lettres qui indique le type de mémoire de programme
contenue dans le circuit et si la plage de tension d’alimentation est normale ou étendue.
XXX : est un ensemble de deux ou trois chiffres constituant la référence du circuit.
Exemple : 16F877-20
16 : indique la famille mid-range.
F : mémoire utilisé de type FLASH.
877 : identité.
20 : fréquence d’horloge.

5
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

II.4. Architecture interne du PIC 16F877 : [6]

Figure (II.1)

La mémoire du programme est sur 8 K mots, ce qui permet d’écrire un programme contenant
1024x8 instructions puisque la taille d’un mot mémoire et la même celle de l’instruction, 14 bites,
ces instructions circulent dans un bus de 14 bites. La RAM contient 368 octets et la mémoire de
données contient 256 octets ces données circulent dans un bus de 8 bits. Il ya aussi 33 pins d’entrées
/sorties configurés par l’utilisateur, quelques pins sont multiplexées par d’autres fonctions, telle que
les interruptions et l’horloge externe pour le TIMR0, TIMER1. Le µc possède une UAL (unité
arithmétique et logique) qui est chargée des opérations arithmétiques et logiques, le résultat de ces
opérations est stocké temporairement dans le registre W (registre sur 8 bits).

II.5. Organisation de la mémoire : [5]

Le PIC 16F877 dispose de trois types de mémoires :


 mémoire vive RAM

6
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

C’est de la mémoire d’accès rapide, mais labile (c'est-à-dire qu’elle s’efface lorsqu’elle n’est plus
sous tension) cette mémoire contient 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.

 Mémoire morte FLASH

C’est la mémoire programme proprement dite. Chaque case mémoire unitaire fait 14 bits.

La mémoire FLASH est un type de mémoire stable, réinscriptible à volonté.

 Mémoire EEPROM
Cette mémoire est de 256 octets, elle est électriquement effaçable, réinscriptible et stable. Elle est
utilisée pour sauver des paramètres.

II.6. Les ports d’entrées sorties :

Le µc 16F877 dispose 5 ports (A, B, C, D, E). Tous les ports d’entrées /sorties sont bidirectionnels est
la plupart des lignes de port ont une double fonction.

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 PORTx sont en entrée ou en sortie. L’écriture d’un 1 logique correspond à une entrée et
l’écriture d’un 0 logique correspond à une sortie.
Au RESET toutes les lignes de ports sont configurées en entrées.

Le port A

Le port A est formé de six pins donc six entrées /sorties numérotées de RA0 à RA5 qui peuvent être
utilisé comme des entrées pour le convertisseur analogique numérique ou utilisé pour le TIMER0,
dans ce dernier cas la broche RA4 sera utilisé comme entrée pour configurer TOCKI.

Le port B

Le port B est formé de huit pins entrées/sorties numérotées de RB0 à RB7. Il peut être configuré
pour générer une interruption sur un changement d’état des broches RB4 à RB7.

Le port C

Le port C possède huit pins entrées/sorties numérotées de RC0 à RC7.

Le port D

Le port D possède huit pins entées/sorties numérotées de RD0 à RD7. Il peut être configuré comme
port parallèle esclave.

Le port E

7
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

Le port E possède trois pins entrée/sorties numérotées RE0 à RE2, il est utilisé comme entrées au
convertisseur analogique numériques.

II.7. Convertisseur analogique numérique : [7]


La fonction conversion analogique-numérique consiste à transformer une grandeur électrique en
une grandeur numérique exprimée sur N bits. Ce convertisseur est composé de :
Un multiplexeur analogique 8 entrées maximum permet de sélectionner l’entrée analogique
à convertir.
Un échantillonneur bloqueur permet de mémoriser la tension analogique à convertir
pendant la conversion.
Un convertisseur analogique numérique de 10 bits.

Figure(II.2)

Le CAN convertit le signal analogique présent sur une de ses 8 entrées en son équivalent
numérique, codé sur 10 bits. Le signal numérique peut donc prendre 1024 valeurs possibles. 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 Vref+ et Vss pour Vref-) .
La conversion se passe en 2 temps :
1er temps le signal à convertir est appliqué sur l’entrée à convertir, ce signal doit être présent
au moins pendant le temps Tacq(temps d’acquisition environ 20µS pour 5V ).
2éme temps la conversion, approximations successives. Le temps de conversion minimum est
de 12 TAD (TAD c’est le temps de conversion dépendant de l’horloge interne, typiquement
1,6µS).
Valeurs représentées :

Les relations qui lient les valeurs analogiques et les représentations numériques sont :

N(valeur numérisée)=((VIN-Vref-)/(Vref+ -Vref-))*1023).

8
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

VIN analogique=((Val/1023)*(Vref+-Vref-))+Vref-

Vref- : tension minimale analogique (référence négative).

Vref+ : tension maximale analogique (référence positive).

VIN : tension d’entrée à numériser.

N : valeur numérique sur 10 bits.

II.7.1. Registres utilisées dans la conversion :

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.

Registre ADCON1 :

Il permet de déterminer le rôle de chacune des pins AN0 à AN7. Il permet donc de choisir si un pin
sera utilisé comme entrée analogique, ou comme tension de référence. Il permet également de
décider de la justification du résultat.

R/W-0 U-0 U-0 U-0 R/W-0 R/W- 0 U-0 R/W-0


ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0
bit7 bit 0

bit 7 ADFM : bit de sélection du format de résultat de conversion Analogique/Numérique.

1=justifié à droite. Les 6 bits de poids fort du registre ADRESH sont lus comme « 0 ».

0= justifié à gauche. Les 6 bits de poids faible du registre ADRESL sont lus
comme « 0 ».

bit 6 à 4 non-implémentés : lu comme « 0 ».

bit 3 à 0 PCFG3 à PCFG0 : bits de contrôle de configuration de port A/D.

Le tableau suivant donne les cas possibles.

9
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

NB :

D: I/O Digitale A : Entrée analogique VREF+: tension de référence maximale. VREF- : tension de
référence minimale

Registre ADCON0 :

Contient les bits de configuration du convertisseur Analogique/Digital.

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W- 0 U-0 R/W-0


ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE - ADON
bit 7 bit 0

bit 7 :6 ADCS1 :ADCS0 : bit de sélection d’horloge de conversion Analogique/numérique.

00=FOSC/2

00=FOSC/8

00=FOSC/32

00=FRC (horloge délivrée de l’oscillateur RC interne du module A/D)

Bit 5 :3 CHS2 :CHS1 :CHS0 : bit de sélection du canal analogique.

000=canal 0, (RA0/AN0)

001=canal 1, (RA1/AN1)

010=canal 2, (RA2/AN2)

10
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

011=canal 3, (RA3/AN3)

100=canal 4, (RA5/AN4)

101=canal 5, (RE0/AN5)

110=canal 6, (RE1/AN6)

111=canal 7, (RE2/AN7)

Bit 2 GO/DONE: bit de statut de conversion Analogique/Numérique.

Si ADON=1 :

1=conversion A/D en cours. (Mètre ce bit à 1 démarre la conversion A/D).

0=conversion A/D pas en cours (ce bit est automatiquement effacé par le matériel lorsque

la conversion Analogique/Digitale est terminée).

bit 1 non-implémenté : lu comme « 0 ».

bit 0 ADON : bit de mise encroute du médulle A/D.

1=le module convertisseur A/D est en service.

0=le module convertisseur A/D est désactivé.

II.8.Horloge : [6]
Le PIC 16F877 peut fonctionner en 4 modes d’oscillateur, la sélection de l’un de ces modes est
obtenue par la configuration des bits FOSC1 et FOSC0.

FOSC1 :FOSC0 Mode


00 LP
01 XT
10 HS
11 RC

LP : Low Power crystal : quartz à faible puissance.


XT : Crystal/Resonator : quartz/résonateur en céramique.
HS : High Speed crystal/resonator : quartz à haute fréquence/résonateur en céramique HF.
RC : circuit RC.

II.8.1. Oscillateur à Quartz ou Résonateur Céramique :


En mode LP, XT ou HS, un quartz ou un résonateur en céramique est connecté aux pins OSC1/CLKIN
et OSC2/CLKOUT pour établir l’oscillation.

11
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

Figure (II.8.1)

Dans l’un de ces modes de fonctionnement, le microcontrôleur peut avoir une horloge externe
connectée à la broche OSC1/CLKIN.

Figure (II.8.2)

II.8.2.Oscillateur RC :
La fréquence de l’oscillation dépend du voltage, des valeurs de R et C et de la température de
fonctionnement.

Figure (II.8.3)

II.9.TIMER0 : [7]

Le timer0 peut fonctionner comme un temporisateur ou un compteur 8 bits (0 à 255).

12
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

Figure (II.9.1)

Le mode temporisateur est sélectionné en mettant à 0 le bit T0CS du registre OPTION. Ce mode de
fonctionnement est assuré par l’horloge interne, le timer0 est incrémenté à cycle d’instruction (sans
le prediviseur).

Le mode compteur est sélectionné en mettant à 1 le bit T0CS du registre OPTION. L’horloge dans ce
cas est externe, en mettant à 1 le bit T0SE le TMR0 est incrémenté à chaque front montant de la
patte RA4/T0CKL, et à chaque front descendant si T0SE à 0.

Prescaler (prédiviseur) :

Un compteur 8 bits est disponible comme un prédiviseur pour le TMR0, ce prédiviseur ne peut être ni
lus ni écrit.

II.10. TIMER 1 : [7]

Il fonctionne sur le même principe que le TIMER0, mais il est plus moderne dans sa conception.
C’est un compteur à 16 bits.

Le bit TMR1CS permet de choisir l’horloge soit interne (Fosc/4), externe T1CKI ou un oscillateur à
quartz connecté sur les broches T1OSO et T1OSI.

Figure (II.10.1)

13
Chapitre II description et mise en œuvre du Microcontrôleur PIC 16F877

Les bits T1CKPS1 et T1CKPS0 permettent de choisir la valeur de la pré division à appliquer à
l’horloge choisie, de 1 à 8.

Le bit T1SYNC permet de choisir si l’horloge de sortie du prédiviseur doit être synchrone avec
l’horloge du microcontrôleur.

Le bit TMR1ON active ou désactive le TIMER1. Si ce bit est à 1 alors le TIMER1 est en
fonctionnement et les registres TMR1H :TMR1L son incrémentés à chaque coup d’horloge.

II.11.TIMER2 : [7]

C’est un compteur 8 bits, sont horloge ne peut être que l’horloge interne devisée par 4 (Fosc/4).

Figure (II.11.1)

Il est incrémenté par l’horloge interne (Fosc/4) pré divisée ou non. Les bits T2CKPS1 et T2KPS0
permettent de choisir la valeur de la pré division (1,4 ou 16)

Le contenu du registre incrémenté TMR2 et il est comparé au registre PR2, si ces deux registres sont
égaux alors une impulsion d’horloge est générée et le contenu de TMR2 est remis à 00h. Celle-ci peu
servir d’horloge pour piloter les liaisons I2C et SPI du module SSP ou encore être divisée par un post
diviseur appelé : POSTSCALER.

Les bits T2OUTPS0, T2OUTPS1, T2OUTPS2, T2OUTPS3, permettent de choisir la valeur de la post
division 1,2……,16.

14
Chapitre III

Etude et conception du thermomètre


Chapitre III Etude et conception du thermomètre

Introduction :

Dans ce chapitre nous allons expliquer les différentes opérations et traitements effectues sur la
tension issus du capteur de température(LM335) pour la convertir en une valeur numérique égale à
la valeur de la température à afficher.

III.1. Représentation synoptique du thermomètre :

Le schéma synoptique global donné dans la figure(III.1).

Bloque d’alimentation Affichage

P
I
C
1
Capteur de 6
Température F
8
7
7

Fig. (III.1)

La tension issue du LM335 qui est une conversion d’une température en une tension, qui sera
appliqué à l’entrée du µcontrôleur. Ce dernier est programmé pour générer et afficher le résultat des
grandeurs mesurées sur afficheur à 7 segments.

III.2. Description électrique des différents blocs :

III.2.1. Afficheur à 7 segments :

Pour affiché le résultat des grandeurs mesurées on utilise des décodeurs BCD (décodeur
binaire/décimale) est des afficheurs à 7 segments à diodes électroluminescentes.

III.2.1.1.Constitution d’un afficheur 7 segments à diodes électroluminescentes : [8]


Constitution générale d’un afficheur à 7 segments:
Il est constitué de 7 segments lumineux rectangulaires, correspondant chacun à une diode
electroluminiscente.les points décimaux correspondent chacun à une diode électroluminescente de
section circulaire.

15
Chapitre III Etude et conception du thermomètre

Il existe deux types d’afficheurs 7 segments à diodes électroluminescentes.

a. Les afficheurs à cathodes communes:

Ils sont constitués de 7 diodes électroluminescentes dont les cathodes sont reliées entre elles. Une
résistance doit être placée en série avec chacune des DEL compte –tenu de leurs tensions de
fonctionnement.

Les cathodes communes doivent être reliées au potentiel le plus bas c'est-à-dire à 0.

Il faudra donc un niveau logique actif 1 pour commander un afficheur à cathodes communes.

b. Les afficheurs à anodes communes :

Ils sont constitués de 7 diodes électroluminescentes dont les anodes sont reliées entre elles.

Une résistance doit être placée en série avec chacune des DEL compte-tenu de leurs tensions de
fonctionnement.

Les anodes communes doivent être reliées au potentiel le plus haut du circuit. Il faudra donc un
niveau logique actif 0 pour commander un afficheur à anodes communes.

Dans notre réalisation en utilisent un afficheur à anodes communes nécessitant un niveau logique
« 0 »on utilisera le décodeur 74LS47.

III.2.1.2. Le circuit intégré 74LS47 :


Se présente sous forme d’un circuit intégré à 16 broches, il dispose de sorties à collecteurs ouverts
autorisant une liaison directe avec les afficheurs à anode commune, des entrée supplémentaires sont
aussi prévues :

LT « Lamp Test » qui permet de vérifier le fonctionnement de l’afficheur en allument tous les
segments si BI est à « 1 ».

BI/RBO « Blanking Input » qui permet l’effacement des segments de l’afficheur quelque soit l’état des
autres entrées.

RBI « Ripple Blanking Input » qui permet l’effacement des « 0 » à gauche si A, B, C, D sont à « 0 ».

III.2.2. Alimentation : [9]

Tous les bloques du circuit sont alimentées par une tension +5V. Cette tension est générée à partir
du réseau 220V par le circuit suivant.
7805
1 3
VI VO 5V
GND
2

C1 C2
C3
220V 9V

0V

Figure(III.2.2) : schéma électrique de l’alimentation

16
Chapitre III Etude et conception du thermomètre

Le schéma électrique de l’alimentation contient quatre étages fonctionnels sont :

Etage abaisseur : contient le transformateur abaisseur 9V, qui permet de passer d’une
tension sinusoïdale de valeur élevée à une tension de même forme mais de valeur plus
faible.
Etage redresseur : contient le pont de Greatz constitué par quatre diodes qui sert à gardé
que la partie positive (ou négative) de la sinusoïde d’entrée.
Etage de filtrage : formé de C1 (C1=2200µF) à pour rôle de maintenir la tension de sortie
supérieure à une certaine valeur. Les condensateurs (C2=220nF, C3=10µF) sont conseillées
par le constructeur pour réduire les bruits HF et éviter tout risque d’oscillation parasite du
régulateur.
Etage de régulation : contient le régulateur de tension 7805, qui assure de gardé la tension
de sortie constante quelque soit le courant demandé.
III.2.3. Capteur de température :

Pour mesurer une température, nous avons le choix entre de nombreux capteurs : résistances à
coefficient de température positif ou négatif, thermocouple, etc.

L’inconvénient de la plupart de ces capteurs est que leur tension de sortie ne varie pas
linéairement en fonction de la température, ce qui oblige à une correction pour connaitre avec
précision la température exacte.

Aujourd’hui, il existe des capteurs à semi-conducteur de grande précision et à sortie linéaire, bon
marché et faciles d’emploi. Exemple, le circuit LM335.

Capteur LM335 : [10]

La tension en sortie de ce capteur est proportionnelle à la température. Elle augmente de 10mV


par degré Kelvin.

Figure (III.2.3)

La tension entre les bornes du LM 335 est fonction de la température.

17
Chapitre III Etude et conception du thermomètre

A 25°C est avec un courant de 1mA circulant dans le capteur(LM335), la valeur typique de la tension
est de 2,98V. La valeur minimum est de 2,92V et la valeur maximum est de 3,04V

La valeur de la résistance R4 doit être calculée en fonction de +Vcc pour que le capteur soit
parcouru par un courant de 1mA. Voici la formule à utilisé pour le calcul de R4.

R4=(Vcc-2,98)/1mA (III.1)

Le potentiomètre 10KΩ permet de régler le décalage et d’étalonner le capteur.

La relation entre la tension et la température est donnée par la formule suivante :

VT=VT0+0,01(T-T0) (III.2)

VT : tension délivrée par le capteur

T : température ambiante

VT0 : tension de référence pour une température T0. Pour T0=25° C, VT0=2,98V on obtient :

T(°C)=100xVT-273,15 (III.3)

18
Chapitre IV

Programmation du PIC et simulation

22
Chapitre IV programmation du PIC et simulation

Introduction :

Le programme principal est appelé à partir de l’adresse 0000. Il commence par l’initialisation des
PORTs.

Pour les afficheurs à 7 segments les pins du PORTB, PORTC et le PORTD sont configurées en
sorties. Les pins B0 àB3 pour affiché la lettre « C », et les pins B4 à B7 pour affiché l’unité, et le pin C4
pour affiché le signe «-», et les pins D0 à D3 pour affiché les dizaines et les pins D4 à D7 pour affiché
les centaines.

Pour le CAN on a configuré le PORTA en entrée analogique. Le pin RA0 est utilisé pour la tension
issue de l’étage du LM335.

IV.1. Procédure de contrôle du convertisseur analogique numérique :

Le PIC 16F877 possède un convertisseur analogique numérique sur 10 bit avec 8 canaux d’entrés
analogiques. Seulement un entre eux utilisé(RA0). Le convertisseur à 10 bits ceci donne un nombre
de pas de mesure égale à 1024. Les tensions de références minimale et maximale sont Vss et Vdd .

Le résultat de mesure est justifié à droite par le positionnement du bit ADFM du registre ADCON1 à1.

Ce qui implique que le registre ADRESL à 8 bits significatifs et contient l’octet le moins significatif du
résultat de conversion, par contre le registre ADRESH aura seulement 2 bits significatifs, qui sont les
bits de poids fort du résultat de conversion (valeur numérique de la tension à convertir).

Le choix de la fréquence d’horloge du CAN s’effectue par les deux bits ADCS0-1(ADCON0). La
configuration qu’on à utilisée est celle qui donne une fréquence d’horloge délivrée de l’oscillateur
RC interne. Le bit ADON du registre ADCON1 permet la mise en route du CAN.

Le choix des entrées analogiques et des tensions de référence est effectué par le positionnement
des bits PCFG3-0. Pour que, seulement l’entrée RA0 soit configurée en entrée analogique on prend
pour ces bits la valeur (0010b).

Le bit GO/DONE(ADGO)=1 lance la conversion. Le drapeau de l’interruption du convertisseur CAN


est le bit ADIF(PIR1). Il est testé pour vérifier la fin de la conversion et afin de lire le résultat. Il est
positionné à 0 avant chaque conversion.

19
Chapitre IV programmation du PIC et simulation

Début

Configuration des PORTs B, C, D en sorties

Configuration ADCON1 en fonction des pins utilisés


en mode analogique (ADCON1=10001110)

Configuration ADCON0 RC interne (ADCS0-1=11)


ADCON0.7=1, ADCON0.6=1

Positionnement, le bit ADON du registre ADCON0


ADON : 1(ADCON0.0 :1)

Attendre le temps Tacq

Lancement la conversion en positionnant le bit GO du


Registre ADCON0.2=1

Attendre la fin de la conversion 12Tad

Mesure=Lecture des registres ADRESH et ADRESL

Calcul de la température ambiante


T=((5*mesure*100)/1023)

Appel la fonction de signe

Appel la fonction d’affichage

FIN
Figure(IV.1.1) : Organigramme du programme

20
Chapitre IV programmation du PIC et simulation

IV.2. Fonction de signe :

Debut

Initialisation de la variable s=0

Oui Non
T>=273

T=T-273 T=273-T

s=s+1 s=s

Fin

Figure(IV.2.1) : Organigramme de la fonction de signe.

Le PORT C est utilisé pour affiché le signe «-» si le résultat est négatif, on utilise que le pin C4.

PORTC=s*16+0.

21
Chapitre IV programmation du PIC et simulation

IV.3. Fonction d’affichage :

Début

Initialisation des variables c, d, u, à 0

Non
vv>=100
c=c+1
Oui
=100

c=c+1 vv=vv-100

Non
vv>=10

Oui

d=d+1 vv=vv-10
u=vv

FIN

Figure(IV.3.1) : Organigramme de la fonction d’affichage.

Le PORTS B est utilisé pour affiché les unités il est utilisé comme suit : B0 à B3 pour affiché la lettre
« C » et B4 à B7 pour affiché l’unité. Donc le PORT B reçoit la valeur suivante.

PORTB=u*16+0A (0A en hexadécimal)

22
Chapitre IV programmation du PIC et simulation

Le PORT D est utilisé pour affiché les dizaines et les centaines il est utilisé comme suit : D0 à D3
pour affiché les dizaines et D4 à D7 pour affiché les centaines. Donc le PORT D reçoit la valeur
suivante.

PORTD=c*16+d.

IV.4. Compilation du programme sous C et simulation sous ISIS :

Le programme à été réalisé et compilé sous C afin de générer deux fichiers qui contiennent le
programme codé en hexadécimal qui sert à programmer le µC sous Isis, et un en assembleur qui sert
comme source pour Isis.

Résultat de la simulation

U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
1 35
MCLR/Vpp/THV RB2
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
RC6/TX/CK
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877
3
5
4
6
2
1
7

3
5
4
6
2
1
7

3
5
4
6
2
1
7

3
5
4
6
2
1
7
LT

LT

LT

LT
RBI

RBI

RBI

RBI
D
C
B
A

D
C
B
A

D
C
B
A

D
C
B
A
BI/RBO

BI/RBO

BI/RBO

BI/RBO
74LS47 74LS47 74LS47 74LS47
QG

QG

QG

QG
QD
QC

QD
QC

QD
QC

QD
QC
QE

QB
QA

QE

QB
QA

QE

QB
QA

QE

QB
QA
QF

QF

QF

QF
14
15

10
11
12
13

14
15

10
11
12
13

14
15

10
11
12
13

14
15

10
11
12
13
9

9
(COM)

Figure(IV.4.1) : Schéma utilisé pour la simulation

23
Chapitre IV programmation du PIC et simulation

5V
U1
13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
R4 1
MCLR/Vpp/THV RB2
35
36
RB3/PGM
2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
2 5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
V+

RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
1
P 8
9
RE0/AN5/RD RC2/CCP1
17
18
ADJ RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
V-

RC6/TX/CK
26
RC7/RX/DT
3

LM335 19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
5V RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
C3 RD7/PSP7
PIC16F877
3
VO

7805
2

3
5
4
6
2
1
7

3
5
4
6
2
1
7

3
5
4
6
2
1
7

3
5
4
6
2
1
7
GND

LT

LT

LT

LT
RBI

RBI

RBI

RBI
D
C
B
A

D
C
B
A

D
C
B
A

D
C
B
A
BI/RBO

BI/RBO

BI/RBO

BI/RBO
74LS47 74LS47 74LS47 74LS47
VI

C2
1

C1
QG

QG

QG

QG
QD
QC

QD
QC

QD
QC

QD
QC
QE

QB
QA

QE

QB
QA

QE

QB
QA

QE

QB
QA
QF

QF

QF

QF
14
15

10
11
12
13

14
15

10
11
12
13

14
15

10
11
12
13

14
15

10
11
12
13
9

9
TR
5V

Figure(IV.4.2) : Schéma électrique du thermomètre

24
Conclusion
générale
Conclusion générale

Conclusion :

L’élaboration de ce modeste travail nous a permis d’accéder à plusieurs domaines. L’utilisation du


PIC nous a introduits au domaine de µC, à leurs mises en œuvre et à leur système de
développements ainsi que les différentes fonctionnalités et avenages qu’ils offrent.

Le LM335 utilisé pour la mesure à une caractéristique linaire sur un grand intervalle de
température. Ce dernier a un temps de réponse très grand.

L’utilisation du microcontrôleur nous a permis la réalisation de la conversion numérique en


utilisant la possibilité qu’a le PIC pour effectuer des calculs.

Ce travail nous a permet aussi d’apprendre le logiciel ISIS pour la simulation.

Nous espérons avoir apporté une contribution au domaine de la programmation du PIC 16F877.

25
Bibliographie
[1] http://fr.wikipedia.org/wiki/Temp%C3%A9rature

[2] Gwenaëlle TOULMINET-asi-2002-2003 .

[3] DOMINIQUE OTTELO.

[4]National semi-conducteur. DATASHEET LM135/LM225/LM335

[5]CHRISTIAN TAVERNIER « les microcontrôleurs pic description et mise en œuvre » :DUNOD


2éme édition 2002

[6]MICROCHIP «PIC 16F877 DATA SHEET »2003

[7]phILIPPE LETENNEUR-GRANVILLE-2003-

[8] cf RIVALIN Georges-2001

[9]alimentation.doc Auteur :HANNEQUINB.

[10] http://premiumorange.com/daniel.robert9/Digit/Pratique/Digit_14PS3.html
Annexe

PIC 16F877

Afficheur à anodes communes

Descriptions des pins du décodeur 74LS47

74LS47
Annexe

Caractéristiques électriques de LM335 :