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

📄 main.c

📁 LGDP4525 51驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	if(x<=300) x=0;

	if(x>300)
	{
		x=(x-300)/14.58;  //(3800-300)/240=14.58
	}
	if(x>239) x=239;

	return x;
}
unsigned int ConvPosY(unsigned int y)
{

	if(y>=3800) y=0;

	if(y<3800)
	{
		y=320-(y-250)/10.78;  //(3700-250)/320=10.78
	}

	if(y<319) y=319;

	return y;
/*
	if(y<=250) y=0;

	if(y>250)
	{
		y=(y-250)/10.78;  //(3700-250)/320=10.78
	}

	if(y>319) y=319;

	return y;
*/
}
void WritePixel(unsigned char x,unsigned int y,unsigned int rgb)
{
	//x: x_start & x_end; y:y_start & y_end;
	unsigned char i;	

	BlockWrite(x,x+3,y,y+3);

	for(i=0;i<16;i++)
	{
		WriteChar(rgb);
	}
	//DispPos(ConvPosX(TP_X),ConvPosY(TP_Y));

}
void DrawLine(unsigned char Xstart,unsigned int Ystart,unsigned char Xend,unsigned int Yend,unsigned int rgb)
{
	unsigned int i;

	if (Xstart==Xend)
	{
		BlockWrite(Xstart,Xstart,Ystart,Yend);

		for(i=Ystart;i<Yend+1;i++)
		{
			WriteChar(rgb);
		}	
	}
	if (Ystart==Yend)
	{
		BlockWrite(Xstart,Xend,Ystart,Ystart);

		for(i=Xstart;i<Xend+1;i++)
		{
			WriteChar(rgb);
		}	
	}

}

void DrawGird(unsigned int rgb)
{
	unsigned int i;

	for(i=15;i<ROW-1;i=i+16)
	{
		DrawLine(0,i,COL-1,i,rgb);
	}
	for(i=15;i<COL-1;i=i+16)
	{
		DrawLine(i,0,i,ROW-1,rgb);
	}							 

}

void StartSPI(void) //SPI开始
{
	DCLK=0;
	TP_CS=1;
	DIN=1;
	DCLK=1;
	TP_CS=0;
}


void WriteCharToTP(unsigned char dat)  
{
	unsigned char i;

	DCLK=0;
	for(i=0;i<8;i++)
	{
		dat<<=1;
		DIN=CY;
		DCLK=0; _nop_();_nop_();_nop_();  
		DCLK=1; _nop_();_nop_();_nop_();
	}
}

unsigned int ReadCharFromTP(void)  
{
	unsigned char i;
	unsigned int dat=0;

	for(i=0;i<12;i++)
	{
		dat<<=1;
		DCLK=1; _nop_();_nop_();_nop_();  
		DCLK=0; _nop_();_nop_();_nop_();
		if(DOUT) dat++;
	}
	return dat;
}


void StartTPTest(void) //外部中断0 用来接受键盘发来的数据
{
   Delay(30); 
   StartSPI(); 
   // while(BUSY); 
   Delay(10);
   WriteCharToTP(0x90); //送控制字 10010000 即用差分方式读X坐标 
   // while(BUSY); 
   Delay(10);
   DCLK=1; _nop_();_nop_();_nop_();_nop_();
   DCLK=0; _nop_();_nop_();_nop_();_nop_();
   TP_Y=ReadCharFromTP();
   WriteCharToTP(0xD0); //送控制字 11010000 即用差分方式读Y坐标 
   DCLK=1; _nop_();_nop_();_nop_();_nop_();
   DCLK=0; _nop_();_nop_();_nop_();_nop_();
   TP_X=ReadCharFromTP();
   TP_CS=1;
}

void EnterSLP(void)
{
	//FOR LGDP4525
	
	WriteComm(0x00);WriteComm(0x07);	 
	WriteData(0x00);WriteData(0x36);
	Delay(20);									   

	WriteComm(0x00);WriteComm(0x07);	 
	WriteData(0x00);WriteData(0x26);
	Delay(20);

	WriteComm(0x00);WriteComm(0x07);	 
	WriteData(0x00);WriteData(0x00);
	Delay(20);

	WriteComm(0x00);WriteComm(0x10);	 
	WriteData(0x00);WriteData(0x04);

	WriteComm(0x00);WriteComm(0x12);	 
	WriteData(0x00);WriteData(0x00);

	WriteComm(0x00);WriteComm(0x13);	 
	WriteData(0x00);WriteData(0x00);
	Delay(10);

	WriteComm(0x00);WriteComm(0x10);	//SLP MODE 
	WriteData(0x00);WriteData(0x06);

	//WriteComm(0x00);WriteComm(0x10);//STD MODE 
	//WriteData(0x00);WriteData(0x0c);

}

