Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Programmer un PIC 18F248



  1. #1
    nordin59

    Exclamation Programmer un PIC 18F248


    ------

    Bonjour, fin bonsoir plutôt,

    Voilà je suis en train de mener un projet, et la je coince.
    L'objectif du projet est de commander un véhicule afin que celui-ci puisse suivre une cible en toute sécurité.
    Etant dans la continuité d'un projet qui a commencé l'année passée, je dois programmer un PIC 18F248, j'ai un schéma de cablage du boitier déjà réalisé.
    Mon premier objectif pour l'instant est d'allumer ou de faire clignoter une led.
    Mais je n'y connais rien du tout en programmation de pic par contre j'ai des notions en Assembleur ou en C.
    Par exemple en assembleur pour faire clignoter une led:

    ;initialisation du registre de controle
    PORTA EQU $0000
    DDRA EQU $0002

    ;initilasation du vecteur RESET

    ORG $FFFE
    DW debut

    ;ecriture du programme
    ORG $8000

    debut LDS #$0C00
    MOVB #$01,DDRA

    deb LDAA #$00
    STAA PORTA
    BSR tempo
    INCA
    STAA PORTA
    BSR tempo
    JMP deb

    tempo LDX #1000
    DBNE X,*
    RTS


    Merci de bien vouloir m'aider dans ma démarche, mieux utiliser du C ou Assembleur ??? Les registres à déclarer, les configs à effectuer.....

    voici un schéma du microcontroleur PIC:

    Ou encore le schéma dans son ensemble:

    -----

  2. Publicité
  3. #2
    Pommesky

    Re : Programmer un PIC 18F248

    alors tout d'abord en débutant il est largement mieux d'utiliser le C alors les seul registre a déclarer :
    les entré et sortie juste après le void main avec 0 pour les sortie et 1 pour les entrée après le 0b les porte vont en croissant de 0 a 7(dépent de ton nombre de pattes) :

    void main()
    {
    trisb = 0b11110000; // définition des portes entrées : B4567 sorties : B0123
    trisa = 0b00011; // sorties : A234

    Ensuite important pour une meilleur utilisation il faut faire scruter au PIC l'etat logique de ses entrée donc après tes tris bouclage infini :
    for(;;)
    {
    Mettre ici les instruction ;
    }

    avec ceci tes instructions seront surement tu type si....alors ou tant que....alors pour tout ceci je te conseille d'aller voir ici

    quelques syntaxe :
    pour définir un niveau logique : portb.1 = 1 (par exemple)
    pour complémenter une porte : portb.1 = !portb.1
    pour définir des temps soir delay(ton temps ici en ms) ou delays(ton temps ici en s)

  4. #3
    nordin59

    Re : Programmer un PIC 18F248

    Si je crois avoir saisie en faisant ça, normalement ca devrais marcher:

    #include <delays.h> //fonctions de délais
    #include <p18f248.h> //déclaration de la librairie du PIC18F248

    void main (void)
    {
    TRISC= 00011111; //configuration du pin 0,1,2,3,4 du port C en sortie
    while(1)
    {
    PORTCbits.RC0 = 1; //on allume la led en mettant le pin 1 à l'état haut
    Delay10KTCYx(0); //on attends environ 0,25s à 40Mhz
    PORTCbits.RC0 = 0; //on éteint la led en mettant le pin 0 à l'état bas
    Delay10KTCYx(0); //on attends environ 0,25s à 40Mhz
    }
    }

    Là je ferais clignoter la LED0 attaché au pin0 du PORTC.

  5. #4
    nordin59

    Re : Programmer un PIC 18F248

    Oups dans le message précédent j'ai inversé entrées et sorties je crois, sinon dans l'ensemble c'est ça ??

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    Pommesky

    Re : Programmer un PIC 18F248

    xD pourquoi faire simple quand on peut faire compliquer :

    #include <delays.h> //fonctions de délais
    #include <p18f248.h> //déclaration de la librairie du PIC18F248
    #define signal portc.5 // associe du texte à l'etat haut de l'entré c0 (c'est plus clair)
    void main (void)
    {
    trisc = 0b11111011; //configuration du pin 0,1,2,3,4,6,7 du port C en sortie et 5 en entrée(il faut mieu que toutes les pattes non utilisé soit des sortie)
    while(signal)// tant que la porte c5 = 1 alors..
    {
    portc.0 = portc.0; //on complémente la led
    delay (25);//on attends environ 0,25s (je trouve tes delay un peu court)
    }
    }

  9. #6
    nordin59

    Re : Programmer un PIC 18F248

    Ok, d'accord mais là je dispose de PICSTART Plus et je ne vois pas comment envoyer le code C.
    J'ai généré le test.hex aprés que faire ???

    PS: j'ai récupéré le matos à la maison comme ça je gagnerai du tems sachant que j'ai déjà 10heures de retard alors que j'en suis qu'au début, ça sent les longues nuits...

  10. Publicité
  11. #7
    Pommesky

    Re : Programmer un PIC 18F248

    Je ne travaille pas avec cet environement mais avec ta carte de devlopement et pic start tout devrait marcher sous mplab télécharge le et lit la doc c'est le seul conseil que je peut te donné dsl...

  12. #8
    nordin59

    Re : Programmer un PIC 18F248

    Merci pour le coup de main ^^.
    Je vais voir ce que je peux faire sur PICSTART Plus

Discussions similaires

  1. Programmer un pic
    Par blacksword dans le forum Électronique
    Réponses: 4
    Dernier message: 27/01/2009, 10h36
  2. programmer un PIC
    Par titi570 dans le forum Électronique
    Réponses: 8
    Dernier message: 08/01/2009, 19h52
  3. Réponses: 0
    Dernier message: 18/03/2007, 15h43
  4. programmer un pic
    Par gwendoline dans le forum Électronique
    Réponses: 1
    Dernier message: 18/06/2006, 20h01
  5. programmer un pic
    Par salut dans le forum Électronique
    Réponses: 1
    Dernier message: 22/03/2003, 10h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.