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

📄 init_lcd.c

📁 基于3SC44B0的移植代码,包括UCOSII、UCGUI、触模屏、摄像头的程序
💻 C
字号:
#include "LCDConf.h"   
#include "LCD_0.h"  
#include "44BLIB.h" 
#include "44B.h" 
#define U16 	unsigned short
#define rPDATC		(*(volatile unsigned *)0x1d20014)
#define SET_LCD_RESET(x)	      (x ? (rPDATC |=(1<<7)) : (rPDATC&= ~(1<<7))) 
//#define BL_PWM_EN(x)                (x ? (rPDATD |= (1<<6)) : (rPDATD &= ~(1<<6)))      //GPD6
#define BL_EN(x)                          (x ? (rPDATD |= (1<<6)) : (rPDATD &= ~(1<<6)))       //GPD5

void NT3912_INIT(void);
void GUI_LCD_OFF(void);



void RAM_ADDRESS(void);
void display_red(void);
void display_blue(void);
void display_green(void);
void disp_ColorBarH(void) ;
void disp_Gray_Step(void);
void red_frame_main(void)  ;
void backlight(unsigned char level);


//#define  ID_read(port)                 (*((volatile mvUint16 *) (port)))




void NT3912_INIT(void)            //HX8309 
{
int i;
SET_LCD_RESET(0);
 Delay(2000);
SET_LCD_RESET(1);
 Delay(2000);	           
 //-----------Power_Setting_Function_1---------// Turn off all power
Init_data(0x0000,0x0001); //oscillator start
Delay(20);
Init_data(0x0007,0x0001);
Init_data(0x0018,0x0001);
Delay(100);

//-----------Power_Setting_Function_2----------// Power On Vcom

Init_data(0x0010,0x14B0);
Init_data(0x0011,0x0007);
Init_data(0x0012,0x1111);
Delay(40);
Init_data(0x0013,0x891b);
Delay(40);
Init_data(0x0014,0x8000);
Delay(40);
Init_data(0x0012,0x1133);
Delay(40);

//----------Initializing_Function_1---------------//

Init_data(0x0001,0x0100); // SM=0b, SS =1b
Init_data(0x0002,0x0400); // FLD1~0=01b, B/C=1b, EOR=1b.
Init_data(0x0003,0x1030); // HWM = 0, BGR = 1, I/D1~0=11b.
//Init_data(0x0004,0x0000); 
Init_data(0x0004,0x0000); 
Init_data(0x0008,0x0708); 
Init_data(0x0009,0x0001); 
Init_data(0x000C,0x0001); 
//Init_data(0x000F,0x0000); 

//------------Gamma control -----------//

 Init_data(0x0030,0x0601); //Gamma control 1
 Init_data(0x0031,0x0507); //Gamma control 2
 Init_data(0x0032,0x0006); //Gamma control 3
 Init_data(0x0033,0x0701); //Gamma control 4
 Init_data(0x0034,0x0105); //Gamma control 5
 Init_data(0x0035,0x0004); //Gamma control 6
 Init_data(0x0036,0x0605); //Gamma control 7
 Init_data(0x0037,0x0402); //Gamma control 8
 Init_data(0x0038,0x0700); //Gamma control 8
 Init_data(0x0039,0x0602); //Gamma control 8
 Init_data(0x003A,0x0100); //Gamma control 9
 Delay(100);

// ------- Base image display control instruction -----//

 Init_data(0x0070,0x1B00); 
 Init_data(0x0071,0x0001); 
 Init_data(0x007A,0x00db); 

// ------- Panel interface control instruction --------//

 Init_data(0x0090,0x0000); 
 Init_data(0x0091,0x0100); 
 Init_data(0x0092,0x0001); 
 Init_data(0x0093,0x0110); 
 Init_data(0x0094,0x0100); 
 Init_data(0x0095,0x0000); 
 Init_data(0x0098,0x0000); 
 Init_data(0x0099,0x050A);
 Init_data(0x009A,0x050A); 
 Init_data(0x009B,0x0000); 
 Init_data(0x009C,0x0000);
 Delay(100);
 
 Init_data(0x0007,0x0001); // Display control 
 Delay(100);
Init_data(0x0007,0x0233);
 Delay(1000);


 for(i=0;i<176*220;i++)
Init_data(0x0022,0xff00);
  backlight(30);
    


}


void GUI_LCD_OFF(void){
//int i;
//rTCON= 0x0;  
//rINTCON=0x7;
//rINTMSK=0x07ffffff;

  rINTMSK=BIT_GLOBAL;	       
 rTCON= 0x00000000;

 Init_data(0x0050,0x0000); 
 Init_data(0x0051,0x00AF); 
 Init_data(0x0052,0x0000); 
 Init_data(0x0053,0x00DB); 
 Init_data(0x0020,0x0000); 
 Init_data(0x0021,0x0000); 

disp_ColorBarH();

 Delay(5000);
 Delay(5000);
  Delay(5000);
    Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);




display_red();
 Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
    Delay(5000);
  Delay(5000);
Delay(5000);


display_green();
 Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);


display_blue();
 Delay(5000);
  Delay(5000);
  Delay(5000);
    Delay(5000);
  Delay(5000);
  Delay(5000);
Delay(5000);


disp_Gray_Step();
 Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);


 
 red_frame_main();
 Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
    Delay(5000);
  Delay(5000);
Delay(5000);



 display_id(80,62,lcd_ic_id());
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);
  Delay(5000);



  
