Vous êtes sur la page 1sur 37

SOMMAIRE

SOMMAIRE.........................................................................................................................................1
DEDICACE...........................................................................................................................................2
REMERCIEMENTS...............................................................................................................................3
AVANT-PROPOS..................................................................................................................................4
INTRODUCTION..................................................................................................................................5
PRESENTATION DE L’ETABLISSEMENT................................................................................................6
PARTIE I MATERIELLE..............................................................................................................................7
I. CAHIER DE CHARGE................................................................................................................8
II. SCHEMA SYNOPTIQUE...........................................................................................................8
III. ETUDE DETAILLEE...............................................................................................................9
1. Alimentation stabilisé.........................................................................................................9
1.1. Choix du transformateur............................................................................................9
1.2. Choix de pont de redressement.................................................................................9
1.3. Choix des condensateurs...........................................................................................9
1.4. Choix de régulateur de tension..................................................................................9
2. Microcontrôleur PIC 16F877............................................................................................10
2.1. Définition d’un PIC...................................................................................................10
2.2. Différentes familles des PICs....................................................................................10
2.3. Identification d’un Pic..............................................................................................10
2.4. Principales caractéristiques du PIC 16F877.............................................................11
3. Module d’affichage...........................................................................................................13
3.1. HEF4511B.................................................................................................................13
3.2. Registre 74HC574.....................................................................................................15
4. Décodeur HEF4555B.........................................................................................................16
4.1. Description générale................................................................................................16
4.2. Brochage et structure interne..................................................................................16
5. Capteur température........................................................................................................17
5.1. Capteur PT100..........................................................................................................17
5.2. Pont de wheastone..................................................................................................17
5.3. Amplificateur différentiel.........................................................................................18
6. Convertisseur analogique numérique du pic 16f877........................................................19
6.1. Etude théorique.......................................................................................................19
6.1.1. Principe de fonctionnement...............................................................................19
6.1.2. Temps d’acquisition............................................................................................19
6.1.3. Conversion..........................................................................................................19
6.1.4. Valeurs par défaut..............................................................................................20
6.2. Etude pratique..........................................................................................................20
6.2.1. Tension de référence..........................................................................................20
6.2.2. Schéma synoptique du convertisseur.................................................................21
6.2.3. Processus de numérisation.................................................................................21
6.2.4. Rôle des registres ADRESL et ADRESH................................................................21
6.2.5. Rôle des bits du registre ADCON 1......................................................................22
6.2.6. Rôle des bits du registre ADCON0......................................................................22
6.2.7. Gestion des interruptions convertisseur analogique numérique......................23
IV. SCHEMA DETAILLE............................................................................................................24
PARTIE II LOGICIELLE............................................................................................................................25
I. ORGANIGRAMMES...............................................................................................................26
II. PROGRAMMES......................................................................................................................29
CONCLUSION....................................................................................................................................33
ANNEXES..............................................................................................................................................34

1
DEDICACE

2
REMERCIEMENTS
Tout d’abord je ne manquerais pas à rendre gloire à DIEU le tout puissant qui m’a octroyé de
nombreuses grâces

Ensuite mes remerciements s’adresse aux membres de ma famille et parents proches qui m’ont
apporté un soutient morale et financier et sans cesse continuent de m’assisté. Par ailleurs de façon particulière
je de citer Mr COULIBALY VAMARA et à son épouse feu OUATTARA ALIMATOU qui m’m’ont hébergé et me
conditionnent au même titre que leurs enfants.

Egalement je remercie l’ensemble du personnelle de mon établissement(CELA), le corps professoral pour


la connaissance qu’ils ont inculqué en nous durant notre formation. Et parmi lesquels je mentionne Mr
ASSI GATIEN professeur de microcontrôleur/microprocesseur.

Enfin je fait un clin d’œil à tous mes amis et camarades de classe pour leur esprit dynamique d’équipe
qui permet à chacun de nous d’avancer.

MERCI A TOUS NOUS AGREE.

3
AVANT-PROPOS
La réalisation de ce document s’inscrit dans le cadre de la soutenance de notre projet de fin de cycle pour
l’examen de brevet de technicien supérieur (BTS) en système électronique et informatique (SEI)cet ouvrage est
présenté par l’étudiant au membre de jury. A travers ce document cet ouvrage le futur technicien supérieur en
électronique est appelé à faire preuve de toutes ses qualités intellectuelles pour faire rejaillir toutes les
techniques théoriques et pratiques acquises tout au long de son cycle.
Dans cette optique, il s’engage à produire ce rapport pour rendre compte du travail effectué

4
INTRODUCTION
La réalisation d’un projet en fin de formation est d’une importance capitale, car cela permet a l’étudiant de
mettre en œuvre les connaissances théoriques acquise afin d améliorer son savoir faire .

Le thème ‘’étude et réalisation d’un régulateur de température d’un four de traitement thermique a base
de microcontrôleur de la famille pic ‘’ revient a propose une solution bon marche d’un régulateur de
température avec affichage numérique de la température .cette étude nous permettra en tant que techniciens
supérieur de consolider nos connaissances dans la conception et réalisation de projet électroniques base
surtout sur une solution construire autour d’ système microprogrammé.

En effet, fleuron des progrès de la technique les microcontrôleurs sont aujourd’hui présent dans tous les
Secteurs (industriel, automobile, aéronautique, naval, administration habitation…)

Les différents traitements qu’ils permettent de réaliser ont conduit à l’amélioration de nos besoins
Quotidiens.

L’intérêt majeur de ce projet est la recherche d’ solution simplifiant l’automatisation de la commande de


chauffage d’ four afin de maintenir rigoureusement a une valeur fixé.faut’il rappeler que le besoin de
regulation de température est très préoccupante aussi bien dans l’industrie chimique, pharmaceutique que
dans les domaines de la médecine de l’habitation, l’élevage, de la photocopie…

Notre approche sur ce thème se structurera d’abord en une étude qui se rapport a la partie matériel
constitue des généralités et d’un annaliste technique, puis en étude logiciel comprenant la programmation et
la partie mise an œuvre pratique du système.

5
PRESENTATION DE L’ETABLISSEMENT

6
PARTIE I MATERIELLE

