// 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