Utilisation d'une entrée

Le schéma de câblage

On garde l'astuce de cette page et on y ajoute un interrupteur et sa résistance:

Le programme

  1. #include <16f876A.h>
  2. #use delay(clock=20000000)
  3. #fuses HS, NOWDT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD
  4. #define LED pin_b1 // LED sur la pin_b1
  5. #define INT pin_b2 // interrupteur sur la pin_b2
  6.  
  7. void main() //fonction principal (main)
  8. {
  9.    while(1) // boucle infinie
  10.    {
  11.           if (input(INT)) //Si état logique haut sur le pin de l'interrupteur
  12.                  {
  13.                            output_toggle(LED); //on inverse l'état logique de la LED
  14.                            delay_ms(100); // tout les 100ms
  15.                  }
  16.           else // sinon
  17.                  output_float(LED); // on met en haute impédance
  18.    }
  19. }

Explications

Je pense que les commentaires sont suffisamment explicite. Je modifierais en fonction des demandes de chacun.

Le dossier

Je met à vôtre disposition un dossier compresser avec:
- Le fichier source en .C

- Tout les fichiers généré lors de la compilation (notamment le .hex utile à la simulation ou pour envoyer dans le PIC)

- Le fichier de schéma fait sur proteus

- La même capture d'écran qu'au dessus (pour le schéma de câblage)

input_led.rar

Sugi

© robot-amateur.com - Tous droits réservés. Reproduction interdite sans autorisation.