|
#include "REG52.H"
#include "lcd_driver.h"
void main(void)
{
TFT_Init();
while(1)
{
TFT_ClearScreen(BLUE);
TFT_ClearScreen(RED);
TFT_ClearScreen(GREEN);
TFT_ClearScreen(WHITE);
TFT_ClearScreen(BLACK);
TFT_ClearScreen(YELLOW);
TFT_ClearScreen(CYAN);
}
}
#include "lcd_driver.h"
void Delay(unsigned int dly)
{
unsigned int i,j;
for(i=0;i<dly;i++)
for(j=0;j<255;j++);
}
void Delayms(unsigned int c) //误差 0us c*10ms
{
unsigned char a, b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void WriteComm(unsigned int cmd)
{
uchar bit8;
TFT_RS = 0;
TFT_CS = 0;
for(bit8=0;bit8<8;bit8++)
{
TFT_SCL = 0;
if((cmd&0x80) == 0x80)
TFT_SDI = 1;
else
TFT_SDI = 0;
TFT_SCL = 1;
cmd = (cmd<<1);
}
TFT_CS = 1;
}
void WriteData(unsigned int dat)
{
uchar i,datH,datL,bit8;
datH = dat >> 8;
datL = dat & 0xFF;
TFT_RS = 1;
TFT_CS = 0;
for(bit8=0;bit8<8;bit8++)
{
TFT_SCL = 0;
if((datH&0x80) == 0x80)
TFT_SDI = 1;
else
TFT_SDI = 0;
TFT_SCL = 1;
datH = (datH<<1);
}
for(bit8=0;bit8<8;bit8++)
{
TFT_SCL = 0;
if((datL&0x80) == 0x80)
TFT_SDI = 1;
else
TFT_SDI = 0;
TFT_SCL = 1;
datL = (datL<<1);
}
TFT_CS = 1;
}
void TFT_Init(void)
{
//CS0=0;
TFT_RST=1;
Delay(100);
TFT_RST=0;
Delay(400);
TFT_RST=1;
Delay(400);
//ILI9163C,FOR LB1.41
//WriteStart();
WriteComm(0xd0);WriteData(0x0003); // set SS and NL bit
WriteComm(0xeb);WriteData(0x0b00); // set 1 line inversion
WriteComm(0xec);WriteData(0x000f); // set GRAM write direction and
WriteComm(0xc7);WriteData(0x030f); // set GRAM write direction and
WriteComm(0x01);WriteData(0x011C); // set SS and NL bit
WriteComm(0x02);WriteData(0x0100); // set 1 line inversion
WriteComm(0x03);WriteData(0x1030); //
WriteComm(0x07);WriteData(0x0000);
WriteComm(0x08);WriteData(0x0808); //
WriteComm(0x0F);WriteData(0x0601); //
WriteComm(0x10);WriteData(0x0A00); //
WriteComm(0x11);WriteData(0x1B41); //
Delay(50);
WriteComm(0x12);WriteData(0x200E); //
WriteComm(0x13);WriteData(0x0020); // Set GVDD 52 30
WriteComm(0x14);WriteData(0x4A5F); // Set VCOMH/VCOML voltage 5f60
WriteComm(0x30);WriteData(0x0000);
WriteComm(0x31);WriteData(0x00DB);
WriteComm(0x32);WriteData(0x0000);
WriteComm(0x33);WriteData(0x0000);
WriteComm(0x34);WriteData(0x00DB);
WriteComm(0x35);WriteData(0x0000);
WriteComm(0x36);WriteData(0x00AF);
WriteComm(0x37);WriteData(0x0000);
WriteComm(0x38);WriteData(0x00DB);
WriteComm(0x39);WriteData(0x0000);
WriteComm(0x50);WriteData(0x0000);
WriteComm(0x51);WriteData(0x0803);
WriteComm(0x52);WriteData(0x0C07);
WriteComm(0x53);WriteData(0x0501);
WriteComm(0x54);WriteData(0x070C);
WriteComm(0x55);WriteData(0x0308);
WriteComm(0x56);WriteData(0x0000);
WriteComm(0x57);WriteData(0x0105);
WriteComm(0x58);WriteData(0x1100);
WriteComm(0x59);WriteData(0x0011);
WriteComm(0x20);WriteData(0x0000); // Set GRAM Address
WriteComm(0x21);WriteData(0x0000); // Set GRAM Address
WriteComm(0x07);WriteData(0x1017);
WriteComm(0x22);
}
void TFT_SetWindow(unsigned int xStart,unsigned int yStart,unsigned int xEnd,unsigned int yEnd)
{
//ILI9163C
WriteComm(0x36);WriteData(xEnd); //HEA7-0
WriteComm(0x37);WriteData(xStart); // HSA7-0
WriteComm(0x38);WriteData(yEnd); // VEA7-0
WriteComm(0x39);WriteData(yStart); // VSA7-0
WriteComm(0x20);WriteData(xStart);
WriteComm(0x21);WriteData(yStart);
WriteComm(0x22);
}
void TFT_ClearScreen(unsigned int color)
{
unsigned int i,j;
TFT_SetWindow(0,0,TFT_XMAX,TFT_YMAX);
for(i=0;i<TFT_XMAX+1;i++)
{
for(j=0;j<TFT_YMAX+1;j++)
{
WriteData(color);
}
}
}
剩余查看附件
|
-
-
刷屏.zip
45.44 KB, 下载次数: 19, 下载积分: 黑币 -5
|