7
I. CAHIER DE CHARGE
Le système est constitué des éléments suivants :
- une source d’alimentation stabilisée 5v qui fournit l’énergie à tout le système
- un capteur de température le PT100
- un amplificateur de tension
- un convertisseur analogique-numérique
- un microcontrôleur PIC 16F877A
- quatre afficheurs sept segments
- un relais
- trois boutons poussoirs pour la consigne
- d’une résistance chauffante
Le capteur PT100 mesure la température à l’intérieur du four et fournit une tension proportionnelle à la
température mesurée. Cette tension faible est amplifiée par l’amplificateur de sorte à fournir au
convertisseur une tension qui varie entre 0 et 5V. La tension obtenue à la sortie de l’amplificateur est
convertir en valeur numérique par le CAN intégré du PIC 16F877A. La valeur binaire obtenue après la
conversion est convertie par une routine en valeur DCB puis afficher. Par la suite la valeur de la
température est comparée avec des températures de références. Si la température est élevée par rapport
à la valeur maximale de la température référence on arrête le chauffage de sorte à faire baisser la
température mais si la température est inférieure à la température minimale on remet le chauffage en
marche. Ce principe de fonctionnement a pour rôle de maintenir la température dans une plage fixée par
la consigne de départ.

II. SCHEMA SYNOPTIQUE

Bloc d’alimentation

Four

CAN Amplificateur Capteur de


Module d’affichage Unité centrale de
température
traitement

Système de chauffage
Consignes

8
III. ETUDE DETAILLEE

1. Alimentation stabilisé
Notre carte doit être alimentée par une alimentation stabilisée qui fournit 5V à la sortie pour alimenter
notre PIC, l’afficheur LCD et le capteur.
La carte réalisée contient :
 Un transformateur abaisseur, qui fournit sur son secondaire une tension alternative très inférieure
à celle du secteur (220V/9V)
 Un pont redresseur (diodes en pont de Graëtz), qui fournit en sortie une tension non plus
alternative mais redressée,
 une capacité de filtrage, qui réduit l'ondulation de la tension issue du pont redresseur,
 un régulateur de tension, dont le rôle est de stabiliser le potentiel de sortie à une certaine valeur
5V. en faîte Pour avoir une tension de 5V on a choisi l'un des régulateurs de tension les plus utilisé
le 7805.

Transformation Redressement Filtrage Régulation


VeLISTP=16f877A VsLISTP=16f877A
#INCLUDE<P16F877A.INC> #INCLUDE<P16F877A
__CONFIG _CP_OFF
__CONFIG _CP_OFF &_DEBUG_OFF &_CPD_OFF &_LVP_OFF &_BODEN_OFF &_WDT_OFF &_PWRTE_OFF &_HS_OSC
Figure III.15 : Schéma synoptique
CBLOCK0X20 CBLOCK0X20
1.1. Choix: du
NOMBRE transformateur
1; variable pour la conversion binaire DCB NOMBRE : 1; variable
INDEX INDEX : 1;
: 1;de développement nécessite une tension d’alimentation de (5V) et un courant de 0.5A, ainsi
Notre Carte COMPT_DIG : 1; com
COMPT_DIG : 1; compteur de chiffre
nous devons choisir un transformateur dont la tension maximale au secondaire est supérieure à 9 V CENT:1;chiffre des ce
CENT:1;chiffre des centaines
DIZ:1;chiffre DIZ:1;chiffre les diza
1.2. Choix delespont
dizaines
de redressement UNIT:1; chiffre des un
UNIT:1; chiffre des unités
Le choix
TEMPW:de pont de diode
1; variable pour est basée essentiellement
la sauvegarde de W sur : TEMPW: 1; variable p
TEMPSTATUS: TEMPSTATUS: 1;varia
• La tension1;variable
inverse pour la sauvegarde
maximale de diode.de status
TEMP:1;varable TEMP:1;varable pour
• Le courantpour le temps
moyen direct.d'acquisition
VALINIT:1;valeur initi
VALINIT:1;valeur initiale
VALMAX:1;valeur de reférence température maximale VALMAX:1;valeur de
VALMIN:1;valeur de reférence température minimale VALMIN:1;valeur de
1.3. Choix des condensateurs VALCAN;valeur binair
VALCAN;valeur binaire fournie pas le CAN
• Choix des condensateurs de filtrage:
ENDC ENDC
Pour obtenir une tension presque constante il faut brancher un ou plusieurs condensateurs en parallèle
à la sortie de pont redresseur, plus la valeur de la capacité est élevée plus le filtrage sera meilleur.ORG0X0000
justeORG0X0000 Les
GOTODEBUT
deuxGOTODEBUT
principaux critères à considérer dans le choix d’un condensateur sont :
 sa capacité
ORG0X0004 ORG0X0004
 sa tension de service MOVWFTEMPW;sauv
MOVWFTEMPW;sauvegarde
• Choix des condensateurs w de découplage :
SWAPFSTATUS, W;permutation status resultat dans W SWAPFSTATUS, W;pe
On les choisi de tel sorte qu’ils servent à améliorer la stabilité du régulateur MOVWFTEMPSTATU
MOVWFTEMPSTATUS;sauvegarde status
BTFSSINTCON,RBIF;teste si interruption RB BTFSSINTCON,RBIF;te
GOTOINTCAN; aller Interruption CAN sinon GOTOINTCAN; aller I
1.4. Choix de régulateur de tension. BCFPORTE,RE0;si oui
BCFPORTE,RE0;si oui arrêt chauffage
Un régulateur de tension intégré est un composant à semi-conducteur dont le rôle consiste à rendre quasi
;Affichage ;Affichage valeur initi
continue une valeur
tensioninitiale*************************
qui présente une ondulation issue d’un pont redresseur et à
La tension de sortie Vout est le principal critère de choix, puisqu’elle correspond à la tension désirée. Ainsi,
BTFSSPORTB,RB4;tes
pourBTFSSPORTB,RB4;teste
une tension de 5V, on si lechoisira
bouton un
est 7805
temp+qui
appuyé
possède les caractéristiques suivantes :
GOTOTESTBIT5;allerTestbit5 si temp+ n'est pas appuyé GOTOTESTBIT5;allerT
INCFVALINIT,1; incrémentation de la valeur initiale INCFVALINIT,1; incré
9
TOP TOP
MOVFVALINIT,W;copie de la valeur initiale dans w MOVFVALINIT,W;cop
MOVWFNOMBRE;copie de la valeur initiale dans NOMBRE MOVWFNOMBRE;co
CALLCONV;APPEL SOUS PROGRAMME CONV CALLCONV;APPEL SO
Courant de sortie 1A.
Protection thermique interne contre les surcharges.
Aucun composant externe nécessaire.

2. Microcontrôleur PIC 16F877

1.5. Définition d’un PIC


Un PIC (Peripheral Interface Controller) est un microcontrôleur de Microchip. Un microcontrôleur est
circuit qui renferme une unité de traitement de l’information de type microprocesseur à laquelle on a
ajouté des périphériques internes et des mémoires. Les PICs sont des composants dits RISC (Reduced
Instructions Set Computer) ou encore microprocesseur à jeu d’instructions réduit.

