Bonjour,
Pourriez-vous m'indiquez si les nombreuses heures que j'ai passés à apprendre à programme un PIC ont servi à qquchose !
voici le programme, que j'ai fait en BASIC:
****************************** *******************
* PIC en BASIC *
****************************** *******************
// RA0 : détection audio
// RA1 : Validation du circuit
// RA2 : NC
// RA3 : NC
// RA4 : NC
// RB0 : NC
// RB1 : REC / PLAY
// RB2 : DECLENCHEMENT
// RB3 : NC
// RB4 : NC
// RB5 : IMPULSION PC
// RB6 : RX
// RB7 : TX
****************************** *
* configuration des ports *
****************************** *
init: // Tout début du programme
symbol PORTA=5 // On s'occupe du PORTA
symbol TRISA=$85 // On s'occupe du registre A
POKE TRISA='11111' // On configure tous les PIN en ENTREE
DIRS=%11100110 //B7,B6,B5,B2,B1=sortie
LOW 7 // On mets à l'état bas RB7 (tx)
HIGH 6 // On mets à l'état haut RB6 (rx)
LOW 5 // On mets à l'état bas RB5 (impulsion)
LOW 2 // On mets à l'état bas RB2 (demarrage)
HIGH 1 // On mets à l'état haut RB1 (rec/play)
******************************
* test de PA1 *
******************************
debut: IF PIN1=0 THEN suite // RA1 = 1, on va sur 'suite'
GOTO debut // RA1 = 0, on va sur 'debut'
*****************************
* test de PA2 *
*****************************
suite: IF PIN0=1 THEN detec // RA0 = 1, on va sur 'detec'
GOTO debut // RA0 = 0, on va sur 'debut'
***************************
* test de PA2 (bis) *
***************************
detec: chrono = chrono + 1 // On incrémente de 1, la variable CHRONO
LOW PIN1 // On mets à l'état bas, RB1 (lecture)
PAUSE 300 // On marque une pause de 300ms
HIGH PIN2 // On mets à l'état haut, RB2 (demarage)
IF chrono >= 90 then sortir // Si 'chrono' > 90s, on sort sur 'sortir'
IF PIN1=0 THEN detect // PIN1 est tjrs à 1, on repar sur 'detec'
GOTO sortir // PIN0 est passé à 0, on va sur 'sortir'
*************************
* 'sortir' *
*************************
sortir: PAUSE 300 // On fait une pause de 300ms
LOW PIN2 // On mets à l'état bas RB2 (demarage)
HIGH PIN1 // On mets à l'état haut RB1 (lecture)
LOW PIN5 // On mets à l'état bas RB5 (impulsion)
HIGH PIN7 // On mets à l'état haut RB7 (passe en TX)
PAUSE 300 // On fait une pause de 300ms
FOR B1=0 TO chrono(1 // On fait la boucle, jusqu'à la valeur
// contenu dans la variable 'chrono'.
HIGH PIN2 // On mets à l'état haut PIN2 (demarage)
NEXT // Fin de la boucle
PAUSE 300 // On fait une pause de 300ms
LOW PIN7 // On mets à l'état bas PIN7 (pas de TX)
HIGH PIN6 // On mets à l'état haut PIN6 (passe en RX)
PAUSE 500
PAUSE 500
GOTO init // On repars au début du programme
END // FIN...
Dites moi ce que vous en pensez !!!!!!!!!!
Au fait, les cours de Bigonoff sont super bien faits !!!!!!!!
14bds75
-----