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

📄 r61505u.gz.c

📁 ATC93LC66显示屏240X320谝写编程原初始化代码
💻 C
字号:
/***********************
TM240320A7NFWVGWC2
Main driver: R61505U1
Display DOTS: 240X320 (8/16 bits)
Version: 1.0
Date:2007.06.4
***********************/

#include"stdio.h"
#include"reg51.h"
#include"stdlib.h"
#include"intrins.h"

sbit	       RST=   P1^0;
sbit	      CS_M=   P1^1;
sbit	        RS=   P1^2;
sbit	       WRB=   P1^3;
sbit           IM0=   P1^4;


sbit            A1=   P3^4;
sbit            A2=   P3^5;
sbit            A3=   P3^6;
//sbit            P14=  P1^4;
//sbit            P15=  P1^5;
//Data   is    P2

#define uint  unsigned int
#define uchar unsigned char
#define ulong unsigned long
 
       
unsigned char xdata *pic_data=0x0000;



delay(int n)
{
  int i,j;
  for(i=0;i<n;i++)
    {
       for(j=0;j<50;j++);
    }
}

void write_cmd(unsigned char Command_Byte)
{
   	RS=0;
	CS_M=0;
   	WRB=1;
   	P2=0x00;
   	//WRB=0;
   	//_nop_();
   	//WRB=1;
   	P0=Command_Byte;
	WRB=0;
        _nop_();
	_nop_();
	WRB=1;
	RS=1;
	CS_M=1;
}

void write_data16(unsigned char dataH, unsigned char dataL)
{
     RS=1;
     CS_M=0;
     WRB=1;
     P2=dataH;
    
	 //WRB=0;
     //_nop_();
     //WRB=1;
     P0=dataL;
     WRB=0;
     _nop_();
     //delay(0);
     WRB=1;
     RS=0;
     CS_M=1;
}




void pure(uchar para1,uchar para2)
{
	int i,j;
	//write_cmd(0x22);      //write data to GRAM
	for(i=0;i<320;i++)
	{
		for(j=0;j<240;j++)
		{
			write_data16(para1,para2);
		}
	}
}

void grads(uchar hi_byte,uchar low_byte,uchar add_hi,uchar add_low,int com,int seg)
{
	uchar i,j,n_row,p;

        p=com/8;
	for(n_row=0;n_row<8;n_row++)
	{
		for(i=p;i>0;i--)
	        for(j=seg;j>0;j--)
		   {
		       write_data16(hi_byte,low_byte);
		   }
      low_byte+=add_low;
      hi_byte+=add_hi;
	}
	
	for(i=com%8;i>0;i--)
	{
		for(j=seg;j>0;j--)
			write_data16(0xFF,0xFF);
	}
}




