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

caractere sur LCD



  1. #1
    bimo

    Question caractere sur LCD


    ------

    Bonjours a tous
    excusez moi si ma question a ete deja posee dans ce forum , mais en cherchant parmis toutes les reponses je n'est pas trouve occune qu'on peu appeler vraiment "satisfaisante" (no offense )
    voila....le plus simple possible
    je veux afficher un caractere ASCII sur un afficheur LCD (20x2) classique ....par exemple 'A'
    j'utilise pour cela un PIC16F877A je travail avec l'afficheur en mode 8 Bits
    j'ai connecte le port B de mon PIC avec le bus Data de mon afficheur (respectivement B0......B7 / D0.....D7)
    pour le RS/E....etc j'ai utilise d'autres broches...peu importe !
    j'ai fais un program test est ca fonctionne !
    mais je me suis redu compte que je dois memoriser toutes les valeurs Hexadeciamles de tout les caracteres ASCII de l'LCD dans mon PIC
    et puis en utilisant un jeu de switch..case....etc trouver le caractere a afficher ..!
    n'y a t'il pas une formule mathematique pour convertir directement un char en un code ASCII ?
    par expl....je converti mon char en un int (atoi('A')) puis j'utilise le resultat dans une formule pour en deduire le code ASCII a envoyer a mon LCD ?

    sur quelques pages j'ai lu certains qui disent qu'il faut ajouter la valeur 48...d'aures qui disent la valeur 0x30 qui est le code du Zero '0' ..

    j'ai teste les deux, mais ca m'affiche du marcien ...(54%#$^57%(*&_67^%&6)

    deux lignes de code.....c'est tout ce que je vous demande svp, juste la formule de conversion ..

    Merci d'avance

    -----

  2. Publicité
  3. #2
    Forhorse

    Re : caractere sur LCD

    Si tu connais le code du caractère A c'est simple le B c'est A+1 C c'est A+2... Z c'est A+26
    même chose pour les lettres minuscules

  4. #3
    r4ph

    Re : caractere sur LCD

    Salut!

    Je sais pas en quoi tu programme mais mettons en C:

    PORTB = 'A'; va t'afficher A ou si tu ecris PORTB = 65; va t'afficher A ou encore PORTB = 0x41; va aussi t'afficher A

    En gros, ton compilateur va reconnaitre une lettre si elle est entre ' ' et auras donc comme valeur son code ASCII. Il est aussi capable de reconnaitre une chaine de caractères quand entre " " . lors de l'affichage, il te faudra lire une lettre après l'autre (comme dans un tableau) et l'envoyer sur le port B.

    voir http://www.asciitable.com/

    Le décalage de 0x30 te permet de convertir un chiffre, d'une variable par exemple, en son code ASCII pour pouvoir l'afficher. Attention un chiffre (0 a 9) et un seul a la fois pas un nombre de plusieurs digits.

  5. #4
    bimo

    Re : caractere sur LCD

    Merci deja pour vos reponses

    Citation Envoyé par r4ph Voir le message

    PORTB = 'A'; va t'afficher A ou si tu ecris PORTB = 65; va t'afficher A ou encore PORTB = 0x41; va aussi t'afficher A
    .
    oui j'obtien le meme resultat, mais pourquoi alors quand je met

    char c;

    c = 'A';

    output_b(atoi(c));

    j'obtien du chinois sur mon LCD ? !

    la fonction atoi retourne le Code ASCII du caractere transmis en parametre ...ou c'est faux ?

    MErci encore

  6. #5
    Thetimax

    Re : caractere sur LCD

    Bonsoir!

    La fonction "atoi" est incluse dans MikroC, je supoose donc que c'est celui ci que tu utilises. Dans ce cas il existe des librairies toutes faites dans ce logiciel pour utiliser plusieurs type de LCD (2x16, 128x64 ...), tu peux surement t'en inspirer pour utilise le tient.

    A+
    Dernière modification par Thetimax ; 01/03/2012 à 19h33.

  7. A voir en vidéo sur Futura
  8. #6
    r4ph

    Re : caractere sur LCD

    Absolument aucune idee de ce que peut bien retourner cette fonction. par contre:

    char c;

    c='A';

    PORTB=c;

    puis tu envoie la pulse enable (avec les info pour le lcd ecriture de donnee)

    that's all folks!

    ca devrait le faire

  9. Publicité
  10. #7
    bimo

    Re : caractere sur LCD

    Citation Envoyé par r4ph Voir le message
    Absolument aucune idee de ce que peut bien retourner cette fonction. par contre:

    char c;

    c='A';

    PORTB=c;

    puis tu envoie la pulse enable (avec les info pour le lcd ecriture de donnee)

    that's all folks!

    ca devrait le faire
    et moi ........je compliquais la vie pour rien !
    vraiment vous etiez tres efficace !
    Merci beaucoup ca fonctionne a merveille !
    Merci a tous

Sur le même thème :

Discussions similaires

  1. Chronograme Envoi caractère LCD 4 bits
    Par weldod dans le forum Électronique
    Réponses: 7
    Dernier message: 24/02/2011, 09h41
  2. Réponses: 4
    Dernier message: 16/02/2010, 21h45
  3. Envoyer un caractére d'un PIC vers un module LCD
    Par schneiderj dans le forum Électronique
    Réponses: 3
    Dernier message: 13/12/2009, 20h38
  4. question sur le caractere ionique
    Par sabinesabine dans le forum Physique
    Réponses: 6
    Dernier message: 31/10/2009, 22h01
  5. police de caractère sur matlab
    Par NLR dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/06/2004, 17h02
Découvrez nos comparatifs produits sur l'informatique et les technologies.