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

📄 lcd.h

📁 c8051f340 串口 程序This program demonstrates how to configure the C8051F340 to use routines in STDIO.h
💻 H
字号:
//lcd.h
//-----------------------------------------------------------------------------
#define DisplayCol1  160  //
#define DisplaySeg1  128   //

#define DisplayCol2  320  //
#define DisplaySeg2  240   //
//----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

sbit  LCD_RST    =  P3^0;                     // 
sbit  LCD_RS     =  P3^1;                     // 
sbit  LCD_WR     =  P3^2;                     // 
sbit  LCD_RD     =  P3^3;                     // 
sbit  LCD_CS     =  P3^4;

unsigned int page1,page2,seg1,seg2;

//-------------------------------------------------

void delay_us(unsigned char Times)
{
    unsigned char i;
	for (i=0; i<Times; i++)
	{
		_nop_();_nop_();_nop_();_nop_();
        _nop_();_nop_();_nop_();_nop_();
		_nop_();_nop_();_nop_();_nop_();
		_nop_();
	}
}
/***********************************************************************************
* 函数名称:Delay_us;
*
* 函数功能描述:延时n毫秒子函数;
*              
* 输入参数:延时时间(单位毫秒);
*
* 返回数据:none;
*
* 注意:    none;
************************************************************************************/

void delay_ms(unsigned char Times)
{
    unsigned char i;
	for (i=0; i<Times; i++)	
	{
	   delay_us(250);
	   delay_us(250);
	   delay_us(250);
	   delay_us(250);
	}
}


//------------------------------------------------
void LCD_Index(unsigned int index)
{
    P0=0x00;
    LCD_CS=0;	
    LCD_RS=0;
    P0=index>>8;
    LCD_WR=0;
    delay_us(5);           //PEW
    LCD_WR=1;
	delay_us(1);           //tDHW
	P0=index;
    delay_us(1);           //PDW-tDHW
	LCD_WR=0;
	delay_us(5);           //PEW
	LCD_WR=1;
	delay_us(1);
   // LCD_CS=1;
} 

void LCD_DataWrite(unsigned int set_db)
{
    LCD_CS =0;
	LCD_RS =1;
    P0=set_db>>8;
	LCD_WR =0;
	delay_us(1);
	LCD_WR =1;
	delay_us(1);
    P0=set_db;
	delay_us(1);
    LCD_WR =0;
	delay_us(1);
    LCD_WR =1;
	delay_us(1);
	//LCD_CS =1;
} 
void LCD_RGBWrite(unsigned char rgb_r,unsigned char rgb_g,unsigned rgb_b)
{
    LCD_CS =0;
	LCD_RS =1;
    P0=rgb_r;
	LCD_WR =0;
	_nop_();
	//delay_us(1);
	LCD_WR =1;
    _nop_();
	//delay_us(1);
    P0=rgb_g;
	_nop_();
	//delay_us(1);
    LCD_WR =0;
	_nop_();
	//delay_us(1);
    LCD_WR =1;
	_nop_();
	//delay_us(1);
	P0=rgb_b;
	_nop_();
	//delay_us(1);
    LCD_WR =0;
	_nop_();
    //delay_us(1);
    LCD_WR =1;
	_nop_();
	//delay_us(1);
	//LCD_CS =1;
} 
 
void LCD_CmdWrite(unsigned  int index,unsigned int set_db)
{

   LCD_Index(index);
   LCD_DataWrite(set_db);
}								 

void LCD_Reset(void)
{

	LCD_RST=0;
	delay_ms(20);
	LCD_RST=1;
	delay_ms(20);
}

void LCD_Initial12(void)
{
   LCD_WR=0;
   LCD_CS=0;
   LCD_RS=0;
   P0=0x00;
   LCD_WR=1;
   delay_ms(40);
   LCD_WR=0;
   delay_ms(2);
   LCD_WR=1;
   delay_ms(2);
   LCD_WR=0;
   delay_ms(2);
   LCD_WR=1;
   delay_ms(2);
   LCD_WR=0;
   delay_ms(2);
   LCD_WR=1;
   delay_ms(2);
   LCD_CS=1;
   LCD_RS=1;
   LCD_RD=1;

}

