Problème initialisation LCD en C
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Problème initialisation LCD en C



  1. #1
    invite44cfef98

    Unhappy Problème initialisation LCD en C


    ------

    Bonjour à tous !

    J'ai deja cherché une réponse sur le forum, mais sans succès .

    Je veux initialiser un LCD en C via MPLAB et CC8E grâce à un PIC 18F4580.

    C'est un 2x16 caractères et de 5x7 points .

    voila mon sous programme "init_lcd"

    Code:
    void init_LCD(void)
    {
    
    // début tempo  > 15 ms --------------------------------------------------------------------------
    T0CON=0b10000100; // 
    TMR0IF=0;
    TMR0H=0xFE;
    TMR0L=0xFF-213;			                 
    while(!TMR0IF);
    
    // ---------------------------------------------------------------------------- fin tempo
    
    PORTA=PORTA&0b11101100; // RW=0,RS0,EN=0
    PORTC=0b00110000;     // DB7=0 DB6=0 DB5=1 DB4=1
    
    PORTA=PORTA|0b00000001;        // EN=1 sans modifier le reste
    PORTA=PORTA&0b11111110;          // EN=0 sans modifier le reste
    
    // début tempo >4,1 ms --------------------------------------------------------------------------
    T0CON=0b10000100; // 
    TMR0IF=0;
    TMR0H=0xFF;
    TMR0L=0xFF-129;			                 
    while(!TMR0IF);
    // ---------------------------------------------------------------------------- fin tempo
    
    
    PORTA=PORTA|0b00000001;        // EN=1 sans modifier le reste
    PORTA=PORTA&0b11111110;          // EN=0 sans modifier le reste
    
    
    // début tempo  > 100 us--------------------------------------------------------------------------
    T0CON=0b10000100; // 
    TMR0IF=0;
    TMR0H=0xFF;
    TMR0L=0xFF-4;			                 
    while(!TMR0IF)
    // ---------------------------------------------------------------------------- fin tempo
    
    
    PORTA=PORTA|0b00000001;        // EN=1 sans modifier le reste
    PORTA=PORTA&0b11111110;          // EN=0 sans modifier le reste
    
    // début tempo>37us --------------------------------------------------------------------------
    T0CON=0b10000100; // 
    TMR0IF=0;
    TMR0H=0xFF;
    TMR0L=0xFF-2;			                 
    while(!TMR0IF)
    // ---------------------------------------------------------------------------- fin tempo
    
    PORTA=PORTA&0b11101100;	  // Rw=0 , RS=0,EN=0
    PORTC=0b00100000;        // DB7=0 DB6=0 DB5=1 DB4=0 DB3=0 DB2=0 DB1=0 DB1=0
    
    PORTA=PORTA|0b00000001;        // EN=1 sans modifier le reste
    PORTA=PORTA&0b11111110;          // EN=0 sans modifier le reste
    }
    Quand je met juste l'initialisation dans mon programme principale, et que je le lance, j'ai tous les caractères de la 1ere ligne noir, rien sur la seconde .

    Comme si l'initialisation de ne se faisait pas ...

    J'ai tout essayé , je ne sais pas d'ou ca vient

    Aidez-moi svp

    -----

  2. #2
    invite25df009a

    Re : Problème initialisation LCD en C

    Salut !!

    J'ai eu un soucis comme cela ou mon afficheur affichait seulement sur la première ligne. J'ai simplement envoyer 2 fois la configuration pour lui dire (fonctionnement en 4 bit et affichage sur 2 lignes).

    Sinon ça pourrait aussi venir de tes tempos. Tu pourrais te servir de la librairie delay qui est fourni avec ton compilateur.

    Et vérifie aussi que l'impulsion sur ton signal "Enable" reste assez longtemp à l'état haut puis à l'état bas pour valider tes commandes !! Cela depend du Quartz que tu utilises.

    A+

Discussions similaires

  1. Problème Initialisation LCD GDM1601C
    Par invitef11ae328 dans le forum Électronique
    Réponses: 2
    Dernier message: 14/04/2010, 11h16
  2. Problème initialisation Lcd + Pic 16F877
    Par polkii dans le forum Électronique
    Réponses: 8
    Dernier message: 30/03/2010, 22h53
  3. Initialisation LCD (KS0073)
    Par invite4386a656 dans le forum Électronique
    Réponses: 2
    Dernier message: 12/09/2009, 10h42
  4. Initialisation LCD Bit Enable ???
    Par invited72f7053 dans le forum Électronique
    Réponses: 3
    Dernier message: 20/07/2006, 10h17
  5. Initialisation d'un LCD
    Par Toufinet dans le forum Électronique
    Réponses: 12
    Dernier message: 24/05/2006, 20h30
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...