[PIC] Question Programmation en C18 : Conversion binaire / Décimale
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

[PIC] Question Programmation en C18 : Conversion binaire / Décimale



  1. #1
    lcoulon

    [PIC] Question Programmation en C18 : Conversion binaire / Décimale


    ------

    Bonjour,


    Je voudrais transformer une variable 16 bits binaire en une donnée décimale afin de l'afficher ensuite sur un écran LCD.

    Pourriez vous m'indiquer quel code écrire pour transformer du binaire en décimal ?

    Je vous remercie,

    -----

  2. #2
    Seb.26

    Re : [PIC] Question Programmation en C18 : Conversion binaire / Décimale

    Bon ... si ce que tu veux, c'est afficher en décimal une variable, ça donnerait ça :

    Code:
    unsigned char ma_valeur = 0x5E;
    char temp_string[4];
    sprintf(temp_string,"%d", ma_valeur);
    affiche_lcd(ma_valeur);
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  3. #3
    PA5CAL

    Re : [PIC] Question Programmation en C18 : Conversion binaire / Décimale

    Bonjour

    Si l'afficheur LCD est un modèle alphanumérique, alors la fonction itoa() (signé) ou ultoa() (non signé) disponible dans les librairies C18 peut faire l'affaire :

    Code:
    #include <stdlib.h>
    
    char ascii[7];    /* signe + 1 a 5 chiffres ASCII + zero final */
    
    char * bin2ascii(short bin)
    {
        return itoa( bin, ascii );
    }
    Code:
    #include <stdlib.h>
    
    char ascii[6];    /* 1 a 5 chiffres ASCII + zero final */
    
    char * bin2ascii(unsigned short bin)
    {
        return ultoa( (unsigned long)bin, ascii );
    }


    En revanche, si l'afficheur LCD est de type 7-segments, le résultat (chiffres BCD stockés sur 4 ou 8 bits) peut être obtenu par des divisions par 10 successives, avec modulo (C) ou reste (assembleur). Par exemple :

    Code:
    char digits[5];   /* 5 digits BCD sur 8 bits chacun */
    
    void bin2dec(unsigned short bin)
    {
        int i = 5;
        do {
            i--;
            digits[i] = (char) (bin % 10);
            bin /= 10;
        } while (i);
    }
    Il existe plusieurs autres méthodes.


    .
    Dernière modification par PA5CAL ; 27/04/2009 à 11h00.

Discussions similaires

  1. programmation d'un convertisseur decimale binaire en C
    Par invite175953cf dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 12/03/2009, 15h29
  2. decimale en binaire
    Par sdow dans le forum Électronique
    Réponses: 15
    Dernier message: 17/09/2006, 15h25
  3. Conversion Binaire-Decimale
    Par invitedcd45209 dans le forum Technologies
    Réponses: 4
    Dernier message: 10/01/2006, 10h49
  4. Décimale - Binaire
    Par invitee17aeca5 dans le forum Logiciel - Software - Open Source
    Réponses: 29
    Dernier message: 03/09/2005, 18h22
  5. Décimale Binaire ...
    Par invitee17aeca5 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 31/08/2005, 14h03
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...