void LCD_Initial7A(void)       //initial code 1
{
   

	LCD_CmdWrite(0x0000,0x0001); 
  	LCD_CmdWrite(0x0001,0x0114); 
	LCD_CmdWrite(0x0002,0x0201); 
	LCD_CmdWrite(0x0003,0xA030); 
	LCD_CmdWrite(0x0007,0x800C); 
	LCD_CmdWrite(0x0008,0x0202); 
	LCD_CmdWrite(0x000D,0x0100); 
	LCD_CmdWrite(0x0012,0x0301); 
	LCD_CmdWrite(0x0013,0x0303); 
	LCD_CmdWrite(0x0014,0x0000); 
	LCD_CmdWrite(0x0015,0x2000); 
	LCD_CmdWrite(0x001C,0x0102); 
	LCD_CmdWrite(0x0103,0x0005); 
	LCD_CmdWrite(0x0104,0x0000); 
	LCD_CmdWrite(0x0105,0x0105); 
	LCD_CmdWrite(0x0108,0x0002); 
	LCD_CmdWrite(0x0300,0x3200); 
	LCD_CmdWrite(0x0301,0x3043); 
	LCD_CmdWrite(0x0302,0x1133); 
	LCD_CmdWrite(0x0303,0x3200); 
	LCD_CmdWrite(0x0304,0x3043); 
	LCD_CmdWrite(0x0305,0x1133); 
	LCD_CmdWrite(0x0306,0x3200); 
	LCD_CmdWrite(0x0307,0x3043); 
	LCD_CmdWrite(0x0308,0x1133); 
	LCD_CmdWrite(0x0309,0x0001); 
	LCD_CmdWrite(0x0402,0x0000); 
	LCD_CmdWrite(0x0403,0x009F); 

}

void LCD_Initial8A(void) 
{
   	LCD_CmdWrite(0x0406,0x0036); 
	LCD_CmdWrite(0x0407,0x00B5); 
	LCD_CmdWrite(0x0408,0x0000); 
	LCD_CmdWrite(0x0409,0x009F); 
	LCD_CmdWrite(0x0200,0x0036); 
	LCD_CmdWrite(0x0201,0x0000);


}
void LCD_Initial7B(void)       //initial code 1
{
   

	LCD_CmdWrite(0x0000,0x0001); 
  	LCD_CmdWrite(0x0001,0x0127); 
	LCD_CmdWrite(0x0002,0x0201); 
	LCD_CmdWrite(0x0003,0xA030); 
	LCD_CmdWrite(0x0007,0x800C); 	//65536
	LCD_CmdWrite(0x0008,0x0302); 
	LCD_CmdWrite(0x000D,0x0005); 
	LCD_CmdWrite(0x0012,0x0302); 
	LCD_CmdWrite(0x0013,0x0303); 
	LCD_CmdWrite(0x0014,0x0001); 
	LCD_CmdWrite(0x0015,0x3000); 
	LCD_CmdWrite(0x001C,0x0002); 
	LCD_CmdWrite(0x0103,0x0005); 
	LCD_CmdWrite(0x0104,0x0000); 
	LCD_CmdWrite(0x0105,0x0315); 
	LCD_CmdWrite(0x0108,0x0001); 
	LCD_CmdWrite(0x0300,0x3333); 
	LCD_CmdWrite(0x0301,0x0043); 
	LCD_CmdWrite(0x0302,0x1113); 
	LCD_CmdWrite(0x0303,0x3333); 
	LCD_CmdWrite(0x0304,0x0043); 
	LCD_CmdWrite(0x0305,0x1113); 
	LCD_CmdWrite(0x0306,0x3333); 
	LCD_CmdWrite(0x0307,0x0043); 
	LCD_CmdWrite(0x0308,0x1113); 
	LCD_CmdWrite(0x0309,0x0001); 
	LCD_CmdWrite(0x0402,0x0000); 
	LCD_CmdWrite(0x0403,0x013F); 

}

void LCD_Initial8B(void) 
{
   	LCD_CmdWrite(0x0406,0x0000); 
	LCD_CmdWrite(0x0407,0x00EF); 
	LCD_CmdWrite(0x0408,0x0000); 
	LCD_CmdWrite(0x0409,0x013F); 
	LCD_CmdWrite(0x0200,0x0000); 
	LCD_CmdWrite(0x0201,0x0000);


}

void LCD_Initial9(void) 
{
   	LCD_CmdWrite(0x0101,0x0001); 
	LCD_CmdWrite(0x0100,0xFDFE);
	delay_us(50); 
	LCD_CmdWrite(0x0102,0x85CD); 
	LCD_CmdWrite(0x0107,0x3331);
	delay_ms(100); 
}

void LCD_Initial10(void) 
{
   	LCD_CmdWrite(0x0100,0x0001); 
	delay_ms(50); 
	LCD_CmdWrite(0x0100,0x0000); 
	LCD_CmdWrite(0x0000,0x0000);
	delay_ms(100); 
}
//----------------------------------------------------------------------


