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

📄 lgdp4524-2^2-hx8347(1).c

📁 驱动IC-LG4524的驱动程序。该程序能点亮TFT2。2的LCM
💻 C
字号:
/************************************************
dots		176*220
controller	LGDP4524
interface	8080/16bits   P1-L,P0-H
************************************************/
#include <absacc.h>
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
//#define p0XBYTE[0x0000]

sbit cs		=P3^5;
sbit res 	=P3^4;
sbit rs		=P2^3;
sbit wr		=P2^2;
sbit uc4    =P2^7;
sbit uc6    =P2^5;
sbit step= P2^0;

#define		HSIZE		176
#define		VSIZE		220
void dis_bar();
void pause();
void display_image(void);


unsigned char code image[]= {

0x12,
};


void delay(uint t)
{
	uchar t1;
	while(t--)
	for(t1=16;t1>0;t1--) //16
	{;}  //0.1ms
}



void write_data(uchar data_h,data_l)
{
 uc4=0;
 uc6=0;
 cs=0; 
 rs=1;
 P0=data_h;
 P1=data_l;
 wr=0;
 wr=1;
 cs=1;

 }


void write_command1(uchar datac)
{
 uc4=0;
 uc6=0;
 cs=0;
 rs=0;
 P1=datac;
 wr=0;
 wr=1;
 cs=1;

}
void write_command(uchar data_h,data_l)
{
 uc4=0;
 uc6=0; 
 cs=0;
 rs=0;
 //wr=0;
 P0=0x00;
 P1=data_h;
 wr=0;
 //P0=data_l;
 //delay(0);
 wr=1;
 cs=1;

 cs=0;
 rs=1;
 //wr=0;
 P0=0x00;
 P1=data_l;
 wr=0;
 //P0=data_l;
 //delay(0);
 wr=1;
 cs=1;    
 
 }

void initialization()
{
//int p,p1,p2;
res=0;
delay(350);
res=1;
delay(150);
//*********************Initial code******************************
write_command(0x00,0x07);write_data(0x00,0x00);
write_command(0x00,0x12);write_data(0x00,0x00);
write_command(0x00,0x13);write_data(0x00,0x00);
write_command(0x00,0x14);write_data(0x03,0x31);
delay(50);
write_command(0x00,0x12);write_data(0x00,0x09);
write_command(0x00,0x11);write_data(0x00,0x00);
write_command(0x00,0x10);write_data(0x01,0x04);
write_command(0x00,0x13);write_data(0x0C,0x4A);
write_command(0x00,0x10);write_data(0x01,0x44);
write_command(0x00,0x11);write_data(0x02,0x00);
write_command(0x00,0x12);write_data(0x00,0x19);
delay(50);
write_command(0x00,0x13);write_data(0x2C,0x2A);
write_command(0x00,0x10);write_data(0x01,0x40);
delay(50);
write_command(0x00,0x60);write_data(0x20,0x00);
write_command(0x00,0x60);write_data(0x00,0x00);
write_command(0x00,0x61);write_data(0x00,0x02);
delay(50);
write_command(0x00,0x01);write_data(0x01,0x1B);
write_command(0x00,0x02);write_data(0x07,0x00);
write_command(0x00,0x03);write_data(0x10,0x30);
write_command(0x00,0x09);write_data(0x00,0x00);
write_command(0x00,0x0B);write_data(0x5D,0x2D);
write_command(0x00,0x21);write_data(0x00,0x00);
write_command(0x00,0x30);write_data(0x01,0x01);
write_command(0x00,0x31);write_data(0x06,0x04);
write_command(0x00,0x32);write_data(0x00,0x07);
write_command(0x00,0x33);write_data(0x04,0x03);
write_command(0x00,0x34);write_data(0x00,0x07);
write_command(0x00,0x35);write_data(0x04,0x02);
write_command(0x00,0x36);write_data(0x06,0x06);
write_command(0x00,0x37);write_data(0x03,0x04);
write_command(0x00,0x38);write_data(0x07,0x0E);
write_command(0x00,0x39);write_data(0x07,0x0E);
write_command(0x00,0x3A);write_data(0x01,0x01);
write_command(0x00,0x3B);write_data(0x01,0x01);
write_command(0x00,0x3C);write_data(0x01,0x01);
write_command(0x00,0x3D);write_data(0x01,0x01);
write_command(0x00,0x3E);write_data(0x00,0x01);
write_command(0x00,0x3F);write_data(0x00,0x01);
write_command(0x00,0x42);write_data(0xDB,0x00);
write_command(0x00,0x44);write_data(0xAF,0x00);
write_command(0x00,0x45);write_data(0xDB,0x00);
delay(50);
write_command(0x00,0x71);write_data(0x00,0x40);
write_command(0x00,0x72);write_data(0x00,0x02);
delay(50);
write_command(0x00,0x10);write_data(0x32,0x50);
delay(50);
write_command(0x00,0x07);write_data(0x00,0x01);
delay(50);
write_command(0x00,0x07);write_data(0x00,0x21);
write_command(0x00,0x07);write_data(0x00,0x23);
delay(50);
write_command(0x00,0x07);write_data(0x00,0x37);
delay(50);
}


void display_rgb(uchar h_data,l_data)
{

	uint i,j;
	//write_command1(0x20);
	for(i=0;i<HSIZE;i++)
		for(j=0;j<VSIZE;j++)
			{
			write_data(h_data,l_data);
			}
	//write_command(0x2c,0x2c);
}


void main()
{
        res=0;
	delay(20);
	res=1;
	delay(200);
	initialization();
	while(1)
	{
        /*display_image();
        delay(200000);
		pause();*/
         dis_bar();
	  	delay(200000);
		pause();
        display_rgb(0xf8,0x00);
		delay(200000);
		pause();
		display_rgb(0x07,0xe0);
		delay(200000);
		pause();
		display_rgb(0x00,0x1f);
		delay(200000);
		pause();
		display_rgb(0x00,0x00);
		delay(200000);
		pause();
                display_rgb(0xff,0xff);
		delay(200000);
       pause();

	}
}

void dis_bar(void)
{
	int i,j,k;

    //write_command1(0x22);

     	          for(i=0;i<22;i++)     //display line
           	{
	                 for(j=0;j<VSIZE;j++)
        		{
		           write_data(0xF8,0x00);
             	        }
	        }

                  for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		        write_data(0x07,0xe0);
             	        }
	        }

		  for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0x00,0x1f);
             	        }
	        }

		  for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0xfc,0x08);

             	        }
	        }

                  for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0xff,0xe0);

             	        }
	        }

                        for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0xff,0xff);

             	        }
	        }

                        for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0xf8,0x1f);

             	        }
	        }

                        for(i=0;i<22;i++)     //display line
           	{
	         	for(j=0;j<VSIZE;j++)
        		{
		         write_data(0x00,0x00);

             	        }
	        }

}


void pause()
{
 	while(!step);
}







/*void display_image(void)
 {
  int i;
  int j;
  int k=0;
  write_command1(0x22);
  for(i=0;i<240;i++)
    {
      for(j=0;j<320;j++)
      {
     write_data(image[k++],image[k]);
      k++;
      }
     }
 // for(i=0;i<128*160;i++)
   // {
   //  write_data(image[i++],image[i]);
   // }

// }

}*/

⌨️ 快捷键说明

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