Programmation pic 16f84

loulou -  
 Ros@ -
Bonjour,
voila je dois programmer un pic qui doit allumer 8 leds qui sont connecter sur le port b du pic seulement elle doivent s allumer les unes a la suite des autres mais seulement lorsque que j appuis sur un bouton poussoir connecter sur le port a (une sorte de mode pas a pas) en gros la premiere led s allume et la deuxieme doit attendre que j appuye sur le bouton pour s allumer et ainsi de suite aidez moi c pour mon stage et je galere deja depuis trois jour !!!!merci a vous coordialement loulou
A voir également:

11 réponses

C3riZz
 
Petit cadeau qui devarit aider !

#include <16F84A.H>
#fuses XT,NOWDT

#byte PORTA =5
#byte PORTB =6
#bit BP1 =PORTA.0
#bit BP2 =PORTA.1
//#bit LED1 =PORTB.0
//#bit LED2 =PORTB.1
//#bit LED3 =PORTB.2
//#bit LED4 =PORTB.3
//#bit LED5 =PORTB.4
//#bit LED6 =PORTB.5
//#bit LED7 =PORTB.6
//#bit LED8 =PORTB.7
#use delay (clock=4000000)
void INIT_UC(void);
main()
{
INIT_UC();
do{

if (BP1==0)

{

PORTB=0X03;
delay_ms(200);
PORTB=0X0C;
delay_ms(200);
PORTB=0X30;
delay_ms(200);
PORTB=0XC0;
delay_ms(200);
PORTB=0X30;
delay_ms(200);
PORTB=0X0C;
delay_ms(200);
PORTB=0X03;
delay_ms(200);
PORTB=0X05;
delay_ms(200);
PORTB=0X0A;
delay_ms(200);
PORTB=0X14;
delay_ms(200);
PORTB=0X28;
delay_ms(200);
PORTB=0X50;
delay_ms(200);
PORTB=0XA0;
delay_ms(200);
PORTB=0X50;
delay_ms(200);
PORTB=0X28;
delay_ms(200);
PORTB=0X14;
delay_ms(200);
PORTB=0X0A;
delay_ms(200);
PORTB=0X05;
}

if (BP1==1)

{

PORTB=0X81;
delay_ms(200);
PORTB=0X42;
delay_ms(200);
PORTB=0X24;
delay_ms(200);
PORTB=0X18;
delay_ms(200);
PORTB=0X24;
delay_ms(200);
PORTB=0X42;
delay_ms(200);
PORTB=0X81;
delay_ms(200);
}

if (BP2==1)

{

PORTB=0X18;
delay_ms(200);
PORTB=0X00;
delay_ms(200);
}
}
while(1);
}
void INIT_UC(void)
{
set_tris_b(0b00000000);
PORTB=0x00;
}
5
Smam
 
Avec un compteur?

ou alors tu met des etapes de blocage.

en assembleur un truc du type:
Allumer la led 1
attendre le bouton poussoir
allumer led 2
attendre que le bouton soit relevé
attendre que le bouton soit enfoncé
allumer led 3

etc...
J'ai pas le code de l'assembleur en tête c'est pour ca que je l'écris en Francais
4
atef
 
quelle est votre language de programmation : en c ou en microcontroleur
0
papirus
 
ce programme m'ai l'air un peu fastidieux
0
ac 3 Messages postés 7418 Date d'inscription   Statut Membre Dernière intervention   840 > atef
 
C'est quoi le language microcontrôleur ???
0
pont Messages postés 210 Statut Membre 27
 
Bonjour smam,

Même si tu l'écris en français, tu peux donner une meilleure structure à ton programme, parce que si tu avais 100 leds à faire tourner, comment tu ferais? Il faut certainement que tu déclares une variable en place du numéro de broche du port, tu l'inities à zéro au départ et que tu l'incrémentes et reboucles quand tu arrives à 8, cela aura une allure un peu plus chouette, non?
pont
0
pont Messages postés 210 Statut Membre 27 > papirus
 
