Bonjour,
J'ai essayer d'afficher l'heure et la date à partir du composant DS3231, le résultat est visualisé sur un afficheur LCD, voici le code que j'ai utilisé:
// Branchement Ecran LCD
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
// Configuration des PIN LCD
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
void main()
{
// Déclaration des variables et les constantes
unsigned int secondes,sec1,op1,Tr1;
unsigned int minutes;
unsigned int heures;
unsigned int jour;
unsigned int mois;
unsigned int annee;
unsigned int temp;
char*DATE;
char buffer1[8], buffer2[8], buffer3[8];
// Initialisation LCD
LCD_Init();
LCD_Cmd(_LCD_CLEAR);
LCD_Cmd(_LCD_CURSOR_OFF);
while(1)
{
// Communication I²C
I2C1_Init(10000); // initialisation du bus I²C
I2C1_Start(); // Start I²C
I2C1_rd(0xD1); // Adresse Ds3231
sec1=I2C1_rd(0x00); // Lecture des secondes
Tr1=Dec2BCD(sec1);
IntToStr(Tr1,buffer1);
Lcd_Out(1,1,buffer1);
I2C1_Stop(); // arrêt du signal I²C
Delay_100ms();
}
}
le problème c'est que le montage fonctionne en simulation(Proteus), mais sur le plan pratique, l'afficheur LCD reste bloqué sur la valeur 149
NB: dans le programme, plusieurs variables sont déclarées mais elles ne sont pas utilisées, ma priorité est de lire et d'afficher les secondes
est ce qu'il y'a quelqu'un qui peut m'aider...Merci
-----