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

📄 t4317a.c

📁 这是LCD常用驱动IC ST7637的初始化程序
💻 C
📖 第 1 页 / 共 5 页
字号:

	LCD_BlockWrite_IC(Win_Startx,Win_Endx,Win_Starty,Win_Endy);

	for(i=0;i<Lcd_Length*2/8;i++)
	for(j=0;j<Lcd_Width;j++)
	{
		WriteData(BLACK>>8);
		WriteData(BLACK);
	}

	for(i=0;i<Lcd_Length/8;i++)
	{
		for(j=0;j<Lcd_Width*3/8;j++)
		{
			WriteData(BLACK>>8);
			WriteData(BLACK);
		}
		for(j=0;j<Lcd_Width*2/8;j++)
		{
			WriteData(GRAY>>8);
			WriteData(GRAY);
		}
		for(j=0;j<Lcd_Width*3/8;j++)
		{
			WriteData(BLACK>>8);
			WriteData(BLACK);
		}	
	}
	

	for(i=0;i<Lcd_Length/8;i++)
	for(j=0;j<Lcd_Width;j++)
	{
		WriteData(BLACK>>8);
		WriteData(BLACK);
	}


	for(i=0;i<Lcd_Length/8;i++)
	for(j=0;j<Lcd_Width;j++)
	{
		WriteData(WHITE>>8);
		WriteData(WHITE);
	}

	for(i=0;i<Lcd_Length/8;i++)
	{
		for(j=0;j<Lcd_Width*3/8;j++)
		{
			WriteData(WHITE>>8);
			WriteData(WHITE);
		}
		for(j=0;j<Lcd_Width*2/8;j++)
		{
			WriteData(GRAY>>8);
			WriteData(GRAY);
		}
		for(j=0;j<Lcd_Width*3/8;j++)
		{
			WriteData(WHITE>>8);
			WriteData(WHITE);
		}
	}
	
	for(i=0;i<Lcd_Length*2/8;i++)
	for(j=0;j<Lcd_Width;j++)
	{
		WriteData(WHITE>>8);
		WriteData(WHITE);
	}

	delay(t);
}

void Display_GrayScale_32(uint t)
{	
	uint i,j,k,temp;
	
	LCD_BlockWrite_IC(Win_Startx,Win_Endx,Win_Starty,Win_Endy);
	for(i=0;i<32;i++)
	for(j=0;j<Lcd_Length/32;j++)
	{
		for(k=0;k<Lcd_Width/4;k++)
		{
		    WriteData((0xf800-0x0800*i)>>8);
		    WriteData(0xf800-0x0800*i);
		}

		for(k=0;k<Lcd_Width/4;k++)
		{
			WriteData((0x20*2*i)>>8);
		    WriteData(0x20*2*i);
		}
		
		for(k=0;k<Lcd_Width/4;k++)
		{
		    WriteData((0x001f-i)>>8);
		    WriteData(0x001f-i);
		}

		for(k=0;k<Lcd_Width/4;k++)
		{
		    WriteData(((0x0800+0x20*2+1)*i)>>8);
		    WriteData((0x0800+0x20*2+1)*i);
		}
	}

	delay(t);
}

void Display_Pic(uint t)
{
	uint i,j,temp;

	LCD_BlockWrite_IC(Win_Startx,Win_Endx,Win_Starty,Win_Endy);

	for(i=0;i<128;i++)
	{
		for(j=0;j<128;j++)
		{
	   		WriteData(Pic[128*2*i+2*j]);
			WriteData(Pic[128*2*i+2*j+1]);
		}
	}
	delay(t);
}

void Display_GrayScale(uint t)
{
 	uint i,j,k,L;

  	LCD_BlockWrite_IC(Win_Startx,Win_Endx,Win_Starty,Win_Endy);	    
		
 	for(i=0;i<128/2;i++)

  	for(j=0;j<8;j++)
   	for(k=0;k<128/8;k++)
   	{
   		L=4*j;
    	WriteData(((0x0800+0x20*2+1)*L)>>8);
		WriteData((0x0800+0x20*2+1)*L);
   	}
   	
 	for(i=0;i<128/2;i++)
  	for(j=8;j>0;j--)
   	for(k=0;k<128/8;k++)
   	{
    	L=4*(j-1);
    	WriteData(((0x0800+0x20*2+1)*L)>>8);
		WriteData((0x0800+0x20*2+1)*L);
   	}
   	delay(t);
} 

void Display_2(uint t)
{
	uchar i,j;

	LCD_BlockWrite_IC(Win_Startx,Win_Endx,Win_Starty,Win_Endy);

	for(i=0;i<128/16;i++)
	for(j=0;j<128/16;j++)
	{
		DspAscII8X16(16*i,16*j,BLACK,"2");
	}
	delay(t);
}

void Display_DspAscII(uint t)
{
	DspAscII8X16(0,0,RED,"T4317A00.c");
	DspAscII8X16(0,16,RED,"4317A test");
	DspAscII8X16(0,32,RED,"ST7637");
	DspAscII8X16(0,48,RED,"128*128 ");
	DspAscII8X16(0,64,RED,"80-08bit");
	DspAscII8X16(0,80,RED,"HAPPY");
	DspAscII8X16(0,96,RED,"2007.08.21");
	
	delay(t);	
}

void Fine_Tune_Vop(void )
{
	uchar i;
	Display_GrayScale(1000);
	WriteCmd(0x29);// Display On
	while(1)
	{
		if(ADD==0)
		WriteCmd(0xC1);
	
		if(SUB==0)
		WriteCmd(0xC2);
		delay(50);
	}
}

void MTP_Writing(void)
{
	WriteCmd(0x00D9); // Keep Frame Rate
	WriteData(0x0040); //
	WriteCmd(0x00E4); //MTP,OTP selection
	WriteData(0x0058); // Select MTP
	WriteCmd(0x00E5); // Set MTP writing setup
	WriteData(0x000C);
	WriteCmd(0x00E0); // Read/write mode setting
	WriteData(0x0020); // Set Write mode
	delay(100); // Delay 100ms
	WriteCmd(0x00E2); // Write active
	delay(100); // Delay 100ms
	WriteCmd(0x00E1); // Cancel control
	Contrast_Test(1000);
	delay(50); // delay 50ms
}

void int_0(void) interrupt 0    //EXT0 (P3.2)
{
	MTP_Writing();
}


main()
{	
	uchar contrast=0x3f;
	IE=0x81; //ext0

⌨️ 快捷键说明

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