📄 main.c
字号:
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 + -