Bonjour,
J'ai récemment décider de programmer un PIC 16F628A pour qu'il agisse comme un relais temporiser a l'enclenchement quand on lui envoi son alimentation, en gros je lui envoie son alim et x seconde plus tard le relais sur RA0 s'enclenche (j'ai mit un transistor 2N3904 entre le relais et le PIC bien sur).
Au par avant j'avais déjà programmer et je n'avais jamais eu de problèmes.
Je ne sais pas pourquoi mais cette fois si le PIC ne veut pas faire ce que je lui demande et je vais vous expliquer de A à Z comment j'ai procéder.
1) Je craie mon programme avec MPLAB en prenant compte le model du PIC et sa configuration pour l’oscillateur externe de 4MGHz.
2) Je vérifie le bon fonctionnement du programme,si il n'y a pas d'erreur de frappe ect... et je le teste avec le simulateur.
3) Tous va bien donc je procède a la compilation et a l'exportation du programme en hex.
4) Je lance donc le programme de Pickit 2,j’efface la mémoire du PIC pour être sur et ensuite j'injecte le programme.
5) Je lance une versification et ensuite je le met sur mon PCB.
6) Je branche l'alim de mon PCB et rien ne se passe,le relais ne faire rien.
7) Je regarde si le PIC est bien alimenter et c'est bien le cas,je regarde si les piste son bonne et si l'oscillateur externe est bon.
8) Je constate que sa ne fonctionne toujours pas et j'ai bon reprogrammer le PIC et vérifier si le programme n'est pas mauvais mais je ne trouve pas la solution.
Avez vous une idée du problème? Je vais fourni bien sur le programme pour que vous l'analysiez et me dire si il est bon.
Voici le programme que j'ai écrit :
// ------------------------------Déclaration de fichier externes--------------
#include "delay.c" // déclaration du fichier contenant les temporisations
//---------------------------------E/S-----------------------------------------------
bit relais @ RA0;
//------------------------------Variables generales-------------------------------
char etat_inters;
char a;
//-------------------------------Fonction principale------------------------------
void main(void)
{
PORTA = 0; // Initialisation des pattes du microcontrôleur
TRISA = 0b00000000;
{
delay_10ms(500);
relais= 1;
}
}
-----