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

conversion avec un pic16F877



  1. #1
    T-bag

    conversion avec un pic16F877


    ------

    bonjour a tous
    j'utilise un pic pour piloter un afficheur lcd et transmettre des données qu'il recoit d'un convertisseur analogique numerique.
    les données qu'il recoit sont binaire et je souhaite que l'affichage du resultat soit decimal
    j'ai fais le programme qui initialise l'afficheur,initialise les entrées/sorties,et indique les tempos,il me manque juste la procedure de conversion binaire/decimal.
    si vous avez bessoin du programme,je peux vous l'envoyer.
    est ce que vous pouvez m'aider a cela,ca sera tres gentil de votre part.
    merci d'avance

    -----

  2. Publicité
  3. #2
    Toufinet

    Re : conversion avec un pic16F877

    Salut.

    Si tu veux afficher 0 sur ton LCD, tu dois envoyer 00110000
    Si tu veux afficher la valeur 1 sur ton LCD, tu dois envoyer 00110001
    Si tu veux afficher la valeur 2 sur ton LCD, tu dois envoyer 00110010
    etc...

    Conclusion : tu dois ajouter 00110000 à la valeur renvoyée par le CAN pour afficher sa valeur.

    Remarque : ATTENTION, cette règle ne marche que pour des CHIFFRES, et non pour des NOMBRES. Tu dois donc faire cette opération pour le chiffre des centaines, puis pour le chiffre des dizaines, etc ..

  4. #3
    HULK28

    Re : conversion avec un pic16F877

    Oui, d'autant que je ne vois pas bien où se situe ton problème...
    Tu dois envoyer un ASCII vers l'afficheur, tu as juste à faire une conversion Hexa->ASCII ou décimale->ASCII.
    Ton afficheur sait traduire le code ASCII que tu lui envoies en décimale, c'est son controleur intégré qui s'en charge.
    L'avantage de l'ASCII c'est que tu as les chiffres, les lettres, et quelques symboles.
    Dans la datasheet de ton afficheur, tu trouveras la table de caractères correspondante.

    Exemple de conversions en C (décimal->ASCII et Hexa->ASCII):

    Code:
    /****************************************************************
    	Conversion Décimal -> ASCII (Max:999)
    ****************************************************************/
    void DecToAscii(ushort Decimal, uchar *Ascii)
    {
    	uchar reste;
    	
    	Ascii[0] = (uchar)(Decimal/100) + 0x30;
    	reste = (uchar)(Decimal%100);
    	Ascii[1] = (reste/10) + 0x30;
    	Ascii[2] = reste%10 + 0X30;
    }
    /****************************************************************
    	Conversion Hexa -> ASCII (Max:999)
    ****************************************************************/
    uchar HexToAscii(uchar hexa)
    {
    	hexa = hexa + 0x30 ;
    	if (hexa > 0x39)	hexa = hexa + 7 ;
    	return(hexa) ;
    }
    @+
    Le génie est fait d'un pour cent d'inspiration et de 99% pour cent de transpiration.

  5. #4
    T-bag

    Re : conversion avec un pic16F877

    merci a vous.
    j'ai oublié de preciser que je travaille avec l'assembleur.
    j'ai seulement 11 valeurs a representer de 0 a 5v avec un pas de 0.5v
    les données que je recoit sont sur 8 bits et la sortie sur 4 bits,comment dois je proceder,masquer les bits de poids faible et envoyer puis masquer les bits du poids fort et envoyer?

  6. #5
    HULK28

    Re : conversion avec un pic16F877

    Le génie est fait d'un pour cent d'inspiration et de 99% pour cent de transpiration.

  7. A voir en vidéo sur Futura

Sur le même thème :

Discussions similaires

  1. nombres réels avec pic16F877
    Par MANOLOVIT dans le forum Électronique
    Réponses: 7
    Dernier message: 24/09/2007, 17h55
  2. connecter le pic16f877 avec un adaptateur usb bluetooth
    Par lm85 dans le forum Électronique
    Réponses: 0
    Dernier message: 04/06/2007, 08h42
  3. débuter avec PIC16f877
    Par sdow dans le forum Électronique
    Réponses: 3
    Dernier message: 03/12/2006, 15h56
  4. probleme avec le pic16F877
    Par mcnaifer dans le forum Électronique
    Réponses: 1
    Dernier message: 30/11/2006, 08h37
  5. Conversion A/D pic16F877
    Par solid_sneak06 dans le forum Électronique
    Réponses: 13
    Dernier message: 16/05/2006, 17h39