Make ILI9341 Library for arduino

I’m writing an arduino library for ILI9341 tft display. I tried to write on the display but nothing appears. Why? How can I solve the problem ?

My source code:

/* DISPLAY PINS */
#define LCD_RST A4    //reset
#define LCD_CS A3
#define LCD_RS A2
#define LCD_WR A1
#define LCD_RD A0



#define LCD_D0 8
#define LCD_D1 9
#define LCD_D2 2
#define LCD_D3 3
#define LCD_D4 4
#define LCD_D5 5
#define LCD_D6 6
#define LCD_D7 7





/* DISPLAY REGISTERS*/

#define SLEEP_OUT 0x11
#define COLUMN_ADDRESS_SET 0x2A
#define PAGE_ADDRESS_SET 0x2B
#define MEMORY_WRITE 0x2C
#define MEMORY_ACCESS_CONTROL 0x36
#define PIXEL_FORMAT_SET 0x3A
#define POWER_CONTROL_1 0xC0
#define DISPLAY_ON 0x29










void setup()
{

//  delay(1000);
    //init serial
    Serial.begin(9600);

    //init digital pins
    initLcdPins();
    delay(100);

    setPower1();
    delay(100);
    memoryAccessControl();
    delay(100);
    setPixelFormat(18);
    delay(100);


    displayOn();
    delay(100);




    delay(100);
    setCol();
    delay(100);
    setPage();
    delay(100);
    writeMemory();


    sleepOut();
}

// Add the main program code into the continuous loop() function
void loop()
{


}




void initLcdPins() {
    pinMode(LCD_RST, OUTPUT);
    pinMode(LCD_CS, OUTPUT);
    pinMode(LCD_RS, OUTPUT);
    pinMode(LCD_WR, OUTPUT);
    pinMode(LCD_RD, OUTPUT);
    pinMode(LCD_D0, OUTPUT);
    pinMode(LCD_D1, OUTPUT);
    pinMode(LCD_D2, OUTPUT);
    pinMode(LCD_D3, OUTPUT);
    pinMode(LCD_D4, OUTPUT);
    pinMode(LCD_D5, OUTPUT);
    pinMode(LCD_D6, OUTPUT);
    pinMode(LCD_D7, OUTPUT);


    digitalWrite(LCD_RST, HIGH);
    digitalWrite(LCD_CS, HIGH);
    digitalWrite(LCD_RS, HIGH);
    digitalWrite(LCD_WR, HIGH);
    digitalWrite(LCD_RD, HIGH);



    digitalWrite(LCD_D0, 0);
    digitalWrite(LCD_D1, 0);
    digitalWrite(LCD_D2, 0);
    digitalWrite(LCD_D3, 0);
    digitalWrite(LCD_D4, 0);
    digitalWrite(LCD_D5, 0);
    digitalWrite(LCD_D6, 0);
    digitalWrite(LCD_D7, 0);


}



void setAddress(byte data) {
    //SEND COMMAND TO THE ILI9341
    digitalWrite(LCD_RST, HIGH);
    digitalWrite(LCD_CS, HIGH);
    digitalWrite(LCD_RS, LOW);
    digitalWrite(LCD_WR, LOW);
    digitalWrite(LCD_RD, HIGH);

    delay(10);


    //SET BYTE
    digitalWrite(LCD_D0, (data >> 0) & 0x01);
    digitalWrite(LCD_D1, (data >> 1) & 0x01);
    digitalWrite(LCD_D2, (data >> 2) & 0x01);
    digitalWrite(LCD_D3, (data >> 3) & 0x01);
    digitalWrite(LCD_D4, (data >> 4) & 0x01);
    digitalWrite(LCD_D5, (data >> 5) & 0x01);
    digitalWrite(LCD_D6, (data >> 6) & 0x01);
    digitalWrite(LCD_D7, (data >> 7) & 0x01);


    delay(10);

    digitalWrite(LCD_WR, HIGH);

    delay(10);
    digitalWrite(LCD_RS, HIGH);

    digitalWrite(LCD_D0, 0);
    digitalWrite(LCD_D1, 0);
    digitalWrite(LCD_D2, 0);
    digitalWrite(LCD_D3, 0);
    digitalWrite(LCD_D4, 0);
    digitalWrite(LCD_D5, 0);
    digitalWrite(LCD_D6, 0);
    digitalWrite(LCD_D7, 0);

    delay(20);

}



void setParameter(byte data) {





    digitalWrite(LCD_RST, HIGH);
    digitalWrite(LCD_CS, HIGH);
    digitalWrite(LCD_RS, HIGH);
    digitalWrite(LCD_WR, LOW);
    digitalWrite(LCD_RD, HIGH);



    delay(10);

    //SET BYTE
    digitalWrite(LCD_D0, (data >> 0) & 0x01);
    digitalWrite(LCD_D1, (data >> 1) & 0x01);
    digitalWrite(LCD_D2, (data >> 2) & 0x01);
    digitalWrite(LCD_D3, (data >> 3) & 0x01);
    digitalWrite(LCD_D4, (data >> 4) & 0x01);
    digitalWrite(LCD_D5, (data >> 5) & 0x01);
    digitalWrite(LCD_D6, (data >> 6) & 0x01);
    digitalWrite(LCD_D7, (data >> 7) & 0x01);


    delay(10);

    digitalWrite(LCD_WR, HIGH);

    delay(10);




    digitalWrite(LCD_D0, 0);
    digitalWrite(LCD_D1, 0);
    digitalWrite(LCD_D2, 0);
    digitalWrite(LCD_D3, 0);
    digitalWrite(LCD_D4, 0);
    digitalWrite(LCD_D5, 0);
    digitalWrite(LCD_D6, 0);
    digitalWrite(LCD_D7, 0);

    delay(20);
}






void setPower1() {
    setAddress(POWER_CONTROL_1);

    setParameter(0x2B);
}






void setCol() {


    setAddress(COLUMN_ADDRESS_SET);


    setParameter(0x0 );  //SC
    setParameter(0x5);  //EC



}





void setPage() {

    setAddress(PAGE_ADDRESS_SET);


    setParameter(0x0);  //SC
    setParameter(0x5);  //EC

}



void writeMemory() {
    setAddress(MEMORY_WRITE);




    for (int i = 0; i < (18*25); i++) {
        setParameter(i);
    }
}


void setPixelFormat(int format) {


    setAddress(PIXEL_FORMAT_SET);




    if (format == 16) {
        setParameter(0x55);
    }
    else if (format == 18) {
        setParameter(0x66);
    }


}







void displayOn() {
    setAddress(DISPLAY_ON);


}


void memoryAccessControl() {
    setAddress(MEMORY_ACCESS_CONTROL);

    setParameter(0x48);
}





void sleepOut() {
    setAddress(SLEEP_OUT);
}

The datasheet of the ILI9341: Link

Which of the 12 MCU interfaces did you select?!? In other words, how are pins IM0-IM3 wired?

Your code contains a gruesome amount of delays, I hope nobody is forced to use your library. :-\

What do you miss in the already existing libraries?