Bonjour papyrus

Oui, c'est fastidieux et il faut qu'il améliore, comme on le voit sur ma réponse.
pont
0
nadine
 
tous document et cours sur le microcontroleur, programmation , électronique numérique et montage.
tous cela est gratuit !!!!!!!!!!!!
visitez : www.artronik.do.am
3
nadine
 
<gras>tous document et cours sur le microcontroleur, programmation , électronique numérique et montage.
visitez : www.artronik.do.am
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pont Messages postés 210 Statut Membre 27
 
Bonjour,

Tout est gratuit sur artronic, mais il n'y a pas de programmation là-dedans! Je suis allé voir, j'ai trouvé, en lieu du programme des lignes garnies de zéros ou autres chiffres, comment veux-tu que je lise le moindre programme là-dedans, il faut lire les instructions, une par une, j'ai regardé un soi-disant code secret de portail, le schéma est ultra classique et sans innovation, cela fait tartouille, et il est compliqué avec du matriçage, le mien est mieux, au lieu de 8 fils d'E-S je n'en ai que 4, et j'ai pourtant 5 chiffres dans mon code, je pourrais n'en mettre que 4, et je ne multiplexe pas, c'est plus simple, enfin le problème n'est pas là, il n'y a pas de programmation sur ce site
pont
0
genevoix Messages postés 1 Statut Membre
 
bon je crois que je peux t'aider mais je veux tu sois un peu clair ..mais avant quel langage utilise tu ? en C ou MPlab?
0
pont Messages postés 210 Statut Membre 27
 
Bonjour Genevoix

Tu es de la famille de Maurice Genevoix, de l'Académie Française?
Je programme en assembleur MPLAB, le PIC16F88, car le 84 ne peut pas se débuguer avec l'ICD2, ni avec rien d'ailleurs. Sinon un programme du 84 peut passer sur le 88, en changeant les déclarations de début, les initialisations en général.

. . Ce 88 est très bien, et très fourni en possibilités, mais ce qui se passe, c'est que c'est difficile de l' utiliser parce que ça se marche sur les pieds, il y a une broche qui a 5 fonctions, tu vois le genre, on ne sait pas trop si on est bien sur la bonne fonction, ce qui fait que j'aurais bien utilisé le 16F886 qui a 10 pattes de plus, c'est le même, avec un peu moins de compression, mais un autre problème ridicule apparaît, il n'y a pas de Textool pour mettre le PIC, ni chez 3M, ni chez les copieurs chinois. Alors il faut passer au 40 pattes 16F887 qui est encore le même, mais avec moins de compression, mais sur une plaque, il est vraiment gros et ça fait un peu peur! Par contre il y a des Textools en 40 pattes, donc on peut l'utiliser facilement.

. . .Tu t'y connais bien en assembleur de PIC?
Je me débrouille dans la programmation elle-même, c'est à dire structure du programme, actions à faire, je connais le chemin, mais je maîtrise mal le cheval, je vais avoir de la difficulté en configuration, vois si tu peux me donner un renseignement ponctuel de temps en temps? Microchip n'a pas publié de programmes pour cette série de PICs, et ce qu'on trouve à droite à gauche, ce sont des petites conneries, du genre j'allume une Led, ensuite une autre, alors que le PIC est capable de grandes choses.
Merci d'avance
pont
0
bbb
 
je veut faire un programme qui teste la separation de quatre fils en indiquant la resulta avec un voyant
0
pont
 
Réponse à BBB qui veut une routine pour voir si 4 connexions sont bien séparées.

Je te donne juste le principe:

Les 4 fils à tester sont reliés à B0, B1, B2, B3.
D'abord B0 est une sortie, les 3 autres en entrée
Tu envoies 1 sur B0 et tu lis d'un coup le mot des 3 autres.
Si le mot est zéro tu continues le test en tournant sinon tu affiches une alarme sur B7 par exemple

