Bonsoir
quelqu'un pourrait me donner la routine a suivre pour la reception d'une donnée(une certaine lettre) sur la broche RX d'un pic16f876a,et l'allumage d'une DEL(RA1),si cette donnée arrive.
merci
-----
Bonsoir
quelqu'un pourrait me donner la routine a suivre pour la reception d'une donnée(une certaine lettre) sur la broche RX d'un pic16f876a,et l'allumage d'une DEL(RA1),si cette donnée arrive.
merci
Bonsoir,
en assembleur ?
vede
:O]
ps : réception...quel mode? et débit? et protocole?
ps : en C, tu fais PortA.1=1 pour allumer la led....
Pour les urgences en France, il y a le 15, le 112 etc
La Charte :
11. Les titres des messages doivent être explicites.
rere ps: en ASM, un truc du genre BSF PORTA,1 ;O]
1 topic ça ne suffit pas ?
doublon : http://forums.futura-sciences.com/el...x-16f876a.html
hi ;O]
c'est pourtant clair,
sa vie dépend de la reception d'une certaine
lettre sur la broche "RX" d'un certain pic...
mais tranquille quand meme, et oui, on sait
toujours pas de quel délai on dispose ;O]
vede
;O]
c'est en langage C,
j'ai bien lu la chartre,mais comment je dois faire si personne ne me repond,il me faut de l'aide absolument.
une fois votre message ecrit,il est oublié
RS232,8 bit,a une vitesse de 2400 bauds
,mais je ne recommencerai plus,mais aidez moi s'il vous plait
hi
c'est un troll ou quoi ??
sinon :
compilo?
puis:
protocole?
débit?
vede
;O]
j'ai repondu
quelqu'un aurait -il une suggestion?
Je pense que tu devras commencer par apprendre la patience.
Nous sommes des amateurs ... pas tes serviteurs !
Si tu veux brancher 2 PIC, il faut en configurer un en émetteur et un en récepteur, prévoir pour chacun vitesse et autres caractéristiques habituelles de la liaison série.
Un jour j'ai fait une transmission PC (hypertermial) --> PIC sans aucun problème.
Utilises-tu un MAX232 ? Je suppose que non. Il ne faut donc pas inverser les bit (ce que fait le MAX)
c'est exactement,ce que j'ai fais,et ca marche parfaitement,mais une fois sur plaque labdec,plus rien
oui,désolé
ben la connection avec hyperterminal,j'appuie sur la lettre,et la DEL,s'allume,il n'y a rien de plus simple que ca,mais sur une plaque labdec,la transmission fonctionne,je vois bien ma lettre sur l'oscilloscope en binaire,sur 8bits) et pareil sur la broche Rx du second PIc,mais le pic ne reagit pas,et une fois l'alimentation du second pic est eteint,là,elle s'allume et fais son cycle 2 fois....
On ne comprend rien !oui,désolé
ben la connection avec hyperterminal,j'appuie sur la lettre,et la DEL,s'allume,il n'y a rien de plus simple que ca,mais sur une plaque labdec,la transmission fonctionne,je vois bien ma lettre sur l'oscilloscope en binaire,sur 8bits) et pareil sur la broche Rx du second PIc,mais le pic ne reagit pas,et une fois l'alimentation du second pic est eteint,là,elle s'allume et fais son cycle 2 fois....
C'est quoi ton montage :
PIC --> PIC
PIC --> hyperterminal
Et le schéma et le programme ?
Avant de pouvoir faire communiquer 2 pic,jdois les tester separement avec hyperterminal,et chacun fonction parfaitement.....
///////////////////////////////////////////////Code:programme transmission #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[]={"AB"}; 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; PR2 = 21; //frequency of 40KHz(PWM)// CCPR1L = 11; //Duty cycle// T2CON = 4; //Enable TMR2,prescaler 1// TRISC = TRISC&0xFB; //PORTC.2 and 3 output// CCP1CON = CCP1CON | 0x0C; // Enable PWM// while(1) { if(RB7) { Small_Delay(); serial_putchar(0x41); } if(RB6) { Small_Delay(); serial_putchar(0x42); } } } //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 //RCIE=1; //Enable Reciever interrupt TXIF=0; // Disabling Transmission flag } void serial_intial_rec(void) { SYNC=0; RX9=0; SPEN=1; BRGH=1; SPBRG=88; //RCIE=1; //Enable interupt. 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 } /////////////////////////////////////////////////// programme reception #include<io16f876.h> // Prototype #include"LCDdrive.h" void serial_initial_rec(void); void delay(unsigned char t); unsigned char mymodule[]={"In Living Room"}; unsigned char mymodule1[]={"You'Re Going Out"}; unsigned char mymodule2[]={"Be careful!"}; unsigned char mymodule3[]={"Everything is OK"}; int i,j; unsigned char t; void main(void) { serial_initial_rec(); OPTION=0x07; /*set prescaler to 256*/ ADCON0=0X07; TRISA=0x00; TRISB=0xC0; PORTA=0x00; PORTB=0; TRISC=0x80; LCD_initialise(); for(;;) { if(RCIF==1) // when the octet is sent RCIF goes to 1,PORTB take the value of RCREG { // PORTA=RCREG; if(RCREG==0x41) // = A { PORTA=0x01; delay(2); LCD_cursor(0,0); /*move the cursor to the 1st line*/ LCD_puts(mymodule); LCD_cursor(0,1); /*move the cursor to the 2nd line*/ LCD_puts(mymodule3); delay(8); LCD_clear(); PORTA=0; } if(RCREG==0x42) // = B { LCD_cursor(i,0); /*move the cursor to the 1st line*/ LCD_puts(mymodule1); delay(2); PORTA=0x02; LCD_initialise(); LCD_cursor(0,0); /*move the cursor to the 1st line*/ LCD_puts(mymodule2); for (j=0;j<5;j++) { PORTA=0x02; // Bip delay(1); PORTA=0x00; delay(1); } LCD_clear(); PORTA=0; } RCIF=0; } } } void serial_initial_rec(void) { SYNC=0; RX9=0; SPEN=1; BRGH=1; SPBRG=88; CREN=1; //continuous recieve enable bit. } 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 } } }
voila
.
Dernière modification par gienas ; 20/08/2009 à 19h09. Motif: Ajouté les balises code
Désolé, je ne pratique pas le C.