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

📄 display.c

📁 8051带32Mflash的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
CMD(0x0010, 0x0000);         // SAP, BT[3:0], AP, DSTB, SLP, STB
CMD(0x0011, 0x0007);         // DC1[2:0], DC0[2:0], VC[2:0]
CMD(0x0012, 0x0000);         // VREG1OUT voltage
CMD(0x0013, 0x0000);         // VDV[4:0] for VCOM amplitude
 delay10ms(200);      

CMD(0x07,0x0101); 
CMD(0x10,0x12B0);
CMD(0x11,0x0007); 
delay10ms(0);
CMD(0x17,0x0001); 
CMD(0x12,0x01BB); 
delay10ms(50);
CMD(0x13,0x1300); 
CMD(0x29,0x0010); 
delay10ms(50);
CMD(0x30,0x0102); 
CMD(0x31,0x0C18); 
CMD(0x32,0x0F1C); 
CMD(0x33,0x3617); 
CMD(0x34,0x350B); 
CMD(0x35,0x1004); 
CMD(0x36,0x0D06); 
CMD(0x37,0x0318);
CMD(0x38,0x0406); 
CMD(0x39,0x0005); 
CMD(0x3A,0x0A05); 
CMD(0x3B,0x0A00); 
CMD(0x3C,0x020F); 
CMD(0x3D,0x050F); 
CMD(0x3E,0x0303); 
CMD(0x3F,0x0505); 

CMD(0x50,0x0000); 
CMD(0x51,0x00EF);
CMD(0x52,0x0000); 
CMD(0x53,0x013F); 

CMD(0x60,0x2700);  
CMD(0X61, 0x0001); 
CMD(0X6A, 0x0000);

CMD(0X80, 0x0000); 
CMD(0X81, 0x0000); 
CMD(0X82, 0x0000); 
CMD(0X83, 0x0000); 
CMD(0X84, 0x0000); 
CMD(0X85, 0x0000); 

CMD(0X90, 0x0010); 
CMD(0X92, 0x0000); 
CMD(0X93, 0x0103); 
CMD(0X95, 0x0210); 
CMD(0X97, 0x0000); 
CMD(0X98, 0x0000); 

CMD(0XF0, 0x5408); 
CMD(0XF3, 0x0007);
CMD(0XF4, 0x001F); 
CMD(0XF0, 0x0000); 
CMD(0X07, 0x0173);
}

