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,