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

📄 tl1763_16bit.c

📁 该C程序详细介绍了基于TL1763控制器的LCD初始化及显示源代码.
💻 C
字号:
// LCD controller: TL1763// 240*320// 16bit	 (8bit/16bit 是通过 硬件 来选择的!)// IF: 8080#define LCD_SIZE_X		240#define LCD_SIZE_Y		320// function prototypevoid LCD_Reset(void) small;void LCD_Write(U8 type, U16 value)  small;void LCD_SendData(U16 value) small;void Reg_Write(U16 reg,U16 value) small;void LCD_SendCommand(U16 Command) small;void LCD_SetRamAddr(U16 xStart, U16 xEnd, U16 yStart, U16 yEnd) small;void LCD_SetRowColumn(U16 kColumn,U16 kRow) small;void init_LCM_Controller(void);/**************************************************************************************/void LCD_Reset(void) small{	LCD_RST = 1;	delay100us(200);	LCD_RST = 0;	delay100us(200);	// 100us 足够!	LCD_RST = 1;}/**************************************************************************************/void LCD_Write(U8 type, U16 value)  small{	U8 data_H, data_L;//	// 8bit//	data_L 	= (U8)value;//	data_H 	= (U8)(value>>8);//	LCD_RS 	= type;    		// 0: command    1: data//	// LCD_WR  = L;//	// P1 	   = data_H;//	// LCD_WR  = H;//	LCD_WR  = L;//	P1 	= data_L;//	LCD_WR 	= H;//  //P6800//	LCD_RS 	= type;    	// 0: command    1: data//	LCD_WR  = L;//	LCD_RD	= H;//	P2 	= value;//	LCD_RD 	= L;  		// falling edge of the E	// 16bit:	data_L 	= (U8)value;	data_H 	= (U8)(value>>8);	LCD_RS 	= type;    	// 0: command    1: data	LCD_WR  = L;	P2 	= data_H;	P1 	= data_L;	LCD_WR 	= H;}/***************************************************************************/void LCD_SendData(U16 value) small   // color data{   //16bit:        LCD_Write(TYPE_LCD_DATA,value);//     // 8bit://	U8 data_H,data_L;////	data_H = (U8)(value >>8);//	data_L = (U8)value;////	LCD_Write(TYPE_LCD_DATA,data_H);//	LCD_Write(TYPE_LCD_DATA,data_L);}/***************************************************************************/void Reg_Write(U16 reg,U16 value) small{	LCD_Write(TYPE_LCD_COMMAND,reg);	LCD_Write(TYPE_LCD_DATA,value);}/***************************************************************************/void LCD_SendCommand(U16 Command) small{	LCD_Write(TYPE_LCD_COMMAND,Command);}/***************************************************************************/void LCD_SetRamAddr(U16 xStart, U16 xEnd, U16 yStart, U16 yEnd) small{	// for TL1763  某些命令类似于3912 ...	U16 HorPos;	HorPos    = (U16)(xStart | (xEnd<<8));	Reg_Write(0x46, HorPos);  	// xStart + xEnd	Reg_Write(0x48, yStart); 	// yStart	Reg_Write(0x47, yEnd);		// yEnd	Reg_Write(0x20, xStart);   			// x start command	Reg_Write(0x21, yStart);   			// y start command	LCD_Write(TYPE_LCD_COMMAND,0x22);		// 0x22}/***************************************************************************/void LCD_SetRowColumn(U16 kColumn,U16 kRow) small{	// for TL1763	if(kRow < LCD_SIZE_Y)		{		Reg_Write(0x20, kColumn);     		// Ram Set command x (8bit)		Reg_Write(0x21, kRow);			// Ram Set command y (9bit)		LCD_Write(TYPE_LCD_COMMAND,0x22);		}}/***************************************************************************/void init_LCM_Controller(void)				// ok{	LCD_Reset();	LCD_CS = H;	LCD_RS = L;	LCD_RD = H;	LCD_WR = H;	LCD_CS = L;/*	// 竖屏显示: 	Reg_Write(0x00,0x0001);	delay100us(100);   	//delay 10ms 	Reg_Write(0x11,0x0111); 	Reg_Write(0x12,0x100b); 	Reg_Write(0x13,0x1430); 	Reg_Write(0x10,0x5250);	// 0101 0010 0101 0000	delay100us(500);    	//delay 50ms 	Reg_Write(0x12,0x101b);	// 0000 0001 0000 0001 	Reg_Write(0x13,0x3430);	// 0011 0100 0011 0000	delay100us(200);   	//delay 200ms 	Reg_Write(0x01,0x0100); 	Reg_Write(0x02,0x0700); 	Reg_Write(0x03,0x1030); 	Reg_Write(0x04,0x0140); 	Reg_Write(0x07,0x0001); 	Reg_Write(0x08,0x0503); 	Reg_Write(0x0b,0x0000); 	Reg_Write(0x0c,0x0001); 	Reg_Write(0x0e,0x0014); 	Reg_Write(0xa1,0x1300); 	Reg_Write(0xa4,0xa000); 	Reg_Write(0xa2,0x0005);        Reg_Write(0x30,0x0202);        Reg_Write(0x31,0x0000);        Reg_Write(0x32,0x0404);        Reg_Write(0x33,0x0203);        Reg_Write(0x34,0x0207);        Reg_Write(0x35,0x0202);        Reg_Write(0x36,0x0707);        Reg_Write(0x37,0x0002);        Reg_Write(0x38,0x0f00);        Reg_Write(0x39,0x0002);        Reg_Write(0x40,0x0000);        Reg_Write(0x41,0x0000);        Reg_Write(0x42,0x013f);        Reg_Write(0x43,0x0000);        Reg_Write(0x44,0x0000);        Reg_Write(0x45,0x0000);        Reg_Write(0x46,0xef00);        Reg_Write(0x47,0x013f);        Reg_Write(0x48,0x0000);	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0021);		// Gate Scanning Start	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0023);		// Source Output Start	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0037);		// Dispaly ON	delay100us(400);    		// delay 40ms        Reg_Write(0x20,0x0000);        Reg_Write(0x21,0x0000);	LCD_Write(TYPE_LCD_COMMAND,0x22);// Display Data Write...*/	// 横屏显示 	Reg_Write(0x00,0x0001);	delay100us(100);   	//delay 10ms 	Reg_Write(0x11,0x0112); 	Reg_Write(0x12,0x100d); 	Reg_Write(0x13,0x1434); 	Reg_Write(0x10,0x1530);	// 0101 0010 0101 0000	delay100us(500);    	//delay 50ms 	Reg_Write(0x12,0x101d);	// 0000 0001 0000 0001 	Reg_Write(0x13,0x3030);	// 0011 0100 0011 0000	delay100us(200);   	//delay 200ms 	Reg_Write(0x01,0x0000); 	Reg_Write(0x02,0x0700); 	Reg_Write(0x03,0x1038); //0x1030); 	Reg_Write(0x04,0x0141); 	Reg_Write(0x07,0x0005); 	Reg_Write(0x08,0x0202); 	Reg_Write(0x0b,0x0000); 	Reg_Write(0x0c,0x0001); 	Reg_Write(0x0e,0x0015); 	Reg_Write(0xa1,0x1000); 	Reg_Write(0xa4,0x7300); 	Reg_Write(0xa2,0x000a);        Reg_Write(0x30,0x0202);        Reg_Write(0x31,0x0000);        Reg_Write(0x32,0x0404);        Reg_Write(0x33,0x0203);        Reg_Write(0x34,0x0207);        Reg_Write(0x35,0x0202);        Reg_Write(0x36,0x0707);        Reg_Write(0x37,0x0002);        Reg_Write(0x38,0x0f00);        Reg_Write(0x39,0x0002);        Reg_Write(0x40,0x0000);        Reg_Write(0x41,0x0000);        Reg_Write(0x42,0x0140);        Reg_Write(0x43,0x0000);        Reg_Write(0x44,0x0000);        Reg_Write(0x45,0x0000);        Reg_Write(0x46,0xef00);        Reg_Write(0x47,0x013f);        Reg_Write(0x48,0x0000);	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0021);		// Gate Scanning Start	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0023);		// Source Output Start	delay100us(400);    		// delay 40ms        Reg_Write(0x07,0x0037);		// Dispaly ON	delay100us(400);    		// delay 40ms        Reg_Write(0x20,0x0000);        Reg_Write(0x21,0x0000);	LCD_Write(TYPE_LCD_COMMAND,0x22);// Display Data Write...}

⌨️ 快捷键说明

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