#elif R61505U
	void LCM_init()
	{
		LCM_RES=0;
		delay10ms(500);
		LCM_RES=1;
		delay10ms(500);
        W_C(0x07);          
      	W_D_HL(0x00,0x00);    
        delay10ms(50);
        
        W_C(0x00);  
        W_C(0x00); 
        W_C(0x00); 
        W_C(0x00);
        delay10ms(50);
      
        
        W_C(0xa4);  
       W_D_HL(0x00,0x01);
         delay10ms(10);
        
                
        W_C(0x08);  
       W_D_HL(0x08,0x08);
        
 //**********Adjust the Gamma Curve***********//       
        W_C(0x30);     W_D_HL(0x07,0x07);          
        W_C(0x31);     W_D_HL(0x06,0x07);    
        W_C(0x32);     W_D_HL(0x02,0x00);     
        W_C(0x33);     W_D_HL(0x03,0x01);     
        W_C(0x34);     W_D_HL(0x01,0x01);     
        W_C(0x35);     W_D_HL(0x04,0x04);    
        W_C(0x36);     W_D_HL(0x0a,0x00);    
        W_C(0x37);     W_D_HL(0x07,0x07);    
        W_C(0x38);     W_D_HL(0x06,0x07);     
        W_C(0x39);     W_D_HL(0x02,0x00);     
        W_C(0x3A);     W_D_HL(0x03,0x01);         //
        W_C(0x3B);     W_D_HL(0x01,0x01);     //         //
        W_C(0x3C);     W_D_HL(0x04,0x04);      //
        W_C(0x3D);     W_D_HL(0x0a,0x00);     //        //
     //******** Gamma ***********//       
// *********************************************************//      
   //**********Power On sequence************//       
        W_C(0x07);  
       W_D_HL(0x00,0x01);
        
        W_C(0x17);  
       W_D_HL(0x00,0x01);
          
       
        W_C(0x10);  
       W_D_HL(0x16,0xb0);        
        
        W_C(0x11);  
       W_D_HL(0x00,0x07);
        
        W_C(0x12);  
       W_D_HL(0x01,0x1b); 
          
        W_C(0x13);  
       W_D_HL(0x0f,0x00);
        
        W_C(0x29);  
       W_D_HL(0x00,0x10);    //(0x00,0x01);
        
          W_C(0x2a);  
       W_D_HL(0x00,0x95);
    
        W_C(0x12);  
       W_D_HL(0x01,0x39);    //(0x01,0x3b); 
  
  //***********************************************************//          
        W_C(0x01);  
       W_D_HL(0x05,0x00);
        
        W_C(0x02);  
       W_D_HL(0x07,0x00);
        
        W_C(0x03);  
       W_D_HL(0x00,0x10);
        
        W_C(0x04);  
       W_D_HL(0x00,0x00);
        
        W_C(0x09);  
       W_D_HL(0x00,0x21);
        
        W_C(0x0a);  
       W_D_HL(0x00,0x08);
        
        
        W_C(0x50);          //Window address control instruction
       W_D_HL(0x00,0x00);
        W_C(0x51);  
       W_D_HL(0x00,0xef);
        W_C(0x52);  
       W_D_HL(0x00,0x00);
        W_C(0x53);  
       W_D_HL(0x01,0x3F);
 
        W_C(0x60);              //Driver Output Control  
       W_D_HL(0xa7,0x00);
        W_C(0x61);              //Base image display control
       W_D_HL(0x00,0x00);
       W_C(0x95);          //RAM Address Set (Vertical Address)
       W_D_HL(0x03,0x10);
	   W_C(0x14);          //RAM Address Set (Vertical Address)
       W_D_HL(0x30,0x00); 
       
        W_C(0x90);              //Panel interface control
       W_D_HL(0x00,0x10);
        W_C(0x92);  
       W_D_HL(0x00,0x00);
        W_C(0x93);  
       W_D_HL(0x00,0x00);
                      
        W_C(0x07);  
       W_D_HL(0x00,0x21);
         delay10ms(10);
        

        W_C(0x07);  
       W_D_HL(0x00,0x61);
         delay10ms(10);
      
        W_C(0x07);  
       W_D_HL(0x01,0x73); 
        
        W_C(0x20);            //RAM Address Set (Horizontal Address)
       W_D_HL(0x00,0x00);
       
        
        W_C(0x21);          //RAM Address Set (Vertical Address)
       W_D_HL(0x00,0x00);     
        
        W_C(0x22);  
	}
#else
	#error DON'T SET DISPLAY INIT SERIES
#endif


/*----------------------------------------------------------------
		RGB sub program	
-----------------------------------------------------------------*/
uint RGB(uchar r,uchar g,uchar b)
{
	uint rgb,rgb2;
	rgb2=r>>3;
	rgb=rgb2<<11;
	rgb2=g>>2;
	rgb=rgb|rgb2<<5;
	rgb2=b>>3;
	rgb=rgb|rgb2;
	return rgb;
	
}


/*----------------------------------------------------------------
		SET WHOLE SCREEN sub program	
-----------------------------------------------------------------*/
 void set_whole_screen()
{
	D0=0;
	D8=0;
	W_C(0x4E);
	
	W_D(0x00);
	W_C(0x4F);
	W_D(0x0000);
	W_C(0X22);
	
}


/*----------------------------------------------------------------
		DISPLAY RED sub program	
-----------------------------------------------------------------*/
void display_red()//red
{	
	
	
	uchar i;
	unsigned int k;
	
	set_whole_screen();
	D0=0;
	D8=0;
	for(k=0;k<320;k++)
		for(i=0;i<240;i++)
		{
			W_D(0xfc00);
		}
	D0=0;
	D8=0;
}


/*----------------------------------------------------------------
		DISPLAY GREEN sub program	
-----------------------------------------------------------------*/

void display_green()//green
{	
	uchar i;
	unsigned int k;
	
	set_whole_screen();
	D0=0;
	D8=1;
	for(k=0;k<320;k++)
		for(i=0;i<240;i++)
		{
			W_D(0x03e0);
		
		}
	D0=0;
	D8=0;
}

