⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9220.bak

📁 LCD模块IC是ILI9325在C51单片机的驱动程序
💻 BAK
📖 第 1 页 / 共 2 页
字号:

                 for(seg=0;seg<(r+rr);seg++)
	             Data_Write(x5);       //5
                     r_l--;
                     if(r_l>0)
                        {rr=1;}
                     else
                        {rr=0;}

                 for(seg=0;seg<(r+rr);seg++)
	             Data_Write(x6);        //6
                     r_l--;
                     if(r_l>0)
                        {rr=1;}
                     else
                        {rr=0;}
            }
            x=x1;
            x1=x2;
            x2=x3;
            x3=x4;
            x4=x5;
            x5=x6;
            x6=x;
             c_l--;
           if(c_l>0)
              {cc=1;}
            else
              {cc=0;}

           }
}
 */
/******************显示雪花子程序****************************/
 /*
void display_snow()
{

    c_d_before();
    for(page=0;page<DisplayCol;page++)
    for(seg=0;seg<DisplaySeg;seg++)
       {
        if((page+seg)%2==0)
          {
           Data_Write(white);
           }
         else
           {
            Data_Write(black);
            }
        }
}
 */
/******************显示垂直线子程序****************************/
 /*
void display_v_l()
{

    c_d_before();
    for(page=0;page<DisplayCol;page++)
    for(seg=0;seg<DisplaySeg;seg++)
       {
        if(seg%2==0)
          {
           Data_Write(white);
           }
         else
           {
            Data_Write(black);
            }
        }
}
 */
/******************显示水平线子程序****************************/
 /*
void display_h_l()
{

    c_d_before();
    for(page=0;page<DisplayCol;page++)
    for(seg=0;seg<DisplaySeg;seg++)
       {
        if(page%2==0)
          {
           Data_Write(white);
          }
         else
         {
          Data_Write(black);
          }
        }
}

 */
/******************显示灰度子程序****************************/

void display_gray()
{
    unsigned char r,r_l,rr,i,c,c1,c2,c3,c4;
    r=DisplaySeg/16;
    r_l=DisplaySeg-r*16;
    i=DisplayCol/20;
    c=DisplaySeg/18;
    c1=DisplaySeg/2-2*c;
    c2=DisplaySeg/2-4*c;
    c3=DisplaySeg/2-6*c;
    c4=DisplaySeg/2-8*c;
    if(r_l>0)
      {rr=1;}
    else
      {rr=0;}


    c_d_before();


    for(page=0;page<DisplayCol;page++)
       {
        for(seg=0;seg<(r+rr);seg++)
            Data_Write(0xffff);
            if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

        for(seg=0;seg<(r+rr);seg++)
            Data_Write(0xef7d);   //ef7d
            if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

       for(seg=0;seg<(r+rr);seg++)
           Data_Write(0xd69a);
           if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

       for(seg=0;seg<(r+rr);seg++)
           Data_Write(0xc618);
           if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0xb596);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0xa514);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x9492);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x8410);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x738e);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x630c);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x528a);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x4208);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x3186);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x2104);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}

      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x1082);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}


      for(seg=0;seg<(r+rr);seg++)
          Data_Write(0x0000);
          if(r_l>0)
              {rr=1;}
            else
              {rr=0;}
   }
}

/******************显示图像子程序****************************/

void display_picture()             //display picture
{
   unsigned int i,ii,s;
   unsigned int k,p_dat;
   k=0;
   s=DisplaySeg/2;

   c_d_before();

   if(DisplayCol==160)
     {
      for(i=0;i<DisplayCol;i++)
      for(ii=0;ii<DisplaySeg;ii++)
         {
          p_dat=image1[k];
          p_dat=(p_dat<<8);
          k++;
          p_dat=p_dat|image1[k];
          Data_Write(p_dat);
          k++;
         }
     }

   else
    {
     for(i=0;i<DisplayCol/2;i++)
      {
       if(i>=1) {k=k+DisplaySeg;}
       for(ii=0;ii<DisplaySeg;ii++)
         {
          if(ii<s)
            {
             p_dat=image1[k];
             p_dat=(p_dat<<8);
             k++;
             p_dat=p_dat|image1[k];
             Data_Write(p_dat);
             k++;
             }
           else
            {
             
             p_dat=image1[k];
             p_dat=(p_dat<<8);
             k--;
             p_dat=p_dat|image1[k];
             Data_Write(p_dat);
             k--;
             }
          }
         }
      k=0;
     for(i=0;i<DisplayCol/2;i++)
      {
       if(i>=1) {k=k+DisplaySeg;}
       for(ii=0;ii<DisplaySeg;ii++)
         {
          if(ii<s)
            {
             p_dat=image1[k];
             p_dat=(p_dat<<8);
             k++;
             p_dat=p_dat|image1[k];
             Data_Write(p_dat);
             k++;
             }
           else
            {
             
             p_dat=image1[k];
             p_dat=(p_dat<<8);
             k--;
             p_dat=p_dat|image1[k];
             Data_Write(p_dat);
             k--;
             }
          }
         }
     }
}
/************写数据前的命令*******************/

