toujours moi PIC16F877
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

toujours moi PIC16F877



  1. #1
    invite814175e4

    toujours moi PIC16F877


    ------

    bonsoir , svp j'ai besoin d'aide , je suis débutant en programmation des pic en assembleur , j'ai un problème , j'ai besoin d'un programme ecris en assembleur qui fait CAN , bref
    voici la description de ce je veux faire
    1-initialiser ADON à 1
    2-configurer ADCON1
    3-lancer la conversion
    4-tester si ADIF=1 puis revenir à l'étape 3
    5-mettre ADIF à 0
    6-mettre ADRESH dans W

    j'ai commencé à initialiser ADON avec bsf ADCON0,0 , pour lancer la conversion je fais bsf ADCON0,GO
    SVP aidez moi je voudrais un code écris en assembleur qui respecte les étapes que j'ai listé svp!!
    i aidez moi je vous en prie vivement!!!!!

    -----

  2. #2
    invite7a49d0d5

    Cool Re : toujours moi PIC16F877

    Bonjour venicetiodelabota,

    et Bienvenue sur les Forums FUTURA ;O]

    tu trouveras la procédure détaillée pas à pas, avec
    toutes les explications, dans la partie 2 du cours de
    Mr BigOnOff (chapitre 19)...

    et là aussi :
    http://pagesperso-orange.fr/fabrice..../ADC_16F88.htm

    vede
    ;O]

  3. #3
    RISC

    Re : toujours moi PIC16F877

    +1....commence par Bigonoff...

    a+

  4. #4
    gedonet

    Re : toujours moi PIC16F877

    Bonjour
    Il te manque des etapes dans ta convertion, ainsi que des infos. Comme vede je te recommande le cours de Bigonoff.
    Pour faire simple, une convertion se deroule en 2 etapes principales, une partie pour l'acquisition de la tension, la seconde pour la convertion elle même.
    1° il faut configurer ADCON1 en fonction de la pin utilisée et de la justification du resultat, ne pas oublier TRISX
    2° eventuellement valider l'interruption
    3° choisir le diviseur le plus adapté dans ADCON0
    4° selectionner la pin à mesurer
    5° lancer l'acquisition par ADON de ADCON0
    6° attendre le Tacq ( en general 19.7µs pour 5V d'alim)
    7° demarrer la convertion avec GO de ADCON0
    8° attendre la fin de convertion (interruption ou lecture de DONE de ADCON0)
    9° lire le resultat dans ADRESH et ADRESL
    10° attendre 2 X Tad (en général 3.2µs) avant une nouvelle convertion
    11° recommencer en 4°.
    Gilles

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

    Re : toujours moi PIC16F877

    salut vede ,
    j'ai un peu avancer ,c'est toujours par rapport au CAn ,mais c'est toujours chaud pourrais tu m'aider à compléter ce programme

    tiens le voici:

    ;***************************** ****************************** *
    ; Acquérir la tension issue du potentiomètre sur RA5
    ; et afficher le poids fort sur RD0 à RD7
    ;***************************** ****************************** *
    ; NOM: CAN.asm
    ; Date: 18/11/2007
    ; Version: 1.0
    ; Circuit: Voir schéma structurel
    ;***************************** ****************************** *

    LIST P=16F877, F=INHX32 ; directive pour définir le processeur et le format
    #include <P16F877.INC> ; Définition des constantes de chez Microchip

    ;***************************** ****************************** *
    ; MACRO
    ;***************************** ****************************** *
    ;-----------MACRO de PASSAGE en BANK0------------------------
    BANK0 macro
    bcf STATUS,RP0
    bcf STATUS,RP1
    endm
    ;-----------MACRO de PASSAGE en BANK1------------------------
    BANK1 macro
    bsf STATUS,RP0
    bcf STATUS,RP1
    endm
    ;-----------MACRO de PASSAGE en BANK2------------------------
    BANK2 macro
    ...... .........................
    ...... ..........................
    endm
    ;-----------MACRO de PASSAGE en BANK3------------------------
    BANK3 macro
    bsf STATUS,RP0
    bsf STATUS,RP1
    endm

    ;***************************** ****************************** *
    ; DEMARRAGE SUR RESET
    ;***************************** ****************************** *
    org 0x0000 ; Adresse de départ après reset
    goto debut
    ;Interruption
    org 0x0004 ; Adresse de départ après une interruption
    retfie ; pas d'interruption ICI

    ;***************************** ****************************** ***********
    ; PROGRAMME PRINCIPAL
    ;***************************** ****************************** ***********
    debut
    call init_port ; initialisation des ports utilisés
    call init_CAN ; initialisation du CAN
    initCAN
    ….. …………… ; Lancement de la conversion
    Attente
    btfsc ……………. ; attente fin de conversion
    goto Attente
    BANK1
    movf ………….. ; Lecture des poids forts du résultat
    movwf ………….. ; à afficher sur le portD
    BANK0
    ……… ………….. ; …………………………………..
    ……… ………….. ; …………………………………
    goto initCAN

    ;***************************** ****************************** ***********
    ; SOUS-PROGRAMMES
    ;***************************** ****************************** ***********

    ;-----------SOUS PROGRAMME INITIALISATION DES PORTS-----------------------------

    init_port
    clrf PORTB ; Init portB/D : RAZ du portD et B
    …… …………. ;…………………………………….
    BANK1
    Movlw b'..................'
    ............ TRISD ; .............................. ..........................
    ............ b'..................'
    ............ ...................... ; .............................. ..........................
    ............ ...................... ; Bit5 (AN4) du portA en entrée
    BANK0
    return

    ;-----------SOUS PROGRAMME INITIALISATION DU CAN-----------------------------

    init_CAN
    movlw b'..……........' ; Horloge Fosc/2, Selection de RA5
    ………. ..................... ; Activation de CAN
    BANK1
    ............ b'.………….' ; 10 bits à gauche
    Movwf ……………. ; Entrée AN4 analogique Vref+=Vdd Vref-=Vss
    BANK0
    return

    END

  7. #6
    invite814175e4

    Re : toujours moi PIC16F877

    salut gedonet pourrais tu m'aider à compléter ce programme pour le CAN , voici le programme merci d'avance:

    ;***************************** ****************************** *
    ; Acquérir la tension issue du potentiomètre sur RA5
    ; et afficher le poids fort sur RD0 à RD7
    ;***************************** ****************************** *
    ; NOM: CAN.asm
    ; Date: 18/11/2007
    ; Version: 1.0
    ; Circuit: Voir schéma structurel
    ;***************************** ****************************** *

    LIST P=16F877, F=INHX32 ; directive pour définir le processeur et le format
    #include <P16F877.INC> ; Définition des constantes de chez Microchip

    ;***************************** ****************************** *
    ; MACRO
    ;***************************** ****************************** *
    ;-----------MACRO de PASSAGE en BANK0------------------------
    BANK0 macro
    bcf STATUS,RP0
    bcf STATUS,RP1
    endm
    ;-----------MACRO de PASSAGE en BANK1------------------------
    BANK1 macro
    bsf STATUS,RP0
    bcf STATUS,RP1
    endm
    ;-----------MACRO de PASSAGE en BANK2------------------------
    BANK2 macro
    ...... .........................
    ...... ..........................
    endm
    ;-----------MACRO de PASSAGE en BANK3------------------------
    BANK3 macro
    bsf STATUS,RP0
    bsf STATUS,RP1
    endm

    ;***************************** ****************************** *
    ; DEMARRAGE SUR RESET
    ;***************************** ****************************** *
    org 0x0000 ; Adresse de départ après reset
    goto debut
    ;Interruption
    org 0x0004 ; Adresse de départ après une interruption
    retfie ; pas d'interruption ICI

    ;***************************** ****************************** ***********
    ; PROGRAMME PRINCIPAL
    ;***************************** ****************************** ***********
    debut
    call init_port ; initialisation des ports utilisés
    call init_CAN ; initialisation du CAN
    initCAN
    ….. …………… ; Lancement de la conversion
    Attente
    btfsc ……………. ; attente fin de conversion
    goto Attente
    BANK1
    movf ………….. ; Lecture des poids forts du résultat
    movwf ………….. ; à afficher sur le portD
    BANK0
    ……… ………….. ; …………………………………..
    ……… ………….. ; …………………………………
    goto initCAN

    ;***************************** ****************************** ***********
    ; SOUS-PROGRAMMES
    ;***************************** ****************************** ***********

    ;-----------SOUS PROGRAMME INITIALISATION DES PORTS-----------------------------

    init_port
    clrf PORTB ; Init portB/D : RAZ du portD et B
    …… …………. ;…………………………………….
    BANK1
    Movlw b'..................'
    ............ TRISD ; .............................. ..........................
    ............ b'..................'
    ............ ...................... ; .............................. ..........................
    ............ ...................... ; Bit5 (AN4) du portA en entrée
    BANK0
    return

    ;-----------SOUS PROGRAMME INITIALISATION DU CAN-----------------------------

    init_CAN
    movlw b'..……........' ; Horloge Fosc/2, Selection de RA5
    ………. ..................... ; Activation de CAN
    BANK1
    ............ b'.………….' ; 10 bits à gauche
    Movwf ……………. ; Entrée AN4 analogique Vref+=Vdd Vref-=Vss
    BANK0
    return

    END

  8. #7
    gedonet

    Re : toujours moi PIC16F877

    Bonjour
    L'exercice que tu proposes est certainement donné par ton prof pour que tu le fasess et pas nous. Il faut donc t'armer d'un peut de reflexion et lire le cours de ton prof ou celui de Bigonoff.
    Tu trouveras certaines reponses directement dans le fichier lum2.asm qui est avec le cours part2 de Bigonoff.

    On pourras certainement t'aider si tu as une question precise et que tu nous expliques le point que tu ne comprends pas.
    Ce n'est pas pour t'ennuyer que je ne te donne pas ton exercice terminé, mais il faut que tu sois capable de le resoudre par toi même.

    S'il s'agit de tester notre competence, rassures toi, vede, RISC, beaucoup d'intervenants sur ce forum et moi sommes tout à fait capable d'ecrire un programme de conversion A/D avec un pic en comprenant le rôle de chaque ligne.
    Gilles

Discussions similaires

  1. Svp aidez moi! je galère toujours avec les dérivées et tangentes...
    Par invite37ea66fb dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 20/02/2008, 12h42
  2. Aidez-moi s'il vous plais car je n'arrive toujours pas à comprendre
    Par Tofu dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 22/02/2005, 15h39
  3. Toujours plus loin, toujours plus haut...
    Par inviteba0a4d6e dans le forum Technologies
    Réponses: 9
    Dernier message: 07/02/2005, 13h43
  4. BARYCENTRES toujours moi
    Par invitecb163ca8 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 10/12/2004, 22h40
Découvrez nos comparatifs produits sur l'informatique et les technologies.