Salut !

Je travail sur un PIC18F4580 ( avec MPLAB et CC8E , via Pickit3) et je cherche à allumer mon écran LCD.

J'ai suivi les instructions de la doc, et rien ne s'affiche sur l'écran ( même pas de curseur )

Code:
#pragma chip PIC18F4580 // definition du Pic utilisé
//#include "LCD.H" 
//#include "LCD.c" 

// Registres de configurations :

#pragma config[1]=0b11000011
#pragma config[2]=0b00000001
#pragma config[3]=0b00000110
#pragma config[4]=0b10000000
#pragma config[5]=0b11010100
#pragma config[6]=0b00001111
#pragma config[7]=0b11000000
#pragma config[8]=0b00001111
#pragma config[9]=0b11100000
#pragma config[10]=0b00001111
#pragma config[11]=0b01000000



#define E_aff PORTA.0
#define RS_aff PORTA.1
#define RW_aff PORTA.4
#define DATA_aff PORTC
#define DB7 PORTC.7
#define DB6 PORTC.6
#define DB5 PORTC.5
#define DB4 PORTC.4
#define DB3 PORTC.3
#define DB2 PORTC.2
#define DB1 PORTC.1
#define DB0 PORTC.0
#define Led_test PORTB.2

#define	XTAL_FREQ 4	




////////////////////////////Prototypes ///////////////////////////////////////////////////////////////
void DelayMs(uns16 cnt);
void init_LCD(void);



//////////////////////////// Programme principal /////////////////////////////////////////////////////

void main (void)
{
ADCON0=0b00111100;
ADCON1=0b00001111;
ADCON2=0b00000000;
OSCCON=0b01101100;


TRISB=0b11111011; // Mis en sortie de la broche reliée à la LED de test
TRISA=0b11101100; //RA0(E), RA1(RS) et RA4(RW) en sortie
TRISC=0x00; // PORTC en sortie : data du LCD

Led_test=0;
PORTA=0;
PORTC=0;

init_LCD();


RS_aff=0;
RW_aff=0;
PORTC=0b00001111; // Display ON, Cursor ON, Blinking ON
E_aff=1;
E_aff=0;
}

////////////////////////////////// Sous-programes /////////////////////////////////

void DelayMs(uns16 cnt) // Fonction Tempo
{
 char  dcnt;
	do {
		dcnt=200*(4/XTAL_FREQ);  
		while(--dcnt);	
	} while(--cnt);
}



void init_LCD(void)
{
// Début de l'initialisation

RS_aff=0;
RW_aff=0;
DATA_aff=0b00111000; // Function Set : 2 lignes, 8 bits, 5x7 points
E_aff=1;
E_aff=0;
DelayMs(20);

RS_aff=0;
RW_aff=0;
DATA_aff=0b00001111;
E_aff=1;
E_aff=0;
DelayMs(20);



RS_aff=0;      
RW_aff=1;     
while(DB7==1)   //  Lecture Busy Flag
	{       
   	E_aff=1;  
 	} 

RS_aff=0;
RW_aff=0;
PORTC=0b00111000; // écran de 2 ligne en 5x7 points : Function Set
E_aff=1;
E_aff=0;
DelayMs(20);

RS_aff=0;
RW_aff=0;
PORTC=0b00001000; // Display Off 
E_aff=1;
E_aff=0;
DelayMs(20);

RS_aff=0;
RW_aff=0;
PORTC=0b00000001; //  Display Clear
E_aff=1;
E_aff=0;
DelayMs(20);

RS_aff=0;
RW_aff=0;
PORTC=0b00000110; // Entry Mode Set
E_aff=1;

DelayMs(20);

Led_test=1;

// Fin de l'initialisation du LCD

}
Quand j'exécute le programme, ma Led_test1 , s'allume, ce qui signifie que tout c'est bien déroulé ( je ne dis pas que le code est bon ! ) .

J'ai un doute concernant mon Busy Flag , et sinon je ne vois pas d'ou pourrait venir le fait que mon LCD ne s'allume pas


Merci !