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

📄 320240_r61505u.c.bak

📁 LCD双屏 主屏:ILI9325 副屏:SSD1303
💻 BAK
字号:
/*********************************************************/
/* SPECFICATION       : TFT2.0 DEMO PROGRAM              */
/* MASTER DOT MATRIXS : 320RGB*240                       */
/* MASTER DRIVER IC   : R61505U                          */
/* DESIGN             : CHENJS                           */
/* DATA TYPE          : 16 BITS (MATER&SLAVER)           */
/* DATA               : 2006-12-20                       */
/* REV                : 0.1                              */
/*********************************************************/

#include "reg52.h"
#include "intrins.h"
#include "absacc.h"

#define  DataL	   P0
#define  DataH     P2
#define  Contr     P3
#define  memic_id  P1

sbit key1=P1^7;
sbit key2=P1^6;
sbit key3=P1^5;

sbit Rs=P3^0;
sbit Wr=P3^1;
sbit Rd=P3^2;
sbit Reset=P3^4;
sbit Csm=P3^3;
sbit sc=P3^6;
sbit RGB_DB0=P3^5;

sbit ce1=P1^3;
sbit ce2=P1^4;

char code DX516[3] _at_ 0x3b;

void DisplayMainFrame();
void ColorMainBar2();

int rd_data2,rd_data1;



void Delay(int i)
{
 int j,k;
 for(k=0;k<i;k++)
 for(j=0;j<200;j++)
 {
 _nop_();
 _nop_();
 _nop_();
 }
}

void mainlcd_send_command(char compr2,char compr1)
{
	 Rs=0x00;
	 Rd=0x01;
//	 RGB_DB0=0x00;
	 DataL=compr1;
	 DataH=compr2;
//	 Csm=0x00;
	 Wr=0x00;
	 Wr=0x01;
//	 Csm=0x01;
}

void mainlcd_send_data(char Datapr2,char Datapr1)
{
	 Rs=0x01;
	 Rd=0x01;
	 DataL=Datapr1;
//	 RGB_DB0=0x00;	 
	 DataH=Datapr2;
	 Wr=0x00;
	 Wr=0x01;
//	 Csm=0x01;
}



void read_R61505U_data()
{
// Contr=0xff;
 sc=0x00;
 Wr=0x01;
 Rs=0x01;
// Csm=0x00;
// Rd=0x00;
// Csm=0x00;
 _nop_();
 _nop_();

 Rd=0x00;
 _nop_();
 _nop_();
 Rd=0x01;
 _nop_();
 _nop_();

 rd_data2=DataH;  //P2口
 rd_data1=DataL;  //P0口
// Csm=0x01;
 sc=0x01;
}

void read_id()
{
	mainlcd_send_command(0x00,0x00);   //0x00,0x00
	read_R61505U_data();
        if((rd_data2==0x93)&&(rd_data1==0x20))
//	if((rd_data2==0x15)&&(rd_data1==0x05))
	  DisplayMainFrame();
	else
	  ColorMainBar2();
}

void R61505U_address(char hsa,char hea,char vsah,char vsal,char veah,char veal,char ad8h,char ad9h,char ad9l)
{
	mainlcd_send_command(0x00,0x50);  mainlcd_send_data(0x00,hsa);
	mainlcd_send_command(0x00,0x51);  mainlcd_send_data(0x00,hea);
	mainlcd_send_command(0x00,0x52);  mainlcd_send_data(vsah,vsal);
	mainlcd_send_command(0x00,0x53);  mainlcd_send_data(veah,veal);
	mainlcd_send_command(0x00,0x20);  mainlcd_send_data(0x00,ad8h);
	mainlcd_send_command(0x00,0x21);  mainlcd_send_data(ad9h,ad9l);
	mainlcd_send_command(0x00,0x22);
}

void ScrMainFullColor(unsigned char color1,unsigned char color2)
{
  int i,j;
//  Csm=0x00;
  R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x00);
  for(i=0;i<320;i++)
   {
   	 for(j=0;j<240;j++)
   	  {
   	  	 mainlcd_send_data(color1,color2);
   	  }
   }
}


