IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MPLAB Discussion :

[PIC16F877] Soustraire 32 à W


Sujet :

MPLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [PIC16F877] Soustraire 32 à W
    Bonjour tout le monde,

    Je suis débutante en assembleur. J'ai essayé d'écrire un programme qui soustrait la constante 32 de l'accumulateur W, mais ca ne marche pas. Est-ce que vous pouvez me montrer ou se trouve mon erreur ?

    S'il est nécessaire de préciser, j'utilise MPLAB 6.30.

    Voici le programme :

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    list p=16f877 , r=dec
    include <p16f877.inc>
    __CONFIG H'3F31'
     
    bsf STATUS,RP0;
    bsf STATUS,RP1;
    movlw D'32' ;
    movwf 181h;
     
    Subwf 181h,0
    movwf 185h;
    end

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [PIC16F877] MPLAB : Soustraire 32 à W
    Mais pourquoi, je ne reçois aucune réponse c'est pourtant fondamental .

    Help !! j'ai vraiment besoin de savoir .

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par Meryl1989 Voir le message
    Mais pourquoi, je ne reçois aucune réponse c'est pourtant fondamental .
    Parce que « mais ça ne marche pas » n'est pas une question valable. Il aurait fallu que tu nous dises exactement ce que tu cherchais à obtenir et quelle valeur tu as obtenu à la place.

    De plus, étant donné la concision de ton code, il n'est pas bien difficile de retrouver l'erreur. Relis bien le fonctionnement de chacune de tes instructions dans les spécifications de ton circuit :

    http://ww1.microchip.com/downloads/e...Doc/30292c.pdf

    Help !! j'ai vraiment besoin de savoir .
    « SUBWF 181h,- » ne retranche pas le contenu de 181h à W, mais le contenu de W à 181h. Sachant cela, tu peux faire ce que tu veux faire en deux instructions au lieu de quatre. Je te laisse volontairement chercher lesquelles.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [PIC16F877] MPLAB : Soustraire 32 à W
    Voici le programme rectifié :

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    list p=16f877 , r=dec
    include <p16f877.inc>
    __CONFIG H'3F31'
     
    bsf STATUS,RP0  ; banc 1 
    bsf STATUS,RP1  ; banc 1 
    movlw D'10'     ; charger dans W la constante 10 en décimal
    Sublw D'32'     ; retranche 32 du contenu de l'accumulateur W
    movwf 181h       ; place le contenu de W dans l'adresse 181h
    end


    Citation Envoyé par Obsidian Voir le message
    « SUBWF 181h,- » ne retranche pas le contenu de 181h à W, mais le contenu de W à 181h. Sachant cela, tu peux faire ce que tu veux faire en deux instructions au lieu de quatre. Je te laisse volontairement chercher lesquelles.
    Le résultat obtenu est la valeur décimale « 22 ». Du coup, c'est plutôt le contenu de 181h qui est retranché de l'accumulateur W et non le contraire.

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. soustraire 2 requete sql
    Par letudiant1 dans le forum ASP
    Réponses: 4
    Dernier message: 15/06/2005, 16h54
  2. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 16h29
  3. Soustraire 2 dates
    Par TheDarkLewis dans le forum C++
    Réponses: 4
    Dernier message: 21/09/2004, 14h05
  4. soustraire deux dates ?
    Par joejoe dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2002, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo