PIC16f84a - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 34 sur 34

PIC16f84a



  1. #31
    Gérard

    Re : PIC16f84a


    ------

    Citation Envoyé par clinon Voir le message
    Oui mais il faut toujours une formation dans des centres ou des fac sinon c'est pas la peinne d'ouvrire ts cas!
    A+
    Si c'est ce que tu penses, laisse tomber les µC.

    -----

  2. #32
    invitef86a6203

    Re : PIC16f84a

    cmpt_UN EQU 0x0C
    Il s'agit d une commande prépocesseur.
    Il peut sagir d'une constante ou d'une adresse RAM selon l'instruction utilisée
    Movlw cmpt_UN ' constante
    movwf cmpt_UN ' adresse RAM

    Une constante peut aussi indiquée une adresse RAM en adressage indirect
    Movlw cmpt_UN ; constante qui est un pointeur RAM
    movwf FSR ; adressage indirect
    movf INDF,W ; charge dans W le contenu de l'adresse 0x0C.

    l'instruction cmp n'existe pas en pic on pourrait créer une macro.
    La comparaison se fait avec la soustraction;

    Movf cmpt_UN,W ; charge dans W le contenu de l'adresse 0x0C.
    SUBLW 10 ; compare à 10

    pour tester l'égalité
    BTFSC STATUS,Z ; si flag Zero alors egale
    goto Egale ; faire la fonction égale !

  3. #33
    invitef86a6203

    Re : PIC16f84a

    exemple de macros.
    Noter que l'assembleur ne sait pas s'il s'agit d'adresse RAM ou de constante.
    Contrairement à un compilateur qui ferait la différence (enfin pas toujours...).
    Il reste le soin au programmeur de savoir ce qu'il fait ,
    si l'on compare le contenu de 2 adresses
    ou si l'on compare le contenu d'une adresse avec une valeur constante.
    Les macros seront alors différentes , ici CMP et CMPI (I pour immédiat (Motorola)=constante)

    ;compare le contenu de deux adresses RAM
    CMP macro ADR1,ADR2
    movwf ADR1,W
    subwf ADR2
    exitm

    ;compare le contenu d'un adresse RAM à une constante
    CMPI macro ADR1,MyConst
    movwf ADR1,W
    sublw MyConst
    exitm


    ; Branch if equal (Motorola Asm)
    BEQ macro etiquette
    btfsc STATUS,z
    goto etiquette
    exitm

    ; Branch if not equal (Motorola Asm)
    BNE macro etiquette
    btfss STATUS,z
    goto etiquette
    exitm


    ; Branch if Greater l (Motorola Asm)
    BG macro etiquette
    btfsc STATUS,C
    goto etiquette
    exitm


    Exemples:
    cmpt_UN EQU 0x0C
    cmpt_DEUX EQU 0x0D

    ; compare le contenu de cmpt_UN et cmpt_DEUX
    CMP cmpt_UN cmpt_DEUX
    BEQ Egale

    ; Test le contenu de cmpt_UN s' il est différent de 10
    CMPI cmpt_UN 10
    BNE NotEqual

    ; Test le contenu de cmpt_UN s' il est supérieur à 10
    CMPI cmpt_UN 10
    BG Superior

    NB)
    Nos amis Anglophones comme d'hab. raisonnent à l'envers de nous.
    On retire W du literal et non pas le literal du W comme on pourrait naturellement le penser en bonne pensée Latine...
    Donc on test bien si cmpt_UN est supérieur à 10.

  4. #34
    invitea821b3a8

    Re : PIC16f84a

    Salut,
    merci merci beaucoup pour les consiels et pour tous ca les amis vraiment c'est trés gentil!

    A+

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. pic16f84A
    Par invitea711403b dans le forum Électronique
    Réponses: 5
    Dernier message: 06/02/2007, 20h22
  2. Timer PIC16F84A...??
    Par invite49060bcb dans le forum Électronique
    Réponses: 3
    Dernier message: 27/06/2006, 13h30
  3. programme pic16F84A
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/03/2006, 12h14
  4. Problème de programmateur PIC16F84A
    Par inviteae0bf1de dans le forum Électronique
    Réponses: 10
    Dernier message: 07/04/2005, 17h28
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...