PIC16f84a
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 34

PIC16f84a



  1. #1
    clinon

    PIC16f84a


    ------

    Salut,
    Je suis entrain d'apprendre le PIC

    cmpt_UN EQU 0x0C
    cette instruction signifie quoi exactement? c'est quoi 0x0c merci beacoup.

    A+

    -----
    L'electricité est le métiers des sages!

  2. #2
    remy01

    Re : PIC16f84a

    Salut,
    0x0c = nombre en héxadécimal ( base 16)
    0x indique que c'est de l'héxa, 0c = 12 en décimal.
    cmpt_UN est equivalent à ( EQU ) 12.
    A+ ....Rémy.

  3. #3
    clinon

    Re : PIC16f84a

    Citation Envoyé par remy01 Voir le message
    Salut,
    0x0c = nombre en héxadécimal ( base 16)
    0x indique que c'est de l'héxa, 0c = 12 en décimal.
    cmpt_UN est equivalent à ( EQU ) 12.
    salut
    merci pour cette explication
    et pour quoi le cmpt-UN(comptage des unites ) est equivalent à 0x0c?

    A+
    L'electricité est le métiers des sages!

  4. #4
    DavidDB

    Re : PIC16f84a

    Salut,

    0x0C est l'adresse physique en mémoire RAM du µC.

    EQU est une directive qui détermine une équivalence avec les deux termes de la ligne de code.

    Donc, Chaque fois que l'assembleur rencontrera "cmpt_UN", il le remplacera par 0x0C.

    Pourquoi 0x0C? C'est le choix du programmeur, mais cette adresse doit être comprise dans les adresses libres de la RAM. Regarde dans le datasheet du 16F84 afin de connaître les adresses disponibles pour l'utilisateur.

    Une équivalence est très utile pour le programmeur car cela permet d'utiliser des termes compréhensibles pour les adresses en RAM, et cela facilite par la même occasion la maintenance du programme. Tout ceci à la condition que le choix des noms des équivalences soient parlantes...

    David.

  5. A voir en vidéo sur Futura
  6. #5
    clinon

    Re : PIC16f84a

    Citation Envoyé par DavidDB Voir le message
    Salut,

    0x0C est l'adresse physique en mémoire RAM du µC.

    EQU est une directive qui détermine une équivalence avec les deux termes de la ligne de code.

    Donc, Chaque fois que l'assembleur rencontrera "cmpt_UN", il le remplacera par 0x0C.

    Pourquoi 0x0C? C'est le choix du programmeur, mais cette adresse doit être comprise dans les adresses libres de la RAM. Regarde dans le datasheet du 16F84 afin de connaître les adresses disponibles pour l'utilisateur.

    Une équivalence est très utile pour le programmeur car cela permet d'utiliser des termes compréhensibles pour les adresses en RAM, et cela facilite par la même occasion la maintenance du programme. Tout ceci à la condition que le choix des noms des équivalences soient parlantes...

    David.
    Salut
    merci beacoup.
    donc c'est un emplacement dans la RAM !il existe combien pour le pic16f84? et le stockage de l'information se fait sur quels nombre de bits?
    merci beacoup

    A+
    L'electricité est le métiers des sages!

  7. #6
    Yapette

    Re : PIC16f84a

    3ème page de la datasheet tirée de chez Microchip :
    http://www.microchip.com/stellent/id...serText=16f84a

    High Performance RISC CPU Features:
    • Only 35 single word instructions to learn
    • All instructions single-cycle except for program
    branches which are two-cycle
    • Operating speed: DC - 20 MHz clock input
    DC - 200 ns instruction cycle
    • 1024 words of program memory
    68 bytes of Data RAM
    • 64 bytes of Data EEPROM
    • 14-bit wide instruction words
    8-bit wide data bytes
    • 15 Special Function Hardware registers
    • Eight-level deep hardware stack
    • Direct, indirect and relative addressing modes
    • Four interrupt sources:
    - External RB0/INT pin
    - TMR0 timer overflow
    - PORTB<7:4> interrupt-on-change
    - Data EEPROM write complete


  8. #7
    clinon

    Re : PIC16f84a

    Citation Envoyé par Yapette Voir le message
    3ème page de la datasheet tirée de chez Microchip :
    http://www.microchip.com/stellent/id...serText=16f84a

    High Performance RISC CPU Features:
    • Only 35 single word instructions to learn
    • All instructions single-cycle except for program
    branches which are two-cycle
    • Operating speed: DC - 20 MHz clock input
    DC - 200 ns instruction cycle
    • 1024 words of program memory
    68 bytes of Data RAM
    • 64 bytes of Data EEPROM
    • 14-bit wide instruction words
    8-bit wide data bytes
    • 15 Special Function Hardware registers
    • Eight-level deep hardware stack
    • Direct, indirect and relative addressing modes
    • Four interrupt sources:
    - External RB0/INT pin
    - TMR0 timer overflow
    - PORTB<7:4> interrupt-on-change
    - Data EEPROM write complete

    merci beacoup
    L'electricité est le métiers des sages!

  9. #8
    Gérard

    Re : PIC16f84a

    Et si tu lisais Bigonoff ....

  10. #9
    clinon

    Re : PIC16f84a

    Salut
    la modification de 0x0c seulement à la RAM
    pic non alimente=> 0x0c=0????
    merci
    A+
    L'electricité est le métiers des sages!

  11. #10
    invite22c0acb2

    Re : PIC16f84a

    Citation Envoyé par clinon Voir le message
    Salut
    la modification de 0x0c seulement à la RAM
    pic non alimente=> 0x0c=0????
    merci
    A+
    HEIN !!!
    Essaye d'etre un peu plus claire ?

  12. #11
    Jack
    Modérateur

    Re : PIC16f84a

    EQU est une directive qui détermine une équivalence avec les deux termes de la ligne de code.

    Donc, Chaque fois que l'assembleur rencontrera "cmpt_UN", il le remplacera par 0x0C.
    D'accord


    0x0C est l'adresse physique en mémoire RAM du µC.
    Mais là, pas forcément. cmpt_UN ne sera pas forcément implanté en ram. Ca peut servir par exemple si on veut comparer le contenu d'un registre à la valeur 0x0C. Je ne connais pas bien la syntaxe des pics, mais sur certains µC on trouverais un truc du genre:

    cmp cmpt_UN

    A+

  13. #12
    DavidDB

    Re : PIC16f84a

    Salut Jack,

    Mais là, pas forcément. cmpt_UN ne sera pas forcément implanté en ram. Ca peut servir par exemple si on veut comparer le contenu d'un registre à la valeur 0x0C. Je ne connais pas bien la syntaxe des pics, mais sur certains µC on trouverais un truc du genre:

    cmp cmpt_UN
    Oui, tu as parfaitement raison, c'est le même principe sur les PICs, ils ne dérogent pas à la règle.
    Pour faire ce que tu décris, sur PICs, je préfère utiliser la directive DEFINE qui me semble plus approprié, mais qui à presque la même fonction (d'ailleurs, bon nombre de programmeurs de PICs ne font pas cette distinction...)
    Je crois que la définition exacte de la directive EQU est "Assigner une étiquette" alors que DEFINE signifie "remplacer une chaîne". Mais bon, je ne suis pas un spécialiste dans les explications claires et détaillées et en plus compréhensible par le commun des mortels.
    Dans tous les cas, l’utilisation de ce genre de directive reste à l'appréciation du programmeur et à sa rigueur de travail.

    Et pour en rajouter une couche, dans mes programmes pour réserver un emplacement en RAM, j'utilise la directive RES qui alloue un ou des emplacement en RAM suivant comment on l'utilise et qui permet sans devoir retoucher aux équivalences d'allouer plus d'espace RAM...

    Par contre, ici, vu le contexte du fil, 0x0C est bien une adresse physique en RAM du µC.

    David

  14. #13
    Jack
    Modérateur

    Re : PIC16f84a

    Je crois que la définition exacte de la directive EQU est "Assigner une étiquette" alors que DEFINE signifie "remplacer une chaîne"
    EQU signifie equal ou equate selon certaines doc. equ fonctionne exactement comme define qui est plus récent et tiré du langage C et effectue effectivement une substitution de chaines de caractères dans le source.

    Par contre, ici, vu le contexte du fil, 0x0C est bien une adresse physique en RAM du µC.
    Bein justement, je ne vois pas ce contexte puisqu'il n'y a pas de code.

    A+

  15. #14
    invite1687c371

    Smile Re : PIC16f84a

    slt essai de lire le cours bigonoff il explique bien le pic

  16. #15
    DavidDB

    Re : PIC16f84a

    Par contre, ici, vu le contexte du fil, 0x0C est bien une adresse physique en RAM du µC.

    Bein justement, je ne vois pas ce contexte puisqu'il n'y a pas de code.
    Presque certain à 99.999%, que c'est une adresse en RAM, car le début de la RAM commence à l'adresse 0x0C sur ce µC...
    Je doute fort que cmpt_UN soit une constante, car le nom de l'étiquette n'est pas très équivoque, mais cela reste possible...

    Merci pour ta définition des deux directives. Sur PICs la directive DEFINE semble plus puissante qu'une simple substitution de chaines de caractères, car elle permet aussi le passage de paramètre (mais uniquement lors de l'assemblage du code)...

    David.

  17. #16
    Jack
    Modérateur

    Re : PIC16f84a

    Comme je connais bien moins les pics que toi, je vais en rester là .

    Je tenais juste à apporter des précisions d'ordre général sur la directive d'assemblage EQU.

    A+

  18. #17
    DavidDB

    Re : PIC16f84a

    N'étant pas un spécialiste du C, ton explication sur la provenance de la directive DEFINE, me permettra de me coucher ce soir moins bête).

    C'est toujours constructif d'avoir un avis "d'orde général" car l'Assembleur PICs n'est pas une généralité.

    David.

  19. #18
    clinon

    Re : PIC16f84a

    Citation Envoyé par SiNeRgY Voir le message
    HEIN !!!
    Essaye d'etre un peu plus claire ?
    Salut,
    on modifier la valeur par programme du 0xc0 apres est ce que cette valeur reste toujours?
    merci
    A+
    L'electricité est le métiers des sages!

  20. #19
    DavidDB

    Re : PIC16f84a

    Salut,

    Ouvre un cours sur les PICs...

    Alors, si c'est une constante dans le programme cmpt_UN ne pourra pas être modifié lors du déroulement du programme.

    Si cmpt_UN est une variable en RAM, 0x0C est l'adresse physique de cette variable et l'adresse n'a rien avoir avec le contenu de cette variable. Donc, dans cmpt_UN tu y mets ce que tu veux...

    David.

  21. #20
    clinon

    Re : PIC16f84a

    Citation Envoyé par DavidDB Voir le message
    Salut,

    Ouvre un cours sur les PICs...

    Alors, si c'est une constante dans le programme cmpt_UN ne pourra pas être modifié lors du déroulement du programme.

    Si cmpt_UN est une variable en RAM, 0x0C est l'adresse physique de cette variable et l'adresse n'a rien avoir avec le contenu de cette variable. Donc, dans cmpt_UN tu y mets ce que tu veux...

    David.
    Salut
    mais si on a modifier 0x0c apres on a couper l' alimentation apres un certain temp on l'alimente le pic .0x0c garde le meme contenu? c'est ça la question!
    un cours sur les pic rest toujours abstrait meme de bignoff j'ai fais un grand pas pour savoir quelque informations sur les pic surtout j'ai jamais etudie ca face à un prof quoi

    merci et A+
    L'electricité est le métiers des sages!

  22. #21
    Jack
    Modérateur

    Re : PIC16f84a

    Si la valeur est en RAM, il est évident qu'elle va être perdue avec la coupure de l'alimentation.

    Si la valeur est en eeprom ou en flash, sa valeur sera conservée, mais modifier une valeur dans ce genre de mémoire ne se fait pas par une simple écriture mémoire.

    A toi de voir.

    A+

  23. #22
    omar.STE

    Wink Re : PIC16f84a

    bjr
    moi aussi j'ai possté un sujet sur le PIC16F84a mais je crois que j'ai pas pu reussi
    behhh je vais continuer avec vous j'ai un petit cour sur ce PIC
    j'espere qu'il peut vous aider
    je l'ai traduit de la langue anglais en français
    Images attachées Images attachées
    l'aide n'a aucun prix

  24. #23
    clinon

    Re : PIC16f84a

    Citation Envoyé par Jack Voir le message
    Si la valeur est en RAM, il est évident qu'elle va être perdue avec la coupure de l'alimentation.

    Si la valeur est en eeprom ou en flash, sa valeur sera conservée, mais modifier une valeur dans ce genre de mémoire ne se fait pas par une simple écriture mémoire.

    A toi de voir.

    A+
    Salut,
    HA! je cherche ça merci beacoup!
    L'electricité est le métiers des sages!

  25. #24
    Gérard

    Re : PIC16f84a


  26. #25
    clinon

    Re : PIC16f84a

    Citation Envoyé par Gérard Voir le message
    Salut,
    J'ai le livre bignoff merci
    mais c'est dificil toujours d'apprendre la technique sur les papiers c'est pour cela je suis là

    A+
    L'electricité est le métiers des sages!

  27. #26
    Gérard

    Re : PIC16f84a

    Citation Envoyé par clinon Voir le message
    Salut,
    on modifier la valeur par programme du 0xc0 apres est ce que cette valeur reste toujours?
    merci
    A+
    Si c'est une valeur écrite en RAM : oui
    Si c'est une adresse RAM : non

    J'ai l'impression que tu confonds l'adresse et son contenu.

  28. #27
    Gérard

    Re : PIC16f84a

    Citation Envoyé par clinon Voir le message
    Salut,
    J'ai le livre bignoff merci
    Alors il faut aussi le lire et surtout le COMPRENDRE !

    Citation Envoyé par clinon Voir le message
    mais c'est dificil toujours d'apprendre la technique sur les papiers c'est pour cela je suis là

    A+
    La technique fait TOUJOURS référence aux docs.

  29. #28
    clinon

    Re : PIC16f84a

    Citation Envoyé par Gérard Voir le message
    Alors il faut aussi le lire et surtout le COMPRENDRE !



    La technique fait TOUJOURS référence aux docs.
    Oui mais il faut toujours une formation dans des centres ou des fac sinon c'est pas la peinne d'ouvrire ts cas!
    A+
    L'electricité est le métiers des sages!

  30. #29
    Jack
    Modérateur

    Re : PIC16f84a

    Oui mais il faut toujours une formation dans des centres ou des fac sinon c'est pas la peinne d'ouvrire ts cas!
    Il y a beaucoup d'autodidactes pourtant sur ce site.

    Il existe des quantités de sites et de documents didactiques aujourd'hui sur le net et quelques bons forum d'aide () pour pouvoir s'autoformer.

    A+

  31. #30
    invite22c0acb2

    Re : PIC16f84a

    Hi
    je crois bien qu'il faut déja bien comprendre l'architicture et les fonctions des microcontroleurs PIC pour commencer la programation, si la programmation en assembleur semble lourde il y'a toujours les compilateurs C, Basic ...
    Bon courage, essai de lire au moins le début de bigonoff, tous ce qui introduction avant d'aller plus loin

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. pic16f84A
    Par invitea711403b dans le forum Électronique
    Réponses: 5
    Dernier message: 06/02/2007, 19h22
  2. Timer PIC16F84A...??
    Par bimo dans le forum Électronique
    Réponses: 3
    Dernier message: 27/06/2006, 12h30
  3. programme pic16F84A
    Par invite2d9e7c03 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/03/2006, 11h14
  4. Problème de programmateur PIC16F84A
    Par inviteae0bf1de dans le forum Électronique
    Réponses: 10
    Dernier message: 07/04/2005, 16h28
Découvrez nos comparatifs produits sur l'informatique et les technologies.