1) Proposer des schémas électroniques de câblage de bouton poussoir avec les broches d’entrées d’un microcontrôleur, sachant que ce dernier accepte des tensions de 0V et 5V en entrée.
2) Les boutons poussoirs présentent au relâchement et à l’appui des rebonds mécaniques
(bounces) qui à l’échelle des temps (us) des microcontrôleurs sont détectables et créent donc des changements d’états intempestifs au sein du microcontrôleur qu’il convient d’éliminer (voir la documentation « constructeur » d’un bouton poussoir). Il existe des solutions pour éliminer ces rebonds (debouncing methods for push buttons) : a. Solution électronique en utilisant un circuit RC. Calculer la valeur de la capacité C lorsque on utilise une valeur de résistance R si l’on considère qu’une valeur de constante de temps de filtrage est de 50ms est une valeur correcte pour éliminer les rebonds tout en assurant un temps d’appui/relâchement adéquat dans la plupart des situations. Au préalable calculer la valeur de la résistance à utiliser pour le bouton poussoir fourni dans la documentation jointe. b. Solution électronique en utilisant des portes logiques (bascule RS, trigger de schmidt ou monostable) c. Solution logicielle, en utilisant un comptage du temps passé après un appui ou un relâchement pour éviter de redéclencher un changement d’état avant ce décompte. Proposer un code en C sous mplabx qui effectue cette à partir d’une entrée sur la broche RA0 du pic16f8877 (Utilisation des registres ANSELA, TRISA et LATA). 3) On choisit le module suivant pour les entrées du jeu du snake. A partir de la documentation du microcontrôleur utilisé dans le projet, le pic 16f18877, proposer le schéma de câblage des entrées du module joystick ci-dessus avec le microcontrôleur utilisé. En tenant compte des phénomènes anti rebonds, proposer le programme sous MPLABX qui réalise le comptage de chaque appui sur les différents bouton poussoir qui vont être associés aux déplacements du personnage dans le labyrinthe. Simuler votre programme sous MPLABX.