0% ont trouvé ce document utile (0 vote)
48 vues2 pages

Configuration LCD et contrôle température

sfsdfsdfs

Transféré par

khaldiselim435
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
48 vues2 pages

Configuration LCD et contrôle température

sfsdfsdfs

Transféré par

khaldiselim435
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

// Configuration des broches pour le LCD

sbit LCD_RS at RD0_bit;


sbit LCD_EN at RD1_bit;
sbit LCD_D4 at RD2_bit;
sbit LCD_D5 at RD3_bit;
sbit LCD_D6 at RD4_bit;
sbit LCD_D7 at RD5_bit;

sbit LCD_RS_Direction at TRISD0_bit;


sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD4_bit;
sbit LCD_D7_Direction at TRISD5_bit;

// Définitions pour les LED et le moteur


#define RED_LED PORTB.F0
#define YELLOW_LED PORTB.F2
#define MOTOR PORTB.F3

unsigned int temp; // Variable pour stocker la température

// Prototype de la fonction pour obtenir la température


unsigned int Get_Temperature();

void main() {
// Initialisation des ports
TRISB = 0x00; // Port B configuré en sortie
TRISD = 0x00; // Port D configuré en sortie
ADCON1 = 0x07; // Désactive les entrées analogiques

Lcd_Init(); // Initialisation du LCD


Lcd_Cmd(_LCD_CURSOR_OFF); // Désactive le curseur du LCD

// Affichage initial
Lcd_Out(1, 1, "CALIFORNIA GYM");
Delay_ms(2000); // Pause de 2 secondes
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1, 1, "14-11-24");
Lcd_Out(2, 1, "14:15");
Delay_ms(2000); // Pause de 2 secondes
Lcd_Cmd(_LCD_CLEAR);

// Éteindre les périphériques au démarrage


RED_LED = 0;
YELLOW_LED = 0;
MOTOR = 0;

while(1) {
temp = Get_Temperature(); // Lecture de la température
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1, 1, "Temp = ");
Lcd_Chr(1, 8, (temp / 10) + '0'); // Affiche les dizaines
Lcd_Chr(1, 9, (temp % 10) + '0'); // Affiche les unités
Lcd_Out(1, 10, " C");

// Contrôle des LEDs et du moteur


if(temp > 28) {
RED_LED = 1; // Allume la LED rouge
YELLOW_LED = 0; // Éteint la LED jaune
MOTOR = 1; // Active le moteur
} else {
RED_LED = 0; // Éteint la LED rouge
YELLOW_LED = 1; // Allume la LED jaune
MOTOR = 0; // Désactive le moteur
}

Delay_ms(500); // Pause de 500 ms pour éviter les scintillements


}
}

// Fonction pour simuler la lecture de la température


unsigned int Get_Temperature() {
// Remplacez cette partie par une lecture réelle via un capteur LM35
return 29; // Valeur de température simulée
}
martina smeraldi

Vous aimerez peut-être aussi