1.6. Différentes familles des PICs


Actuellement, les pics sont subdivisés en trois (3) grandes familles :
• Base-line : c’est une famille qui utilise des mots d’instructions de 12 bits.
• Mid-range : c’est une famille qui utilise des mots de 14 bits (dont font partie les 16F84, 16f876 et
16f877)
• High-end : c’est une famille qui utilise des mots de 16 bits.

1.7. Identification d’un Pic


Pour identifier un PIC, on utilise simplement son numéro :
16 : indique la catégorie du PIC, c’est un Mid-range.
L : indique qu’il fonctionne avec une plage de tension beaucoup plus tolérante.
C : indique que la mémoire programme est un EPROM ou une EEPROM.
CR ou F : indique le type de mémoire ; CR(ROM) ou F (FLASH).
XX : représente la fréquence d’horloge maximale que le PIC peut recevoir.
Une dernière indication qu’on le trouve est le type de boîtier.
Exemple :
Un 16f877-20 est un PIC MID-RANGE(16) ou la mémoire programme est de type FLASH (F) et
réinscriptible de type 877 et capable d ‘accepter une fréquence d’horloge de 20MHz

1.8. Principales caractéristiques du PIC 16F877


Le PIC 16F877 est caractérisé par :
 Une Fréquence de fonctionnement élevée, jusqu’à 20 MHz

10
 Une mémoire vive de 368 octets.
 Une mémoire EEPROM pour sauver des paramètres de 256 octets
 Une mémoire morte de type FLASH de 8 Kmots (1mot = 14 bits), elle est réinscriptible à
volonté
 Chien de garde WDT
 33 Entrées et sorties
 Chaque sortie peut sortir un courant maximum de 25 mA
 3 Temporisateurs : TIMER0 (8 bits avec pré diviseur), TIMER1 (16 bits avec pré diviseur avec
possibilité d’utiliser une horloge externe réseau RC ou QUARTZ) et TIMER2 (8 bits avec pré
diviseur et post diviseur)
 2 entrées de captures et de comparaison avec PWM (Modulation de largeur d’impulsions)
 Convertisseur analogique numérique 10 bits avec 8 entrées multiplexées maximum
 Une interface de communication série asynchrone et synchrone (USART/SCI)
 Une interface de communication série synchrone (SSP/SPI et I2 C)
 Une tension d'alimentation entre 2 et 5.5 V
- Les mémoires du PIC 16F877
Le PIC 16F877 dispose de trois types de mémoires :
 Mémoire vive RAM
