Rapport de L
Rapport de L
Rapport de L
PRATIQUE
Etude, Conception et simulation d’un thermomètre numérique à base de
microcontrôleur
17 MARS 2023
Objectif :
Notre objectif était de concevoir un montage simple et efficace à base de
microcontrôleur, de capteur de température et d'afficheur 7 segments (AFF).
Nous avons donc étudié différentes solutions techniques pour réaliser notre
thermomètre numérique, en nous basant sur les dernières avancées
technologiques en matière de microcontrôleurs et de capteurs de température.
Nous avons choisi un microcontrôleur programmable pour sa flexibilité et sa
facilité d'utilisation. Le capteur de température que nous avons utilisé est un
capteur numérique de température. Nous avons opté pour un afficheur 7
segments pour afficher la température mesurée en temps réel.
Dans ce rapport, nous allons présenter les différentes étapes de notre activité
pratique, de l'étude et la conception de notre thermomètre numérique à la
simulation de son fonctionnement. Nous allons également discuter des résultats
obtenus et des améliorations possibles pour notre montage.
En somme, notre travail consiste à proposer une solution simple et efficace pour
mesurer la température ambiante d'un local en utilisant les dernières avancées
technologiques en matière de microcontrôleurs et de capteurs de température.
T°C
Capteur µContr
°C
AFF
Instruments utilisés:
Microcotroleur(PIC16F876A) :
Caractéristiques :
- Consommation : moins de 2mA sous 5V à 4 MHz.
- Architecture RISC : 35 instructions de durée 1 ou 2 cycles.
- Durée du cycle : Période de l'oscillateur quartz divisée par 4 soit 200 ns pour
un quartz de 20 MHz.
- Deux bus distincts pour le code programme et les data.
- Code instruction : mot de 14 bits et compteur programme (PC) sur 13 bits, ce
qui permet d'adresser 8 K mots ( de h'0000' à h'1FFF')
- Bus DATA sur 8 bits.
- 33 Ports Entrée-Sortie bidirectionnels pouvant produire 25 mA par sortie.
PORTA = 6 bits et PORTB PORTC et PORTD = 8bits PORTE = 3 bits pour le
16F877 et 22 I/O seulement pour le 16F876.
- 4 sources d'interruption :
- Externe par la broche partagée avec le Port B : PB0
- Par changement d'état des bits du Port B: PB4 PB5 PB6 ou PB7
- Par un périphérique intégré dans le chip: écriture de Data en EEPROM
terminée, conversion analogique terminée, réception USART ou I2C.
- Par débordement du Timer.
- 2 Compteurs 8 bits et 1 compteur 16 bits avec pré diviseur programmable.
- Convertisseur analogique 10 bits à 8 entrées pour le 16F877 et 4 entrées pour
le 16F876.
- UART pour transmission série synchrone ou asynchrone.
- Interface I2C.
- 2 modules pour PWM avec une résolution de 10 bits.
- Interface avec un autre micro: 8 bits + 3 bits de contrôle pour R/W et CS.
- 368 Octets de RAM
- 256 Octets d'EEPROM Data.
- 8K mots de 14 bits en EEPROM Flash pour le programme (h'000' à h'1FFF').
- 1 registre de travail : W et un registre fichier : F permettant d'accéder à la
RAM ou aux registres internes du PIC. Tous les deux sont des registres 8 bits.
Mémoires du PIC16F876A:
Le PIC 16F876A dispose de plusieurs types de mémoire qui peuvent
être utilisés pour stocker des données et des programmes. Voici une
description de chaque type de mémoire :
La mémoire programme (Program Memory) : cette mémoire est
utilisée pour stocker le code exécutable du programme. Le PIC 16F876A
dispose de 14 336 octets de mémoire programme, ce qui est suffisant
pour la plupart des applications.
La mémoire données (Data Memory) : cette mémoire est utilisée pour
stocker les variables et les données temporaires utilisées par le
programme. Le PIC 16F876A dispose de 368 octets de mémoire
données.
La mémoire EEPROM (Electrically Erasable Programmable Read-Only
Memory) : cette mémoire est utilisée pour stocker des données non
volatiles, qui sont conservées même après que le microcontrôleur a été
éteint. Le PIC 16F876A dispose de 256 octets de mémoire EEPROM.
La mémoire RAM (Random Access Memory) : cette mémoire est
utilisée pour stocker des données temporaires utilisées par le
programme. La mémoire RAM est volatile, ce qui signifie qu'elle est
effacée lorsque le microcontrôleur est éteint. Le PIC 16F876A dispose
de 368 octets de mémoire RAM.
Le LM35 est un capteur de température de précision qui peut être utilisé pour mesurer la
température dans les applications électroniques. Il convertit la température en une tension de
sortie proportionnelle à la température en degrés Celsius (°C). Le LM35 est un capteur
analogique et peut être utilisé avec un microcontrôleur pour mesurer la température dans les
applications électroniques. Il est alimenté en tension continue de 4V à 30V et a une plage de
mesure de -55°C à 150°C avec une précision de ±0,5°C à 25°C. Le facteur d’échelle de sortie
du LM35 est de 10 mV/°C et il fournit une tension de sortie de 250 mV à 25°C.
Spécifications du capteur de température analogique LM35 :
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code
protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#include <xc.h>
// Fonction principale
void main(void) {
AFF_T(a,b); // Afficher les dizaines et les unités de la température sur les afficheurs 7
segments
}
}
}
void INIT_PORT() {
TRISC = 0x00;
PORTC = 0x00;
TRISA = 0x01; // Broche RA0 (AN0) configurée comme entrée
PORTA = 0x00;
}
void INIT_CAN(void)
{
int LECT_CAN()
{
GO = 1; // Lancer la conversion A/N
while (GO); // Attendre que la conversion soit terminée
temp = (unsigned int)(ADRESH << 8) + ADRESL; // Stocker la valeur de la
conversion dans temp
temp = (temp * 500) / 1023; // Convertir la valeur en degrés Celsius
return temp;
}
m=0x80+CODE7SEG[d1] ;
PORTC = m; // Envoi du code pour afficher le chiffre correspondant
Conclusion: