Le DS1307
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Le DS1307



  1. #1
    invited3a2f8af

    Exclamation Le DS1307


    ------

    salut tout le monde j'ai un problème avec le DS1307 je travaille avec le pic 16F877A et en assembleur je besoin d' aide s'il vous plait

    -----

  2. #2
    thewarner

    Re : Le DS1307

    quel est ton problème ?
    Il faut nous en dire plus !

  3. #3
    invited3a2f8af

    Re : Le DS1307

    "thewarner" Merci pour votre réponse j'ai construit un programme mais ca marche pas je ne c'est pas est ce que le problème dans la configuration de I2C ou dans logiciel de simulation " ISIS" et voila une partie de mon programme et merci une autre fois

    ; initialiser I2C
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx
    ; Configuration du module MSSP du PIC 16F876A (I2C maître)
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx
    BANK1
    bsf TRISC , 3 ; broche RC3/SCK/SCL configurée en entrée
    bsf TRISC , 4 ; broche RC4/SDI/SDA configurée en entrée

    bsf SSPSTAT , SMP ; bit 7 (SMP) = 1 : fréquence de l'horloge du bus I2C : F SCL = 100 kHz
    bcf SSPSTAT , CKE ; bit 6 (CKE) = 0 : Disable SMBus specific inputs

    movlw 0x31
    movwf SSPADD ; (SSPADD) = (FOSC / (4*f SCL)) - 1 = 0x31
    ; FOSC = 20 MHz
    BANK0
    movlw B'00101000'
    movwf SSPCON
    ; bit 5 (SSPEN) = 1 : enable the MSSP
    ; bit 3 (SSPM3) = 1
    ; bit 2 (SSPM2) = 0
    ; bit 1 (SSPM1) = 0
    ; bit 0 (SSPM0) = 0
    ; (SSPM3:SSPM0) = (1000) : MSSP configuré dans le mode I2C maîtr
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx
    ; Configuration DS1307 (Real Time Clock) bus I2C esclave
    ; adresse I2C : 1011000
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx
    ; Ecriture dans le registre de contrôle (adresse 0x07) du DS1307
    call I2C_start

    movlw B'11010000' ; 8 bits à écrire (7 bits d'adresse + RW)
    ; 1011000 + 0 (write)
    call I2C_write
    call I2C_ACK_slave_to_master

    movlw 0x07 ; 8 bits à écrire (adresse du registre de contrôle du DS1307)
    call I2C_write
    call I2C_ACK_slave_to_master

    movlw B'00000000' ; écriture du contenu du registre de contrôle du DS1307
    ; bit 4 : SQWE = 1
    ; bit 1 : RS1 = 0
    ; bit 0 : RS0 = 0
    ; 1,000 000 Hz sur la sortie SQW/OUT
    call I2C_write
    call I2C_ACK_slave_to_master

    call I2C_stop
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx
    ; écriture de la nouvelle date/heure dans DS1307

    call I2C_start

    movlw B'11010000' ; 8 bits à écrire (7 bits d'adresse + RW)
    ; 1011000 + 0 (write)
    call I2C_write
    call I2C_ACK_slave_to_master

    movlw 0x00 ; 8 bits à écrire (adresse du registre du DS1307)
    call I2C_write
    call I2C_ACK_slave_to_master

    movf secondes0 , W ; écriture dans le registre d'adresse 0x00
    call I2C_write
    call I2C_ACK_slave_to_master

    movf minutes0 , W ; écriture dans le registre d'adresse 0x01
    call I2C_write
    call I2C_ACK_slave_to_master

    movf heures0 , W ; écriture dans le registre d'adresse 0x02
    call I2C_write
    call I2C_ACK_slave_to_master

    movf jours0 , W ; écriture dans le registre d'adresse 0x03
    call I2C_write
    call I2C_ACK_slave_to_master

    movf date0 , W ; écriture dans le registre d'adresse 0x04
    call I2C_write
    call I2C_ACK_slave_to_master

    movf mois0 , W ; écriture dans le registre d'adresse 0x05
    call I2C_write
    call I2C_ACK_slave_to_master

    movf annee0 , W ; écriture dans le registre d'adresse 0x06
    call I2C_write
    call I2C_ACK_slave_to_master

    call I2C_stop

    goto start ; programme principal
    ;***************************** ****************************** ******************
    ; PROGRAMME PRINCIPAL *
    ;***************************** ****************************** ******************
    start

    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    ; Lecture du calendrier (DS1307)
    ; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    call I2C_start
    movlw B'11010000' ; 8 bits à écrire (7 bits d'adresse I2C + 0 Write )
    call I2C_write
    call I2C_ACK_slave_to_master

    movlw B'00000000' ; 8 bits à écrire (registre d'adresse 0x00)
    call I2C_write
    call I2C_ACK_slave_to_master

    call I2C_Repeated_Start

    movlw B'11010001' ; 8 bits à écrire (7 bits d'adresse + 1 Read)
    call I2C_write
    call I2C_ACK_slave_to_master

    call I2C_read
    movwf secondes ; lecture des secondes (registre d'adresse 0x00)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf minutes ; lecture des minutes (registre d'adresse 0x01)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf heures ; lecture des heures (registre d'adresse 0x02)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf jours ; lecture des jours (registre d'adresse 0x03)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf date ; lecture de la dates (registre d'adresse 0x04)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf mois ; lecture des mois (registre d'adresse 0x05)
    call I2C_ACK_master_to_slave

    call I2C_read
    movwf annee ; lecture de l'année (registre d'adresse 0x06)

    call I2C_NOACK

    call I2C_stop

    MOVF secondes,w
    ; movf minutes,w
    movwf PORTB

    bsf PORTB,7
    CALL RETAR
    CALL RETAR
    bCf PORTB,7

    GOTO start
    END

  4. #4
    invite7a49d0d5

    Cool Re : Le DS1307

    Bonsoir,

    faut configurer SDA et SCL en sorties...

    vede
    ;O]
    _______________
    ...

  5. A voir en vidéo sur Futura
  6. #5
    invited3a2f8af

    Re : Le DS1307

    salut "VEDE"
    non, pour la configuration du module MSSP en mode I2C maître
    On commence par configurer les broches RC3/SCK/SCL et RC4/SDI/SDA en entrées et merci

  7. #6
    invite7a49d0d5

    Cool Re : Le DS1307

    salut BABOU ;O]

    en neffet... autant pour moi...
    c'est très zétrange... mais c'est comme ça ;O]

    tu as vu le site :
    http://pagesperso-orange.fr/fabrice....2C_16F876A.htm
    il y a un exemple fonctionnel complet et détaillé en asm...

    vede
    ;O]
    ____________
    ...

  8. #7
    invited3a2f8af

    Re : Le DS1307

    MERCI BEAUCOUP "VEDE"
    J'ai fait la simulation de ce projet avec logiciel "isis" mais ca marche pas est ce que le problème dans mon logiciel "ISIS" ?

  9. #8
    invite7a49d0d5

    Cool Re : Le DS1307

    re ;O]

    ça se pourrait bien...
    après j'y connais rien à ISIS car c'est cher et car je ne suis pas un adepte de la simu...
    t'as pas moyen de câbler ça "en vrai" rapidement?

Discussions similaires

  1. Horloge DS1307
    Par invite67c9851b dans le forum Électronique
    Réponses: 20
    Dernier message: 22/02/2015, 22h54
  2. Ds1307 à ds3231
    Par invite0389c90d dans le forum Électronique
    Réponses: 6
    Dernier message: 18/05/2010, 09h34
  3. Ds1307 ET 18F452
    Par invite489d7312 dans le forum Électronique
    Réponses: 3
    Dernier message: 06/05/2010, 13h50
  4. souci ds1307
    Par invite4cba64e8 dans le forum Électronique
    Réponses: 3
    Dernier message: 22/06/2009, 07h38
  5. Ds1307
    Par invite369c4784 dans le forum Électronique
    Réponses: 2
    Dernier message: 11/02/2007, 20h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.