TX-RX(16F876a)
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

TX-RX(16F876a)



  1. #1
    invite2e667358

    TX-RX(16F876a)


    ------

    Bjr a tous,je suis nouveau sur ce forum,on m'a dit que vous pourriez me depanner....
    j'effectue une communication entre pic de reference 16f876a(lors de l'appui sur un bouton poussoir relie a RB6 du premier PIC,je dois allumer une DEL relie a RA0 (par l'envoie d'un code ASCII)mon probleme est quand je branche la broche Tx a la broche Rx du second pic,cela ne fonctionne pas du tt)
    mais j' ai encore un plus gros probleme,c'est quand j'alimente mon 1er pic et pas le second et que je relie les 2pic par simple fil,cela fonctionne(tres etrange,n'es ce pas?),Donc auriez vous une idee sur l'origine du probleme s'il vous plait
    Merci d'avance

    -----

  2. #2
    sdec25

    Re : TX-RX(16F876a)

    Bonjour et bienvenue sur le forum.
    Déjà, sache qu'il y a une touche point (.) et une touche Entrée sur ton clavier

    mon probleme est quand je branche la broche Tx a la broche Rx du second pic,cela ne fonctionne pas du tt


    mais j' ai encore un plus gros probleme,c'est quand j'alimente mon 1er pic et pas le second et que je relie les 2pic par simple fil,cela fonctionne(tres etrange,n'es ce pas?),Donc auriez vous une idee sur l'origine du probleme s'il vous plait
    Sûrement un programme très bogué.

  3. #3
    invite2e667358

    Re : TX-RX(16F876a)

    desole,je ferai mieux a mon prochain message,mais en attendant,quelqu'un aurait une piste au niveau de mon probleme?

  4. #4
    sdec25

    Re : TX-RX(16F876a)

    Citation Envoyé par MDN Voir le message
    mais en attendant,quelqu'un aurait une piste au niveau de mon probleme?
    ..........
    Citation Envoyé par sdec25
    Sûrement un programme très bogué.

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

    Re : TX-RX(16F876a)

    Fait voir ton programme, tu utilise quel compilateur ?
    Tu peut utiliser le Port C pour transmettre le code ASCII.
    le mieux serait de faire
    while (1)
    {
    if (pin_RB6 ==1)
    {
    port_c = code_ascii ;
    }
    else
    {
    port_c = 0 ;
    }}

    et pour le slave
    while (1)
    {
    if (port_c == code_ascii);
    {
    RA0 = 1 ;
    }
    else
    {
    RA0 = 0 ;
    }}

  7. #6
    invite2e667358

    Re : TX-RX(16F876a)

    j'utilise "IAR embeded",et je transfere mon programme en utilisant PPPv3,sur une "PIC Board"
    voic mes 2 programmes(le premier est pour la transmission) et le second le reception
    //////////////////////////1er PIC//////////////////////////

    #include<io16f876a.h> // Prototype
    #include"LCDdrive.h"

    void serial_intial_trans(void);
    void serial_intial_rec(void);
    void serial_putchar(unsigned char cD);
    void Small_Delay(void);
    unsigned char words[]={"A"};
    int i,j,cD,m;


    void main(void)
    {
    serial_intial_trans(); //Initialisation of transmission
    serial_intial_rec(); // Iniatilisation of reception
    TRISB=0xc0;
    TRISA=0x00;
    PORTB=0x00;
    while(1)
    {
    if(RB7)
    {
    Small_Delay();
    serial_putchar(0x41);
    }

    }
    }
    }

    //Config for the Transmission TXSTA and RXSTA //
    void serial_intial_trans(void)
    {
    SYNC=0;
    BRGH=1;
    SPEN=1; //serial port enabled
    SPBRG=88; //9600 baud
    TXIE=1; //Disable interruption
    TX9=0; //8-bit transmission
    TXEN=1; //set baud rate to high BRGH=1 and TXEN=1
    }

    void serial_putchar(unsigned char cD)
    {
    while(TXIF!=1); // If 1,emission register is empty,so we go out the loop
    TXREG=cD; //We place the character cD to send in the TXREG register
    TXIF=0; // Disabling Transmission flag
    }



    void serial_intial_rec(void)
    {
    SYNC=0;
    RX9=0;
    SPEN=1;
    BRGH=1;
    SPBRG=88;
    CREN=1; //continuous recieve enable bit.

    }

    void Small_Delay(void)
    {
    unsigned int j;
    for(j=0;j<32000;j=j+1); // do it until J reac
    }/////////////////////////////////////////
    et pour le 2eme PIC(recepetion)////////////
    #include<io16f876a.h> // Prototype
    #include"LCDdrive.h"
    void delay(unsigned char t);
    int i,t,j;
    unsigned char once=0;


    void main(void)
    {
    OPTION=0x07; /*set prescaler to 256*/
    TRISA=0x00;
    TRISB=0xC0;
    PORTA=0x00;
    PORTB=0;
    TRISC=0x80;
    SPBRG=88;
    TXSTA=0x04;
    RCSTA=0x90;
    LCD_initialise();

    for(;
    {
    if(RCIF==1) // when the octet is sent RCIF goes to 1,PORTB take the value of RCREG
    {
    }

    if(RCREG==0x42) // = B
    { delay(2);
    PORTA=0x02;
    for (j=0;j<5;j++)
    {
    PORTA=0x02; // Bip
    delay(1);
    PORTA=0x00;
    delay(1);
    }
    LCD_clear();
    PORTA=0;
    }
    }
    RCIF=0;
    }
    }

    void delay(unsigned char t) /*delay function*/
    {
    int a,b;
    for(a=0;a<t;a++)
    {
    for(b=0;b<8;b++)
    {
    TMR0=0; //clear TMRO
    while(TMR0-200); //wait for a while
    }
    }
    }
    le voici

Discussions similaires

  1. PIC 16f876A + sotie A/N
    Par invite64e14557 dans le forum Électronique
    Réponses: 3
    Dernier message: 27/07/2009, 21h21
  2. 16f876A et Timer avec CCS
    Par invite4ee64344 dans le forum Électronique
    Réponses: 10
    Dernier message: 28/09/2008, 21h53
  3. problème programmation d'un pic 16F876A
    Par flyermike dans le forum Électronique
    Réponses: 14
    Dernier message: 29/08/2007, 15h18
  4. 16f876A
    Par invite56f9974a dans le forum Électronique
    Réponses: 4
    Dernier message: 12/03/2007, 19h35
  5. pic 16F876A + résonateur
    Par Toufinet dans le forum Électronique
    Réponses: 2
    Dernier message: 27/04/2006, 21h31
Découvrez nos comparatifs produits sur l'informatique et les technologies.