Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

conversion Hexa-BCD en assembleur



  1. #1
    stgi02

    conversion Hexa-BCD en assembleur


    ------

    Bonjour, je suis étudiant en electronque

    je programme en assembleur sur le micro intel 8085

    Je recherche un programme ( pas trop long) qui me permettrait de convertir un nombre Hexadécimal en un nombre BCD

    Exemple :

    0A = 10
    09 = 09
    0F = 15

    Merci bcp pour votre aide

    -----

  2. #2
    Jack
    Modérateur

    Re : conversion Hexa- DCB en assembleur

    il te faudra faire un programme qui va soustraire 10 (ou 0a en hexa) itérativement jusqu'à ce que le reste soit inférieur à 10.

    Tu obtiendras ainsi le nombre de dizaines et les unités. Tu appliques le même principe pour obtenir les dizaines et le nombre de centaines, etc.

    Ex: 35h - 0ah = 2bh
    2bh - 0ah = 21h
    21h - 0ah = 17h
    17h - 0ah = 0dh
    0dh - 0ah = 03h

    Il y a donc 5 dizaines et 3 unités, soit 53 en BCD

    A+

  3. #3
    stgi02

    Re : conversion Hexa-BCD en assembleur

    merci bcp pour la solution
    tu saurais m'expliquer pourquoi on soustrait 0A??

    merci

  4. #4
    Gérard

    Re : conversion Hexa-BCD en assembleur

    Parce que 0Ah = 10 en décimal

    il faut faire :
    init dizaine = 0
    tant que nombre > 10
    nombre = nombre - 10
    dizaine = dizaine + 1

    à la sortie, dizaine contiendra les dizaines (normal)
    et nombre contiendra les unités
    nb : la valeur du nombre de départ n'est pas sauvée (en binaire)
    Gérard.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : conversion Hexa-BCD en assembleur

    merci Gérard.

    C'est marrant comme on oublie vite. A la maternelle, pour apprendre à compter, on utilise pourtant ce principe il me semble: pour compter n bâton, on les regroupe en paquets de 10 (enfin, c'était comme ça quand j'ai appris).

    En programmation, rien n'empêche d'utiliser ce principe, mais il faut s'en souvenir. Comme quoi, on n'apprend pas toujours des choses qui ne servent à rien.

    A+

  7. #6
    Gérard

    Re : conversion Hexa-BCD en assembleur

    Pas de quoi, c'était un plaisir.
    Gérard.

  8. #7
    reda.cosi

    Re : conversion Hexa-BCD en assembleur

    Bonjour,
    j'ai besoin du meme algo mais avec une contrainte suplementaire.

    je suis sur une machine 16 bits et je doit obtenir l'equivalent DCB d'un nombre 32 bits qui m'est fourni sur deux registres R1=bit31-16 et R0=bit15-bit0.
    le resultat bien sur doit aussi tenir compte de cette contrainte.

    Merci

  9. #8
    Gérard

    Re : conversion Hexa-BCD en assembleur

    Citation Envoyé par reda.cosi Voir le message
    Bonjour,
    j'ai besoin du meme algo mais avec une contrainte suplementaire.

    je suis sur une machine 16 bits et je doit obtenir l'equivalent DCB d'un nombre 32 bits qui m'est fourni sur deux registres R1=bit31-16 et R0=bit15-bit0.
    le resultat bien sur doit aussi tenir compte de cette contrainte.

    Merci
    Pas clair ....
    Ce que je comprends, tu veux convertir un nombre 32 bit (max 4 294 967 295) en BCD, tu trouveras à la sortie 11 variables.
    Ai-je juste ?

  10. #9
    thesheep

    Re : conversion Hexa-BCD en assembleur

    bonjour


    apres reflextion je n'arrive pas a crée une routine en ASM pour pic

    en effet je recoit d'une sonde des valeur binaire et je doit les convertire en bcd pour permmetre l'envoie sur des afficheur qui demande du bcd

    merci d'avance
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

  11. #10
    DAUDET78

    Re : conversion Hexa-BCD en assembleur

    Si tu n'as pas l'intruction de division 32 bits par 16 bits ..tu fais la division par soustraction successive comme en CM2 !

    0/ Valeur =0 et Soustracteur_32bit=1000000000 (soit Soustracteur_32bit=0x3BACA00)
    1/ (Entier_32bit)- Soustracteur_32bit >0 on incremente Valeur goto 1/
    2/ si = 0 : Goto 4/
    3/ si <0 (Entier_32bit) = (Entier_32bit)+Soustracteur_32 bit
    4/ Valeur =Valeur + 0x30
    5/ Valeur = code ASCII du 1er chiffre à envoyer au LCD
    et tu recommences pour le 2éme chiffre avec Valeur =0 et Soustracteur_32bit=100000000 (soit Soustracteur_32bit=0x5F5E100) etc etc
    J'aime pas le Grec

  12. #11
    thesheep

    Re : conversion Hexa-BCD en assembleur

    j'ai un seul octet a convertire et j'utilise un pic16F628A

    j'aimerai seulement les chiffre de 0 a 99
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

  13. #12
    DAUDET78

    Re : conversion Hexa-BCD en assembleur

    Citation Envoyé par thesheep Voir le message
    j'ai un seul octet a convertire et j'utilise un pic16F628A
    tu utilises ma réponse #10

    Tu retranches 10 (soit 0x0A en hexa) un certain nombre de fois

    Je ne connais pas les PICs, il y a peut être une instruction de convertion 8bits Hexa en 2 octets BCD
    J'aime pas le Grec

  14. #13
    thesheep

    Re : conversion Hexa-BCD en assembleur

    pour le moment j'ai utiliser une routine trouver dans les application note de microchip mais je ne comprend pas elle me retourne exactement les meme valeur

    Code:
    BinBCD
    	clrf     BCD
    again
    	addlw    -10
    	btfss      STATUS,C
    	goto    swapBCD
    	incf     BCD, F
    	goto    again
    swapBCD
    	addlw    10
    	swapf    BCD,f
    	iorwf     BCD,f
    	return
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

  15. #14
    DAUDET78

    Re : conversion Hexa-BCD en assembleur

    Je ne connais pas l'assembleur PIC, mais, grosso modo, ça ressemble à ce que je raconte en #12
    J'aime pas le Grec

  16. #15
    thesheep

    Re : conversion Hexa-BCD en assembleur

    oui je suis d'acore mais le probleme est que si je rentre 14H il en resor 14h
    et pas 0010 0000 soit 20h
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

  17. #16
    DAUDET78

    Re : conversion Hexa-BCD en assembleur

    Mon algorithme est bon
    Microchip raconte rarement des âneries
    Je n'y connais rien en PIC

    Tu fais une bêtise quelque part ....

    PS : tu rentres bien -10 en décimal, pas en Hexa ?
    J'aime pas le Grec

  18. #17
    thesheep

    Re : conversion Hexa-BCD en assembleur

    merci beaucoup effectivement -10 etait considerer comme de l'hexa
    et non du decimal

    encore merci cela fonctionne
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

  19. #18
    DAUDET78

    Re : conversion Hexa-BCD en assembleur

    Tu vois, avec un peu de réflexion, c'était trouvable tout seul :
    1/ soit tu ne passais pas par ton sous-programme
    2/ soit tu retranchais 0x10 (16 en décimal) et tu faisais une conversion Héxa->Héxa pour retrouver le même résultat ..........

    C'était le deuxième cas
    J'aime pas le Grec

  20. #19
    freepicbasic

    Re : conversion Hexa-BCD en assembleur

    Code:
    ; bin contient la valeur binaire
    ; svg variable locale
    ;  BCD_cent	 centaine
    ;  BCD_dizt	 dizaine
    ;  BCD_unit	unité
    
    
    
    
    BinBCD
    	clrf     BCD_cent
    	clrf     BCD_dizt
    	clrf     BCD_unit
    cent
    	movf bin,w
    	movwf svg
    	movlw d'100'
    	subwf bin,f
    	btfss STATUS,C
    	goto diz
    	incf BCD_cent,f
    	goto cent
    
    diz
    	movf svg,w
    	movwf bin
    diz2
    	movf bin,w
    	movwf svg
    	movlw d'10'
    	subwf bin,f
    	btfss STATUS,C
    	goto unit
    	incf BCD_diz,f
    	goto diz2
    
    unit
    	movf svg,w
    	movwf BCD_unit
    
    	return
    Dernière modification par freepicbasic ; 24/06/2009 à 11h19.
    A+, pat

  21. #20
    thesheep

    Re : conversion Hexa-BCD en assembleur

    encore merci a tous

    daudet il et vrais que j'aurai pu trouver tou seul mais parfois on cherche et on ne trouve pas alor que la reponse et devant nous pour cela un avis exterieur aide beaucoup
    merci
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi

Discussions similaires

  1. Conversion hexa-binaire dans une macro Excel
    Par jecario dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/06/2007, 21h47
  2. Conversion en Hexa vers BCD
    Par billy67170 dans le forum Électronique
    Réponses: 18
    Dernier message: 11/02/2007, 22h49
  3. Conversion binaire --> BCD
    Par joeytrib dans le forum Électronique
    Réponses: 2
    Dernier message: 17/09/2006, 18h12
  4. Conversion BCD / binaire
    Par Gérard dans le forum Électronique
    Réponses: 8
    Dernier message: 12/06/2006, 20h19
  5. Conversion hexa en BCD sur PIC
    Par ioio59 dans le forum Électronique
    Réponses: 2
    Dernier message: 14/04/2004, 09h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.