Excercice 1 Pour changer de LED : On change Led0 en Led1 dans la boucle du programme principal L'instruction devient : bsf GPIO,2 bsf : bit set file - met à 1 (set) le bit n°2 du registre (file) GPIO (General Purpose Inpout Output) Cherchez dans les déclarations du début : #define GPIO,2 Led0 puis bcf GPIO,2 bcf : bit clear file - met à 0 le bit n°2 du registre GPIO Pour programmer plusieurs Leds : Solution 1 On programme individuellement les bits bsf Led0 bcf Led1 bsf Led3 call delai ... Solution 2 On configure l'ensemble du registre movlw b'01010101' ; les 8 bits sont définis movwf Leds ; puis chargés dans le registre movlw DureeTempo ; il faut définir la durée call Delai ; et appeler le SP de temporisation Solution 3 On inverse l'ensemble des E/S comf Leds,f call Delai Solution 4 On inverse seulement les bits qui nous intéressent movlw b'00000011' xorwf Leds,f movlw DureeTempo call Delai Pour faire une séquence : Solution 1 On veut une séquence courte (quelques pas). On va faire du copié-collé... Le chenillard movlw DureeTempo clrf Leds call Delai bsf Led0 call Delai bsf Led1 call Delai bsf Led3 ... bcf ... Solution 2 Si la séquence est longue, on va utiliser une table. Chaque octet de la table va correspondre à une séquence. Comme on a 5 leds, il reste 3 bits pour coder la durée (8 valeurs différentes). La table peut être dans la mémoire EEPROM ou dans la mémoire Flash (celle du programme).