Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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.
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.
Bloc d’alimentation
Four
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.
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
- 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
14
Table de vérité
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
4. Décodeur HEF4555B
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
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
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.
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.
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
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
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.
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
23
- Bit 3 (CHS0) à bit 5 (CHS2) : sélection du canal
- 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.
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
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 ?
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
TEMPTACQ
Restauration
Status tempstatus
W tempw
Retour Int.
28
Organigramme de conversion binaire-DCB
CONV
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
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
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
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
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