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

📄 test.c

📁 51点RGB接口显示屏
💻 C
字号:
/****************************************************************************
* 公司名称:Jade                             *
* 模块名称:test.C  	                    *
* 模块功能:RGB TEST                	    *
* 创建人员:Mark				    *
* 创建日期:			    *
							
****************************************************************************/


#include<c8051F020.h>


void Delay(unsigned int t);
void OSCILLATOR_Init (void);
void PORT_Init (void);
void writec(unsigned int cmd);
void writed(unsigned int dat);
void rgb_scan(unsigned int dat);
void hardware_reset(void);


#define uint8 unsigned int
#define uint16 unsigned int 
#define RGB_BUFH P2
#define RGB_BUFL P0


    sbit nRST	=P3^5;
    sbit SCL    =P3^0;
    sbit SDA   	=P3^1;
    sbit nCS	=P3^3;


	sbit DE	    =P1^0;
	sbit PK	    =P1^1;
	sbit HS     =P1^2;
	sbit VS     =P1^3;

//=============================================
void OSCILLATOR_Init (void)
{
   WDTCN = 0x0de;                       // Disable watchdog timer
   WDTCN = 0x0ad;
   OSCICN = 0x17;                     // Configure internal oscillator for
                                       // its maximum frequency (16Mhz)
}
//=============================================
void PORT_Init (void)
{
   P1MDIN = 0x0ff;                     // P1 is digital

   P1MDOUT = 0x0ff;                     // P1 is push-pull
                  

   P0MDOUT = 0x0ff;                     // P0 is push-pull

   P2MDOUT = 0x0ff;                     // P2 is push-pull

   P3MDOUT = 0x0FF;                     // P3 is  push-pull

 
              
   XBR2    = 0x0C0;                     // Enable crossbar and DISable
                                       // weak pull-ups
}

//=============================================
//Din is used as SDA. 



	void writec(uint8 cmd)
    {				 	
    	uint8 i;
		SCL = 1;
		SDA = 1;
    	nCS = 0;
		SCL = 0;
		SDA = 0;
		SCL = 1;
    	for (i = 0; i < 8; i++)
    	{
    		SCL = 0;
    		if (((cmd << i) & 0x80) == 0x80){SDA = 1;}
    		else{SDA = 0;}
    		SCL = 1;
    	}
    	nCS=1;
    }

    void writed(uint8 dat)
    {
    	uint8 i;
		SCL = 1;
		SDA = 1;
    	nCS = 0;

		SCL = 0;
		SDA = 1;
		SCL = 1;
    	for (i = 0; i < 8; i++)
    	{
    		SCL = 0;
    		if (((dat << i) & 0x80) == 0x80){SDA = 1;}
    		else{SDA = 0;}
    		SCL = 1;
    	}
    	nCS=1;
    }

	void rgb_scan(uint16 dat)
	{
		uint16 i,j;
		DE = 0;
		PK = 1;
		VS = 1;
		HS = 1;

		PK = 0;
		PK = 1;

		VS = 0;
		PK = 0;
		PK = 1;

		HS = 0;
		PK = 0;
		PK = 1;

		HS = 1;
		PK = 0;
		PK = 1;
		
		VS = 1;
		PK = 0;
		PK = 1;

		for (i = 0; i < 640; i++)
		{
			HS = 0;
			PK = 0;
			PK = 1;

			HS = 1;
			PK = 0;
			PK = 1;

			DE = 1;
			PK = 0;
			PK = 1;
			for (j = 0; j < 480; j++)
			{
				RGB_BUFH=dat>>8;
                                RGB_BUFL=dat;
                                PK = 0;
				PK = 1;
			}
			DE = 0;
			PK = 0;
			PK = 1;
		}	 
	}



void  Delay(unsigned int t)                        
{
	unsigned int n,m;
	for(n=0;n<t;n++)
		for(m=0;m<900;m++)
			;
}

void hardware_reset(void)
{
    P2 = 0XFF;
    P0 = 0XFF;
    P1 = 0XFF;
    P3 = 0XFF;
	nRST = 0;
	Delay(1);
	nRST = 1;
	Delay(30);
}

