top of page

Blinking LED Using PIC 16F877A micro-controller 

By Bernice Zuiya

Introduction

            Le clignotement de la LED (diode électroluminescente) à l'aide d'un micro-contrôleur PIC est l'une des étapes importantes lorsque pour la première fois vous décidez d'apprendre les micro-contrôleurs; Fondamentalement, il consiste à basculer un ou plusieurs pin d'un micro-contrôleur connecté à LED (s) pour ce premier projet et facile seulement deux registres sont utilisés (TRIS et PORT). Un est utilisé pour donner la direction d'une broche si elle doit fonctionner comme entrée ou broche de sortie. Si vous savez déjà comment utiliser une LED, alors ce projet peut-être facile pour vous, mais au cas où vous n'avez jamais utilisé une LED, alors ce que vous devez savoir est une LED a deux bornes p et n par rapport à une diode où pour une LED le long Broche correspond au p terminal et le court est la borne n, quand il est connecté en configuration directe en série avec une résistance qui limite le courant circulant dans la LED et une batterie.

           Comprenez  d'abord  un aspect tres important de ce projet qui consiste simplement à allumer et éteindre une LED à l'aide d'un micro-contrôleur PIC 8 bits, il existe différents types de LED en fonction de leurs couleurs; Mais dans le cas où vous voulez avoir plus de couleurs dans une seule LED, cela peut-être possible avec la LED RGB et ce sujet sera développé jusqu'à présent dans notre tutoriel et le projet.

Working

                Jusqu'à présent, nous avons dit que le clignement d'une LED est fait en utilisant deux registres importants:

  • Registre TRIS: ce registre est utilisé pour définir la direction d'un port d'un micro-contrôleur ou même d'une seule broche connectée à un port d'un MCU, le PIC16F877A a 5 ports (A, B, C, D et E) Une LED est connectée par exemple à une broche du port A alors le registre TRIS sera écrit comme TRISA ou si la LED est sur le port B alors c'est TRISB afin de savoir quelle broche fonctionne comme une broche d'entrée ou une broche de sortie que vous avez essentiellement besoin Pour attribuer un 1 ou un 0 à une broche spécifique d'un port par exemple: La carte OSat version 6.10 a une LED de test connectée sur le port B et est sur la 2ème broche de ce port (RB1), si nous voulons basculer cette broche, nous devons Définissez-le comme une broche de sortie, nous allons discuter de deux façons de représentation ici: 1. Representation en Binaire: TRISB = 0b11111101 lorsque cette ligne signifie que toutes les broches sont connectées sur le port B sauf que les secondes sont en mode d'entrée et que la seconde broche est en mode de sortie 2. Representation en Hexadecimal: TRISB = 0xFE vous pouvez également utiliser la décimale mais je préfère utiliser ces deux modes.

      

  • Registre PORT: est utilisé pour donner l'état d'une broche connectée à un port d'un micro-contrôleur PIC, si nous voulons que la bascule une broche d'un port ce registre est responsable. Si vous désirez mettre une broche haute, vous devez affecter 1 et 0 pour l'état bas. Si par exemple vous souhaitez activer la LED de test connectée au port B, vous pouvez écrire en représentation binaire: PORTB = 0b00000010 et représentation hexadécimale: PORTB = 0x02

Mais dans le clignotement de la LED il est préférable d'introduire un certain délai entre les deux état, lorsque la LED est allumée et quand il est éteint, compilateur mikroC offre la fonction de retard; L'étape de création d'un projet clignotant utilisant le compilateur mikroC et MPLAB IDE avec le compilateur XC8 est illustrée dans la vidéo ci-dessous et une simulation supplémentaire à l'aide du logiciel Proteus.

DELs

                 Le schéma de circuit ci-dessous présente les éléments suivants, mais dans le cas où vous travaillez avec notre carte, vous n'avez pas besoin d'ajouter des composants.

  • Une résistance de valeur 4k7 ohm est connectée en série avec +5 volt et la broche de réinitialisation (1ère broche)

  • Q1 est l'oscillateur de cristal dans ce cas, il est oscillation de fréquence est de 20 MHz.

  • Alimentation: le circuit est connecté à une tension maximale égale à 5 volts

  • R3 est une résistance de courant de limitation pour protéger la LED.

  • C1 & C2 are of 22pF.

Circuit Diagram

Code and Comment

/* The LED will basically remain ON for one second and one second OFF*/
// mikroC compiler for PIC <24/sept/2016>

unsigned int i,j; 
void main(void){
    TRISB.B1 = 0; // This pin is considered to be as an output pin 
    PORTB = 0X00; // All pin of PORTB are at low state 

    for(;;){ // infinite for loop

      for(i =0 ; i < 10 ; i++){
               PORTB.B1 = 1;   // the second pin of PORTB is at high State
               Delay_ms(100);  // Delay of 100 ms
           }

               for(j =0 ; j < 10 ; j++){
               PORTB.B1 = 1;   // the second pin of PORTB is at low State
               Delay_ms(100);  // Delay of 100 ms
           }


      }// end of for(;;)
 }// end main function

Ce code a été écrit en utilisant le logiciel de compilateur mikroC, vous pouvez le copier et le compiler ou le modifier aussi, ceci est utilisé pour clignoter une led OFF et ON

Download the full project here

Video:

bottom of page