NOTE:VCI=3.3V,ʹ��RGB�ӿڱ���Ҫ��SPI��LCD���г�ʼ��.
//************************ָ��*****************************
void write_command (unsigned char y) // (uchar y,uchar x)
{
  unsigned char i;
  cs=0;
  rs=0;
  for(i=0;i<8;i++)
    {
     scl=0;
      if (y&0x80)
        {
          sdi=1;
          }
          else
         {
          sdi=0;
      }
       scl=1;
      y=y<<1;
    }
cs=1;
}
//************************************����***************************
void write_data(unsigned char w) // (uchar w, uchar v)
{
  unsigned char i;
cs=0;
rs=1;
for(i=0;i<8;i++)
 {
  scl=0;
     if (w&0x80)
 {
        sdi=1;
    }
         else
       {
         sdi=0;
         } 
        scl=1;
      w=w<<1;
    }
cs=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 Data Access Control
write_data(0x00);   //MY:0x80

write_command(0x3A);   //Interface Pixel Format
write_data(0x05);   //MCU-16bit

write_command(0xB2);     //Porch Setting
write_data(0x0C);   //Normal BP
write_data(0x0C);   //Normal FP
write_data(0x00);   //Enable Seperate
write_data(0x33);   //idle, BP[7:4], FP[3:0]
write_data(0x33);   //partial, BP[7:4], FP[3:0]

write_command(0xB7);     //Gate Control
write_data(0x70);   

write_command(0xBB);     //VCOMS Setting
write_data(0x2B);   //37

write_command(0xC0);     
write_data(0x2C);   

write_command(0xC2);     
write_data(0x01);   

write_command(0xC3);     //VRH Set
write_data(0x20);   //21

write_command(0xC4);     
write_data(0x20);   

write_command(0xC6);     //Frame Rate Control in Normal Mode
write_data(0x0F);   

write_command(0xD0);     //Power Control 1
write_data(0xA4);   //
write_data(0xA1);   //AVDD=6.8V, AVCL=-4.8V, VDS=2.3V

write_command(0xE0);     
write_data(0xD0);
write_data(0xCA);
write_data(0x0E);
write_data(0x08);
write_data(0x09);
write_data(0x07);
write_data(0x2D);
write_data(0x3B);
write_data(0x3D);
write_data(0x34);
write_data(0x0A);
write_data(0x0A);
write_data(0x1B);
write_data(0x28);

write_command(0xE1);     
write_data(0xD0);
write_data(0xCA);
write_data(0x0F);
write_data(0x08);
write_data(0x08);
write_data(0x07);
write_data(0x2E);
write_data(0x5C);
write_data(0x40);
write_data(0x34);
write_data(0x09);
write_data(0x0B);
write_data(0x1B);
write_data(0x28);
 
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(0x66); //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();
 
  }

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

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

   }