void lcd_initial(void)
{
       writec(0x01);//Software reset                                                                                                           
                                                                                                                                                      
       Delay(10);                                                                                                                                
       writec(0x11);//Sleep_Out:                                                                                                               
                                                                                                                                                      
       Delay(120);                                                                                                                               
       writec(0x36);
       writed(0x80);//Memory Data Access Control                                                                            
                                                                                                                                                      
       writec(0x3A);
       writed(0x50);//Set 65k                                                                                              
                                                                                                                                                                                                                                                                                                            
       writec(0xB2);
       writed(0x34);
       writed(0x03);//Set fame rate( In Partial / 8 color mode)                                   
                                                                                                                                                                                                                                                                                                            
       writec(0xC0);
       writed(0x01);//OP current optimize.                                                                                 
                                                                                                                                                                                                                                                                                                    
       writec(0xC2);
       writed(0x07);//Set OP Bias Current                                                                                  
                                                                                                                                                      
       writec(0xC5); 
       writed(0xBD);//Set VCOMH                                                                                            
                                                                                                                                                      
       writec(0xC6);
       writed(0xa4);//Set VCOMAC                                                                                           
                                                                                                                                                                                                                                                                                                          
                                                                                                                                                      
       writec(0xBB);//LTPS timing midification                                                                             
       writed(0x02);
       writed(0x28);
       writed(0x00);
       writed(0x14);
       writed(0x06);                           
       writed(0x12);
       writed(0x19);
       writed(0x12);
       writed(0x2c);
       writed(0x12);                               
                                                                                                                                                      
       writec(0xE6);
       writed(0x02);//Gamma Correction Characteristics Setting                                                                 
                                                                                                                                                      
       writec(0xE0);//Gamma setting ( negative frame)                                                                      
       writed(0x03);
       writed(0x09);
       writed(0x0A);
       writed(0x36);
       writed(0x1E);                       
       writed(0x00);
       writed(0x17);
       writed(0x05);
       writed(0x10);
       writed(0x11);
       writed(0x0D);            
       writed(0x0D);
       writed(0x00);
       writed(0x04);
       writed(0x14);
       writed(0x14);                               
                                                                                                                                                      
       writec(0xE1);//Gamma setting                                                                                        
       writed(0x00);
       writed(0x1E);
       writed(0x36);
       writed(0x0A);
       writed(0x09);
       writed(0x03);    
       writed(0x05);
       writed(0x17);
       writed(0x14);
       writed(0x14);
       writed(0x04);
       writed(0x00);            
       writed(0x0D);
       writed(0x0D);
       writed(0x11);
       writed(0x10);                                                  
                                                                                                                                                      
       writec(0xE2);//Gamma setting                                                                                            
       writed(0x03);
       writed(0x04);
       writed(0x07);
       writed(0x3A);
       writed(0x32);
       writed(0x00);    
       writed(0x16);
       writed(0x05);
       writed(0x0E);
       writed(0x11);
       writed(0x0C);
       writed(0x0C);            
       writed(0x01);
       writed(0x05);
       writed(0x13);
       writed(0x12);                                                  
                                                                                                                                                      
       writec(0xE3);//Gamma setting ( negative frame)                                                                          
       writed(0x00);
       writed(0x32);
       writed(0x3A);
       writed(0x07);
       writed(0x04);
       writed(0x03);    
       writed(0x05);
       writed(0x16);
       writed(0x12);
       writed(0x13);
       writed(0x05);
       writed(0x01);            
       writed(0x0c);
       writed(0x0c);
       writed(0x11);
       writed(0x0e);                                                  
                                                                                                                                                      
       writec(0xE4);//Gamma setting                                                                                        
       writed(0x03);
       writed(0x0D);
       writed(0x12);
       writed(0x35);
       writed(0x07);
       writed(0x00);    
       writed(0x0e);
       writed(0x0f);
       writed(0x12);
       writed(0x0f);
       writed(0x0c);
       writed(0x0b);            
       writed(0x01);
       writed(0x05);
       writed(0x18);                                                                     
                                                                                                                                                      
       writec(0xE5);//Gamma setting                                                                                            
       writed(0x00);
       writed(0x07);
       writed(0x35);
       writed(0x12);
       writed(0x0d);
       writed(0x03);    
       writed(0x0f);
       writed(0x0e);
       writed(0x1b);
       writed(0x18);
       writed(0x05);
       writed(0x01);            
       writed(0x0b);
       writed(0x0c);
       writed(0x0F);
       writed(0x12);
       
       writec(0x2A);//Column Address Set                                                                          
       writed(0x00);
       writed(0x00);
       writed(0x01);
       writed(0xDF);
       
       writec(0x2B);//Row Address Set                                                                            
       writed(0x00);
       writed(0x00);
       writed(0x02);
       writed(0x7F);                                                  
                                                                                                                                                                                                                                                                                                
       writec(0x29);//Display_on     

}


//Set RCM[1:0]=10

void main(void)
{	
        OSCILLATOR_Init ();
	PORT_Init ();
        hardware_reset();
	lcd_initial();
         while(1)
		{
		  repeat:
		  rgb_scan(0xf800);
		  goto repeat;	
		

		 }		
      	        
}

⌨️ 快捷键说明

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