void c_d_before()
{
 Command_Write(0x0020);
 Data_Write(0x0000);
Command_Write(0x0021);
Data_Write(0x0000);
 Command_Write(0x0022);

}
/*********IC st7637 的初始化*****ok**************/

void Initst()
{
	reset=0;
	delay(10);
	reset=1;
	delay(50);

        //control_out(0x07,0x0000);	//display control 1
	//delay(20);
//********start initial sequence**********//
   control_out(0x00E3,0x3008);    //det internal timing
   control_out(0x00E7, 0x0012); // Set internal timing
   control_out(0x00EF, 0x1231); // Set internal timing
   control_out(0x0001, 0x0100); // set SS and SM bit
   control_out(0x0002, 0x0700); // set 1 line inversion
   control_out(0x0003, 0x1030); // set GRAM control_out direction and BGR=1.
   control_out(0x0004, 0x0000); // Resize register
   control_out(0x0008, 0x0207); // set the back porch and front porch
   control_out(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
   control_out(0x000C, 0x0000); // RGB interface setting
   control_out(0x000D, 0x0000); // Frame marker Position
   control_out(0x000F, 0x0000); // RGB interface polarity
//*************Power On sequence ****************//
   control_out(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
   control_out(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
   control_out(0x0012, 0x0000); // VREG1OUT voltage
   control_out(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
    delay(200); // Dis-charge capacitor power voltage
   control_out(0x0010, 0x1490); // SAP, BT[3:0], AP, DSTB, SLP, STB
   control_out(0x0011, 0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
     delay(50); // Delay 50ms
   control_out(0x0012, 0x001D); // Internal reference voltage= Vci;
      delay(50); // Delay 50ms
   control_out(0x0013, 0x0800); // Set VDV[4:0] for VCOM amplitude
   control_out(0x0029, 0x0014); // Set VCM[5:0] for VCOMH
   control_out(0x002B, 0x000D); // Set Frame Rate
      delay(50); // Delay 50ms
   control_out(0x0020, 0x0000); // GRAM horizontal Address
   control_out(0x0021, 0x0000); // GRAM Vertical Address
// ----------- Adjust the Gamma Curve ----------//
    control_out(0x0030, 0x0007);
    control_out(0x0031, 0x0707);
    control_out(0x0032, 0x0006);
    control_out(0x0035, 0x0704);
    control_out(0x0036, 0x1F04);
    control_out(0x0037, 0x0004);
    control_out(0x0038, 0x0000);
    control_out(0x0039, 0x0706);
    control_out(0x003C, 0x0701);
    control_out(0x003D, 0x000F);
//------------------ Set GRAM area ---------------//
     control_out(0x0050, 0x0000); // Horizontal GRAM Start Address
     control_out(0x0051, 0x00EF); // Horizontal GRAM End Address
     control_out(0x0052, 0x0000); // Vertical GRAM Start Address
     control_out(0x0053, 0x013F); // Vertical GRAM Start Address
     control_out(0x0060, 0xA700); // Gate Scan Line
     control_out(0x0061, 0x0001); // NDL,VLE, REV
     control_out(0x006A, 0x0000); // set scrolling line
//-------------- Partial Display Control ---------//
    control_out(0x0080, 0x0000);
    control_out(0x0081, 0x0000);
    control_out(0x0082, 0x0000);
    control_out(0x0083, 0x0000);
    control_out(0x0084, 0x0000);
    control_out(0x0085, 0x0000);
//-------------- Panel Control -------------------//
control_out(0x0090, 0x0010);
control_out(0x0092, 0x0600);
control_out(0x0093, 0x0003);
control_out(0x0095, 0x0110);
control_out(0x0097, 0x0000);
control_out(0x0098, 0x0000);
control_out(0x0007, 0x0133); // 262K color and display ON






}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -