37
République Algérienne Démocratique et Populaire Ministère de lEnseignement Supérieur et de la Recherche Scientifique Université Abderrahmane Mira Bejaia Faculté de la Technologie Département d’Electronique Master 1 Thème Présenté par : Encadré par : M r. :BOUKHELIFA Makhlouf M r. :HADJI Slimane Thermomètre à base du PIC 16F877 2009/2010

Thermométre à Base du PIC16F877

Embed Size (px)

DESCRIPTION

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 1ThèmeThermomètre à base du PIC 16F877Présenté par :  Mr. :BOUKHELIFA MakhloufEncadré par :  Mr. :HADJI Slimane2009/2010SOMMAIREIntroduction générale………………………………………………………………………………………………………….1 Chapitre I : thermométrie et différents capteurs de température.Introductio

Citation preview

Page 1: Thermométre à Base du PIC16F877

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

Présenté par : Encadré par :

Mr. :BOUKHELIFA Makhlouf M

r. :HADJI Slimane

Thermomètre à base du PIC 16F877

2009/2010

Page 2: Thermométre à Base du PIC16F877

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

Page 3: Thermométre à Base du PIC16F877

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.

Page 4: Thermométre à Base du PIC16F877

1

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.

Page 5: Thermométre à Base du PIC16F877

Chapitre I

Thermométrie et différents capteurs

de température

Page 6: Thermométre à Base du PIC16F877

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

2

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 : 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.

ρ=ρ0(1+α(T-T0)) (I.1)

Page 7: Thermométre à Base du PIC16F877

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

3

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 S R B +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).

Page 8: Thermométre à Base du PIC16F877

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

4

Figure (I.1)

Figure (1.3)

LM335

10mV/°K

Page 9: Thermométre à Base du PIC16F877

Chapitre II

Description et mise en œuvre du

PIC 16F877

Page 10: Thermométre à Base du PIC16F877

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

5

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.

Page 11: Thermométre à Base du PIC16F877

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

6

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

Page 12: Thermométre à Base du PIC16F877

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

7

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

Page 13: Thermométre à Base du PIC16F877

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

8

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).

Page 14: Thermométre à Base du PIC16F877

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

9

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.

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.

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

Page 15: Thermométre à Base du PIC16F877

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

10

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.

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)

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

Page 16: Thermométre à Base du PIC16F877

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

11

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.

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.

FOSC1 :FOSC0 Mode

00 LP

01 XT

10 HS

11 RC

Page 17: Thermométre à Base du PIC16F877

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

12

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).

Page 18: Thermométre à Base du PIC16F877

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

13

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)

Page 19: Thermométre à Base du PIC16F877

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

14

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.

Page 20: Thermométre à Base du PIC16F877

Chapitre III

Etude et conception du thermomètre

Page 21: Thermométre à Base du PIC16F877

Chapitre III Etude et conception du thermomètre

15

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).

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.

Bloque d’alimentation Affichage

P

I

C

1

6

F

8

7

7

Capteur de

Température

Page 22: Thermométre à Base du PIC16F877

Chapitre III Etude et conception du thermomètre

16

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.

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

VI1

VO3

GN

D2

C2C3

C1

7805

220V

5V

0V

9V

Page 23: Thermométre à Base du PIC16F877

Chapitre III Etude et conception du thermomètre

17

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.

Page 24: Thermométre à Base du PIC16F877

Chapitre III Etude et conception du thermomètre

18

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)

Page 25: Thermométre à Base du PIC16F877

22

Chapitre IV

Programmation du PIC et simulation

Page 26: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

19

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.

Page 27: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

20

Figure(IV.1.1) : Organigramme du programme

Début

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

Mesure=Lecture des registres ADRESH et ADRESL

Attendre la fin de la conversion 12Tad

Appel la fonction d’affichage

Calcul de la température ambiante

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

Configuration des PORTs B, C, D en sorties

FIN

Appel la fonction de signe

Page 28: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

21

IV.2. Fonction de signe :

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.

Debut

T>=273

T=T-273 T=273-T

Initialisation de la variable s=0

Oui Non

s=s+1 s=s

Fin

Page 29: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

22

Non

Oui

Non

Oui

IV.3. Fonction d’affichage :

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)

Début

Initialisation des variables c, d, u, à 0

vv>=100

=100

c=c+1

vv=vv-100 c=c+1

vv>=10

vv=vv-10 d=d+1

u=vv

FIN

Page 30: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

23

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

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

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

(CO

M)

Page 31: Thermométre à Base du PIC16F877

Chapitre IV programmation du PIC et simulation

24

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

RA0/AN02

RA1/AN13

RA2/AN2/VREF-4

RA4/T0CKI6

RA5/AN4/SS7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

A7

QA

13

B1

QB

12

C2

QC

11

D6

QD

10

BI/

RB

O4

QE

9R

BI

5Q

F1

5L

T3

QG

14

74LS47

V-

3V

+2

ADJ1

LM335

P

R4

TR

VI

1V

O3

GND2

7805

C2

C1

C3

5V

5V

5V

Page 32: Thermométre à Base du PIC16F877

Conclusion

générale

Page 33: Thermométre à Base du PIC16F877

Conclusion générale

25

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.

Page 34: Thermométre à Base du PIC16F877

Bibliographie

Page 35: Thermométre à Base du PIC16F877

[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

Page 36: Thermométre à Base du PIC16F877

Annexe

Descriptions des pins du décodeur 74LS47

PIC 16F877

74LS47

Afficheur à anodes communes

Page 37: Thermométre à Base du PIC16F877

Annexe

Caractéristiques électriques de LM335 :