Tp 2 – microcontrôleur manipulation des leds et des bouton

Informatique Industrielle : TP 2 – Microcontrôleur Manipulation des Leds et des Bouton

Télécharger PDF

TP2 – Microcontrôleurs : Manipulation des LEDs et des Boutons Poussoirs

1. Objectifs

Manipuler les LEDs et les boutons poussoirs de la platine EasyPic7.

Configurer correctement les registres de direction TRISx, le switch SW3 (pour les LEDs), le cavalier J17 (pour les boutons poussoirs) et le switch pull-down (pour les boutons poussoirs).

Notez que, en raison du câblage, il n'est pas possible d'utiliser simultanément les LEDs et les boutons poussoirs sur un même port.

Exercice 1 : Clignotement alternatif des LEDs du port C avec temporisation

L'objectif est d'allumer tour à tour la moitié des LEDs du port C selon le principe suivant :

  1. Configurer le switch SW3 pour autoriser l'utilisation des LEDs du port C.
  2. Créer un nouveau projet sous MikroC nommé LedPortC dans le répertoire TP2/Exercice1.
  3. Utiliser une horloge système de 32 MHz (via la PLL).
  4. Écrire un programme permettant de basculer automatiquement les LEDs du port C.
    • Configurer le port C en sortie (TRISC = 0x00).
    • Initialiser le registre LATC à la valeur 0xAA.
    • Inverser les bits de LATC dans une boucle do-while (LATC = ~LATC).
    • Utiliser une temporisation de 1000 ms.
  5. Compiler le code et charger le fichier .hex dans le microcontrôleur.
  6. Vérifier le bon fonctionnement du programme. En cas de problème, passer en mode debug.
  7. Avant de passer à l'exercice suivant, valider la bonne marche du programme avec le simulateur ISIS.

Exercice 2 : Clignotement des LEDs du port C contrôlé par le bouton poussoir RB0

Après avoir éteint la platine, placer le cavalier J17 en position Vcc et configurer le port B en pull-down.

  1. Déterminer le niveau logique sur la broche RB0 lors de l'appui sur le bouton poussoir. Le basculement des LEDs doit se déclencher sur le front descendant.
    • Utiliser la fonction Button de la bibliothèque mikroE.
    • La fonction Button prend en entrée :
      • L'adresse du port (&PORTB).
      • La broche du port (0 pour RB0).
      • Une durée en millisecondes pour éviter les rebonds (1 ms).
      • Le niveau actif (1 pour haut, 0 pour bas).
    • Elle renvoie 0 ou 255 selon l'état du bouton.
    • Pour détecter un front descendant, utiliser une variable de test (drapeau) :
      • Mettre le drapeau à 1 lors de l'appui sur le bouton.
      • Mettre le drapeau à 0 lorsqu'il est relâché.
    • Créer un projet nommé Exercice2 dans le répertoire TP2/Exercice2.
    • Configurer le port C en sortie et initialiser LATC à 0xAA.
    • Configurer la broche RB0 en entrée (TRISB0_bit = 1;).
    • Dans une boucle do-while, tester la valeur renvoyée par la fonction Button.
    • Compiler, programmer la puce et tester le fonctionnement du programme.

Procédure recommandée

  1. Configurer les registres nécessaires.
  2. Initialiser le drapeau à 0.
  3. Utiliser la structure conditionnelle suivante :
    • Si le bouton est à l'état haut, définir drapeau = 1.
    • Si drapeau == 1 et que le bouton est à l'état bas, inverser les LEDs du port C et définir drapeau = 0.

FAQ

1. Pourquoi ne peut-on pas utiliser les LEDs et les boutons poussoirs sur le même port ?

Cela est dû au câblage physique de la platine EasyPic7. Les broches d'un même port ne peuvent pas être simultanément configurées en entrée et en sortie.

2. Comment éviter les rebonds lors de la lecture d'un bouton poussoir ?

Utilisez une temporisation dans la fonction Button (par exemple, 1 ms) pour ignorer les variations rapides du signal lors de l'appui ou du relâchement.

3. Que signifie "niveau actif haut" ou "niveau actif bas" dans la fonction Button ?

Le "niveau actif haut" signifie que la fonction détecte un appui lorsque le signal est à 1 (logique haut), tandis que "niveau actif bas" signifie qu'elle détecte un appui lorsque le signal est à 0 (logique bas).

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne