Salut,
Merci pour ta participation,
voici le code:
; clignotements de led's sur RB1,RB2,RB3 avec un switch
; Configuration
LIST P=16F84A; Type de processeur
#INCLUDE <p16F84A.inc>; Définition des registres
; Définitions
RP0 EQU 5;
RB1 EQU 0X01; Port B, sortie RB1
RB2 EQU 0X02; Port B, sortie RB2
RB3 EQU 0X03; Port B, sortie RB3
RA0 EQU 0X00; Port A, sortie RA0
; Variables
CBLOCK 0X0C;
vTempo1, vTempo2;
ENDC;
; Vecteurs
ORG H'0000'; Déclaration du reset
GOTO Start; Passe à Start
; Tempo de clignotement des leds
Tempo MOVLW 0XFF; Charge W avec 0XFF
MOVWF vTempo2; Pour charge la vtempo2
_Tempo2 MOVWF vTempo1; Ainsi que la vtempo1
_Tempo1 DECFSZ vTempo1, f; Décrémente vtempo et met le résultat
GOTO _Tempo1; Puis saute l'instruction suivante
DECFSZ vTempo2, f;
GOTO _Tempo2;
RETURN;
; Programme principal
Start BSF STATUS, RP0; Accès bank 1
MOVLW 0XF1; Charge avec 0XF1
MOVWF TRISB; Pour le TRIS B
MOVLW 0XFF; Charge avec 0XFF
MOVWF TRISA; Pour le TRIS A
; Les deux boucles pour le bon fonctionnement du switch
BCF STATUS, RP0; Accès bank 0
BTFSS PORTA, RA0; Interrupteur sur RA0
GOTO Boucle; On passe à Boucle
GOTO Boucledeux; On passe à Boucledeux
Boucle BSF PORTB, RB1; On éteint RB1
BCF PORTB, RB2; On allume RB2
BSF PORTB, RB3; On éteint RB3
CALL Tempo; On appelle vtempo
BSF PORTB, RB1; On éteint RB1
BSF PORTB, RB2; On éteint RB2
BSF PORTB, RB3; On éteint RB3
CALL Tempo; On appelle vtempo
BTFSS PORTA, RA0; Interrutpeur sur RA0
GOTO Boucle; On passe à Boucle
Boucledeux BCF PORTB, RB1; On allume RB1
BSF PORTB, RB2; On éteint RB2
BCF PORTB, RB3; On allume RB3
CALL Tempo; On appelle vtempo
BSF PORTB, RB1; On éteint RB1
BSF PORTB, RB2; On éteint RB2
BSF PORTB, RB3; On éteint RB3
CALL Tempo; On appelle vtempo
BTFSS PORTA, RA0; Interrupteur sur RA0
GOTO Boucle; On passe à Boucle
GOTO Boucledeux; On passe à Boucledeux
END;
C'est fort problable qu'il y ait des erreurs dans mes commentaires !
Merci à toi