Bonjour,
je programme avec MikroC, j'ai essayer d'afficher l'heure et la date à partir du composant I²C:DS3231, le résultat est visualisé sur un afficheur LCD configuré au port B du microcontrolleur Pic16f876A, 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é pour le moment est de lire et d'afficher les secondes
est ce qu'il y'a quelqu'un qui peut m'aider...Merci