Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

question sur le PIC16F84A



  1. #1
    rola_style

    question sur le PIC16F84A


    ------

    J'ai une question concernant le PIC16F84A. En fait, j'ai programmé un PIC qui envoie un code de huit bit. Je l'ai testé et il marche parfaitement. Ensuite, j'ai programmé un autre PIC qui reçoit les huits bits. Je l'ai testé séparemment en envoyant une simple clock et tou marche bien. Le problème est, lorsque je branche les deux PIC ensemble, ca ne veut plus marcher. Les huits bits ne sort plus du premier PIC et le deuxième PIC ne reçoit plus rien. J'ai pensé à mettre un suiveur entre les deux étages, mais ceci n'a pas marché. Est ce que le problème vient de la programmation des PICs en assembleur ou est ce que c'est un problème électronique (mauvais branchement entre les deux PICs)???

    Quelqu'un pourrait m'aider???

    Merci

    -----

  2. Publicité
  3. #2
    gedonet

    Re : question sur le PIC16F84A

    Bonjour
    Il faudrait que tu donnes plus de details sur ce que tu fais, comment transmets tu les octets par une routine RS232 soft, une routine I2C soft?
    Comment le pic recepteur detecte qu'il doit lire les données qui arrive, y a t'il un moyen de detecter le debut de la trame?
    Si tu comptes que en alimentant les pics en même temps il vont demarrer exactement en même temps, oublies cela, il y a pleins de chose qui peuvent decaler les programmes, le _PWRTE_ON, la longueur des programmes, etc.
    Gilles

  4. #3
    rola_style

    Re : question sur le PIC16F84A

    Mon programme est en assembleur. J'envoi huit bits qui sont capté par un autre PIC. Le pic récepteur détecte le premier 1 logique qu'il reçoit et c'est à partie de ce moment qu'il emmagasine les septs autre bits. Voici le code principal du récepteur.

    Lire movf PORTA,0 ;
    movwf Code_lu
    btfss Code_lu ,0
    goto Lire
    rlf Code_lu,1; 1er bit lu

    movf PORTA,0
    addwf Code_lu,1
    rlf Code_lu,1; 2eme bit lu

    movf PORTA,0
    addwf Code_lu,1
    rlf Code_lu,1; 3eme bit lu

    movf PORTA,0
    addwf Code_lu,1
    rlf Code_lu,1; 4eme bit lu

    movf PORTA,0 addwf Code_lu,1
    rlf Code_lu,1; 5eme bit lu

    movf PORTA,0
    addwf Code_lu,1
    rlf Code_lu,1; 6eme bit lu


    movf PORTA,0
    addwf Code_lu,1
    rlf Code_lu,1; 7eme bit lu


    movf PORTA,0
    addwf Code_lu,0

    Séparement, le transmetteur et le récepteur fonctionne bien. C'est seulement lorsque je les connecte ensemble. J'ai placer une résistance en série avec une résistance connectée à la tension mais ceci n'a pas marché. Le signal sortant du transmetteur est nul lorsque je connecte les deux PIC ensemble. J'ai même placé un suiveur pour isoler les deux étages mais ceci non plus n'a pas marché.

    Quoi faire?

    Merci Gilles

    Rola

  5. #4
    rola_style

    Re : question sur le PIC16F84A

    Aussi, c'est à l'aide de cette routine que j'envoie mes bits:

    send_byte movwf Reg_byte
    movlw 0x08
    movwf index
    SB1 bcf PORTB,1
    btfsc Reg_byte,7
    bsf PORTB,1
    bsf PORTB,2
    bcf PORTB,2
    rlf Reg_byte,1
    decfsz index,1
    goto SB1
    return

    merci encore

  6. #5
    xouiram

    Re : question sur le PIC16F84A

    Je pense que la rotine de transmission est beaucoup plus rapide que celle de lecture. Mesure pendant combien de temps les 8 bits sont transmis et déterminer la durée de la lecture.
    si j'ai bien lu PORTB2 est l'horloge qui fait la validation de la bit de donnée aur le PORTB1.
    Le cycle de lecture sur le PORTA dure trois cycles d'instruction et la durée de l'HORLOGE n'est que de un seul cycle. IL faudrait en sorte que les deux PIC se synchronisent. Il faut alors définir un protocole de communication rigoureux.
    Le PIC émetteur dit qu'il est prêt sur le PORTB2 et attende de recevoir la confirmation de récepteur que la lecture est terminée.
    PORTA0 avec PORTB0 donnée qui est transférée de A vers B
    PORTA1 vers PORTB1 demande de lecture à la transition montante
    PORTB2 vers PORTA2 affirme que la lecture est terminée à la transition montante.
    Ainsi on règle les problèmes de synchronisation
    Images attachées Images attachées

  7. A voir en vidéo sur Futura

Sur le même thème :

Discussions similaires

  1. influence CEM sur le PIC16f84a
    Par ronny dans le forum Électronique
    Réponses: 13
    Dernier message: 09/05/2010, 14h38
  2. PIC16f84a
    Par clinon dans le forum Électronique
    Réponses: 33
    Dernier message: 06/08/2007, 03h31
  3. pic16f84A
    Par spike 03100 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/02/2007, 20h22
  4. Timer PIC16F84A...??
    Par bimo dans le forum Électronique
    Réponses: 3
    Dernier message: 27/06/2006, 13h30
Découvrez nos comparatifs produits sur l'informatique et les technologies.