NOTE:VCI=3.3V,ʹ��RGB�ӿڱ���Ҫ��SPI��LCD���г�ʼ��.
//****************************************************************
void write_command (unsigned char y) // (uchar y,uchar x)
{
  unsigned char i;
csb=0;
sclb=0;
sdi=0;
sclb=1;
for(i=0;i<8;i++)
    {
     sclb=0;      
      if (y&0x80)
       {
          sdi=1;
        }
          else
         {
          sdi=0;
         }
       sclb=1;
      y=y<<1;
    }
csb=1;
}
//***************************************************************
void write_data(unsigned char w) // (uchar w, uchar v)
{
  unsigned char i;
csb=0;
sclb=0;
sdi=1;
sclb=1;
for(i=0;i<8;i++)
 {
  sclb=0;
     if (w&0x80)
     {
        sdi=1;
       }
          else
        {
         sdi=0;
        }
   sclb=1;
   w=w<<1;
    }
csb=1;
}
/*************************************************/
void initi(void)
{
   res=1;
   delay(1);
   res=0;
   delay(10);
   res=1;
   delay(120);
//--------------------------------ST7789S Frame rate setting----------------------------------//
write_command(0x11); 
delay(120);      //Delay 120ms 

write_command(0x36); // Memory Access Control
write_data(0x00);

//-------------ST7789V Frame rate setting-----------//
write_command(0xb2);
write_data(0x08);
write_data(0x08);
write_data(0x00);
write_data(0X22);
write_data(0X22);

write_command(0xb7); 
write_data(0x35);
//--------------ST7789V Power setting---------------//
write_command(0xBB);//VCOM
write_data(0x3E);

write_command(0xC0); //Power control
write_data(0x2c); 

write_command(0xC2); 
write_data(0X01);

write_command(0xC3); 
write_data(0X09);//0D	gvdd

write_command(0xC4); 
write_data(0X20);

write_command(0xC6); 
write_data(0X0F);//0x0F

write_command(0xd0); 
write_data(0Xa4);
write_data(0Xa1);
//---------------ST7789V gamma setting-------------//
write_command(0xE0); //Set Gamma
write_data(0xF0);
write_data(0x03);
write_data(0x05);
write_data(0x08);
write_data(0x08);
write_data(0x05);
write_data(0x1F);
write_data(0X44);
write_data(0x2F);
write_data(0x14);
write_data(0x0B);
write_data(0x0A);
write_data(0x06);
write_data(0x0D);
 
write_command(0XE1); //Set Gamma
write_data(0xF0);
write_data(0x03);
write_data(0x06);
write_data(0x05);
write_data(0x04);
write_data(0x12);
write_data(0x1F);
write_data(0x53);
write_data(0x2F);
write_data(0x27);
write_data(0x0A);
write_data(0x0A);
write_data(0x05);
write_data(0x0D);

write_command(0x21); //����

//*********SET RGB Interfae***************
write_command(0xB0); 
write_data(0x11); //set RGB interface and DE mode.
write_data(0x00); 
write_data(0x00); 

write_command(0xB1); 
write_data(0x40); // set DE mode ; SET Hs,Vs,DE,DOTCLK signal polarity 
write_data(0x00); 
write_data(0x00); 

write_command(0x3a); 
write_data(0x60); //18 RGB ,55-16BIT RGB

//************************

write_command(0x2A); //Frame rate control
write_data(0x00);
write_data(0x00);
write_data(0x00);
write_data(0xEF);

write_command(0x2B); //Display function control
write_data(0x00);
write_data(0x00);
write_data(0x01);
write_data(0x3F);

write_command(0x29); //display on

write_command(0x2c); 

}
//*********************************************************************
void EnterSleep (void)
{
    write_command(0x28);
    delay(20);
    write_command(0x10); 

    RGB_OFF();
   delay(50);
  }

//*********************************************************
void ExitSleep (void)

 {
    RGB_ON();
    delay(20);
    write_command(0x11);
    delay(120);
    write_command(0x29);

   }