Créer un compteur binaire visuel avec les 8 leds de la carte MI Différence avec l'exercice précédent, une seule led s'allume donnant un effet de chenillard. L'astuce consiste ici à utiliser le registre OUTL du STAMP2. En changeant les valeurs de ce registre, nous allons agir directement sur l'état des leds. Un "1" allumera les leds, et un "0" les éteindra. Le compteur sera en fait un compteur de 0 à 7, et sera utilisé comme puissance de 2. En effet : 2^0 = 1 : Led 1 allumée 2^1 = 2 : Led 2 allumée 2^2 = 4 : Led 3 allumée 2^3 = 8 : Led 4 allumée 2^4 = 16 : Led 5 allumée 2^5 = 32 : Led 6 allumée 2^6 = 64 : Led 7 allumée 2^7 = 128 : Led 8 allumée Ce qui correspond à chaque fois à une seule led allumée. Comme l'expression exposant n'existe pas dans le basic STAMP2 nous allons utiliser l'expression << n qui est en fait un décalage à gauche de n position, ce qui en calcul binaire correspond à une élévation à la puissance n de 2. En effet, si l'on prend le nombre binaire %00000001 et qu'on le décale trois fois vers la gauche, on obtient %00001000, soit 8 en décimal, ou encore 2^3. Puis, pour que cette boucle recommence, il sera créer une boucle infinie. ******************************************************************************* Structure du programme BEGIN DECLARE i as nibble DECLARE outl AS Byte DECLARE a as bit DO WHILE a=a 'début de la boucle infinie LET i = 0 'initialisation ded la variable de comptage DO WHILE i <= 7 'début de la boucle de comptage PAUSE 100 ms 'pause pour régler la vitesse du chenillard outl = 2 ^ i 'Allumage de la led correspondante LET i = i + 1 'comptage ENDDO 'fin de la boucle de comptage ENDDO 'fin de la boucle infinie END ****************************************************************************** 'Programme d'utilisation de la carte Micro-info 'Description de l'electronique utilisee 'P0 : Led a travers Resistance de 330 Ohms 'P1 : Led a travers Resistance de 330 Ohms 'P2 : Led a travers Resistance de 330 Ohms 'P3 : Led a travers Resistance de 330 Ohms 'P4 : Led a travers Resistance de 330 Ohms 'P5 : Led a travers Resistance de 330 Ohms 'P6 : Led a travers Resistance de 330 Ohms 'P7 : Led a travers Resistance de 330 Ohms 'P8 : 47 nF a +5V et Pot de 10K Ohms a la Masse a travers 10 Ohms 'P9 : 47 nF a la Masse et Pot de 10K Ohms a +5V a travers 10 Ohms 'P10 : Interupteur a +5V ou Masse a travers 10K Ohms 'P11 : Haut-parleur a travers condensateur de 10 æF 'P12 : Resistance 100K Pull-UP avec poussoir a la Masse a travers 10K Ohms 'P13 : Resistance 100K Pull-UP avec poussoir a la Masse a travers 10K Ohms 'P14 : Resistance 100K Pull-Down avec poussoir a +5V a travers 10K Ohms 'P15 : Resistance 100K Pull-Down avec poussoir a +5V a travers 10K Ohms 'Definition des entrees-sorties OUTPUT 0 OUTPUT 1 OUTPUT 2 OUTPUT 3 OUTPUT 4 OUTPUT 5 OUTPUT 6 OUTPUT 7 OUTPUT 8 OUTPUT 9 INPUT 10 OUTPUT 11 INPUT 12 INPUT 13 INPUT 14 INPUT 15 i VAR NIB debut : FOR i=0 TO 7 ' debut de la boucle de comptage outl = 1 << i ' allumage de la led PAUSE 100 ' pause pour régler la vitesse NEXT ' fin de la boucle de comptage GOTO debut ' bouclage vers la boucle infinie END