Problème avec afficheur 2X16 caractères
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Problème avec afficheur 2X16 caractères



  1. #1
    foudefoot

    Problème avec afficheur 2X16 caractères


    ------

    Bonjour à àtous,
    J'ai réalisé un montage avec un afficheur 2x16 caractères avec logique intégrèe, mais je n'ai aucun affichage sur celui-ci. je l'ai donc démonté et pour le testé j'ai fait le branchement selon le schéma que j'ai mis en pièce jointe. quand je fait varier le potentiomètre, je n'ai que la 2ième ligne qui s'allume quand la tension sur la broche Vee tend vers le 0V. La première ligne reste éteinte, quelqu'un peut-il me dire si mon branchement est mauvais ou mon afficheur LCd est HS?
    Voici la doc technique de l'afficheur:
    http://docs-europe.electrocomponents...6b806dda16.pdf
    Merci pour vos futurs réponses
    Denis

    Bonjour foudefoot et tout le groupe

    Pour être conforme à l'épinglé

    http://forums.futura-sciences.com/el...ointes-pj.html

    l'image pdf a été supprimée. Elle doit être présentée à nouveau, en extension jpg, gif ou png.


    .

    -----
    Dernière modification par gienas ; 25/02/2012 à 15h28. Motif: Supprimé image pdf

  2. #2
    Yoruk

    Re : Porblème avec afficheur 2X16 caractères

    Pour avoir déjà utilisé un afficheur de ce genre (c'était avec une carte arduino), fais très attention effectivement au potard qui gère le contraste. Mais normalement, ce dernier agit de façon similaire sur les deux lignes d'affichage.... Je jette un œil dès que les PJ sont validées.

  3. #3
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Re bonjour,
    Voici le schéma au bon format.
    Merci
    Denis
    Images attachées Images attachées  

  4. #4
    Yoruk

    Re : Porblème avec afficheur 2X16 caractères

    Hmmmm.... regarde cette page et tente les étapes 2 à 4 (ne met pas de data pour le moment). Règle ensuite le potar.... Essaye vraiment les extrêmes (au max et au min).
    Dernière modification par Yoruk ; 25/02/2012 à 16h52. Motif: avec le lien c'est mieux !

  5. A voir en vidéo sur Futura
  6. #5
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Bonjour Yoruk,
    Merci pour ta réponse, en ne branchant que le potentiomètre, l'alimentation et LED+/LED-, tj le même résultat seule la ligne 2 est alumée. Je pense que mon afficheur est HS.
    A+
    denis

  7. #6
    fdamien12

    Re : Porblème avec afficheur 2X16 caractères

    Salut,

    avec seulement l'alimentation (donc afficheur non initialisé) il est normal d'avoir la ligne 1 vide et la ligne 2 noire (pour un afficheur de deux lignes) ou les lignes 1 et 3 vides et les lignes 2 et 4 noires (dans le cas d'un afficheur 4 lignes).

    A+

  8. #7
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Bjrs et merci Blue Sn4ke,
    Donc mon afficheur marche très bien, c'est un problème de liaison entre le PIC et L'afficheur, je vais revoir tout ça.
    Merci à vous 2 pour vos réponses.
    Denis

  9. #8
    Yoruk

    Re : Porblème avec afficheur 2X16 caractères

    Ah oui pardon j'avais mal compris. Oui attends de relier le tout à ton PIC pour dire que l'afficheur est HS !

  10. #9
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Rebonjour à tous,
    Suite aux réponses ci-dessus, j'ai programmé le PIC 16F877A avec MikroBasic et le programme donné par l'aide, ma

  11. #10
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Rebonjour à tous,
    Désolé, je viens de faire une fausse manipe et les 5 min de temps de changement du message sont écoulées. Donc, je disais,suite aux réponses ci-dessus, j'ai programmé le PIC 16F877A avec MikroBasic et le programme donné par l'aide, mais j'ai 2 lignes qui posent problème:
    Code:
     ANSEL  = 0                     ' Configure AN pins as digital I/O
      ANSELH = 0
    voici les message d'erreur:
    Code:
    0 1 mBPic.exe -MSF -DBG -pP16F877A -Y -DL -O11111114 -fo20 -N"F:\Essai\MyProject.mbppi" -SP"C:\Program Files\Mikroelektronika\mikroBasic PRO for PIC\defs\" -SP"C:\Program Files\Mikroelektronika\mikroBasic PRO for PIC\Uses\P16\" -SP"F:\Essai\" "__Lib_Math.mcl"  
    0 155 Available RAM: 352 [bytes], Available ROM: 8192 [bytes]  
    0 133 Compilation Started F:\Essai\MyProject.mbas
    1 1015 Hint: Compiling unit "F:\Essai\MyProject.mbas" MyProject.mbas
    33 303 Identifier "ANSEL" was not declared MyProject.mbas
    33 304 Syntax error: Expected "end" but "ANSEL" found MyProject.mbas
    33 304 Syntax error: Expected "." but "=" found MyProject.mbas
    0 102 Finished (with errors): 29 févr. 2012, 16:12:04 MyProject.mbppi
    Puis quand j'enlève ces 2 lignes la compilation et la programmation s'effectuent correctement. Mais mon afficheur reste désespérement vide. La première ligne est allumée mais rien ne s"affiche et la deuxième reste niore. Voici le programme en entier:
    Code:
    program MyProject
    
    ' Lcd module connections
    dim LCD_RS as sbit at RB4_bit
        LCD_EN as sbit at RB5_bit
        LCD_D4 as sbit at RB0_bit
        LCD_D5 as sbit at RB1_bit
        LCD_D6 as sbit at RB2_bit
        LCD_D7 as sbit at RB3_bit
    
        LCD_RS_Direction as sbit at TRISB4_bit
        LCD_EN_Direction as sbit at TRISB5_bit
        LCD_D4_Direction as sbit at TRISB0_bit
        LCD_D5_Direction as sbit at TRISB1_bit
        LCD_D6_Direction as sbit at TRISB2_bit
        LCD_D7_Direction as sbit at TRISB3_bit
    ' End Lcd module connections
    
    dim txt1 as char[16]
        txt2 as char[9]
        txt3 as char[8]
        txt4 as char[7]
        i    as byte                 ' Loop variable
    
    sub procedure Move_Delay()       ' Function used for text moving
      Delay_ms(500)                  ' You can change the moving speed here
    end sub
    
    main:
      TRISB = 0
      PORTB = 0xFF
      TRISB = 0xFF
       ANSEL  = 0                     ' Configure AN pins as digital I/O
      ANSELH = 0
    
      txt1 = "mikroElektronika"
      txt2 = "EasyPIC6"
      txt3 = "Lcd4bit"
      txt4 = "example"
    
      Lcd_Init()                     ' Initialize Lcd
      Lcd_Cmd(_LCD_CLEAR)            ' Clear display
      Lcd_Cmd(_LCD_CURSOR_OFF)       ' Cursor off
      Lcd_Out(1,6,txt3)              ' Write text in first row
      Lcd_Out(2,6,txt4)              ' Write text in second row
      Delay_ms(2000)
      Lcd_Cmd(_LCD_CLEAR)            ' Clear display
    
      Lcd_Out(1,1,txt1)              ' Write text in first row
      Lcd_Out(2,5,txt2)              ' Write text in second row
      Delay_ms(500)
    
      ' Moving text
      for i=0 to 3                   ' Move text to the right 4 times
          Lcd_Cmd(_LCD_SHIFT_RIGHT)
          Move_Delay()
      next i
    
      while TRUE                     ' Endless loop
        for i=0 to 7                 ' Move text to the left 8 times
          Lcd_Cmd(_LCD_SHIFT_LEFT)
          Move_Delay()
        next i
    
        for i=0 to 7                 ' Move text to the right 8 times
          Lcd_Cmd(_LCD_SHIFT_RIGHT)
          Move_Delay()
        next i
      wend
    end.
    quelqu'un peut-il me dire ce qui ne va pas dans tout ça?
    Merci pour vos réponses futures.
    Denis

  12. #11
    paulfjujo

    Re : Porblème avec afficheur 2X16 caractères

    bonsoir,


    TRISB = 0xFF
    ANSEL = 0 ' Configure AN pins as digital I/O
    ANSELH = 0


    Dans ton exemple ,le LCD n'est pas concerné par la config des voies analogiques du port A .
    Il me semble que ANSEL et ANSELH concernent les pic 18F ...

    TRISB=0xFF <- entrees
    ce serait plutot TRISB=0x00 des sorties ( je ne sais pas si 'l'init du LCD les reconfigure )
    les 4 pins de poids faibles du LCD doivent etre reliees au 0V.

    Exemple similaire , mais en C et pour un 18F, testé OK

    Code:
     /*
      rev 05/01/2012
      27/12/2011
            PIC 18F252  DIP28
            Quartz 10MHz
    
      Compilateur!  MikroC Pro V5.40  (was 4.60)
      Controller:   PIC18F252 PDIP28 avec bootloader   use of Tinybootloader V1.95
      Projet :      C:\_MickroC\_MesProjets\_18F252_LCD2x16\18F252_LCD2x16.mcppi
      Source :      C:\_MickroC\_MesProjets\_18F252_LCD2x16\18F252_LCD2x16.c
      Chargeur :    C:\_MickroC\_MesProjets\_18F252_LCD2x16\18F252_LCD2x16.hex
      Programme Programateur  : Tinybootloader V1.95
      Hardware:
      Config PIC    Scheme de microC : 18F252.cfg
      Macro Terminal Vbray : : Macro_Terminal_Bray_MCPxxx.tmf
      librairies utilisees :C-String,Conversions,UART,LCD
      autres:
    //
     Configurations Bits:
      via Projet -> Edit Projet_ Configuration Bits -> 18F252_LCD2X16.cfgsch
    CONFIG1H   :$300001 : 0x0022
    CONFIG2L   :$300002 : 0x000C
    CONFIG2H   :$300003 : 0x000E
    CONFIG3H   :$300005 : 0x0001
    CONFIG4L   :$300006 : 0x0081
    CONFIG5L   :$300008 : 0x000F
    CONFIG5H   :$300009 : 0x00C0
    CONFIG6L   :$30000A : 0x000F
    CONFIG6H   :$30000B : 0x00E0
    CONFIG7L   :$30000C : 0x000F
    CONFIG7H   :$30000D : 0x0040
    
    
    PortB
    B0  21  DATA out for LCD    pin 11
    B1  22  DATA out for LCD    pin 12
    B2  23  DATA out for LCD    pin 13
    B3  24  DATA out for LCD    pin 14
            Gnd          LCD    pin 10,9,8,7  Low nible
            Gnd          LCD    pin 5  R/W
            Gnd  R=390ohms LCD pin 3 // contraste
            +5V            LCD pin 2
            Gnd            LCD pin 1
    LCD control
    B4  25  data/Cde RS selection for LCD pin 4
    B5  26  Enabled out           for LCD pin 6
    B6  27
    B7  28
    ---------
    PORTA
    A0   2
    A1   3
    A2   4    Input BP Start mesure
    A3   5    Output Cde relais gamme de mesure
    A4   6    Ouput Start Monostable
    A5   7
    ---------
    PORTC
    C0   11
    C1   12
    C2   13  Input CCP1  (sortie du monostable)
    C3   14
    C4   15
    C5   16
    C6   17  TX  RS232
    C7   18  RX  RS232
    -----------
    */
      #define Quartz     10000000
    #define VDD          5.00   //  power supply
    
    //--- COM RS232 USART ----
    #define Rs_TX PORTC.F6
    #define Rs_RX PORTC.F7
    
    
       //-- commandes terminal VT220
    #define CR 13
    #define CLS 12
    #define LF 10
    #define TAB 9
    #define Bell 7
    
    #define Byte unsigned char
    
    
    const code char pres1[]="MikroC 5.40 18F252_LCD2x16.c  120105\n\r ";
    const code char Nokia_Str0[]="1234567890123456";
    const code char Nokia_Str1[]="18F252 LCD2x16  ";
    const code char Nokia_Str2[]="Ligne 2 ........";
    const code char *Nokia[]={  Nokia_Str0, Nokia_Str1, Nokia_Str2};
    
    char *txt="............................................" ; // reservation
    char *p1="............................" ; // reservation
    unsigned short int i,j,k,l;
    unsigned short  receive;
    
    void copy(char* rdest, const char* source) ;
    void Write_String();
    void Octet2Hex(char number);
    void InitHardware();
    void CRLF();
    
    sbit LCD_RS at RB4_bit;  // data or Commande
    sbit LCD_EN at RB5_bit;  // validation
    // RW not used
    sbit LCD_D7 at RB3_bit;
    sbit LCD_D6 at RB2_bit;
    sbit LCD_D5 at RB1_bit;
    sbit LCD_D4 at RB0_bit;
    
    // Pin direction
    sbit LCD_RS_Direction at TRISB4_bit;
    sbit LCD_EN_Direction at TRISB5_bit;
    sbit LCD_D7_Direction at TRISB3_bit;
    sbit LCD_D6_Direction at TRISB2_bit;
    sbit LCD_D5_Direction at TRISB1_bit;
    sbit LCD_D4_Direction at TRISB0_bit;
    
    void copy(char* rdest, const char* source)
    {
      for(;*rdest++=*source++;);
    }
    
    void Write_String()
    {
    short int i1,j1,k;
     j1=strlen(txt);
       i1=0;
       do
       {
       k=txt[i1];
       UART1_Write(k);
       i1++;
       }while (i1<j1);
    }
    
    void CRLF()
    {
       UART1_Write(CR);
       UART1_Write(LF);
    }
    
    void Octet2Hex(char number)
    {
    char high,low;
      // high nibble
      high = ((number & 0xF0) >> 4) + 48; // + '0'
      if (high > 57u)
        high += 7;                        // > '9'
      // low nibble
      low = (number & 15u) + 48;          // +'0' low nibble
      if (low > 57u)
        low += 7;                         // > '9'
      UART1_Write(high);
      UART1_Write(low);
    
    }
    
    void InitHardware() {
      PORTB = 0;                     // set PORTB to 0
      TRISB = 0;                     // designate portb pins as output
      ADCON1 = 0x07 ;               // port A all digital
      PORTA = 255 ;
      TRISA = 0b0000111;            // PORTA config input & output
      PORTC = 0x00;                   // set PORTC to $FF
      TRISC = 0b0000100;;            // designate PORTC pins as output  except RC2 as input
    }
    
     void main()
     {
      InitHardware();
      UART1_Init(19200);
      UART1_Write(CLS);
      Delay_ms(500);
      txt= strcpy(txt,"18F252 10Mhz LCD 2x16  \n\r");
     // Write_String();
      UART1_Write_Text(txt);
      copy(txt,pres1);
      Write_String();
      j=0;
    
      Lcd_Init();
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Cmd(_LCD_FIRST_ROW );
      copy(txt,Nokia[1]);
      Lcd_Out(1, 1, txt);
      Lcd_Cmd(_LCD_SECOND_ROW);
      Lcd_Chr_CP('*');
      Delay_ms(1500);
      Lcd_Cmd(_LCD_CURSOR_OFF);
      //             1234567890123456
      Lcd_Cmd(_LCD_SECOND_ROW);
      Lcd_Out(2, 1, "Paulfjujo@free.f");
      Delay_ms(1500);
      CRLF();
      do
      {
       IntToStr(j, p1);
       UART1_Write_Text(p1);
       CRLF();
    
      Lcd_Cmd(_LCD_SECOND_ROW);
      for (i=0;i<16;i++)
      {
      Lcd_Cmd(_LCD_SHIFT_RIGHT );
      Delay_ms(100);
      };
      Delay_ms(500);
      for (i=0;i<16;i++)
      {
      Lcd_Cmd(_LCD_SHIFT_LEFT);
      Delay_ms(100);
      };
      Delay_ms(500);
      j++;
      }while(1);
    }
    
    /*
    18F252 10Mhz LCD 2x16
    MikroC 4.60 18F252_LCD2x16.c  111227
    
         0
         1
         2
         3
     */
     /*
    0 1 mikroCPIC1618.exe -MSF -DBG -pP18F252 -DL -O11111114 -fo10 -
    N"C:\_MickroC\_MesProjets\_18F252_LCD2x16\18F252_LCD2x16.mcppi" -SP"C:\_MickroC\Defs\" -
    SP"C:\_MickroC\uses\P18\" -SP"C:\_MickroC\_MesProjets\_18F252_LCD2x16\" -
    SP"C:\_MickroC\_MesProjets\_18F252\" "18F252_LCD2x16.c" "__Lib_Math.mcl" "__Lib_MathDouble.mcl"
    "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_CString.mcl" "__Lib_CStdlib.mcl"
    "__Lib_CMath.mcl" "__Lib_Conversions.mcl" "__Lib_Sprintf.mcl" "__Lib_Sprinti.mcl"
    "__Lib_Sprintl.mcl" "__Lib_EEPROM_256.mcl" "__Lib_UART_c67.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl"
    0 1139 Available RAM: 1515 [bytes], Available ROM: 32768 [bytes]
    0 126 All files Preprocessed in 30 ms
    0 122 Compilation Started 18F252_LCD2x16.c
    173 1509 Generated baud rate is 18939 bps (error = 1.36 percent) 18F252_LCD2x16.c
    218 123 Compiled Successfully 18F252_LCD2x16.c
    127 1164 Variable 'k' has been eliminated by optimizer 18F252_LCD2x16.c
    0 127 All files Compiled in 80 ms
    0 1144 Used RAM (bytes): 166 (11%)  Free RAM (bytes): 1349 (89%) Used RAM (bytes): 166 (11%)  Free
    RAM (bytes): 1349 (89%)
    0 1144 Used ROM (bytes): 2103 (6%)  Free ROM (bytes): 30665 (94%) Used ROM (bytes): 2103 (6%) 
    Free ROM (bytes): 30665 (94%)
    0 125 Project Linked Successfully 18F252_LCD2x16.mcppi
    0 128 Linked in 170 ms
    0 129 Project '18F252_LCD2x16.mcppi' completed: 340 ms
    0 103 Finished successfully: 09 janv. 2012, 11:08:05 18F252_LCD2x16.mcppi
    
    */

  13. #12
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Bonjour paulfjujo,
    Et merci pour cette explication, le programme que j'ai mis viens directement de la bibliothèque de EASYPIC6. Je pensai qu'ils avaint testé leurs programmes avant de les publier. Les ports des PICs 16F se configureraint uniquement, pour analogique/numérique, avec ADCON1, c'est bon à savoir.
    Merci encore pour le temps passé à me répondre et pour le programme en annexe.
    Denis

  14. #13
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Rebonjour à tous,
    Suite aux réponses de Yoruk, Bluesn4ke et paulfjujo, j'ai modifié le câblage de mon afficheur et le programme de mon PIC16F877A. Mais malheureusement, j'ai toujours le même problème, la ligne1 de l'afficheur est allumée et la ligne 2 reste noire. Je ne vois pas d'où peut venir le problème et comment le résoudre, si quelqu'un à une idée elle est la bien venue. Je vous mets le programme ci-dessous et le schéma en pièce jointe.
    merci de votre aide à tous
    Denis
    Code:
    program Thermometre
    ' Declarations section 
     dim LCD_RS as sbit at RD2_bit
         LCD_EN as sbit at RD3_bit
         LCD_D7 as sbit at RD7_bit
         LCD_D6 as sbit at RD6_bit
         LCD_D5 as sbit at RD5_bit
         LCD_D4 as sbit at RD4_bit
         LCD_RS_Direction as sbit at RD2_bit
         LCD_EN_Direction as sbit at RD3_bit
         LCD_D7_Direction as sbit at RD7_bit
         LCD_D6_Direction as sbit at RD6_bit
         LCD_D5_Direction as sbit at RD5_bit
         LCD_D4_Direction as sbit at RD4_bit
     dim txt as char[16]
         txt1 as char[4]
         txt2 as char[16]
         txt3 as char[4]
         j1 as byte
         j2 as byte
         j3 as byte
         j4 as byte
         sub procedure Move_Delay()
             Delay_Ms(1000)
         end sub
         sub procedure Move_Delay2()
             delay_Ms(5000)
         end sub
    main:
     ADCON1 = 0xFF
     PORTD = 0x00
     TRISD = 0x00
     PORTE = 0xFF
     TRISE = 0xFF
     txt = "Température ext:"
     txt2 = "Température int:"
     Lcd_Init()
     Lcd_cmd(_LCD_CURSOR_OFF)
     Lcd_Out(1, 1, txt)
     While true
           Ow_Reset(PORTE,2)
           Ow_Write(PORTE, 2, $CC)
           Ow_Write(PORTE, 2, $44)
           delay_us(120)
           Ow_Reset(PORTE, 2)
           Ow_Write(PORTE, 2, $CC)
           Ow_Write(PORTE, 2, $BE)
           Move_Delay
           j1 = Ow_Read(PORTE, 2)
           j2 = Ow_Read(PORTE, 2)
           j1 = j1 >> 1
           ByteToStr(j1, txt1)
           Lcd_Out(2, 6, txt1)
           Lcd_Chr(2, 9, 176)
           Lcd_Chr(2, 10, "C")
           Move_Delay2
     Wend
     Lcd_Cmd(_LCD_CLEAR)
     Lcd_Cmd(_LCD_CURSOR_OFF)
     Lcd_out(1, 1, txt2)
     While true
           Ow_Reset(PORTE, 1)
           Ow_Write(PORTE, 1, $CC)
           Ow_Write(PORTE, 1, $44)
           Delay_us(120)
           Ow_Reset(PORTE, 1)
           Ow_Write(PORTE, 1, $CC)
           Ow_Write(PORTE, 1, $BE)
           Move_Delay
           j3 = Ow_Read(PORTE, 1)
           j4 = Ow_read(PORTE, 1)
           j3 = j3 >> 1
           ByteToStr(j3, txt3)
           Lcd_Out (2, 6, txt3)
           Lcd_Chr(2, 9, 176)
           Lcd_Chr(2, 10, "C")
           Move_Delay2
     Wend
     Delay_Ms(60000)
     goto main
     end.
    Images attachées Images attachées  

  15. #14
    Yoruk

    Re : Porblème avec afficheur 2X16 caractères

    A mon avis, c'est peut être effectivement un ligne de l'afficheur qui est cuite.... Si tu as la possibilité de tester avec un autre afficheur, tu pourrais déterminer avec précision l'origine de la panne... A mon niveau, je ne vois pas ce qui cloche !

  16. #15
    foudefoot

    Re : Porblème avec afficheur 2X16 caractères

    Encore une fois merci Yoruk, est-il possible que se soit le PIC qui se soit pas programmé correctement, comment je pourrais le savoir?
    Denis

  17. #16
    Yoruk

    Re : Porblème avec afficheur 2X16 caractères

    Désolé, je n'en ai pas la moindre idée ! La seule fois où j'ai utilisé un afficheur, c'était avec une carte arduino... Les PICs c'est pas ma spécialité....

  18. #17
    gabuzo

    Re : Problème avec afficheur 2X16 caractères

    Les lignes de configurations du LCD de sont pas conformes au schéma (ou le contraire...)

    EN, RS et la 4 bits de poids fort sont configurés sur le port D (RD2 à RD7) et sur ton schéma EN et RS sont branchés sur le port B. Si tu branches les lignes rs et en sur RD2 et RD3 ça risque de fonctionner un peu mieux...

  19. #18
    foudefoot

    Re : Problème avec afficheur 2X16 caractères

    Merci Yoruk et Gabuzo
    Toutes mes excuses c'est une erreur qui s'est glisée sur le schéma. Les lignes RS et EN sont bien branchées sur les ports RD2 et RD3 ainsi que les 4 bits de poids forts D7 à D4 sont reliées aux ports RD7 à RD4. les 4 bits de poids faible ainsi que R/W sont Reliées à la masse.
    Denis

  20. #19
    gabuzo

    Re : Problème avec afficheur 2X16 caractères

    J'utilise actuellement le même afficheur sur un 16f876 et ça marche nickel.
    Le symptôme que tu decris n'est pas celui d'un afficheur HS mais celui d'un afficheur simplement alimenté sans aucune commande.

    Essaye avec un prg simple du style.

    program truc _bete

    Blablabla configuration toussa...

    main:

    Lcd_Init()
    Lcd_cmd(_LCD_CURSOR_OFF)
    while true
    Lcd_Out(1, 1, "truc bete")
    wend

    end.

  21. #20
    schmo

    Re : Problème avec afficheur 2X16 caractères

    salut,

    Quelques remarques:
    - Pourquoi la définition de LCD...direction pointe sur RDxx au lieu de TRISxx ?
    - Le bit4 de TRISE doit être à 0 si tu veux utiliser le portD comme IO (DataSheet page 50. C'est pas top comme bouquin mais ça aide parfois)
    A+

  22. #21
    gabuzo

    Re : Problème avec afficheur 2X16 caractères

    Bien vu Schmo! C'est plutôt ça.

    Code:
    dim LCD_RS as sbit at RB4_bit
        LCD_EN as sbit at RB5_bit
        LCD_D4 as sbit at RB0_bit
        LCD_D5 as sbit at RB1_bit
        LCD_D6 as sbit at RB2_bit
        LCD_D7 as sbit at RB3_bit
    
        LCD_RS_Direction as sbit at TRISB4_bit
        LCD_EN_Direction as sbit at TRISB5_bit
        LCD_D4_Direction as sbit at TRISB0_bit
        LCD_D5_Direction as sbit at TRISB1_bit
        LCD_D6_Direction as sbit at TRISB2_bit
        LCD_D7_Direction as sbit at TRISB3_bit
    Pour le bit4 de TRISE il est à 0 par défaut.
    Dernière modification par gabuzo ; 03/03/2012 à 21h43.

  23. #22
    foudefoot

    Re : Problème avec afficheur 2X16 caractères

    Bonjour gabuzo et shmo,
    Merci pour vos réponses. Etant donné que c'est la première fois que j'utilise un Afficheur LCD, j'ai bêtement recopier le programme de configuration qui est présenté sur l'aide du compilateur Mikrobasic (ca m'apprendra tiens). J'essaie avec un programme simple comme me conseille gabuzo et je vous tiens au couurant
    Merci pour vos réponses
    Denis
    Dernière modification par foudefoot ; 04/03/2012 à 09h03.

  24. #23
    foudefoot

    Re : Problème avec afficheur 2X16 caractères

    re à tous,
    Ca fonctionne correctement. Encore une fois merci à tous et plus particulièrement à gabuzo, shmo et Yoruk pour vos réponses.
    Denis

  25. #24
    gabuzo

    Re : Problème avec afficheur 2X16 caractères

    On est content pour toi

Discussions similaires

  1. Afficheur LCD 2X16 caractères en mode 4 bits
    Par socomajor dans le forum Électronique
    Réponses: 8
    Dernier message: 11/02/2013, 11h28
  2. Afficheur LCD 2x16 caractères
    Par invite958adb57 dans le forum Électronique
    Réponses: 9
    Dernier message: 22/02/2012, 12h00
  3. Afficheur lcd 2x16 programmation
    Par invite960f35e5 dans le forum Électronique
    Réponses: 32
    Dernier message: 29/08/2008, 22h51
  4. Afficheur LCD 2x16
    Par Roukben dans le forum Électronique
    Réponses: 4
    Dernier message: 01/02/2006, 15h11
  5. LCD 2x16 caractères
    Par Patrick dans le forum Électronique
    Réponses: 1
    Dernier message: 22/05/2004, 15h33
Découvrez nos comparatifs produits sur l'informatique et les technologies.