C’est de la mémoire d’accès rapide, mais volatile (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.
Cette mémoire RAM disponible sur le 16F877 est de 368 octets, elle est répartie de la manière suivante:
• 80 octets en banque 0, adresses 0x20 à 0x6F
• 80 octets en banque 1, adresses 0xA0 à 0xEF
• 96 octets en banque 2, adresses 0x110 à 0x16F
• 96 octets en banque 3, adresses 0x190 à 0x1EF
• 16 octets communs aux 4 banques, soit 0x70 à 0x7F; 0xF0 à 0xFF; 0x170 à
0x17F; 0x1F0 à 0x1FF
 Mémoire morte FLASH
C’est la mémoire programme proprement dite. Chaque case mémoire fait 14 bits. La mémoire FLASH est
une mémoire stable, réinscriptible à volonté.
C’est ce nouveau type de mémoire qui a fait le succès de microcontrôleur PIC. Dans le cas du 16F877, cette
mémoire FLASH fait 8 K.
 Mémoire EEPROM
Cette mémoire est de 256 octets, elle est Electriquement effaçable, réinscriptible et stable. Ce type de
mémoire est d’accès plus lent, elle est utilisée pour sauver des paramètres.
L’adresse relative de l’accès EEPROM est comprise entre 0000 et 00ff, ce qui nous permet d’utiliser qu’un
registre de huit bits pour définir cette adresse.

11
- Organisation externe du PIC 16F877

Le boîtier du PIC 16F877 comprend 40 broches : 33 broches d’entrées/sorties, 4 broches pour


l’alimentation, 2 broches pour l’oscillateur et une broche pour le reset (MCLR).
La broche MCLR sert à initialiser le microcontrôleur. 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 broches s’explique pour une raison de dissipation thermique. Les courants véhiculés
dans le pic sont loin d’être négligeables du fait des nombreuses entrées/sorties disponibles.
Les broches OSC1 et OSC2 ou CLKIN et CLOUT permettent de faire fonctionner l’oscillateur interne du PIC
qui peut être un quartz, un résonateur céramique, un oscillateur externe ou un réseau RC. Dont le rôle est
de crées des impulsions de fréquences élevées.
Lors de la programmation, la broche MCLR doit être portée à un niveau compris entre 12 V et 14 V et le
PIC16F877 commence à programmer en appliquant un signal d’horloge sur la broche RB6 (broche 39) et
les informations binaires transitent en série sur la broche RB7 (broche 40). Chacune des informations qui
transitent sur la broche RB7 est validée à la retombée du signal d’horloge sur la broche RB6.

- ports d’entrée/sortie
Tous ces ports se trouvent dans la banque 0, mais tous leurs registres se trouvent dans la banque1, pour
déterminer les modes des ports (E/S), il faut sélectionner leurs registres TRISX.
Le positionnement d’un bit à « 1 » TRISX oriente la broche correspondante en entrée dans cas contraire la
broche est orientée en sortie.
Notez, comme pour tous les ports, que la mise sous tension du PIC, et tout autre reset, force tous les bits
utiles de TRISx à 1, ce qui place toutes les broches en entrée.

 Le port A
Le port A est formé de six broches donc six entrées/sorties numérotées de RA0 à RA5 qui peuvent être
utilisées comme des entrées pour le convertisseur analogique numérique ou utilisées pour le TIMER 0,
dans ce dernier cas la broche RA4 sera utilisée comme entrée pour configurer TOCKI.
On peut utiliser ce port, soit pour la conversion analogique /numérique, soit en mode (E/S), dans notre
projet on a utilisé RA0 comme entrée pour le CAN.
Remarque : RA4 qui est toujours en collecteur ouvert (mise à 0) c’est à dire mise en sortie.

 Le port B

12
Rien de particulier à dire sur ce port, qui possède 8 broches d'entrée/sortie classique numérotées de RB0 à
RB7.
On note que la broche 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, de façon tout à fait classique, en
entrée de type TTL.

 Le port C
Ce port classique et comporte 8 broches de RC0 à RC7.
 Le port D :
Ce port n’est présent que sur les PIC16F877. Il fonctionne de façon identique aux autres, dans son mode
de fonctionnement générale. Les 8 broches E/S, en mode entrée, sont de type « trigger de Schmitt »
Ce port est très utilisé en mode parallèle esclave (slave).

 Le port E :
Dans la famille des 16F, ce port n’est présent que sur les PICs de type 16F877.
Le port E possède trois broches donc trois entrées/sorties, RE0 à RE2, il est utilisé comme entrées au
convertisseur analogique numérique et aussi il peut contrôler le port parallèle slave c'est-à-dire le port D.
On remarque que les broches REx peuvent également être utilisées comme broches d’entrées
analogiques. C’est de nouveau le registre ADCON1 qui détermine si ce port sera utilisé comme port E/S
ou comme port analogique.

3. Module d’affichage
Le module d’affichage comprend un décodeur DCB 7 segments (hef4511B), un décodeur 2 vers 4 (4555),
des registres (74HC154) et des afficheurs 7 segments.

1.9. HEF4511B
Le HEF4511B est un verrou/décodeur BCD à 7 segments ayant quatre entrées d'adresses (DA à DD), une
entrée de validation du verrou (EL\) active au niveau bas, une entrée de suppression d’ondulation (BI\)
active au niveau bas, une entrée de test de la lampe (LT\) active au niveau bas, et sept sorties de segment
(Oa à Og) active à l’état haut.
Lorsque EL\ est l’état bas, l'état des sorties de segment (Oa à Og) est déterminée par les données sur DA à
DD. Lorsque EL\ est à ‘l’état HAUTE, les dernières données présentes sur DA à DD sont stockés dans les
bascules et les sorties de segments restent stables. Lorsque LT\ est à l’état bas, toutes les sorties des
segments sont à l’état haute impédance.

13
 Brochage

 Structure interne simplifiée

 Structure interne détaillée

14
 Table de vérité

1.10. Registre 74HC574


Le 74HC574 est un dispositif CMOS haute vitesse avec de faible puissance Schottky TTL. Le 74HC574 est
constitué de bascules D-Type octal (8 bascules) comportant huit entrées (D0 à D7), huit sorties (Q0 à Q7) à
trois (3) états pour les applications orientées bus, Une horloge (CP) et une entrée de validation des sorties
(OE\) active à l’état bas.
 Structure interne simplifiée

15
 Structure interne détaillée

 Description fonctionnelle
Mode opératoire Entrée Bascule interne Sortie
OE\ CP Dn Qn
Chargement et lecture du registre L ↑ L L L
L ↑ H H H
Chargement du registre et désactivation H ↑ L L Z
des sorties H ↑ H H Z

L : état bas, H : état haut, Z : état haut impédance, ↑ : front montant

4. Décodeur HEF4555B

1.11. Description générale


Le HEF4555B est un double décodeur / démultiplexeur 1 parmi 4. Chaque décodeur a deux entrées d'adresse
(A0 et A1) active à état bas, une entrée de validation (E) et quatre sorties (O0 à O3) active à l’état haut.
Lorsqu'il est utilisé comme un décodeur, la mise à l’état haut de E force les sorties (O0 à O3) à l’état bas.
Lorsqu'il est utilisé comme un démultiplexeur, la sortie appropriée est sélectionnée par les informations sur A0
et A1 et est utilisé E en tant qu'entrée de données ce qui entraine la mise à l’état bas des sorties non
sélectionnées.

1.12. Brochage et structure interne

16
Table de vérité

5. Capteur température
La mesure de la température se fera à l’aide d’une sonde au platine PT100 intégrée dans un pont Wheatstone

1.13. Capteur PT100


La sonde PT100 est un composant électronique dont la résistance varie avec la température. Sa résistance est
de 100Ω à 0°C. La relation liant la résistance de la sonde à la température est la suivante Rt=R0 (1+ ∝θ ) où θ
est la température, ∝ est la valeur du coefficient de température, ce coefficient est lié au métal utilisé pour la
sonde. Pour une sonde au platine, ∝=385.10-3°C-1. R0 est la résistance à 0°C. Dans le cas d’une PT100 la
résistance R0 est 100Ω. La courbe Rt=f(0) est une droite de coefficient directeur ∝ et d’ordonnée à l’origine R0.

1.14. Pont de Wheatstone


Le capteur PT100 sera intégré à un pont de Wheatstone. Le pont de Wheatstone est une structure
électronique permettant d’obtenir une tension différentielle en fonction de quatre (4) résistances.
Le pont est dit équilibre lorsque Va-Vb=0V. Pour obtenir cet état, il faut que les produits R1 .R3 et R2.RX soit
égaux.
Dans le cas contraire, une ddp apparait entre les points A et B. Pour notre projet, il s’agit d’obtenir une tension
Va-Vb en fonction de la température et donc de la résistance de la sonde PT100. Notre température minimale
sera de 0°C, pour cela il faut que la ddp à 0°C soit égale à 0V (Va-b= 0V) donc lorsque Rt=100Ω.

17
Calcul de la ddp à 255°C pour R1=R4=10K
R0=100Ω et Rt=R0 (1+∝θ ¿
Rt=100(1+385.10-3 x255)
Rt=100+98,175=198,175Ω
R1 R4
100
Vb=5x =49 , 50 mV ≅ 50 mV
10000+100 B A
E
198
Va=5x =97 , 07 mV ≅ 98 mV
10000+198 R2 PT100
100
Va-Vb= 98mV – 50 mV= 48mV

1.15. Amplificateur différentiel R5

R4 5V

Vb R4 Vtemp
Va R5

Le pont de Wheatstone délivre une tension différentielle (Va-Vb) évoluant de 0V à 48 mV. Or nous désirons
une tension de sortie variant de 0 à 5V. L’amplification est donc égale.
5
A= =125
0,048
La relation entre Vtemp et (Va-Vb)

0 Va
+
R 5 R 4 Va R5R 4 R 5 Va
Va¿ = x =
1 1 R 4 R 5+ R 4 R 5+ R 4
+
R5 R 4

Vtemp Vb
+
R5 R 4 R 4 Vtemp R 5Vb
Vb¿ = +
1 1 R 4 + R 5 R 5+ R 4
+
R5 R 4

R 5 Va R 4 Vtemp R 5 Vb
= +
R 5+ R 4 R 4+ R 5 R 5+ R 4

R 4 Vtemp
Va-Vb=
R5

18
R4
Le rapport doit être égal 125
R5
Nous choisirons R5=1KΩ et R4=220KΩ ce qui donne une amplification théorique de 125. Dans ce cas, la tension
maximale Vtemp est égale à 125x0.048≅ 5 V
On choisira un AOP s’alimentant entre 0 et 5V c'est-à-dire LM358N.

6. Convertisseur analogique numérique du pic 16f877

1.16. Etude théorique

Le pic 16F877 travail avec un convertisseur analogique numérique (CAN) intégré qui permet l’échantillonnage
sur 10 bits, le signal numérique peut prendre 2 10 =1024 valeur possible. Pour convertir une grandeur il faut
connaître la valeur minimale qu’elle peut prendre. Par défaut le pic considère Vss comme valeur minimale et
Vdd comme valeur maximale. Cependant il est possible d’utiliser d’autre valeur.

1.1.1. Principe de fonctionnement


a) Pic connecte la broche (canal) sur la quelle se trouve la tension à numériser a un condensateur interne
qui va se charger via une résistance interne jusqu’à la tension appliquée.
b) La broche est par la suite déconnectée du condensateur et le condensateur est connecté à l’entrée du
CAN pour la conversion,
c) Le pic procède à la conversion, ce principe de fonctionnement amène à connaître le temps de charge
du condensateur Tc et temps de conversion total T cv afin de déterminer la fréquence maximale
d’échantillonnage pour le pic.