void Checker1(unsigned char rgb_r,unsigned char rgb_g,unsigned rgb_b)
{
	 LCD_Index(0x0202);
	 for(page1=0;page1<DisplayCol1;page1++)		   // change Line
	{
		for(seg1=0;seg1<DisplaySeg1;seg1++)		   // write pixel
		{
		  
		    LCD_RGBWrite(rgb_r,rgb_g,rgb_b);
		   
		}
	}
}

//----------------------------------------------------------------------


void Checker2(unsigned char rgb_r,unsigned char rgb_g,unsigned rgb_b)
{
	 LCD_Index(0x0202);
	 for(page2=0;page2<DisplayCol2;page2++)		   // change Line
	{
		for(seg2=0;seg2<DisplaySeg2;seg2++)		   // write pixel
		{
		  
		    LCD_RGBWrite(rgb_r,rgb_g,rgb_b);
		   
		}
	}
}
//--------------------------------------------------------------------------

void Main_LCD_Grey_Scale(void)
{
    unsigned char i,r,g,b,w;
    unsigned int n,m; 
    LCD_Index(0x0202);
		 for(i=0;i<80;i++)
		{  w=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<15;n++)
      		   LCD_RGBWrite(w,w,w);
			   w=w-0x10;
		   }
		}
	   	for(i=0;i<80;i++)
		{  r=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<15;n++)
      		   LCD_RGBWrite(r,0x00,0x00);
			   r-=0x10;
		   }
		}
		for(i=0;i<80;i++)
		{  g=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<15;n++)
      		   LCD_RGBWrite(0x00,g,0x00);
			   g-=0x10;
		   }
		}
		for(i=0;i<80;i++)
		{  b=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<15;n++)
      		   LCD_RGBWrite(0x00,0x00,b);
			   b-=0x10;
		   }
		}


}
//----------------------------------------------------------------------
void Sub_LCD_Grey_Scale(void)
{
    unsigned char i,r,g,b,w;
    unsigned int n,m; 
    LCD_Index(0x0202);
		 for(i=0;i<40;i++)
		{  w=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<8;n++)
      		   LCD_RGBWrite(w,w,w);
			   w=w-0x10;
		   }
		}
	   	for(i=0;i<40;i++)
		{  r=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<8;n++)
      		   LCD_RGBWrite(r,0x00,0x00);
			   r-=0x10;
		   }
		}
		for(i=0;i<40;i++)
		{  g=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<8;n++)
      		   LCD_RGBWrite(0x00,g,0x00);
			   g-=0x10;
		   }
		}
		for(i=0;i<40;i++)
		{  b=0xff;
		   for(m=0;m<16;m++)
		   {
			   for(n=0;n<8;n++)
      		   LCD_RGBWrite(0x00,0x00,b);
			   b-=0x10;
		   }
		}


}
//----------------------------------------------------------------------
void Main_LCD_Show_Black(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Checker2(0x00,0x00,0x00);
   LCD_Initial9();
}
void Main_LCD_Show_White(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Checker2(0xff,0xff,0xff);
   LCD_Initial9();
}
void Main_LCD_Show_Red(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Checker2(0xff,0x00,0x00);
   LCD_Initial9();
}
void Main_LCD_Show_Green(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Checker2(0x00,0xff,0x00);
   LCD_Initial9();
}
void Main_LCD_Show_Blue(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Checker2(0x00,0x00,0xff);
   LCD_Initial9();
}
void Main_LCD_Grey_Scale_Test(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7B();
   LCD_Initial8B();
   Main_LCD_Grey_Scale();
   LCD_Initial9();
}
void Sub_LCD_Show_Black(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Checker1(0x00,0x00,0x00);
   LCD_Initial9();
}
void Sub_LCD_Show_White(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Checker1(0xff,0xff,0xff);
   LCD_Initial9();
}
void Sub_LCD_Show_Red(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Checker1(0xff,0x00,0x00);
   LCD_Initial9();
}
void Sub_LCD_Show_Green(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Checker1(0x00,0xff,0x00);
   LCD_Initial9();
}
void Sub_LCD_Show_Blue(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Checker1(0x00,0x00,0xff);
   LCD_Initial9();
}
void Sub_LCD_Grey_Scale_Test(void)
{
   LCD_Reset();
   LCD_Initial12(); 
   LCD_Initial7A();
   LCD_Initial8A();
   Sub_LCD_Grey_Scale();
   LCD_Initial9();
}

void LCD_Off(void)
{
   	LCD_Initial10(); 
}

//-----------------------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------------------

⌨️ 快捷键说明

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