void DisplayMainFrame()
{
   int i,j;
//   Csm=0x00;
//   R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x3f);
   mainlcd_send_command(0x00,0x22);
   for(i=0;i<240;i++)
    {
    	 mainlcd_send_data(0xFF,0xFF);
    }
   for(i=0;i<318;i++)
    {
    	 mainlcd_send_data(0xFF,0xFF);
    	 for(j=0;j<238;j++)
    	   {
    	   	 mainlcd_send_data(0x00,0x00);
    	   }
    	 mainlcd_send_data(0xFF,0xFF);
    }
   for(i=0;i<240;i++)
    {
    	 mainlcd_send_data(0xFF,0xFF);
    }
}

void ColorMainBar1()
{
  int i,j,k;
//  Csm=0x00;
  R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x00);
  for(i=0;i<320;i++)
     {
     	 for(j=0;j<80;j++)
     	    {
     	    	 mainlcd_send_data(0xF8,0x00);
     	    }
     	 for(k=0;k<80;k++)
     	    {
     	    	 mainlcd_send_data(0x07,0xE0);
     	    }
     	 for(k=0;k<80;k++)
     	    {
     	    	 mainlcd_send_data(0x00,0x1F);
     	    }
     }
}

void ColorMainBar2()
{
  int i,j,k,l;
  R61505U_address(0x00,0xef,0x00,0x00,0x01,0x3f,0x00,0x00,0x00);
  mainlcd_send_command(0x00,0x22);
  for(i=0;i<107;i++)
  {
  	for(l=0;l<240;l++)
  	{
  		mainlcd_send_data(0xF8,0x00);
  	}
  }
  for(j=0;j<106;j++)
  {
  	for(l=0;l<240;l++)
  	{
  		mainlcd_send_data(0x07,0xE0);
  	}
	}
	for(k=0;k<107;k++)
	{
		for(l=0;l<240;l++)
		{
			mainlcd_send_data(0x00,0x1F);
		}
	}
}

void MemMainColor(int k, int xline, int ycol)
{
  int i,j;
  Csm=0x00;
  for(i=0;i<ycol;i++)
  {
    for(j=0;j<xline;j++)
     {
	   mainlcd_send_data(XBYTE[k++],XBYTE[k++]);
	 }
  }
}

void key_function1()
{
  unsigned char key_flag1=0;
//  if(!key1) key_flag1=1;

	do
	{
	  if(!key1)  key_flag1=1;
	  Delay(10);
	}
    while(key_flag1==0);
	Delay(30);
	key_flag1=0;
} 


void men_photo1()
{
	  	memic_id=0xe8;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xe9;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xee;
	  	MemMainColor(0x0000,240,48);	  
}

void men_photo2()
{
	  	memic_id=0xea;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xeb;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xee;
	  	MemMainColor(0x5A00,240,48);
}

void men_photo3()
{
	  	memic_id=0xec;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xed;
	  	MemMainColor(0x0000,240,136);
	  	memic_id=0xef;
	  	MemMainColor(0x0000,240,48);
}