void    main_init()
{
        write_cmd(0x07);          
        write_data16(0x00,0x00);    
        delay(100);
        
        write_cmd(0x00);  
        write_cmd(0x00); 
        write_cmd(0x00); 
        write_cmd(0x00);
        delay(50);
      
        
        write_cmd(0xa4);  
        write_data16(0x00,0x01);
        delay(50);
        
                
        write_cmd(0x08);  
        write_data16(0x08,0x08);
        
 //**********Adjust the Gamma Curve***********//       
       write_cmd(0x30);      write_data16(0x07,0x07);          
        write_cmd(0x31);      write_data16(0x06,0x07);    
        write_cmd(0x32);      write_data16(0x02,0x00);     
        write_cmd(0x33);      write_data16(0x03,0x01);     
        write_cmd(0x34);      write_data16(0x01,0x01);     
        write_cmd(0x35);      write_data16(0x04,0x04);    
        write_cmd(0x36);      write_data16(0x0a,0x00);    
        write_cmd(0x37);      write_data16(0x07,0x07);    
        write_cmd(0x38);      write_data16(0x06,0x07);     
        write_cmd(0x39);      write_data16(0x02,0x00);     
        write_cmd(0x3A);      write_data16(0x03,0x01);         //
        write_cmd(0x3B);      write_data16(0x01,0x01);     //         //
        write_cmd(0x3C);      write_data16(0x04,0x04);      //
        write_cmd(0x3D);      write_data16(0x0a,0x00);     //        //
     //******** Gamma ***********//       
// *********************************************************//      
   //**********Power On sequence************//       
        write_cmd(0x07);  
        write_data16(0x00,0x01);
        
        write_cmd(0x17);  
        write_data16(0x00,0x01);
          
       
        write_cmd(0x10);  
        write_data16(0x16,0xb0);        
        
        write_cmd(0x11);  
        write_data16(0x00,0x07);
        
        write_cmd(0x12);  
        write_data16(0x01,0x1b); 
          
        write_cmd(0x13);  
        write_data16(0x0f,0x00);
        
        write_cmd(0x29);  
        write_data16(0x00,0x10);    //(0x00,0x01);
        
          write_cmd(0x2a);  
        write_data16(0x00,0x95);
    
        write_cmd(0x12);  
        write_data16(0x01,0x39);    //(0x01,0x3b); 
  
  //***********************************************************//          
        write_cmd(0x01);  
        write_data16(0x05,0x00);
        
        write_cmd(0x02);  
        write_data16(0x07,0x00);
        
        write_cmd(0x03);  
        write_data16(0x00,0x30);
        
        write_cmd(0x04);  
        write_data16(0x00,0x00);
        
        write_cmd(0x09);  
        write_data16(0x00,0x21);
        
        write_cmd(0x0a);  
        write_data16(0x00,0x08);
        
        
        write_cmd(0x50);          //Window address control instruction
        write_data16(0x00,0x00);
        write_cmd(0x51);  
        write_data16(0x00,0xef);
        write_cmd(0x52);  
        write_data16(0x00,0x00);
        write_cmd(0x53);  
        write_data16(0x01,0x3F);
 
        write_cmd(0x60);              //Driver Output Control  
        write_data16(0x27,0x00);
        write_cmd(0x61);              //Base image display control
        write_data16(0x00,0x00);
       
       
        write_cmd(0x90);              //Panel interface control
        write_data16(0x00,0x10);
        write_cmd(0x92);  
        write_data16(0x00,0x00);
        write_cmd(0x93);  
        write_data16(0x00,0x00);
                      
        write_cmd(0x07);  
        write_data16(0x00,0x21);
        delay(100);
        

        write_cmd(0x07);  
        write_data16(0x00,0x61);
        delay(2000);
      
        write_cmd(0x07);  
        write_data16(0x01,0x73); 
        
        write_cmd(0x20);            //RAM Address Set (Horizontal Address)
        write_data16(0x00,0x00);
       
        
        write_cmd(0x21);          //RAM Address Set (Vertical Address)
        write_data16(0x00,0x00);     
        
        write_cmd(0x22);  
}


void maindisppure()
{
      pure(0xff,0xff);  //white
	  delay(500);
      pure(0xf8,0x00);  //red
	delay(1000);
	 
     pure(0x07,0xe0);  //green
	delay(500);
     pure(0x00,0x1f);  //blue
	delay(500);
      pure(0x00,0x00);  //black
	  delay(500);
	  
     // pure(0xf8,0x00);  //red
	 // delay(1000);
}

void maindispgrads()
{
      grads(0xf8,0x00,0x01,0x24,320,240);      //red grads
	  delay(500);
      grads(0x07,0xe0,0x20,0x04,320,240);      //green grads
	  delay(500);
      grads(0x00,0x1F,0x21,0x20,320,240);      //blue grads
	  delay(500);
}
/*
void zf()
{
       uchar i,j,k,l,m;
       for(i=0;i<32;i++)
       {
        for(k=0;k<5;k++)
        {
         for(j=0;j<240;j++)
         {
            write_data16(0xFF,0xFF);
            
            
            
            write_data16(0x00,0x00);
            }
            }
          for(l=0;l<5;l++)
         { 
         for(m=0;m<240;m++)
         
           { 
            write_data16(0x00,0x00);
            
            
            write_data16(0xFF,0xFF);
            }
          }
      }
  }
  */
  
void disppic(unsigned char xdata *pic,int com, int seg)
{
        int i,j;
	int k=0;
            
 	for(i=com;i>0;i--)
	{
	    for(j=seg;j>0;j--)
		{
		    write_data16(pic[k],pic[k+1]);
			
		    k=k+2;
  		}
 	}
}


 void main()
{
        CS_M=0;
        RST=0;
        delay(1000);   //100
        RST=1;
        delay(1000);
        IM0=0;
        delay(500);
        
        main_init();
        
        while(1)
        {
          maindisppure();
          maindispgrads();
        
         A1=0;
          A2=0;
          A3=0;
          disppic(pic_data,80,240);
          A1=1;
          A2=0;
          A3=0;
          disppic(pic_data,80,240);
          A1=0;
          A2=1;
          A3=0;
          disppic(pic_data,80,240);
          A1=1;
          A2=1;
          A3=0;
          disppic(pic_data,80,240);
          
          delay(500);
          
          A1=0;
          A2=0;
          A3=1;
          disppic(pic_data,80,240);
          A1=1;
          A2=0;
          A3=1;
          disppic(pic_data,80,240);
          A1=0;
          A2=1;
          A3=1;
          disppic(pic_data,80,240);
          A1=1;
          A2=1;
          A3=1;
          disppic(pic_data,80,240);
          delay(500);
           
         
        }
}

⌨️ 快捷键说明

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