Vous êtes sur la page 1sur 4

Informatique Industrielle

TP 2 Microcontrleur

Manipulation des Leds


et des Boutons poussoirs

Thomas Quiniou et Albert Ranaivosoloarimanana

Licence SPI-2

Anne 2014

1
1. Objectifs
Manipuler les Leds et les boutons poussoirs de la platine EasyPic7. Le schma des
fonctions attaches aux Ports du C est rappel ci-dessous :

Etant donn que vous allez vous servir des leds (broches en sortie) et des boutons
poussoirs (broches en entre), vous devrez configurer correctement les registres de
direction TRISx, le switch SW3 (fonction Leds), le cavalier J17 (fonction boutons
poussoirs) et le switch pull-down (fonction boutons poussoirs). Attention, en raison du
cblage, il nest pas possible dutiliser en mme temps les Leds et les boutons poussoirs
sur un mme port.

2. Exercice 1 : Clignotement alternatif des leds du port C et


utilisation d'une temporisation

Lobjectif est ici dallumer tour tour la moiti des leds du port B selon le principe
suivant :

LATC = 0xAA
RC7 RC0

RC7 RC0

1. Configurer le switch SW3 pour autoriser lutilisation des Leds du PortC


2. Crer sous MikroC un nouveau projet LedPortC (rpertoire TP2/Exercice1).
3. Lhorloge systme sera de 32 MHz (utilisation de la PLL)
4. Ecrire le programme (projet Exercice1 sous /TP2/Exercice1) permettant de
basculer automatiquement les leds du portC. Pour cela, vous fixerez le port C en
sortie (TRISC = 0x00) et initialiserez le registre LATC la valeur 0xAA. Par

2
inversion des bits de ce registre dans une boucle do-while , vous basculer ltat
des leds (LATC = ~LATC). Utilisez une temporisation de 1000 ms.
5. Compilez et charger le code .hex dans le C.
6. Vrifier le bon fonctionnement de votre code. En cas de problme, passer en
mode debug.
7. Avant de passer lexercice suivant, faites vrifier la bonne marche de votre
programme auprs de votre enseignant.

3. Exercice 2 : Clignotement alternatif des leds du port C et


utilisation du bouton poussoir RB0.

Plutt que dutiliser une temporisation, nous allons maintenant nous servir du bouton
poussoir RB0. Aprs avoir teint votre platine, mettre le cavalier J17 sur la position Vcc
et le switch du port B en pull-down.

1. Selon vous, si on appuie sur le bouton poussoir RB0, que devient le niveau logique
sur la broche RB0 du C ?

Le basculement devra avoir lieu sur le front descendant de limpulsion. Pour cela, vous
utiliserez la fonction Button de la librairie mikroE (pour voir la liste des bibliothques :
View > Librairy Manager).

Cette fonction reoit en entre ladresse du port (&PORTB ici), la broche du port (0 ici),
une dure en ms (vite les rebonds, 1 ms ici), le niveau actif (haut 1 ou bas 0) et renvoie
une valeur (0 ou 255) selon l'tat actif du bouton.

Button(&PORTB, 0, 1, 1) : niveau actif haut sur la broche RB0


Button(&PORTB, 0, 1, 0) : niveau actif bas sur la broche RB0

3
On parle ici de niveau et non de front. Pour dtecter un front, il vous faudra utiliser une
variable de test (drapeau) qui sera mise 1 lors de l'appui sur le bouton puis 0 lorsqu'il
sera relch.

2. Dmarrer un projet Exercice2 sous /TP2/Exercice2


3. Dans le code C, configurer le PORTC en sortie, initialiser le registre LATC la
valeur 0xAA et configurer la broche RB0 en entre (TRISB0_bit = 1;)
4. Dans une boucle do-while , tester la valeur renvoye par la fonction button (cf.
procdure)
5. Compiler, programmer la puce et tester le fonctionnement de votre programme

Procdure :

Configuration des registres


Mettre drapeau 0
Faire
si Bouton l'tat haut, drapeau = 1
si drapeau == 1 et Bouton l'tat bas, inverser PORTC et drapeau = 0;
Tant que (1)