//Init_data(0x0021,0x00);
 //for(i=0;i<176*220;i++);
 //Init_data(0x0022,0xff00);
//BL_PWM_EN(0);    
backlight(16);   
 Delay(5000);
 Delay(5000); 
 Delay(5000);
 Delay(5000);
 Delay(5000);
  Delay(5000);
  Delay(5000);
 Delay(5000);
  Delay(5000);
  Delay(5000);
  
 //OSTimeDlyHMSM(0,1,0,0);
 Init_data(0x0007,0x0132);
 Delay(1000);
 Init_data(0x0007,0x0122);
  Delay(1000);
 Init_data(0x0007,0x0100); 
 Init_data(0x0010,0x0000); 
  Init_data(0x0011,0x0000); 
 Init_data(0x0012,0x0000); 
 Init_data(0x0013,0x0000); 
  Init_data(0x0018,0x0000); 
 BL_EN(0);   
 Delay(100);
 
rCLKSLOW=0x0;
while(1);
	
}

void RAM_ADDRESS(void)
{   
 Init_data(0x0050,0x0000); 
 Init_data(0x0051,0x00AF); 
 Init_data(0x0052,0x0000); 
 Init_data(0x0053,0x00DB); 
 Init_data(0x0020,0x0000); 
 Init_data(0x0021,0x0000); 
   //writec(0x0022);
   //Delay(10);
}

void display_red(void)
{
 int i,j;
 RAM_ADDRESS();
 for(i=0;i<220;i++) //176RGB x 220_dot
  {
    for(j=0;j<176;j++)
     { 
       Init_data4(0x0022,0xF800);//RAM data write
     }
  }
 Init_data(0x0007,0x0233);
}
void display_green(void)
{
 int i,j;
 RAM_ADDRESS();
 for(i=0;i<220;i++) //176RGB x 220_dot
  {
    for(j=0;j<176;j++)
     { 
      Init_data4(0x0022,0x07E0);
     }
  }
}

void display_blue(void)
{
 int i,j;
 RAM_ADDRESS();
 for(i=0;i<220;i++) //176RGB x 220_dot
  {
    for(j=0;j<176;j++)
     { 
      Init_data4(0x0022,0x001F);
     }
  }
}

void disp_ColorBarH(void)  //横Bar
{
 unsigned int i,j,k,l;

 i=j=k=l=0;

 Init_data(0x0050,0x0000); 
 Init_data(0x0051,0x00AF); 
 Init_data(0x0052,0x0000); 
 Init_data(0x0053,0x00DB); 
 Init_data(0x0020,0x0000); 
 Init_data(0x0021,0x0000); 
// RAM_ADDRESS();
  for(i=0;i<220;i++)
  {
    if(k==28)
     {
      l++;
      k=0;
     }
     k++;
    for(j=0;j<176;j++)
      {
	   switch(l)
          {
	      case(0):Init_data4(0x0022,0xFFFF);break;
	             
	      case(1):Init_data4(0x0022,0xF800);break;
	             
	      case(2):Init_data4(0x0022,0x07E0);break;
	            
	      case(3):Init_data4(0x0022,0x001F);break;
	            
	      case(4):Init_data4(0x0022,0xBDF7);break;
	           
	      case(5):Init_data4(0x0022,0xFFE0);break;
	            
	      case(6):Init_data4(0x0022,0x07FF);break;
	           
	      case(7):Init_data4(0x0022,0xF81F); break;
	      default: break;
         }
      }
   }
 Init_data(0x0007,0x0233);
}


void disp_Gray_Step(void) //灰阶
{
 unsigned char i,j,k,m;
 unsigned int Gray_Step[32]={0x0000,0x0841,0x1082,0x18c3,0x2104,0x2945,0x3186,0x39c7,
 			     0x4208,0x4a49,0x528a,0x5acb,0x630c,0x6b4d,0x738e,0x7bcf,
 			     0x8430,0x8c71,0x94b2,0x9cf3,0xa534,0xad75,0xb5b6,0xbdf7,
 			     0xc638,0xce79,0xd6ba,0xdefb,0xe73c,0xef7d,0xf7be,0xffff}; 
 i=j=k=m=0;
 RAM_ADDRESS();
 //writec(0x0022);
  for(i=0;i<110;i++)
  {
    m=28; 
    for(j=0;j<176;j++){
      k++;
      Init_data4(0x0022,Gray_Step[m]);
      if(k==22){
      	k=0;
        m-=4;
        }
     }
  }
  for(i=110;i<220;i++)
  {
    m=0; 
    for(j=0;j<176;j++){
      k++;
      Init_data4(0x0022,Gray_Step[m]);
      if(k==16){
      	k=0;
        m+=3;
        }
     }
  }
}


void red_frame_main(void)  
{
 unsigned int i,j;
 i=j=0;
 RAM_ADDRESS();
  for(i=0;i<220;i++)
  { if((i==0)||(i==219))
      {
         for(j=0;j<176;j++)
          {
            Init_data4(0x0022,0xF800);
            
          }
      }

    else
     {
      for(j=0;j<176;j++)
        {
         if((j==0)||(j==175))
         {Init_data4(0x0022,0xF800);
         
	}
         else 
            Init_data4(0x0022,0x0000);
        }
      }
   }
 }



void backlight(unsigned char level)
{
	unsigned char i;
	
	BL_EN(0);
	Delay(500);
	for(i=0 ; i<level ; i++)
    {
        BL_EN(0);;
	Delay(2);//
        BL_EN(1);
	Delay(300);
    }
}






⌨️ 快捷键说明

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