Programme d'acquisition d'un signal DiSEqC
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Programme d'acquisition d'un signal DiSEqC



  1. #1
    inviteae17a37e

    Programme d'acquisition d'un signal DiSEqC


    ------

    Salut à tous, je suis en cours par correspondance au CNED, à plus ou moins deux mois de l'exam, et un devoir me pose quelques problèmes. La moitié du devoir porte sur un programme que je ne suis pas capable de comprendre. En voici le listing:

    Code:
    ******** Déclaration des constantes ********
    Long_max EQU 200 ;Définition de la taille de Long_max
    Long_min EQU 58 ;Définition de la taille de Long_min
    
    ********************* Déclaration des adresses ***********
    
    C_etat EQU 37H
    Parasite EQU 36H
    C_bits EQU 35H
    Parite EQU 34H
    Data_Diseq EQU 33H
    Com_Diseq EQU 32H
    Adrr_Diseq EQU 31H
    Framing EQU 30H
    
    
    ************** Déclaration des bits ****************
    
    Bit_code BIT 00H ;Définition de l'adresse de sauvegarde du bit
    
    
    ***************** Routine partielle d'acquisition du message DISEQC généré par le démodulateur **************
    
    FS31:    push ACC
                clr PSW.4
                setb PSW.3
                clr IE.0
                clr PSW.5
                mov Parasite,#20H
                mov C_bits, #08H
                mov Parite,#00H
                mov Data_Diseq,#00H
                mov Com_Diseq,#00H
                mov Adrr_Diseq,#00H
                mov Framing,#00H
                mov C_etat,#00H
                mov R0,#Framing
    
    *********************Début de la détection ****************
    
    FS32: djnz Parasite,FS32
             mov Parasite,#01H
             inc C_etat
             mov C,P3.2
             jnc DEBUT
             mov Parasite,#20H
    FS33: clr C
             mov A,C_etat
             subb A,#long_min
             jc COURT
             clr Bit_code
            jmp FS34
    COURT: setb Bit_code
    
    FS34; mov C,PSW.5
             jc BIT_PARITE
             mov A,@R0
             mov C,Bit_code
             mov ACC.7,C
             rl A
             mov @R0,A
             djnz C_bits,#08H
             jmp FS36
    BIT_PARITE: clr PSW.5
                       mov A,Parite
                       mov C,Bit_code
                       mov ACC.7,C
                       rl A
                       mov Parite,A
                      
    FS36: inc C_etat
             clr C
             mov A,#Long_max
             subb A,C_etat
             jc END_DISEQ
             mov C,P3.2
             jc FS36
             mov C_etat,#00H
             jmp FS32
    
    **************** Fin de la détection ******************
    
    END_DISEQ: pop ACC
                       clr PSW.3
                       ret
    Partant de là, je pense comprendre certains morceaux, comme les "clr" pour clear, ou les mov qui signifieraient qu'il faut par exemple pour mov A,B, donner à B la valeur de A (ou l'inverse je suis pas bien sûr). Du reste, je ne comprend absolument rien.

    Néanmoins, le devoir me pose 3 questions relatives à ce programme. La première est de déterminer la valeur de Long_max en fin de programme. La seconde est de dessiner l'algorigramme du programme qu'on me donne, et la dernière de montrer comment le programme réalise la tâche "attente d'un front descendant" en se basant sur le programme et les deux autres questions.

    Le problème étant que... J'ai beau tourner et retourner mes cours, j'ai pas la moindre trace de ce genre de choses, et rien que le langage utilisé me reste inconnu. Si je comprend bien, Long_max récupère la valeur de A, mais je n'ai aucune information à ce sujet, à aucun endroit. Donc voila, si quelqu'un pouvait me venir en aide, au moins pour m'expliquer comment tout fonctionne, pas forcemment pour répondre à tout hein, je saurais me débrouiller, à partir du moment où je comprendrais comment tout fonctionne.

    Voila, merci d'avance.
    Cordialement, Shadoow

    -----
    Dernière modification par JPL ; 17/03/2015 à 18h25. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Jack
    Modérateur

    Re : Programme d'acquisition d'un signal DiSEqC

    et rien que le langage utilisé me reste inconnu
    C'est de l'assembleur. Une recherche avec quelques-unes des instructions en mot clé apprend qu'il s'agit apparemment d'un coeur de 8051.

    Tu cherches maintenant le jeu d'instruction de ce µcontroleur et tu devrais t'en sortir.
    Dernière modification par Jack ; 17/03/2015 à 12h06.

Discussions similaires

  1. Acquisition d'un signal
    Par invite18104d3e dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 04/02/2015, 14h46
  2. Acquisition d'un signal numérique
    Par invitefb408a9b dans le forum Électronique
    Réponses: 19
    Dernier message: 23/09/2014, 08h42
  3. Acquisition d'un signal électrique
    Par invite3c8a1bda dans le forum Électronique
    Réponses: 16
    Dernier message: 31/03/2014, 22h03
  4. Linux - programme d'acquisition
    Par inviteb02bd531 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 5
    Dernier message: 21/09/2008, 13h44
  5. carte d'acquisition du signal
    Par invite6a971ad3 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/12/2007, 21h34