Bonjour, j'ai acheté un écran LCD ayant ces caractéristiques :
ICI
Je le pilote avec un PIC. J'ai écris un programme de gestion en C testé sur un petit écran LCD "standard", ça fonctionne.
Par contre dès que je connecte ce nouvel écran, ça ne marche plus.
Le problème vient soit de la méthode de commande, soit de l'initialisation de l'LCD je pense.
Dans la doc on peut lireQu'est ce que cela signifie ?Drive Method: 1/16 Duty , 1/5 Bias
La commande s'effectue en 4bits, l'écran étant connecté sur le PORTD0->PORTD.3
Voici un bout de programme (envoi de commandes, en 4 bits), la fonction delai_us n'étant pas copiée ici, elle fonctionne parfaitement :
Et voici l'initialisation. On trouve énormément de procédures d'initialisation sur internet, on ne sais plus ce qui est juste ou pas :Code:#define DELAY 20 #define NBLIG 4 // Nombre de lignes #define NBCOL 20 // Nombre de colonne #define RS PORTE.0 // Connexion RS #define E PORTE.1 // Connexion E void register_screen(char c) { char tmp; RS = 0; // Envoi de commandes tmp = c>>4; // Envoi des 4 bits de poids fort tmp |= 0xF0; PORTD = PORTD&0xF0; PORTD |= tmp; E = 1; // Impulsion valitation delai_us(DELAY); E = 0; delai_us(DELAY); tmp = c|0xF0; // Envoi des 4 bits de poids faible PORTD = PORTD&0xF0; PORTD |= tmp; E = 1; // Impulsion validation delai_us(DELAY); E = 0; delai_us(DELAY); delai_us(DELAY); }
La question est : pourquoi ces codes fonctionnent -ils avec un écran et pas avec l'autre dont la doc est donnée ci dessus ?Code:void init_afficheur(void) { curlig = 0; curcol = 0; delai_ms(15); register_screen(0x33); delai_ms(10); register_screen(0x33); delai_ms(10); register_screen(0x33); // besoin 1 fois pour redemarrer delai_ms(10); // Configuration 4 bits : register_screen(0x32); register_screen(0x06); register_screen(0x18); register_screen(0x0F); register_screen(0x28); register_screen(0x01); register_screen(0x08); delai_ms(5); register_screen(0x0C); // Curseur off }
Je ne sais pas si quelqu'un peux me répondre, mais je ne sais plus trop quoi tester sur mon montage...
Merci
@+
Thomas
-----