Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Faire clignoter une led sur pic 16F876A




  1. #1
    Rouliane

    Faire clignoter une led sur pic 16F876A

    Bonjour,

    Je me prends la tête depuis 2h pour faire clignoter une led sur un pic 16f876A mais ça ne marche pas.
    Le code en assembleur est vraiment bidon, et je voulais donc m'assurer auprès de vous qu'il est juste, car je pense que ça doit être un problème hardware.

    Voici le code :

    Code:
    ; "Circuit de test : clignotant à LED"           
    
    
    	List p=16F876A	; processeur utilisé 
    	#include <p16F876A.inc>
    
    	__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _LVP_OFF & _WRT_OFF & _CPD_OFF & _CP_OFF
    		;bits de configuration :
    		;oscillateur RC
    		;watchdog timer OFF
    		;power up timer ON
    		;brown out detect ON
    		;low voltage program OFF
    		;flash program write protection off
    		;data EE read protect OFF
    		;code protect OFF
    
     ;;;;;;; *** Définitions
           RA2 EQU 0x02	; PortA, sortie RA2
    
     ;;;;;;; *** Variables
     	CBLOCK 0x0C
    		vTempo1, vTempo2;
    	ENDC
    	
     ;;;;;;; *** Vecteurs
     	ORG	H'0000'		; Déclaration du Reset
    	GOTO	Start
    
    
    ; * Tempo de clignotement qui utilise deux variables pour obtenir une tempo longue
    
    Tempo	MOVLW	0xFF		; Charge W avec 0xFF
             MOVWF	vTempo2		; pour charge la vTempo2
    _Tempo2	MOVWF	vTempo1		; et la vTempo1
    _Tempo1	DECFSZ	vTempo1, f	; Décrémente vTempo et met le résultat dans vTempo
    	 GOTO 	_Tempo1		;  puis saute l'instruction suivante si 0. 
    	 DECFSZ	vTempo2, f
    	 GOTO	_Tempo2
    	 RETURN
    
    
    ; * Programme principal
    
    Start	BSF STATUS, RP0	; Acces Bank1
    	MOVLW	0xFB		; TRISA.b2 à 0 pour RA2 en sortie
    	MOVWF	TRISA
    	BCF	STATUS, RP0	; Acces Bank0
    	BSF	PORTA, RA2	; Allume la Led
    	CALL 	Tempo
    	BCF	PORTA, RA2	; Eteint la Led
    	CALL 	Tempo
    	GOTO 	Start		; Reboucle au départ
    	END
    Seulement ça marche pas.

    J'avais essayé d'uniquement allumer la led en faisant :

    Code:
    BSF STATUS, RP0	; Acces Bank1
    BCF TRISA,2 ; en sortie
    BCF STATUS,RP0 ; bank0
    BSF PORTA,2
    Ca marche pas non plus.

    Je précise que j'ai un quartz 4MHz donc j'ai testé en HS_OSC et XT_OSC, ça change rien.

    Pouvez-vous me confirmer que ce code est juste ?

    Je vous remercie

    -----


  2. Publicité
  3. #2
    alainav1

    Re : Faire clignoter une led sur pic 16F876A

    bonjour,
    bien que l'assembleur ne soit pas mon truc
    je n'ai pas vu la configuration du registre ADCON1 ?(qui pernent de configurer le portA )

    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  4. #3
    gebog75

    Re : Faire clignoter une led sur pic 16F876A

    Bonjour,
    sur un POR (Power On Reset) , donc à la mise sous tension, ou sur Reset du µP, les entrees RA0 à RA5 du 16F876A sont positionnées en entrées analogiques. Il faut donc ajouter dans l'initialisation :

    bsf STATUS,RP0 ; passer en banque1 pour acceder au registre ADCON1
    movlw B'00000110' ; PORTA en mode digital
    movwf ADCON1 ; écriture dans registre de contrôle A/D
    @+
    Dernière modification par gebog75 ; 14/11/2008 à 12h56. Motif: Precisions


  5. #4
    freepicbasic

    Re : Faire clignoter une led sur pic 16F876A

    Citation Envoyé par alainav1 Voir le message
    bonjour,
    bien que l'assembleur ne soit pas mon truc
    je n'ai pas vu la configuration du registre ADCON1 ?(qui pernent de configurer le portA )

    cordialement
    Alain
    +1

    idem

    mettre 7 dans ADCON1
    Le portA est en analogique au reset

    Sur B ça aurait fonctionné...
    A+, pat

  6. #5
    Rouliane

    Re : Faire clignoter une led sur pic 16F876A

    Merci pour vos réponses !

    Quel idiot j'ai oublié de configurer ADCON1....

    J'ai donc testé d'abord sur le port B en remplaçant la boucle principale par :

    Code:
    	; * Programme principal
    
    Start	
    
    	BSF STATUS, RP0	; Acces Bank1
    	bcf	TRISB,7
    	BCF	STATUS, RP0	; Acces Bank0
    	BSF	PORTB, 7	; Allume la Led
    	;CALL 	Tempo
            ;BCF	PORTB, 7	; Eteint la Led
    	;CALL 	Tempo
    	GOTO 	Start		; Reboucle au départ
    	END
    Avec ça normalement ma led devrait être tout le temps allumée.J'ai utilisé le simulateur de MPLAB, TRISB est bien configuré à 0111111 (pin 7 en sortie) et PORTB à 1000000 mais toujours pas d'allumage.
    Et j'ai pas de voltmètre pour vérifier mon hard

  7. A voir en vidéo sur Futura
  8. #6
    Rouliane

    Re : Faire clignoter une led sur pic 16F876A

    Vu que j'ai une horloge 4MHz, j'ai fait aussi le test en mettant XT_OSC ou HS_OSC mais ça change rien ...

  9. #7
    Rouliane

    Re : Faire clignoter une led sur pic 16F876A

    Bon en fait ça marche mon pic était mal mis, grrrr .... ))

  10. Publicité
  11. #8
    sebfull

    Re : Faire clignoter une led sur pic 16F876A

    bonjour j'en profite pour être sur se sujet comment faire clignote une led avec deux transistor et d'autre composant non avec ne555

  12. #9
    alainav1

    Re : Faire clignoter une led sur pic 16F876A

    bonjour
    un coup de google
    http://www.chez.com/jurastick/tip/clignotant/
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  13. #10
    sebfull

    Re : Faire clignoter une led sur pic 16F876A

    merci alainav1 pour le shema bye

Sur le même thème :

Discussions similaires

  1. Clignoter une LED avec intel 8051
    Par baskouteh dans le forum Électronique
    Réponses: 2
    Dernier message: 16/12/2007, 13h57
  2. Clignoter une LED avec intel 8051
    Par baskouteh dans le forum Électronique
    Réponses: 0
    Dernier message: 16/12/2007, 09h42
  3. clignoter une led avec pic 16F873
    Par ibrakanet dans le forum Électronique
    Réponses: 5
    Dernier message: 26/05/2007, 12h25
  4. comment faire clignoter une lampe?
    Par ouaf dans le forum Électronique
    Réponses: 7
    Dernier message: 10/10/2006, 21h17
  5. COMMENT ,faire clignoter 4 LED avec un microswitch ?
    Par davidgag dans le forum Électronique
    Réponses: 3
    Dernier message: 03/05/2006, 18h14