1.1.2. Temps d’acquisition


C’est le temps mis par le condensateur interne pour atteindre la tension à convertir. Ce temps est incrémenté
du temps de réaction des circuits internes (Tamp) et d’un temps qui dépend de la température (coefficient de
température Tcoff)
Tacq= Tamp + Tc +Tcoff
Tamp : est de l’ordre de 2µs
Tcoff égal à 0 pour les températures inférieures ou égale à 25°C et 0.05µs/°C pour les températures
supérieures à 25°C.
NB : il faut noter que la valeur maximale de la température du pic est de 50°c

Tc : dépend de la résistance placée en série avec le condensateur. Cette résistance est constituée de deux
résistances une interne et l’autre externe. Il est recommandé que la résistance externe soit inferieure à 10kΩ.
La résistance interne dépend de la tension d’alimentation du pic. Pour atteindre une grande vitesse de
conversion, il faut alimenter le pic avec sa tension maximale qui est de 6v avec le 16F877.
La résistance interne est de 6kΩ pour 6V, 12kΩ pour 3V et 8kΩ pour 5V, le condensateur interne à une valeur
de 10pF.
La formule de charge du condensateur est :
Tc=-C (Ri + Re) x ln (1/2047) avec –Cln (1/2047)=0.914895x10-9
Ri : résistance interne
Re : résistance externe

1.1.3. Conversion
Le CAN du pic 16F877 utilise le principe de l’approximation successive, le temps de conversion
Tcv est égal au temps nécessaire à la conversion d’un bit multiplié par le nombre de bits désirés pour le
résultat. Le temps de conversion d’un bit (Tad) est égal à la valeur d’horloge principale (T) divisée par une
grandeur (diviseur) qui peut être 2 ; 8 ou 32.

19
Tad= T/2 ou T/8 ou T/32 avec T=1/fréquence(f)

20
Fréquence diviseur Tad
20Mhz 32 1.6µs
5Mhz 8 1.6µs
4Mhz 8 2µs
2Mhz 8 4µs
1.25Mhz 2 1.6µs
333.33Mhz 2 6µs
Le pic nécessite un temps Tad avant le démarrage effectif de la conversion et un temps supplémentaire Tad
avant la fin de la conversion.
Le temps total de la conversion est :
Tcv = Tad +10xTad + Tad
Tcv = 12Tad avec Tad=1.6µs.
Deux conversions sont séparées par un temps égal à 2Tad.
La durée totale T du processus de conversion
T= Tacq +Tcv
Temps d’échantillonnage Te
Te= Tcv +Tacq +2Tad
Te= 14Tad + Tacq
Fréquence d’échantillonnage
Fe= 1/Te
Cette fréquence Fe permet d’échantillonner les signaux sinusoïdaux de fréquence Fe/2

1.1.4. Valeurs par défaut


Pour une numérisation sur 10bits la valeur numérique (Val) obtenue est :
Val= ((Vin –Vrèf-)/ (Vrèf+ -Vrèf-)) x1023
Vin : tension d’entrée analogique
Vrèf- : tension de référence minimale négative
Vrèf +: tension de référence maximale positive

Les valeurs couramment utilisées sont :


Tacq=19.7µs, Tcv=19.2µs, 2Tad=3.2µs

1.17. Etude pratique


Le pic contient un seul convertisseur et plusieurs entrées analogiques.
Le choix de l’entrée analogique (canal) se fait par un circuit de commutation. S’il y a plusieurs canaux à
échantillonnés, il faut les sélectionner à tour de rôle.
Le pic 16F877 dispose de 8 canaux (AN0/RA0 à AN3/RA3 et AN4/RA5, AN5/RE0 à AN7/RE2)

1.1.5. Tension de référence


Il existe trois modes pour obtenir Vrèf- et Vrèf+ :
- utilisation de Vss (Vrèf-) et Vdd (Vrèf) : dans ce cas les tensions de références sont tirées en interne.
- utilisation de la broche Vrèf+ (RA3) pour fixer la tension de référence maximale et l’utilisation de Vss
comme Vrèf-, dans ce cas Vrèf+ doit être fourni au pic via la broche (RA3)
- utilisation de la broche Vrèf+ (RA3) pour fixer la tension de référence maximale et l’utilisation de la broche
Vrèf- (RA3) pour fixer la tension de référence minimale.

21
1.1.6. Schéma synoptique du convertisseur

ADCON0

RA0/AN0
RA1/AN1 Sélection
RA2/AN2 Vrèf- De
Canal
RA3/AN3 Vrèf+ CAN
RA5/AN4
Vin
RE0/AN5 10bits

RE1/AN6

RE2/AN7

Vrèf++
Vdd
Vref-++
Vss

ADCON1

ADCON 0 : sélectionne les canaux


ADCON 1 : sélectionne les tensions de référence

1.1.7. Processus de numérisation


Les étapes de la numérisation sont :
a. choisir le canal
b. temporiser pendant une durée de Tacq
c. lancer la numérisation
d. attendre la fin de la numérisation
e. temporiser pendant une durée 2Tad
f. recommencer avec le canal suivant

1.1.8. Rôle des registres ADRESL et ADRESH


Ces deux registres contiennent le résultat de la conversion. Du fait que certains bits sont non utilisés il est
possible de justifier le résultat à gauche ou à droite.

Justification à gauche

ADRESH ADRESL

B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 0 0 0 0 0 0

Justification à droite
ADRESH ADRESL

