Académique Documents
Professionnel Documents
Culture Documents
TP 2 Microcontrleur
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.
Lobjectif est ici dallumer tour tour la moiti des leds du port B selon le principe
suivant :
LATC = 0xAA
RC7 RC0
RC7 RC0
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.
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.
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.
Procdure :