Besoin d'aide en assembleur. - ASM - Programmation
Marsh Posté le 13-12-2010 à 19:43:11
ReplyMarsh Posté le 13-12-2010 à 21:45:43
| antac a écrit : Tu peux poster ton code éventuellement  | 
 
 
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 
Marsh Posté le 13-12-2010 à 22:13:26
| Citation : il y a quelque chose que j'ai noté sans vraiment savoir ce que ça voulait dire | 
 
Il est étrange de noter des choses sans le savoir. 
Vous êtes sommnabule ou vous piquer le boulot d'un autre pour vous l'approprier ? 
 
Il est étrange aussi que vous ne répondiez pas à la question : X86 ? 
Vous devriez pourtant savoir que cela n'a rien à voir avec les x86 qui sont au coeur de nos PC, et auxquels on pense en priorité. 
Votre code est pour un PIC16F84A. 
TRISA et TRISB sont des registres de direction de données, associés à PORTA et PORTB.
Marsh Posté le 13-12-2010 à 17:43:28
Bonjour à tous,
j'ai créé un code en assembleur pour la première fois récemment, et il y a quelque chose que j'ai noté sans vraiment savoir ce que ça voulait dire.
Voilà les lignes en questions:
TRIS B: Que cela veut il vraiment dire, auriez vous une définition ?
TRIS A: Que cela veut il vraiment dire, auriez vous une définition ?
PORT B: Que cela veut il vraiment dire, auriez vous une définition ?
PORT A: Que cela veut il vraiment dire, auriez vous une définition ?
PS: j'ai eu beau chercher sur internet, j'en suis tombé à 0 (nihil).
PS2: Je ne suis peut être pas vraiment dans le bon forum, mais j'en ai pas trouvé d'autre plus adapté.
Merci d'avance, pour ceux qui prendront la peine de me répondre.
Bibi,