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 :
Seulement ça marche pas.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
J'avais essayé d'uniquement allumer la led en faisant :
Ca marche pas non plus.Code:BSF STATUS, RP0 ; Acces Bank1 BCF TRISA,2 ; en sortie BCF STATUS,RP0 ; bank0 BSF PORTA,2
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
-----