/*----------------------------------------------------------------
		DISPLAY BLUE sub program	
-----------------------------------------------------------------*/

void display_blue()//blue
{
	uchar i;
	unsigned int k;
	
	set_whole_screen();
	D0=1;
	D8=0;
	for(k=0;k<320;k++)
		for(i=0;i<240;i++)
		{
			W_D(0x1f);
		 
		}
	D0=0;
	D8=0;
}//end sub


/*----------------------------------------------------------------
		DISPLAY WHITE sub program	
-----------------------------------------------------------------*/
void display_white()//white
{
	uchar i;
	unsigned int k;
	
	set_whole_screen();
	

		for(k=0;k<320;k++)
			for(i=0;i<240;i++)
			{
				W_D(0xffff);
			
			 }

}//end sub


/*----------------------------------------------------------------
		DISPLAY BLACK+SHAPE  sub program	
-----------------------------------------------------------------*/
void display_black()//black+绿色的框,作为边界确认
{
	uchar i;
	unsigned int k;
	
	set_whole_screen();
	D0=0;
	D8=0;
	for(k=0;k<320;k++)
		for(i=0;i<240;i++)
		{
			W_D(0x00);
		
		 }

}


/*----------------------------------------------------------------
		CLEAR DISPLAY sub program	
-----------------------------------------------------------------*/
void display_clear()//clear
{
	unsigned char i,ii;
	set_whole_screen();

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(254,0,0));//red
			
	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(0,254,0));//g

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(0,0,254));//b

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(0,254,254));//b+g

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(254,0,254));//r+b
	

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(254,254,0));//r+g

	
	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(0,0,0));//black

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(254,254,254));//white
 
	
	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(0,0,0));//black

	for(ii=0;ii<32;ii++)
		for(i=0;i<240;i++)
			W_D(RGB(254,254,254));//white
}//end sub


/*----------------------------------------------------------------
		DISPLAY PIXEL sub program	
-----------------------------------------------------------------*/
void set_pixel(unsigned int x,unsigned int y)
{
	uint value;
	value=x&0x00ff;
	if(x>=240)x=240-1;
	if(y>=320)y=320-1;
	CMD(0x4E, x); 
	CMD(0x4F, y); 
	CMD(0x22, 0xffff);


		
}


/*----------------------------------------------------------------
		TEST PIXEL sub program	
-----------------------------------------------------------------*/
void test_pixel2()
{
	unsigned int a;
	for(a=0;a<320;a++)
	{
		if(a<240)
		{
			W_C(0x4e);
			W_D(a);
		}
		else
		{
			W_C(0x4e);
			W_D(120);
		}
		W_C(0x4f);
		W_D(a);
		
		W_C(0X22);
		
		W_D(0xffFF);
	}
}
 

void write_picdata(uint value)
{
    	W_D(value);
}
#if INTERFACE_16BIT 
void write_picdata1(uchar vdata1,uchar vdata2)
{

	LCM_RS=1;
	lcm_cs(0);
	OUTPORT_H=vdata2;
	OUTPORT_L=vdata1;
	LCM_WR=0;
	LCM_WR=1;
	lcm_cs(1);
}

#elif INTERFACE_8BIT
void write_picdata1(uchar vdata1,uchar vdata2)
{

	LCM_RS=1;
	lcm_cs(0);
	OUTPORT_L=vdata2;
	LCM_WR=0;
	LCM_WR=1;
	OUTPORT_L=vdata1;
	LCM_WR=0;
	LCM_WR=1;
	lcm_cs(1);
}
#else
		#error write_picdata1(uchar vdata1,uchar vdata2) DON'T SET INTERFACE
#endif


void dis_RGB(void)
{	
	display_green();//
	delay10ms(2200);
//	display_blue();//
//	delay10ms(2000);
//	display_red();//
//	delay10ms(2000);
//	display_white();//
//	delay10ms(2000);
	display_black();//
	delay10ms(2000);
//	display_clear();//  
}

uchar LCM_SETUP_REG(uchar *p)
{
	if((*(p+2)<0x100)&&*(p+2)>=0)
	{	W_C(*(p+2));
		W_D_HL(*(p+6),*(p+7));
	}
	else
		return 0;
}

⌨️ 快捷键说明

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