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

📄 main.c

📁 LGDP4512 51驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
			 
			DBL=*p++;
			WR0=0;
			WR0=1;
		}
	}
	
	RS=1;
	CS0=1;
} 

unsigned char ConvPosX(unsigned int x)
{
	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<=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 LGDP4524
	
	WriteComm(0x0007);	 
	WriteData(0x0036);
	Delay(20);

	WriteComm(0x0007);	 
	WriteData(0x0026);
	Delay(20);

	WriteComm(0x0007);	 
	WriteData(0x0000);
	Delay(20);

	WriteComm(0x0010);	 
	WriteData(0x0004);

	WriteComm(0x0012);	 
	WriteData(0x0000);

	WriteComm(0x0013);	 
	WriteData(0x0000);
	Delay(10);

	WriteComm(0x0010);	//SLP MODE 
	WriteData(0x0006);

	//WriteComm(0x0010);//STD MODE 
	//WriteData(0x0006);

}

void ExitSLP(void)
{
	//FOR LGDP4524

	WriteComm(0x0010);	
	WriteData(0x0004); 

	WriteComm(0x0010);
	WriteData(0x0000);

	Delay(15);

	WriteComm(0x0012);			   
	WriteData(0x0000);

	WriteComm(0x0013);
	WriteData(0x0000);

	WriteComm(0x0014);			   
	WriteData(0x0331);

	Delay(20);

	WriteComm(0x0011);
	WriteData(0x0100);

	WriteComm(0x0012);
	WriteData(0x000a);


	WriteComm(0x0013);
	WriteData(0x0c54);

  	WriteComm(0x0010);
	WriteData(0x0044);

	Delay(20);

 	WriteComm(0x0012);
	WriteData(0x001a); 

	WriteComm(0x0013);
	WriteData(0x2d55);

	WriteComm(0x0010);
	WriteData(0x0040);

   	Delay(10);

	WriteComm(0x0010);
	WriteData(0x4440);

	
   	Delay(10);

	WriteComm(0x0007);
	WriteData(0x0025); 

	WriteComm(0x0007);
	WriteData(0x0027);
	Delay(15);

	WriteComm(0x0007);
	WriteData(0x0037);


}

void InitLCD(void)
{

	//INIT CODE(MAIN LCD),FOR LGDP4512,LPL1.3

	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(0x10);
	WriteData(0x00);
	WriteData(0x04);

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

	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x12);
	WriteData(0x00);
	WriteData(0x08);		
	
	WriteComm(0x00);	
	WriteComm(0x13);
	WriteData(0x14);
	WriteData(0x6f);
	
	
	WriteComm(0x00);	
	WriteComm(0x10);
	WriteData(0x00);
	WriteData(0x30);		
	
	WriteComm(0x00);	
	WriteComm(0x11);
	WriteData(0x02);
	WriteData(0x22);

	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x12);
	WriteData(0x00);
	WriteData(0x1c);		
	
	WriteComm(0x00);	
	WriteComm(0x13);
	WriteData(0x2b);
	WriteData(0x33); 
	
	WriteComm(0x00);	
	WriteComm(0x10);
	WriteData(0x05);
	WriteData(0x30);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x01);
	WriteData(0x01);
	WriteData(0x13);
	
	WriteComm(0x00);	
	WriteComm(0x02);
	WriteData(0x07);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x03);
	WriteData(0x10);
	WriteData(0x30);			
	
	WriteComm(0x00);	
	WriteComm(0x08);
	WriteData(0x05);
	WriteData(0x06);
			
	WriteComm(0x00);	
	WriteComm(0x09);
	WriteData(0x00);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x0b);
	WriteData(0x00);
	WriteData(0x02);
	
	WriteComm(0x00);	
	WriteComm(0x30);
	WriteData(0x07);
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x31);
	WriteData(0x00);
	WriteData(0x03);
	
	WriteComm(0x00);	
	WriteComm(0x32);
	WriteData(0x03);
	WriteData(0x03);
	
	WriteComm(0x00);	
	WriteComm(0x33);
	WriteData(0x07);
	WriteData(0x05);
	
	WriteComm(0x00);	
	WriteComm(0x34);
	WriteData(0x07); 
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x35);
	WriteData(0x00);
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x36);
	WriteData(0x03);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x37);
	WriteData(0x03);
	WriteData(0x07);
	
	WriteComm(0x00);	
	WriteComm(0x38);
	WriteData(0x06);
	WriteData(0x04);
	
	WriteComm(0x00);	
	WriteComm(0x39);
	WriteData(0x0e);
	WriteData(0x05);
	
	WriteComm(0x00);	
	WriteComm(0x44);
	WriteData(0x7f);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x45);
	WriteData(0x9f);
	WriteData(0x00);
	
	WriteComm(0x00);	
	WriteComm(0x71);
	WriteData(0x00);
	WriteData(0x41);
	
	WriteComm(0x00);	
	WriteComm(0x10);
	WriteData(0x45);
	WriteData(0x30);
	
	WriteComm(0x00);	
	WriteComm(0x07);
	WriteData(0x00);
	WriteData(0x05);
	
	WriteComm(0x00);	
	WriteComm(0x07);
	WriteData(0x00);
	WriteData(0x25);
	
	WriteComm(0x00);	
	WriteComm(0x07);
	WriteData(0x00);
	WriteData(0x27);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x07);
	WriteData(0x00);
	WriteData(0x37);
	Delay(50);
	
	WriteComm(0x00);	
	WriteComm(0x71);
	WriteData(0x00);
	WriteData(0x40); 
	

⌨️ 快捷键说明

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