void ExitSLP(void)
{
	//FOR LGDP4525

	WriteComm(0x00);WriteComm(0x10);	
	WriteData(0x00);WriteData(0x04); 

	WriteComm(0x00);WriteComm(0x10);
	WriteData(0x00);WriteData(0x00);

	Delay(15);

	WriteComm(0x00);WriteComm(0x12);			   
	WriteData(0x0000);

	WriteComm(0x00);WriteComm(0x13);
	WriteData(0x00);WriteData(0x00);

	WriteComm(0x00);WriteComm(0x14);			   
	WriteData(0x03);WriteData(0x31);

	Delay(20);

	WriteComm(0x00);WriteComm(0x11);
	WriteData(0x01);WriteData(0x00);

	WriteComm(0x00);WriteComm(0x12);
	WriteData(0x000a);


	WriteComm(0x00);WriteComm(0x13);
	WriteData(0x0c);WriteData(0x54);

  	WriteComm(0x00);WriteComm(0x10);
	WriteData(0x00);WriteData(0x44);

	Delay(20);

 	WriteComm(0x00);WriteComm(0x12);
	WriteData(0x00);WriteData(0x1a); 

	WriteComm(0x00);WriteComm(0x13);
	WriteData(0x2d);WriteData(0x55);

	WriteComm(0x00);WriteComm(0x10);
	WriteData(0x00);WriteData(0x40);

   	Delay(10);

	WriteComm(0x00);WriteComm(0x10);
	WriteData(0x44);WriteData(0x40);

	
   	Delay(10);

	WriteComm(0x00);WriteComm(0x07);
	WriteData(0x00);WriteData(0x25); 

	WriteComm(0x00);WriteComm(0x07);
	WriteData(0x00);WriteData(0x27);
	Delay(15);

	WriteComm(0x00);WriteComm(0x07);
	WriteData(0x00);WriteData(0x37);


}

void InitLCD(void)
{
	
	//INIT CODE(MAIN LCD),FOR LGDP4525,LPL2.2
	
	WriteComm(0x00);	
	WriteComm(0x07);
	WriteData(0x00);
	WriteData(0x00);    
	
	WriteComm(0x00);	
	WriteComm(0x12);
	WriteData(0x00);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x13);
	WriteData(0x00);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x14);
	WriteData(0x03);
	WriteData(0x31);
	Delay(10);
	
	WriteComm(0x00);	
	WriteComm(0x11);
	WriteData(0x00);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x12);
	WriteData(0x00);
	WriteData(0x09);		
	
	WriteComm(0x00);	
	WriteComm(0x13);
	WriteData(0x0b);
	WriteData(0x44);
	
	
	WriteComm(0x00);	
	WriteComm(0x10);
	WriteData(0x07);
	WriteData(0x44);		
	
	WriteComm(0x00);	
	WriteComm(0x11);
	WriteData(0x02);
	WriteData(0x01);
	
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x12);
	WriteData(0x00);
	WriteData(0x19);		
	
	WriteComm(0x00);	
	WriteComm(0x13);
	WriteData(0x2b);
	WriteData(0x44); 
	
	WriteComm(0x00);	
	WriteComm(0x10);
	WriteData(0x07);
	WriteData(0x40);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x01);
	WriteData(0x01);
	WriteData(0x1b);
	
	WriteComm(0x00);	
	WriteComm(0x02);
	WriteData(0x07);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x03);
	WriteData(0x10);
	WriteData(0x30);			
	
	WriteComm(0x00);	
	WriteComm(0x08);
	WriteData(0x06);
	WriteData(0x04);
		
	WriteComm(0x00);	
	WriteComm(0x09);
	WriteData(0x00);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x0b);
	WriteData(0x5d);
	WriteData(0x30);
	
	WriteComm(0x00);	
	WriteComm(0x0f);
	WriteData(0x00);
	WriteData(0x02);
	
	WriteComm(0x00);	
	WriteComm(0x21);
	WriteData(0x00);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x30);
	WriteData(0x04);
	WriteData(0x04);
	
	WriteComm(0x00);	
	WriteComm(0x31);
	WriteData(0x05);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x32);
	WriteData(0x02); 
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x33);
	WriteData(0x05);
	WriteData(0x02);
	
	WriteComm(0x00);	
	WriteComm(0x34);
	WriteData(0x00);
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x35);
	WriteData(0x06);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x36);
	WriteData(0x07);
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x37);
	WriteData(0x03);
	WriteData(0x05);
	
	WriteComm(0x00);	
	WriteComm(0x38);
	WriteData(0x04);
	WriteData(0x0e);
	
	WriteComm(0x00);	
	WriteComm(0x39);
	WriteData(0x04);
	WriteData(0x0e);
	
	WriteComm(0x00);	
	WriteComm(0x3a);
	WriteData(0x01);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x3b);
	WriteData(0x01);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x3c);
	WriteData(0x01);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x3d);
	WriteData(0x01);
	WriteData(0x01);
	
	WriteComm(0x00);	
	WriteComm(0x3e);
	WriteData(0x01);
	WriteData(0x01);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x3f);
	WriteData(0x01);
	WriteData(0x01);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x42);
	WriteData(0xdb);
	WriteData(0x00); 
	
	WriteComm(0x00);	
	WriteComm(0x44);
	WriteData(0xaf);
	WriteData(0x00);
	
	
	WriteComm(0x00);	
	WriteComm(0x45);
	WriteData(0xdb);

⌨️ 快捷键说明

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