Microcontrôleur
TD N°4
Exercice 1
Soit un circuit à base du PIC16F877 composé d’une LED branchée sur RB0, d’un bouton Poussoir ‘A’ branché sur
RC0, d’un bouton Poussoir ‘B’ Branché sur RC1 et d’un bouton Poussoir ‘C’ Branché sur RC2.
Les trois boutons poussoirs A, B et C sont reliés directement à la masse
Donnez le programme qui garantit le fonctionnement suivant :
- Le bouton A allume la LED.
- Le bouton B éteint la LED.
- Le bouton C inverse l’état de la LED.
Exercice 2
Donnez le programme en assembleur qui effectue les opérations suivantes :
b = x + |z – y| + 5
si b > 8bits : Allumer une LED branchée sur RD0
si b = 100 : Allumer une LED branchée sur RD1
si b < 10 : Allumer une LED branchée sur RD2
Les adresses de b, x, y et z sont respectivement : 0x30, 0x1A0, 0xE5 et 0x130.
Pour simplifier, dans le test b > 8bits, on considèrera dans notre programme uniquement le bit Carry de la
dernière opération effectuée dans le calcul de l’équation de l’exercice.
Exercice 3
Créer un compteur de 0 à 99 à base d’un circuit électronique composé d’un PIC16F877 cadencé par un quartz
de 4 MHz et de deux afficheurs 7 segments BCD, celui des unités est relié aux broches RB0, RB1, RB2 et RB3 et
celui des dizaines est relié aux broches RC0, RC1, RC2 et RC3.
L’incrémentation du compteur est effectué chaque 2 sec.
Exercice 4
On désire réaliser la commande d’ouverture/fermeture d’un portail en utilisant un circuit électronique équipé
d’un PIC16F877 cadencé par un quartz de 1 MHz.
Pour cela, le moteur qui commande le mouvement du portail est relié à travers un circuit de puissance aux deux
broches RB1 et RB2. Un bouton poussoir A relié à la broche RC0 permet l’ouverture du portail. La détection de
l’ouverture complète du portail est réalisée grâce à un capteur fin de course relié à la broche RC1. Le portail
reste ainsi ouvert pendant 15 sec puis se ferme automatiquement. La fermeture du portail est détectée grâce à
un capteur fin de course relié à la broche RC2.
En considérant que l’action sur un capteur fin de course ou un bouton applique une tension de 0 Volt sur la
broche correspondante. Donnez le programme réalisant cette tâche.