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

📄 5950_a.c

📁 HX8346 lcd driver software which can port to every Platform with some modifying.
💻 C
字号:
//HX8309A&ILI9220
#define uchar unsigned char
#define uint unsigned int
#include <Myc.c>

int otp_value_L,otp_value_H;
//=======================================================================
void key_wait(uint count)
{
 uint i,j,k;
 if(autorun==0)
  {
   for(i=0;i<count;i++)
   for(j=0;j<10;j++)
   for(k=0;k<120;k++)
    {
     if(KEY==0)
      {
        autorun=1;
        goto next;
      }
     ;
    }
  }
 else
  {
   while(1)
    {
     if(KEY==0)
      {
       for(i=0;i<100;i++)
       for(j=0;j<100;j++)
         {
            ;
         }
       goto next;
      }
     DelayX10ms(25);
     //==========================
     if(SP2==0)
     {
      //while(SP2==0)
      //{
      //;
      //}
      if(otp_value_L>0)
      {
       otp_value_L=otp_value_L-1;
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x38);
       Set_NOKIA_8B_PA(0x00);
       Set_NOKIA_8B_PA(otp_value_L);       //000 OP14 OP13 OP12 OP11 OP10(值大暗)  0000 OP03 OP02 OP01 OP00(值大亮)**************
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x39);
       Set_NOKIA_8B_PA(otp_value_L*2+1);
       Set_NOKIA_8B_PA(0x00);   //000 ON14 ON13 ON12 ON11 ON10(值大亮)  0000 ON03 ON02 ON01 ON00(值大暗)**************
       }
      else
      {
       otp_value_H=otp_value_H+1;
       if(otp_value_H==0x10)
        otp_value_H=0x0f;
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x38);
       Set_NOKIA_8B_PA(otp_value_H*2+1);
       Set_NOKIA_8B_PA(0x00);   //000 OP14 OP13 OP12 OP11 OP10(值大暗)  0000 OP03 OP02 OP01 OP00(值大亮)**************
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x39);
       Set_NOKIA_8B_PA(0x00);
       Set_NOKIA_8B_PA(otp_value_H);       //000 ON14 ON13 ON12 ON11 ON10(值大亮)  0000 ON03 ON02 ON01 ON00(值大暗)**************
      }
     }
    if(SP1==0)
     {
      //while(SP1==0)
      //{
      //;
      //}
      if(otp_value_H>0)
      {
       otp_value_H=otp_value_H-1;
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x38);
       Set_NOKIA_8B_PA(otp_value_H*2+1);
       Set_NOKIA_8B_PA(0x00);   //000 OP14 OP13 OP12 OP11 OP10(值大暗)  0000 OP03 OP02 OP01 OP00(值大亮)**************
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x39);
       Set_NOKIA_8B_PA(0x00);
       Set_NOKIA_8B_PA(otp_value_H);       //000 ON14 ON13 ON12 ON11 ON10(值大亮)  0000 ON03 ON02 ON01 ON00(值大暗)**************

      }
      else
      {
       otp_value_L=otp_value_L+1;
       if(otp_value_L==0x10)
        otp_value_L=0x0f;
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x38);
       Set_NOKIA_8B_PA(0x00);
       Set_NOKIA_8B_PA(otp_value_L);       //000 OP14 OP13 OP12 OP11 OP10(值大暗)  0000 OP03 OP02 OP01 OP00(值大亮)**************
       Set_NOKIA_8B_CMD(0x00);
       Set_NOKIA_8B_CMD(0x39);
       Set_NOKIA_8B_PA(otp_value_L*2+1);
       Set_NOKIA_8B_PA(0x00);   //000 ON14 ON13 ON12 ON11 ON10(值大亮)  0000 ON03 ON02 ON01 ON00(值大暗)**************

      }
     }
     //==========================
    }
  }
 next:
 ;
}
//==================================================
void coordinate(uint x,y)
{
      Set_NOKIA_8B_CMD(0x2b);  //Row address set
      Set_NOKIA_8B_PA((x&0x0100)>>8);   //Row address start
      Set_NOKIA_8B_PA(x&0xff);   //Row address start
      Set_NOKIA_8B_PA(0x01);   //Row address end
      Set_NOKIA_8B_PA(0x3f);   //Row address end

      Set_NOKIA_8B_CMD(0x2a);  //Column address set
      Set_NOKIA_8B_PA(0x00);   //Column address start
      Set_NOKIA_8B_PA(y);   //Column address start
      Set_NOKIA_8B_PA(0x00);   //Column address end
      Set_NOKIA_8B_PA(0xef);   //Column address end

}
//====================================================================
void picture(uchar x,uchar y,uint mpage,uint mcolumn)
{
     uint m,n,k,d0,d1,d2;
     k=mcolumn;
     wr_page(mpage);  //EEPROM page
    coordinate(x,y); //坐标定位
                      //图像宽度   x;
                      //图像高度   y;
     Set_NOKIA_8B_CMD(0x2c);
     for(n=y;n<320;)
      {
       for(m=x;m<240;)
        {
           //================
           wr_col(k);
           d0=rd_rom();
           k++;
           if(k==256)
            {
             k=0;
             wr_incpage();
            }
            //================
           wr_col(k);
           d1=rd_rom();
           k++;
         if(k==256)
            {
             k=0;
             wr_incpage();
            }
           //================
           wr_col(k);
           d2=rd_rom();
           k++;
           Set_NOKIA_8B_PA(d0);
           Set_NOKIA_8B_PA(d1);          //send data to display
           Set_NOKIA_8B_PA(d2);
           if(k==256)
            {
             k=0;
             wr_incpage();
            }
           //================
           m++;
        }
       //coordinate(x,++n);
       n=n+1;
     }
}
//============main programe=========main programe=========main programe============================
void main(void)
{
 int i,j,k,green,red,blue;
 otp_value_L=0x00;
 otp_value_H=0x04;
 autorun=0;
 SP1=1;
 SP2=1;
 KEY=1;
 CS=0;
 CS=0;
 DelayX10ms(20);
 CS=1;
 DelayX10ms(20);
 //========================================================================
      Set_NOKIA_8B_CMD(0x01);    
      DelayX10ms(25);
      Set_NOKIA_8B_CMD(0xB0);    
      Set_NOKIA_8B_PA(0x67);   
      Set_NOKIA_8B_PA(0x00);   
      DelayX10ms(25);

      Set_NOKIA_8B_CMD(0x11);    
      DelayX1ms(100);

      Set_NOKIA_8B_CMD(0x29);    
      DelayX1ms(50);

      Set_NOKIA_8B_CMD(0x36);  
      Set_NOKIA_8B_PA(0xc0);  

      Set_NOKIA_8B_CMD(0xB6);    
      Set_NOKIA_8B_PA(0x80);   
      Set_NOKIA_8B_PA(0x60);  
      Set_NOKIA_8B_PA(0x13);     
      DelayX1ms(50);


       Set_NOKIA_8B_CMD(0x13);    
       DelayX1ms(1);

       Set_NOKIA_8B_CMD(0x21);    
       DelayX1ms(1);

      Set_NOKIA_8B_CMD(0x3a);  
      Set_NOKIA_8B_PA(0x07);   

      Set_NOKIA_8B_CMD(0xB2);     
      Set_NOKIA_8B_PA(0x3C);  
      Set_NOKIA_8B_PA(0x02);
      Set_NOKIA_8B_PA(0x02);
      Set_NOKIA_8B_PA(0x02);
      Set_NOKIA_8B_PA(0x02);
      Set_NOKIA_8B_PA(0x02);
      Set_NOKIA_8B_PA(0x02);

      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x5F); 
      Set_NOKIA_8B_PA(0x08);
      Set_NOKIA_8B_PA(0xB0);   //A0
      Set_NOKIA_8B_PA(0x00);    //00
      Set_NOKIA_8B_PA(0x00);    //00
      Set_NOKIA_8B_PA(0x00);    //00
      Set_NOKIA_8B_PA(0x00);    //00
      Set_NOKIA_8B_PA(0x00);     //00
      DelayX1ms(40);

      Set_NOKIA_8B_CMD(0xB1);    
      Set_NOKIA_8B_PA(0x12);    
      Set_NOKIA_8B_PA(0x06);  
      Set_NOKIA_8B_PA(0x00); 
      Set_NOKIA_8B_PA(0x04); 
      Set_NOKIA_8B_PA(0x0e);
      Set_NOKIA_8B_PA(0x00); 
      Set_NOKIA_8B_PA(0x20); 

      Set_NOKIA_8B_PA(0x23);   
      Set_NOKIA_8B_PA(0x00);  
      Set_NOKIA_8B_PA(0x00); 
      Set_NOKIA_8B_PA(0x00);   
      DelayX1ms(40);

      Set_NOKIA_8B_CMD(0xB4);    
      Set_NOKIA_8B_PA(0x01);   
      Set_NOKIA_8B_PA(0x01);    
      Set_NOKIA_8B_PA(0x01);    
      Set_NOKIA_8B_PA(0x00);    
      Set_NOKIA_8B_PA(0x1C);    
      Set_NOKIA_8B_PA(0x1c);    
      Set_NOKIA_8B_PA(0x1c);    
      DelayX1ms(20);

      Set_NOKIA_8B_CMD(0x2C);     
 //====================================================================================================
 while(1)
 {
  //=======white===================
 for(j=0;j<320;j++)
    for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
    }
  key_wait(100);
  //==========black================
   for(j=0;j<320;j++)
    for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x00);  //
      Set_NOKIA_8B_PA(0x00);  //
    }
  key_wait(100);
  //============red==============
   //Set_NOKIA_8B_CMD(0x2C);
   for(j=0;j<320;j++)
   for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0xf8);
      Set_NOKIA_8B_PA(0x00);  //
      Set_NOKIA_8B_PA(0x00);  //
    }
  key_wait(100);
  //============green==============
  //  Set_NOKIA_8B_CMD(0x2C);
    for(j=0;j<320;j++)
    for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0x00);  //
    }
  key_wait(100);
  //===========blue===============
   //Set_NOKIA_8B_CMD(0x2C);
    for(j=0;j<320;j++)
    for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x00);  //
       Set_NOKIA_8B_PA(0xff);
    }
  key_wait(100);
 //===========row===============

   for(j=0;j<160;j++)

    {
     for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
    }
      for(i=0;i<240;i++)
     {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x00);  //
      Set_NOKIA_8B_PA(0x00);
      }
    i=i+1;
    }
  key_wait(100);

  //=========row=================

   for(j=0;j<160;j++)

    {
     for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x00);  //
      Set_NOKIA_8B_PA(0x00);
    }
      for(i=0;i<240;i++)
     {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
      }
    i=i+1;
    }
  key_wait(100);

 //=========fram=================

     for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);
    }                                //第一行  白
       {
     for(j=1;j<319;j++)
     {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
    {
      for(i=1;i<239;i++)
     {
      Set_NOKIA_8B_PA(0x00);
      Set_NOKIA_8B_PA(0x00);  //
      Set_NOKIA_8B_PA(0x00);
     }
     }
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
     }
      for(i=0;i<240;i++)
    {
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(0xff);  //
      Set_NOKIA_8B_PA(0xff);
    }
    }
  key_wait(100);
//=========gray=================
   for(k=0;k<320;k++)
  {
   blue=0;
   for(j=0;j<32;j++)
   {
    for(i=0;i<7;i++)
     {
      Set_NOKIA_8B_PA(blue);  //Set_NOKIA_8B_PA((red<<3)+0x07,0xe0+blue);
      Set_NOKIA_8B_PA(0xff);
      Set_NOKIA_8B_PA(blue);
     }
   // red=red+1;
    blue=blue+8;
   }
   for(i=0;i<16;i++)
    {
     Set_NOKIA_8B_PA(0xff);
     Set_NOKIA_8B_PA(0xff);
     Set_NOKIA_8B_PA(0xff);
    }
  }
  key_wait(100);    

 //=========picture=================
 for(i=0;i<1800;)        //960
   {
    picture(0,0,i,0);
    i=i+900;               //900
    key_wait(100);
  }

  }
  }

⌨️ 快捷键说明

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