22
0 justification
La 0 0 à droite
00 0est utilisée B9 a besoinB7
000 B88888888888
lorsqu’on B6 B7 de
de l’intégralité B68 bits
B7 tandis
B6 que B1 la justification
B0 à
gauche est utilisée dans le cas où on a besoin seulement que de 8 bits, dans ce cas les 2 bits de poids faibles se
trouvent dans le registre ADRESL et ne sont pas pris en compte. Le choix de la justification se fait avec le bit 7
d’ADCON1.

1.1.9. Rôle des bits du registre ADCON 1


Il détermine le rôle des broches AN0 à AN7, il permet donc de choisir si une broche sera utilisée comme entrée
analogique ou comme E/S standard ou encore comme entrée de référence.
Il permet également de décider de la justification du résultat :
- Bit 7 : justification du résultat (bit 7 = 1 : alignement à droite et bit 7 = 0 : alignement à gauche)
- Bit 4 à bit 6 : non utilisés lu comme 0
- Bit 0 à bit 3 : bits de contrôle de la configuration du port
b3 b2 b1 b0 AN7/RE2 AN6/RE1 AN5/RE0 AN4/RA5 AN3/RA3 AN2/RA2 AN1/RA1 AN0/RA0 Vrèf- Vrèf+ A/D/R

0 0 0 0 A A A A A A A A Vss Vdd 8/0/0

0 0 0 1 A A A A Vrèf+ A A A Vss RA3 7/0/1

0 0 1 0 D D D A A A A A Vss Vdd 5/3/0

0 0 1 1 D D D A Vrèf+ A A A Vss RA3 4/3/1

0 1 0 0 D D D D A D A A Vss Vdd 3/5/0

0 1 0 1 D D D D Vrèf+ D A A Vss RA3 2/5/1

0 1 1 0 D D D D D D D D _ _ 0/8/0

0 1 1 1 D D D D D D D D _ _ 0/8/0

1 0 0 0 A A A A Vrèf+ Vrèf- A A RA2 RA3 6/0/2

1 0 0 1 D D A A A A A A Vss Vdd 6/2/0

1 0 1 0 D D A A Vrèf+ A A A Vss RA3 5/2/1

1 0 1 1 D D A A Vrèf+ Vrèf- A A RA2 RA3 4/2/2

1 1 0 0 D D D A Vrèf+ Vrèf- A A RA2 RA3 3/3/2

1 1 0 1 D D D D Vrèf+ Vrèf- A A RA2 RA3 2/4/2

1 1 1 0 D D D D A A D A Vss Vdd 3/5/0

1 1 1 1 D D D D Vrèf+ Vrèf- D A RA2 RA3 1/5/3

1.1.10. Rôle des bits du registre ADCON0

- Bit 7 (ADCS1) et Bit 6 (ADCS0) : bits de sélection de l’horloge de conversion

ADCS1 ADCS0 DIVISEUR FREQUENCE DU QUARTZ


0 0 Fosc/2 1.25MHZ
0 1 Fosc/8 5 MHZ/4MHZ
1 0 Fosc/32 20 MHZ
1 1 Osc RC Mode sleep

23
- Bit 3 (CHS0) à bit 5 (CHS2) : sélection du canal

CHS2 CHS1 CHS0 CANAL


0 0 0 AN0/RA0
0 0 1 AN1/RA1
0 1 0 AN2/RA2
0 1 1 AN3/RA3
1 0 0 AN4/RA5
1 0 1 AN5/RE0
1 1 0 AN6/RE1
1 1 1 AN7/RE2

- Bit 2 (GO/DONE) est placé à 1 pour lancer la conversion. Ce bit est remis à 0 automatiquement à la fin
de la conversion. Cette remise à 0 est accompagnée du positionnement du flag ADIF du registre PIR1.
Le bit ADIF permettra de générer une interruption. Il existe deux méthodes pour connaitre la fin
d’une conversion soit en testant le bit 2 (GO/DONE) ou en utilisant l’interruption régénérée par ADIF
- bit 1 : non utiliser
- bit 0 (ADON): permet de mettre en service le convertisseur.

1.1.11. Gestion des interruptions convertisseur analogique numérique

Le CAN génère une interruption à la fin d’une conversion. Les différentes étapes de la mise en service d’une
interruption du convertisseur sont :
- Le positionnement du bit ADIE (analogique digital interruption enable) du registre PIE1
- Le positionnement du bit PEIE du registre INTCON
- Le positionnement du bit GIE du registre INTCON
A la fin du traitement de l’interruption il faut remettre le bit ADIF du registre PIR1 à 0

24
IV. SCHEMA DETAILLE
U2
7805

1 3
VI VO
TR1

GND
D1 D3
1N4007 1N4007

2
C1 C2 C3
2200uF 100nF 100nF
R17
330R
D2 D4
1N4007 1N4007
TRAN-2P2S

Q1
BC547
R8
330R

R14 Q4
BC547
330R Q5 R13 Q3
R15 BC547 BC547
330R
R9 R10R11 330R
330R 330R 330R

19
18
17
16
15
14
13
12

19
18
17
16
15
14
13
12
U6 U7

Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
74HC574 74HC574
RL1(NO)

CLK

CLK
U3:A

OE

OE
D0
D1
D2
D3
D4
D5
D6
D7

D0
D1
D2
D3
D4
D5
D6
D7
8

R2 R3 R6

2
3
4
5
6
7
8
9

11
1

2
3
4
5
6
7
8
9

11
1
10k 10k 3 R4
220k 1
R7 2 10k U1
220k 13 33
OSC1/CLKIN RB0/INT
4

14 34
LM358N OSC2/CLKOUT RB1
RB2
35 D5 RESISTANCE CHAFFANTE
2 36 1N4007
RA0/AN0 RB3/PGM
3 37
R5 4
RA1/AN1 RB4
38 U4
RA2/AN2/VREF-/CVREF RB5
R1 PT100 5
RA3/AN3/VREF+ RB6/PGC
39 7
A QA
13 RL1
100R 100 1k 6 40 1 12 OMIH-SH-105D
+tc RA4/T0CKI/C1OUT RB7/PGD B QB
X1 7
RA5/AN4/SS/C2OUT
2
C QC
11
15 6 10
RC0/T1OSO/T1CKI D QD
8 16 9
RE0/AN5/RD RC1/T1OSI/CCP2 QE
9 17 3 15
RE1/AN6/WR RC2/CCP1 LT QF
10 18 4 14
CRYSTAL RE2/AN7/CS RC3/SCK/SCL BI QG
23 5
RC4/SDI/SDA LE/STB
1 24
MCLR/Vpp/THV RC5/SDO
25 4511
RC6/TX/CK
26
RC7/RX/DT
R12 Q2
C5 C4 RD0/PSP0
19 BC547
33pF 33pF 20 330R
RD1/PSP1
21 U5:A
RD2/PSP2
22 2 4
RD3/PSP3 A Q0
27 3 5
RD4/PSP4 B Q1
28 6
RD5/PSP5 Q2
29 1 7
RD6/PSP6 E Q3
30
RD7/PSP7
4555
PIC16F877A