void main_R61505U_initial()
{
	 //************* Start Initial Sequence **********//

	mainlcd_send_command(0x00,0x00); mainlcd_send_data(0x00,0x00);
	mainlcd_send_command(0x00,0x00); mainlcd_send_data(0x00,0x00);
	mainlcd_send_command(0x00,0x00); mainlcd_send_data(0x00,0x00);
	mainlcd_send_command(0x00,0x00); mainlcd_send_data(0x00,0x00);

	mainlcd_send_command(0x00,0xb0); mainlcd_send_data(0x00,0x00);		//freq= Hz
	
	mainlcd_send_command(0x00,0x00); mainlcd_send_data(0x00,0x00); Delay(50);        
	mainlcd_send_command(0x00,0x07); mainlcd_send_data(0x00,0x00); Delay(50);                
	mainlcd_send_command(0x00,0x12); mainlcd_send_data(0x00,0x00); Delay(50);
	mainlcd_send_command(0x00,0x70); mainlcd_send_data(0x27,0x00);	
	mainlcd_send_command(0x00,0x08); mainlcd_send_data(0x04,0x05);	


	/*************************** gamma setting ************************************/
	mainlcd_send_command(0x00,0x30); mainlcd_send_data(0x00,0x00);		
	mainlcd_send_command(0x00,0x31); mainlcd_send_data(0x01,0x05);	
	mainlcd_send_command(0x00,0x32); mainlcd_send_data(0x00,0x04);		

	mainlcd_send_command(0x00,0x33); mainlcd_send_data(0x00,0x07);		//PRP1[2:0],PRP0[2:0]	

	mainlcd_send_command(0x00,0x34); mainlcd_send_data(0x01,0x05);	
	mainlcd_send_command(0x00,0x35); mainlcd_send_data(0x00,0x01);	
	mainlcd_send_command(0x00,0x36); mainlcd_send_data(0x07,0x07);	
	mainlcd_send_command(0x00,0x37); mainlcd_send_data(0x07,0x00);		//PRN1[2:0],PRN0[2:0]
	
	mainlcd_send_command(0x00,0x38); mainlcd_send_data(0x03,0x00);	
	mainlcd_send_command(0x00,0x39); mainlcd_send_data(0x00,0x00);		
	
        /***************************************************************************/
        
	mainlcd_send_command(0x00,0x15); mainlcd_send_data(0x00,0x01);				
        mainlcd_send_command(0x00,0x10); mainlcd_send_data(0x66,0xb0);		

					
	mainlcd_send_command(0x00,0x11); mainlcd_send_data(0x01,0x47);	 Delay(30);   //VC=;
	
	mainlcd_send_command(0x00,0x12); mainlcd_send_data(0x01,0x0a);	 Delay(30);        		
	
	mainlcd_send_command(0x00,0x13); mainlcd_send_data(0x9E,0x23);	 Delay(30);
	
        	mainlcd_send_command(0x00,0x01); mainlcd_send_data(0x01,0x00);	
	mainlcd_send_command(0x00,0x02); mainlcd_send_data(0x07,0x00);	
	mainlcd_send_command(0x00,0x03); mainlcd_send_data(0x40,0x30);

        	
	
	#ifdef _REV_
		mainlcd_send_command(0x00,0x71); mainlcd_send_data(0x00,0x01);	
	#else
		mainlcd_send_command(0x00,0x71); mainlcd_send_data(0x00,0x00);	
	#endif

	
	mainlcd_send_command(0x00,0x90); mainlcd_send_data(0x01,0x08);		
	mainlcd_send_command(0x00,0x91); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x92); mainlcd_send_data(0x00,0x00);		
	mainlcd_send_command(0x00,0x09); mainlcd_send_data(0x00,0x00);	

	mainlcd_send_command(0x00,0x80); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x81); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x82); mainlcd_send_data(0x01,0x3f);	
	mainlcd_send_command(0x00,0x83); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x84); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x85); mainlcd_send_data(0x01,0x3f);	
	
	mainlcd_send_command(0x00,0x50); mainlcd_send_data(0x00,0x00);	
	mainlcd_send_command(0x00,0x51); mainlcd_send_data(0x00,0xef);	
	mainlcd_send_command(0x00,0x52); mainlcd_send_data(0x00,0x00);	
    	mainlcd_send_command(0x00,0x53); mainlcd_send_data(0x01,0x3f);	
	//display on
	mainlcd_send_command(0x00,0x10); mainlcd_send_data(0x76,0xb0);	 Delay(20);//
	        	        
	mainlcd_send_command(0x00,0x12); mainlcd_send_data(0x11,0x18);	 Delay(20);//
	
	mainlcd_send_command(0x00,0x07); mainlcd_send_data(0x32,0x33);		


}

main()
{

	DataH=0xff;
	DataL=0xff;
//	Contr=0xff;
	memic_id=0xff;
	sc=0x01;
        Csm=0x00;

 Reset=0x00;
 Delay(25);
 Reset=0x01;
 Delay(25);

 main_R61505U_initial();
 
 read_id();
 key_function1();

 while(1)
 {

 ScrMainFullColor(0xF8,0x00);
 key_function1();

 ScrMainFullColor(0x07,0xE0);
 key_function1();

 ScrMainFullColor(0x00,0x1F);
 key_function1();

 ScrMainFullColor(0x00,0x00);
 key_function1();

 ScrMainFullColor(0xFF,0xFF);
 key_function1();

 DisplayMainFrame();
 key_function1();

 ColorMainBar1();
 key_function1();

 men_photo1();
 key_function1();

 men_photo2();
 key_function1();

 men_photo3();
 key_function1();
				 
 }

}

⌨️ 快捷键说明

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