programmer microcontroleur
Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

programmer microcontroleur



  1. #1
    invitecda6690a

    programmer microcontroleur


    ------

    Bonjour ,

    Je me présente , je suis élève de Terminale Ssi ( Sciences de l'Ingénieur) où j'ai un PPE ( Projet Pluritechnique Encadré ) où modifie la commande (manuelle) d'une boite de vitesse de moto pour la rendre séquentielle .

    Tous notre petit système sera commandé par un PIC16F84 où nous avons deja reliés entrées et sorties ( voir photo ci-jointe) .

    La où est le problème , c'est dans la partie programmation du PIC car nous sommes débutants en la matière , du fait que nous faisons très peu de programmation en Terminale .


    Donc voici mon algorithme en quelque sorte :
    ( C'est surtout des problèmes de syntaxe que nous avons avec Devpic , donc au début on a mis TRISA=0b01110 car RA1,2,3 sont en entrées et Ra0,4 ne sont pas utilisés ; et TRISB=0b11110110 car RA7,6,5,4,2,1 en sorties.)

    Donc nous voulons par exemple au début :

    Si RA1=1 et RA3=1 et RA2=0
    Alors RB1=0;RB2=1;RB7=0;RB4=0;RB5=0; RB6=1

    Voila juste pour le début , après je me debrouillerai si vous me donnez l'exemple de syntaxe pour le début .

    Merci d'avance

    Voici mon msn pour discuter de Devpic : #######################


    Interdit par la charte


    Cordialement,

    Nicolas

    -----
    Images attachées Images attachées  
    Dernière modification par Jack ; 11/04/2008 à 23h10.

  2. #2
    Gérard

    Re : programmer microcontroleur

    Bonjour,
    Il faudrait nous dire avec quel langage tu travailles.

    Si RA1=1 et RA3=1 et RA2=0
    Alors RB1=0;RB2=1;RB7=0;RB4=0;RB5=0; RB6=1

    En Basic, ça donne :
    if porta1 = 1 and porta3 = 1 and porta2 = 0 then
    portb1 = 1
    portb2 = 1
    portb7 = 0
    portb4 = 0
    portb5 = 0
    portb6 = 1
    endif

  3. #3
    invitecda6690a

    Re : programmer microcontroleur

    Merci de la réponse rapide mais je ne travailles pas en Basic mais en langage C avec Devpic mais c'est surtout la syntaxe de Devpis où je peche !!

  4. #4
    mat64

    Re : programmer microcontroleur

    désolé, je programme pas les pics en C. En assembleur, ça donnerais ça :
    biensur, il faut avoir mis les ports en entrée / sortie au démarrage du programme grace aux registres TRISA et TRISB.

    debutTest
    btfsc PORTA,1
    goto debutTest
    btfsc PORTA,3
    goto debutTest
    btfss PORTA,2
    goto debutTest
    bcf PORTB,1
    bsf PORTB,2
    bcf PORTB,7
    bcf PORTB,4
    bcf PORTB,5
    bsf PORTB,6

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

    Re : programmer microcontroleur

    Bonjour,

    Tout d'abord, il y a quelquechose qui me choque sur ton montage...Tu as mis Vdd = -5V et Vss = +5V... si tu regarde bien la documentation de ton PIC 16F84, leur tension d'alimentation doit être comprise généralement entre 4 et 6V.
    Je serai pultot d'avis de mettre Vss=0V et Vdd=5v.

    En ce qui concerne la programmation en C, moi j'utilise MLPAB+C18 compiler, et pour ça:
    Si RA1=1 et RA3=1 et RA2=0
    Alors RB1=0;RB2=1;RB7=0;RB4=0;RB5=0; RB6=1
    Je ferai:
    Code:
    if((RA1==1) && (RA2==0) && (RA3==1))
    {
    RB1=0;
    RB2=1;
    RB4=0;
    RB5=0;
    RB6=1;
    RB7=0;
    }
    A toi de voir si ça passe avec ton compilateur...

    Voili voila...

  7. #6
    invite3a1051d7

    Re : programmer microcontroleur

    bonjour,
    un petit tour de google
    http://stislc.free.fr/pic.htm
    ou tu trouveras ' je pense ,ce que tu cherches.
    si cela peux t'être utile j'ai réalise (voir mon site )un petit explicatif sur la programmation struturée tel que je l'utilise (je l'applique au basic mais cela s'applique à tous les langages ) si cela peut t'aider dans la demarche de programmation
    cordialement
    Alain

  8. #7
    invite403d8201

    Re : programmer microcontroleur

    [salut je suis un éléve au terminale et j'ai un PPE c'est la barriere automatique d'un parking commendé par un PIC16F84 .
    le systéme fonctionne comme se suit:
    apres le tapage du code exacte avant l'entré du vihécule au parking , le moteur sera actionné pour lever la barriére , puis notre vihécule sera detecté aprés son dépassage de la barrivr par un detecteur emeteur-recepteur pour faire descendre la barriere du nouveau .
    je veux savoir tout ce quil me faut sur ce projet comme le schema de liaison du montage et le code de programation du pic avec le max des explication car le ne reste po trop de temp pour que je presente mon projet et moi j'ai rien trouver de resultat encore .
    merci d'avance .

  9. #8
    invite3a1051d7

    Re : programmer microcontroleur

    bonjour,
    si tu souhaites que l'on réalise ton projet je cois que ce n'est pas le but de ce forum.
    Par contre si tu poses des questions précisent sur tes difficultés tu auras plus de réponses.
    cordialement
    Alain

  10. #9
    invite403d8201

    Re : programmer microcontroleur

    non je ne veut pas que quelqu'un me fasse le projet mais je veut des points de depart car je suis bloquer et je ne sais pas quoi faire j'ai chercher par tout pour trouver un schema de principe ou quelque chose qui se ressemble et ya rien puis j ais demmander l'aide de mon proff et d'autres proff et j'aurai la meme reponse que celle de ce forum... alor c'est quoi la solution a ton avi?

  11. #10
    invitefdfc258c

    Re : programmer microcontroleur

    Bonsoir,

    ben ce serait mieux si t'avais des questions précises, c'est quoi le sujet réel ? T'as vraiment aucun point de départ ?

    C'est un peu con de la part de tes profs, et surtout ça m'étonne (quoi que pas tant que ça quand je vois les miens...=D), de te donner que ça comme indications...

    Pour l'émetteur/récepteur, tu peux utiliser une diode et un photo-transistor.
    Placés l'un en face de l'autre, la diode enverra un signal lumineux, que le photo-transistor détectera. S'il ne le détecte plus, c'est que le faisceau est coupé par un véhicule. Lorsque le photo-transistor redétecte à nouveau le signal lumineux, c'est que le véhicule est passé.

    Donc déjà tu peux séparer ton projet en deux phases : un émetteur et un récepteur.

    Avec ce que je t'ai indiqué, à toi de voir où tu places ton PIC.


    Concernant celui-ci, tu peux le programmer en C, c'est assez rapide avec CSS Compiler par exemple (que tu trouveras sur google =) ).

    À toi de déterminer quelle(s) patte(s) de ton PIC tu utiliseras.
    Le code est assez rudimentaire je pense.

  12. #11
    invite403d8201

    Re : programmer microcontroleur

    merci pour ta reponse rapide et je t'assure que c une bonne ide de ta part de separer le projet en 2 . merci une deuxieme fois j'ai deja fait une analyse interne et externe et je me demmande comment je peu la poster ici pour que ca soit lisible pour les membres car cela va bien eclairer mon projet c un fichier de type wordoffice

  13. #12
    invite5637435c

    Re : programmer microcontroleur

    Salut,
    tu peux le poster avec le format Zip.

  14. #13
    invite5f573e99

    Re : programmer microcontroleur

    Salut,
    et TRISB=0b11110110 car RA7,6,5,4,2,1 en sorties.)
    tu les a mis en entrées les RB7,6,5,4,2,1.

    Je ferai:
    Code:
    if((RA1==1) && (RA2==0) && (RA3==1))
    {
    RB1=0;
    RB2=1;
    RB4=0;
    RB5=0;
    RB6=1;
    RB7=0;
    }A toi de voir si ça passe avec ton compilateur...

    Ou tu peux faire:

    if(PORTA & 0b1110) //la condition est vrai si RA1=1 et RA2=1 et RA3=1
    PORTB=0b01000100;


    Pour pas avoir de décalage de temps.
    Par contre tu mettras RB0 et RB3 à 0.

  15. #14
    RISC

    Re : programmer microcontroleur

    Nicolas,

    Ci-joint un site avec d'excellent cours sur les PIC10/12/16 en langage C et des exemples qui pourra t'aider : http://www.aix-mrs.iufm.fr/formation...indexPIC_C.htm

    a+

  16. #15
    invite6ceed97c

    Re : programmer microcontroleur

    Comme Kaporal l'à démontré
    Code:
    if(PORTA & 0b1110) //la condition est vrai si RA1=1 et RA2=1 et RA3=1
    Ca fonctionne bien.

    Même principe quand on veut écrire sur un port...
    Code:
    PORTA = PORTA & 0b11110000; // PORTA<3:0>=0
    PORTA = PORTA | 0b00001111; // PORTA<4:0>=1
    En fait de cette facon, on évite les fameux possibles effets de R-M-W... plus courant chez les 18Fs quand même.

    Tout dépendant de la situation, j'essait de lire le PORT, Masquer/Activer/Désactiver les bits qui m'intéressent et travailler avec la variable si en lecture ou PORTx=Variable si en écriture.

  17. #16
    invite5f573e99

    Re : programmer microcontroleur

    Citation Envoyé par mister_e Voir le message
    Comme Kaporal l'à démontré
    Code:
    if(PORTA & 0b1110) //la condition est vrai si RA1=1 et RA2=1 et RA3=1
    Ca fonctionne bien.

    Même principe quand on veut écrire sur un port...
    Code:
    PORTA = PORTA & 0b11110000; // PORTA<3:0>=0
    PORTA = PORTA | 0b00001111; // PORTA<4:0>=1
    En fait de cette facon, on évite les fameux possibles effets de R-M-W... plus courant chez les 18Fs quand même.

    Tout dépendant de la situation, j'essait de lire le PORT, Masquer/Activer/Désactiver les bits qui m'intéressent et travailler avec la variable si en lecture ou PORTx=Variable si en écriture.
    Salut,
    C'est quoi les effets de R-M-W ?
    Et dans ton exemple, est-il possible de mettre par exemple RA0 à 1 et RA1 sans toucher aux autres bits, mais en une seule instruction.

  18. #17
    invite6ceed97c

    Re : programmer microcontroleur

    La meilleure description de l'effet R-M-W que je connaisse se situe à la page 2 de ce PDF (Read-Modify-Write instructions on Port registers)
    http://ww1.microchip.com/downloads/e...tes/93009A.pdf
    Très bon document, bien expliqué.

    Et dans ton exemple, est-il possible de mettre par exemple RA0 à 1 et RA1 sans toucher aux autres bits, mais en une seule instruction.
    mais oui!
    Code:
    PORTA = PORTA | 0b00000011; // PORTA<1:0>=1
    a+

  19. #18
    invite5f573e99

    Re : programmer microcontroleur

    Citation Envoyé par mister_e Voir le message
    La meilleure description de l'effet R-M-W que je connaisse se situe à la page 2 de ce PDF (Read-Modify-Write instructions on Port registers)
    http://ww1.microchip.com/downloads/e...tes/93009A.pdf
    Très bon document, bien expliqué.



    mais oui!
    Code:
    PORTA = PORTA | 0b00000011; // PORTA<1:0>=1
    a+
    Super le lien,
    pardon je me suis mal exprimé dans ma question, je voulait dire :
    Et dans ton exemple, est-il possible de mettre par exemple RA0 à 1 et RA1 à 0 sans toucher aux autres bits, mais en une seule instruction

  20. #19
    invite6ceed97c

    Re : programmer microcontroleur

    en une seule opération.. non je ne pense pas. Ce qui est recommandé est souvent appellé la méthode du "shadow register".

    C'est une variable tampon dans laquelle tu modifie seulement les bits qui t'intéresse, et ensuite to copie cette variable vers ton port. En fait, c'est l'explication de mes dernieres ligne au "post" #15.

    pseudo code
    Tampon=PORTA
    Tampon.1=0
    Tampon.0=1
    PORTA=Tampon

  21. #20
    RISC

    Re : programmer microcontroleur

    Salut,

    +1. Je recommande chaudement la méthode de mister_e dans le post précédent qui est une méthode robuste et résoud pas mal de problèmes dans les environnements bruités. C'est par exemple très utilisé dans les applications automobiles utilisant des microcontroleurs.

    a+
    Dernière modification par RISC ; 18/04/2008 à 22h33. Motif: correction

Discussions similaires

  1. Programmer Microcontroleur, starterkit
    Par invite0f97282b dans le forum Électronique
    Réponses: 41
    Dernier message: 10/04/2008, 07h04
  2. Réponses: 4
    Dernier message: 01/04/2008, 21h15
  3. programmer le microcontroleur ST7
    Par invitea18890be dans le forum Électronique
    Réponses: 8
    Dernier message: 27/02/2008, 23h42
  4. Programmer un microcontrôleur Renesas
    Par inviteddae56c8 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/10/2007, 16h47
  5. programmer un can sur un microcontroleur
    Par invite043d17e3 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/03/2006, 11h48
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...