projet electronique
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

projet electronique



  1. #1
    baillou221

    projet electronique


    ------

    Bonjour à tous dans le cadre d'un projet je doit afficher l'heure minute second et date sur afficheur LCD j'utilise donc une RTC PCF8563 mon PIC16F876 et un LCD la communication ce fait par I2C mon but est de crée un programme sur MPLAB en C mes j'ai du mal, j'ai commencer a faire un programme comme ceci :

    Code:
    #include <16f877A.h> // utilisation du pic 16f877a.h
    #use delay(clock=8000000) // fréquence du quartz
    #use I2C (master, SDA=PIN_C4, SCL=PIN_C3,) // valide le dialogue I2C pour un maître
    #byte PortC = 0x07 // On défini l'adresse du port C
    #byte TribC = 0X87 // On défini l'adresse du registre de direction du port C
    #bit	SCLK = PortC.3 // SCLK est le bit 3 du portC
    #bit	SDA	 = PortC.4 // SDA est le bit 4 du portC
    
    #ifndef PCF8563_WRITE_ADRESS
    #define PCF8563_WRITE_ADRESS 0x? je dois la chercher
    #define PCF8563_READ_ADRESS 0x? je dois la chercher
    #endif
    
    // Registres d'adresse
    #define CONTROL_STATUS_1 0x00;
    #define CONTROL_STATUS_ 0x01;
    #define CLKOUT_CONTROL 0x0D
    #define VL_SECONDS 0x02;
    #define MINUTES 0x03;
    #define HOURS 0x04;
    #define DAYS 0x05;
    #define WEEKDAYS 0x06;
    #define CENTURY_MONTHS 0x07;
    #define YEARS 0x08;
    #define TIMER_CONTROL 0x0E
    #define TIMER 0x0F
    
    char const weekday_names[7][10] =
    {
    {"Sunday"},
    {"Monday"},
    {"Tuesday"},
    {"Wednesday"},
    {"Thursday"},
    {"Friday"},
    {"Saturday"}
    };   
    
    
    typedef struct
    {
    int seconds;    // 0 à 59
    int minutes;    // 0 à 59
    int hours;      // 0 à 23  (24-hour time)
    int day;        // 1 à 31
    int month;      // 1 à 12
    int year;       // 00 à 99
    int weekday;    // 0 = Sunday, 1 = Monday, etc.
    }date_time_t;
    
    
    void PCF8583_write_byte(int address, int data)	//Programme Principal
    {			
         
    disable_interrupts(GLOBAL);
         I2C_start();    // signal start
         I2C_write();   // addresse PCF8563 dans le cas d'une écriture 
         I2C_write(0x02); // données a transférer dans le composant
         I2C_write(0x03); 
         I2C_write(0x04);
         I2C_write(0x05);
         I2C_write(0x06);
         I2C_write(0x07);
         I2C_write(0x08);
    enable_interrupts(GLOBAL);
    }
     
    while(1)
    
    disable_interrupts(GLOBAL);
         I2C_start(); // nouveau départ pour changement du sens du dialogue
         I2C_write(); // adresse PCF8563 dans le cas d'une lecture
         seconds=I2C_read(0) // lecture des secondes
         minutes=I2C_read(0) 
         hours=I2C_read(0) 
         day=I2C_read(0)
         month=I2C_read(0)
         year=I2C_read(0)
         weekday=I2C_read(0)
         I2C_stop()
    enable_interrupts(GLOBAL);
    }
    j'aimerais avoir votre avis sur ce bout de prog.
    CORDIALEMENT

    -----
    Dernière modification par Antoane ; 25/03/2015 à 17h32. Motif: Ajout balises [code]

  2. #2
    antek

    Re : projet electronique

    Ne pas confondre 876, 877, 876A et 877A
    Excuse-moi si je me trompe mais pourquoi .h
    #include <16f877A.h> Excuse-moi si je me trompe mais pourquoi .h ?

Discussions similaires

  1. projet electronique
    Par invitefb594154 dans le forum Électronique
    Réponses: 10
    Dernier message: 21/02/2013, 18h12
  2. Projet électronique
    Par invitee79ee4b8 dans le forum Électronique
    Réponses: 3
    Dernier message: 22/11/2009, 19h15
  3. Projet électronique
    Par invitebd8778d9 dans le forum Électronique
    Réponses: 5
    Dernier message: 20/11/2008, 07h44
  4. Projet électronique
    Par invite1595a84f dans le forum Électronique
    Réponses: 3
    Dernier message: 20/09/2007, 08h32
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...