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

Clignoter une LED avec intel 8051



  1. #1
    baskouteh

    Clignoter une LED avec intel 8051


    ------

    Bonjour,
    Débutant en langage d'assembleur et langage C,
    Il me faut en programme en C qui assure la gestion du timer0 avec compensation, en effet, il s'agit de trois sous programmes que je dois compléter:
    1. initialise le TIMER0 en mode 1 pour générer une interruption toutes les 50ms
    2. gère la fonction d'interruption du TIMER0 qui devra compter 1 seconde. Une LED sera reliée sur le bit 3.7 et devra clignoter ay rythme d'une seconde.
    3. gère la fonction d'interruption pour mettre en œuvre le principe de compensation du temps et toujours compter 1 seconde.

    Je vous informe que j'ai bien le programme en langage d'assembleur mais je ne sais pas comment faire en C. Le µcontrôleur 8051 est cadencé par un quartz à 16MHz alors ma période est de 750ns. Alors si je considère le nombre d'occurrences de TF0 = 40 et une tempo de base=1000ms==> 40*25=1000 j'aurai bien 33333.3impulsions ==> la valeur à charger est
    65536-33333=32203.
    Merci de m'aider.
    Très urgent...

    -----

  2. #2
    invite03481543

    Re : Clignoter une LED avec intel 8051

    Le principe:

    lorsque le timer0 atteint sa valeur max une interruption intervient, tu incrémentes une variable et lorsque il y a occurence avec la valeur de consigne tu effectues la commande du port.
    Ensuite tu réinitialises la variable à 0 pour un nouveau comptage.
    Si je me souviens bien en 8051 ça doit être de ce style:

    Code:
    void timer0_debordement(void) interrupt 1 //Timer 0 ISR
    {
    i++;             // on incrémente i de 1
    if(i==32203)  // consigne (selon tes calculs)
    {
    i=0;             // on réinitialise i à 0
    Led_port=!Led_port;       // on effectue la commande en inversant le bit
    }
    
    }

  3. #3
    invite03481543

    Re : Clignoter une LED avec intel 8051

    Au cas où il faut bien sûr mettre aussi ça dans ton programme:

    Code:
    int i;
    
    void main(void)
    {
    TMOD=0×11; // timer 0 en mode 1
    ET0=1; //Enable overflow interruption du Timer 0
    TR0=1; //Timer 0 go
    EA=1; //Global Interrupt enable
    while(1){}
    
    }
    Vérifie la valeur de TMOD parceque le 8051 est loin dans ma mémoire maintenant.
    @+

Discussions similaires

  1. Clignoter une LED avec intel 8051
    Par baskouteh dans le forum Électronique
    Réponses: 0
    Dernier message: 16/12/2007, 10h42
  2. clignoter une led avec pic 16F873
    Par ibrakanet dans le forum Électronique
    Réponses: 5
    Dernier message: 26/05/2007, 13h25
  3. comment faire clignoter une lampe?
    Par ouaf dans le forum Électronique
    Réponses: 7
    Dernier message: 10/10/2006, 22h17
  4. Test de PIC 16F628 avec une LED...
    Par Raphael2 dans le forum Électronique
    Réponses: 15
    Dernier message: 23/07/2006, 10h37
  5. COMMENT ,faire clignoter 4 LED avec un microswitch ?
    Par davidgag dans le forum Électronique
    Réponses: 3
    Dernier message: 03/05/2006, 19h14
Découvrez nos comparatifs produits sur l'informatique et les technologies.