25
PARTIE II
LOGICIELLE

26
I. ORGANIGRAMMES

Organigramme principal Organigramme d’affichage


Début

Directives et configurations AFFICH

Déclaration des variables. Sélection afficheurs


RB1=1
Port A entrée analogique
ADCON1 0x00 PORTC DIZ

activation interruption CAN : PORTD 0X00


ADIE=1 (PIE1)
TEMPO
Mise à zéro de RBIF (INTCON)
PORTC UNIT
Mise à zéro de ADIF (PIR1)
PORTD 0X01
VALINT 0X28
TEMPO
NOMBRE VALINT

RETOUR
activation interruption global :
GIE=1 (INTCON)

activation interruption
périphérique : PEIE=1 (INTCON)

activation interruption RB :
RBIE=1 (INTCON)

FIN

27
Organigramme d’interruption
0X0004

Sauvegarde de w et status
Tempw w
Tempstatus status
NON
RBIF=0 ?
VALMAX VALINIT+5
VALMIN VALINIT-5
,
Arrêt chauffage RE0=0 VALCAN ADRESH

OUI
VALCAN>VALMAX ?

Arrêt chauffage RE0=0


, VALCAN ADRESH

NOMBRE ADRESH
NON
VALCAN<VALMIN ?
NON CONV
RE0=0?
AFFICH Chauffage, RE0=1
VALINT , VALINT +1

NON
NOMBRE VALINT
RB5=1?
CONV
VALINT VALINT -1 ADIF=0
,
AFFICH Chauffage RE0=1

Choix du canal et de l’horloge de conversion : ADCON0 0x80

Mise en marche du CAN ADON=1

TEMPTACQ

RBIF=0 Début conversion GO/DONE=1

Restauration
Status tempstatus
W tempw

Retour Int.

28
Organigramme de conversion binaire-DCB

CONV

Variables : Nombre, index,


COMPT_DIG, CENT, DIZ, UNIT

Table code : 0x64, 0x0A

W NOMBRE
ADCON1 0x00

CENT 0
DIZ 0
UNIT 0
INDEX 0

COMPT_DIG 0
W INDEX

Table

NOMBRE NOMBRE-W

NON C=0 ?

FSR CENT

COMPT_DIG COMPT_DIG+1 W INDEX

W FSR+W

W COMPT_DIG

INDF W

W INDEX

Table

NOMBRE NOMBRE+W

W INDEX

0X01 - W

C=0 ? NON

W NOMBRE
INDEX INDEX+1 UNIT W
COMPT_DIG 0 RETOUR

29
II. PROGRAMMES

LIST P=16f877A
#INCLUDE <P16F877A.INC>
__CONFIG _CP_OFF &_DEBUG_OFF &_CPD_OFF &_LVP_OFF &_BODEN_OFF &_WDT_OFF
&_PWRTE_OFF &_HS_OSC

CBLOCK 0X20
NOMBRE : 1 ; variable pour la conversion binaire DCB
INDEX : 1 ;
COMPT_DIG : 1 ; compteur de chiffre
CENT:1 ;chiffre des centaines
DIZ:1 ;chiffre les dizaines
UNIT:1 ; chiffre des unités
TEMPW: 1 ; variable pour la sauvegarde de W
TEMPSTATUS: 1 ;variable pour la sauvegarde de status
TEMP:1 ;varable pour le temps d'acquisition
VALINIT:1 ;valeur initiale
VALMAX:1 ;valeur de reférence température maximale
VALMIN:1 ;valeur de reférence température minimale
VALCAN ;valeur binaire fournie pas le CAN
ENDC

ORG 0X0000
GOTO DEBUT

ORG 0X0004
MOVWF TEMPW ;sauvegarde w
SWAPF STATUS, W ;permutation status resultat dans W
MOVWF TEMPSTATUS ;sauvegarde status
BTFSS INTCON,RBIF ;teste si interruption RB
GOTO INTCAN ; aller Interruption CAN sinon
BCF PORTE,RE0 ;si oui arrêt chauffage

;Affichage valeur initiale*************************

BTFSS PORTB,RB4 ;teste si le bouton est temp+ appuyé


GOTO TESTBIT5 ;aller Testbit5 si temp+ n'est pas appuyé
INCF VALINIT,1 ; incrémentation de la valeur initiale
TOP
MOVF VALINIT,W ;copie de la valeur initiale dans w
MOVWF NOMBRE ;copie de la valeur initiale dans NOMBRE
CALL CONV ;APPEL SOUS PROGRAMME CONV
CALL AFFICH ;AFFICHAGE DE LA VALEUR
BCF INTCON,RBIF ; MISE A 0 DE RBIF
GOTO RESTAURE ;ALLER à RESTAURE
TESTBIT5
BTFSS PORTB,RB5 ;teste si le bouton est temp- appuyé
GOTO CONVCAN ;aller SERVICE si temp- n'est pas appuyé
DECF VALINIT,1 ;DECREMENTER VALINIT DE 1
GOTO TOP ;ALLER à TOP

INTCAN
MOVF VALINIT,W ;copie de la valeur initiale dans w
MOVWF VALMAX ;copie de la valeur initiale dans VALMAX

30
MOVWF VALMIN ;copie de la valeur initiale dans VALMIN
MOVLW 5 ;charger 5 dans w
ADDWF VALMAX,1 ;ajouter 5 a valmax
MOVLW 5 ;charger 5 dans w
SUBWF VALMIN,1 ;retranche 5 du contenu de valmin

MOVF ADRESH, W ; lecture du resultat de la conversion


MOVWF VALCAN ;copier résultat dans valcan
MOVF VALMAX,W ;copier valmax dans w
SUBWF VALCAN,W ;valcan-valmax
BTFSC STATUS,Z ;tester s'il ya égalité
GOTO ARRET ; aller a arrêt si valcan égal valmax
BTFSS STATUS,C ;tester si valcan est inferieure a valmax
GOTO COMPARE ; aller a arrêt si valcan inferieure a valmax

ARRET
BCF PORTE,RE0 ;ARRET CHAUFFAGE
ALI
MOVF ADRESH,W ;copie résultat CAN
MOVWF NOMBRE ; copie résultat CAN dans NOMBRE
CALL CONV ; appel sous programme conversion binaire-DCB
CALL AFFICH ; appel sous programme affichage