C'est terminé, c'est en somme un "tant que Mot = zéro, et nbre de tours <4 faire le test"

Il y a moyen de faire autrement, mais comme ça c'est plus court, plus expéditif.
Bon codage dans le langage qui te plaira
pont
0
ros@
 
bonjour , s'il te plait je veux faire une comparaison entre le microprocesseur et le microcontroleur et je veux avoir deux programmes l'un avec le µp et l'autre avec le µc (par exemple programme d'addition) si tu peux m'aider et merci d'avance
0
bastosmass Messages postés 3 Statut Membre
 
slt,j'aimerais bien avoir une etude materiel du PIC 16F84.
Et si quelqu'un peut me donner un systeme d'alarme avec le PIC 16F84. j'en ai besoin au plus vite merci
0
pont
 
Bonjour Loulou,

Cela ressemble fort à un exercice scolaire, et tu n'as pas écouté le cours? Aucun de mes élèves se lancerait à demander à quelqu'un d'autre pour faire un exercice, en plus vous êtes par deux, pourquoi tu ne t'arranges pas avec ton camarade?

Ce n'est pas te rendre service que de t'encourager dans la fainéantise.
Cordialement
pont
0
bastosmass
 
jutilise le language MPLAB
0
pont
 
Réponse pour ros@ qui veut une comparaison entre microcontrôleur µC et microprocesseur µP

Il y a juste une différence matérielle: dans le µC les interfaces sont intégrées sur le circuit, et dans le µP il n'y en a pas il faut donc les ajouter à l'extérieur ce qui complique le travail et donne des chances de se tromper, si bien que tout le monde des bricoleurs préfère les µC et il ne reste guère que les ordinateurs importants comme les PC qui utilisent des µP et de grosses interfaces.

Le µC est pratique, il a toutefois un inconvénient, je prends un exemple: Le PIC30F4011 a une interface QEI qui permet de lire une règle de mesure de machine, mais sur une machine j'ai souvent plusieurs règles de mesure, donc n'en lire qu'une ne me sert à rien!

Tu veux aussi un programme d'addition; sur le µC PIC, il y a deux instructions d'addition: ADDLW et ADDWF, et je n'ai pas de µP à disposition.
Cordialement
pont
0
pont > pont
 
Réponse à bastosmas qui veut une étude matérielle du PIC16F84

Toutes les études matérielles des PIC sont disponibles en téléchargement sur www.microchip.com
Mais je te recommande d'éviter le 16F84 et préférer le 16F88 qui est le même mais avec une possibilité de dialogue interne qui permet de déboguer avec le PICkit2, programmateur-débogueur à 26 euros. Il est dommage que tout le monde se jette sur le modèle 16F84 qui n"a aucun intérêt spécial, pas moins cher ni rien. Les programmes du 16F84 vont sur le 88, comme j'en ai fait l'expérience, il faut évidemment en début de programme changer le nom du processeur utilisé.

Tu réclames aussi un "système d'alarme avec PIC", alors là, premièrement écrire un programme nécessite beaucoup de temps, de concentration et d'essais, c'est impossible dans le cadre de ce forum, et en plus, cela n'existe pas, les alarmes sont générées par des capteurs, il n'y a pas besoin de PIC. On ne va utiliser un PIC que dans une "centrale d'alarme", qui si elle était bien faite, serait capable d'analyser les alarmes provenant de plusieurs dizaines de capteurs et prendre une décision. Cela n'existe pas dans le ménager qui n'est qu'un attrape-fric, je n'ai vu que dans l'industrie et sur un bateau, le Marion Dufresne 2 du matériel sérieux à ce sujet; en fait la vraie fonction, c'est système de surveillance, c'est là qu'un µC est utile, il peut prendre des décisions en l'absence de l'homme.
Cordialement
pont
0
Ros@ > pont
 
Merci Pont pour tes reponses alors le µp et le µc ont la meme methode de programmation n'est ce pas ??
0