SAM
BCF PIR1,ADIF ; mise a zéro du flag d'interruption du CAN
GOTO RESTAURE ; aller a restauration
COMPARE

MOVF ADRESH, W ; copie résultat CAN


MOVWF VALCAN ; copie dans VALCAN
MOVF VALMIN,W ; copie VALMIN dans W
SUBWF VALCAN,W ; VALCAN-VALMIN
BTFSC STATUS,Z ; test si pas d'égalité
GOTO MARCHE ; aller à marche si égalité
BTFSC STATUS,C ; test si VALMIN supérieure à VALCAN
GOTO SAM ; aller a SAM sinon
MARCHE
BSF PORTE,RE0 ; si oui CHAUFFAGE
GOTO ALI ; aller à ALI

CONVCAN
BSF PORTE,RE0 ; ACTIVATION CHAUFFAGE
MOVLW 0X80 ; chargement dans W la valeur 0x80
MOVWF ADCON0 ; choix du canal et de la fréquence d'échantillonnage
BSF ADCON0,ADON ; MISE EN MARCHE DU CAN
CALL TEMPTACQ ; ATTENDRE LA FIN DE L'ACQUISITION
BSF ADCON0,2 ; LANCEMENT DE LA CONVERSION
BCF INTCON,RBIF ; mise à zéro du flag d'interruption RB
GOTO RESTAURE ; ALLER à RESTAURE
TABLE
ADDWF PCL,F ; initialisation du PCL a la table
RETLW 0X64 ; premier élément de la table (100)
RETLW 0X0A ; deuxième de la table (10)
CONV

31
clrf CENT ; effacer centaine
clrf DIZ ; effacer dizaine
clrf UNIT ; effacer unité
clrf INDEX ; effacer index
clrf COMPT_DIG ; effacer compteur de chiffre
SUBTR
MOVF INDEX,W ; charger index dans w
CALL TABLE ; appel à la table
SUBWF NOMBRE,F ; Nombre-index
btfsc STATUS,C ;teste si le résultat est inférieur à 0
goto INCDIG ; aller INCDIG si le résultat est supérieur à 0
MOVLW CENT ; copie w dans CENT
MOVWF FSR ; copie CENT dans FSR
MOVF INDEX,W ; copie index dans W
ADDWF FSR ; additionner w à FSR
MOVF COMPT_DIG,W ; copier COMP_DIG dans w
MOVWF INDF ; copier w à l'adresse indiquée par FSR
MOVF INDEX,W ; copier index dans W
CALL TABLE ; appel à la table
ADDWF NOMBRE ; additionner w et nombre
MOVF INDEX,W ; copier index dans W
SUBLW 0X01 ;1-W
BTFSC STATUS,Z ; teste si résultat différent de zéro
GOTO FIN ; aller à la fin
INCF INDEX,1 ; incrémenter Index
CLRF COMPT_DIG ; effacer compteur COMPT_DIG
GOTO SUBTR ; aller à subtr
INCDIG
INCF COMPT_DIG,1 ; incrémenter COMPT_DIG
GOTO SUBTR ; aller à subtr
FIN
MOVF NOMBRE,W ; copie nombre dans w
MOVWF UNIT ; copie w dans UNIT
RETURN ; retour

TEMPTACQ
MOVLW 0X21 ; charger 0x21 dans w
MOVWF TEMP ; copier w dans TEMP
REP DECFSZ TEMP, 1 ; décrémenter W
GOTO REP ;aller à REP
RETURN ;retour
AFFICH
BSF PORTB,RB0 ;effacer RB0
BSF PORTB,RB1 ;effacer RB1
BSF PORTB,RB2 ;effacer RB2
BSF PORTB,RB3 ;effacer RB3
MOVF DIZ,W ;copie dizaine dans w
MOVWF PORTC ;affichage dizaine
MOVLW 0X00 ;copie 0 dans w
MOVWF PORTD ;sélection afficheur des dizaines
NOP ;pause
NOP ;pause
NOP ;pause
NOP ;pause
MOVF UNIT,W ;copie unité dans w
MOVWF PORTC ;affichage unité
MOVLW 0X01 ;copie 0x01 dans w

32
MOVWF PORTD ;selection afficheur des unités
NOP ;pause
NOP ;pause
NOP ;pause
NOP ;pause
RETURN ;retour
RESTAURE
SWAPF TEMPSTATUS, W ;restauration status dans w
MOVWF STATUS ;copie w dans status
SWAPF TEMPW,1 ;permutation tempw
SWAPF TEMPW,W ;restauration w
RETFIE

DEBUT
CLRF PORTA ;effacer PORTA
CLRF PORTB ;effacer PORTA
CLRF PORTD ;effacer PORTA
CLRF PORTE ;effacer PORTA
BSF STATUS, RP0 ;accès bank1
BCF STATUS, RP1 ;accès bank1
MOVLW 0XFF ;copie 0xff dans w
MOVWF TRISA ;porta en entrée
MOVLW 0XF0 ; copie 0xf0
MOVWF TRISB ;RB0 0 RB3 en sortie et RB4 à RB7 en entrée
MOVLW 0X00 ;copie 0x00 dans w
MOVWF TRISC ;portc en sortie
MOVWF TRISD ;portd en sortie
MOVWF TRISE ;porte en sortie
MOVLW 0X00 ;copie 0x00 dans w
MOVWF ADCON1 ;porta entrée analogique
BSF PIE1, ADIE ;actvation interruption périphérique
BCF STATUS, RP0 ;accès bank0
MOVLW 0x28 ;charger 40 (valeur initiale) dans w
MOVWF VALINIT ;chargement de valeur initiale dans la varible valinit
BCF INTCON,RBIF ;effacer flag d'interruption RB
BCF PIR1, ADIF ;effacer flag d'interruption CAN
BSF INTCON,GIE ;activation interruption globale
BSF INTCON,PEIE ;activation interruption CAN
BSF INTCON,RBIE ;activation interruption RB
BOUCLE
GOTO BOUCLE
END

33
CONCLUSION
Le theme de Notre project est. d’une importance capital dans la me sure ou l’
electronique et ses sous-ensemble constituent toujours des outils indispensables et
d’optimisation dans tous les donaimes de la vie et en particulièrement le quotidian
des hommes. A cet effet,de toute evidence le régulateur de temperature d’un four
demure comme un instruiment necesaire dans la vie des hommes et qui repondrait
à leurs besoins avec rigueur.Du point de vu utilisation, l’utilsateur pourra regular et
maintenir la temperature en sa guise.

34
ANNEXES

35
Mémoire programme

Mémoire de données

36
37

Vous aimerez peut-être aussi