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

📄 t28hjs03f.c

📁 触摸屏实例程序
💻 C
字号:
//T28HJS03F

//240x320 dots
 
//Main LCD IC 61503U  data bus=16bit
//Programed by xiehuangsheng

/*===========================================================================*/

#include <reg51.h>
#include <absacc.h>

#define  HIGH 1
#define  LOW  0

#define  COM_8255	XBYTE[0x8003]
#define  PA_8255 	XBYTE[0x8000]
#define  PB_8255 	XBYTE[0x8001]
#define  PC_8255 	XBYTE[0x8002]

/*===========================================================================
				BASIC TYPE REDEFINITIONS FOR C51
===========================================================================*/
typedef unsigned char           U8;
typedef signed   char           I8;

typedef unsigned int          U16;
typedef signed   int          I16;

typedef unsigned long           U32;
typedef          long           I32;





/*===========================================================================*/
//define MAIN LCD MODEL and contrast
/*===========================================================================*/


	
U16 MainLcdWidth=176;
U16 MainLcdHeight=220;


/*===========================================================================*/
//I/O Configuration



sbit  P17_CTR                   = P1^7;		//FLASH CONTROL PIN  
sbit  P16_CTR 		            = P1^6;		//DSP RS PIN
sbit  P11_CTR        		    = P1^1;		//BYPASS PIN
sbit  KeyIn                     = P1^4;		//STEP KEY PIN    
sbit  BL_CTR                    = P3^5;		//BACK LIGHT CONTROL PIN

sbit  REC_CTR                   = P3^0;		//REC CONTROL PIN
sbit  SPK_CTR                   = P3^1;		//SPK CONTROL PIN
sbit  MOT_CTR                   = P1^5;		//MOT CONTROL PIN
sbit  P10_CTR                   = P1^0;		//P1.0 CONTROL PIN
sbit  P12_CTR                   = P1^2;		//P1.2 CONTROL PIN
sbit  P13_CTR                   = P1^3;		//P1.3 CONTROL PIN

sbit  P32_CTR                   = P3^2;		//P3.2 CONTROL PIN
sbit  P33_CTR                   = P3^3;		//P3.3 CONTROL PIN
sbit  P34_CTR                   = P3^4;		//P3.4 CONTROL PIN


sbit	key_inc				=P1^1;		//contrast+
sbit	key_dec				=P1^6;		//contrast-
sbit	VOTP_G_D			=P1^7;		//Voltage of OTP Input
sbit	key_burn			=P3^5;

/*===========================================================================*/
//Miscellaneous function

void keypress(void);                   
void Delay_us(U8 value);
void Delay_ms(U16 value);
void LCD_HardwareReset(void);
/*===========================================================================*/
//About LCD Configuration function

void InitLCD_MAIN_T28HJS03F_16bit(void);
void MAIN_LCD_ALL_WIN_16bit(void);

void MainLcdWrite_Comm(U8 cmd1);
void MainLcdWrite_Data(U8 dat2, dat1);


/*===========================================================================*/
//About LCD_Display function
void MainLcdDrawColor_16bit( U8 c2 , U8 c1 );
void MainLcdDisplayPic_16bit(   U8 MAIN_PIC[] );

/*===========================================================================*/
     




/*===========================================================================*/
// FOR T28HJS03F 

void InitLCD_MAIN_T28HJS03F_16bit(void)              /*Initialize  LCD Driver IC: */
{
    
          
	
	MainLcdWrite_Comm(0x00); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x0a4); 	
	MainLcdWrite_Data(0x00,0x01); 	
 	Delay_ms(20);	

	
	MainLcdWrite_Comm(0x07); 	
	MainLcdWrite_Data(0x00,0x01); 	
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x17); 	
	MainLcdWrite_Data(0x00,0x01); 	
	Delay_ms(200);

	
	MainLcdWrite_Comm(0x10); 	
	MainLcdWrite_Data(0x12,0x0b0); 
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x11); 	
	MainLcdWrite_Data(0x00,0x07); 	

	
	MainLcdWrite_Comm(0x12); 	
	MainLcdWrite_Data(0x01,0x3e); 	
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x13); 	
	MainLcdWrite_Data(0x13,0x00); 	
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x01); 	
	MainLcdWrite_Data(0x01,0x00); 	
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x02); 	
	MainLcdWrite_Data(0x07,0x00); 	

	
	MainLcdWrite_Comm(0x03); 	
	MainLcdWrite_Data(0x12,0x30); 	

	
	MainLcdWrite_Comm(0x08); 	
	MainLcdWrite_Data(0x02,0x07); 	

	
	MainLcdWrite_Comm(0x29); 	
	MainLcdWrite_Data(0x00,0x06); 	

	
	MainLcdWrite_Comm(0x2a); 	
	MainLcdWrite_Data(0x00,0x00); 	


	
	MainLcdWrite_Comm(0x30); 	
	MainLcdWrite_Data(0x07,0x07); 	

	
	MainLcdWrite_Comm(0x31); 	
	MainLcdWrite_Data(0x04,0x07); 	

	
	MainLcdWrite_Comm(0x32); 	
	MainLcdWrite_Data(0x02,0x03); 	

	
	MainLcdWrite_Comm(0x33); 	
	MainLcdWrite_Data(0x03,0x03); 	

	
	MainLcdWrite_Comm(0x34); 	
	MainLcdWrite_Data(0x03,0x03); 	

	
	MainLcdWrite_Comm(0x35); 	
	MainLcdWrite_Data(0x02,0x02); 	

	
	MainLcdWrite_Comm(0x36); 	
	MainLcdWrite_Data(0x00,0x1f); 	

	
	MainLcdWrite_Comm(0x37); 	
	MainLcdWrite_Data(0x07,0x07); 	

	
	MainLcdWrite_Comm(0x38); 	
	MainLcdWrite_Data(0x04,0x07); 	

	
	MainLcdWrite_Comm(0x39); 	
	MainLcdWrite_Data(0x02,0x03); 	

	
	MainLcdWrite_Comm(0x3a); 	
	MainLcdWrite_Data(0x03,0x03); 	

	
	MainLcdWrite_Comm(0x3b); 	
	MainLcdWrite_Data(0x03,0x03); 	

	
	MainLcdWrite_Comm(0x3c); 	
	MainLcdWrite_Data(0x02,0x02); 	

	
	MainLcdWrite_Comm(0x3d); 	
	MainLcdWrite_Data(0x00,0x1f); 	
	Delay_ms(20);

	
	MainLcdWrite_Comm(0x50); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x51); 	
	MainLcdWrite_Data(0x00,0x0ef); 	

	
	MainLcdWrite_Comm(0x52); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x53); 	
	MainLcdWrite_Data(0x01,0x3f); 	

	
	MainLcdWrite_Comm(0x20); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x21); 	
	MainLcdWrite_Data(0x00,0x00); 	



	
	MainLcdWrite_Comm(0x60); 	
	MainLcdWrite_Data(0x27,0x00); 	

	
	MainLcdWrite_Comm(0x61); 	
	MainLcdWrite_Data(0x00,0x01); 	

	
	MainLcdWrite_Comm(0x6a); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x90); 	
	MainLcdWrite_Data(0x00,0x10); 	

	
	MainLcdWrite_Comm(0x92); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x93); 	
	MainLcdWrite_Data(0x00,0x00); 	
	Delay_ms(50);

	
	MainLcdWrite_Comm(0x07); 	
	MainLcdWrite_Data(0x00,0x21); 	
	Delay_ms(10);

	
	MainLcdWrite_Comm(0x07); 	
	MainLcdWrite_Data(0x00,0x61); 	
	Delay_ms(10);


	
	MainLcdWrite_Comm(0x07); 	
	MainLcdWrite_Data(0x01,0x73); 	
	Delay_ms(50);

	MainLcdWrite_Comm(0x20); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x21); 	
	MainLcdWrite_Data(0x00,0x00); 

	MainLcdWrite_Comm(0x22); 	

 	

}


void MAIN_LCD_ALL_WIN_16bit(void)              
{
    
	
	MainLcdWrite_Comm(0x50); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x51); 	
	MainLcdWrite_Data(0x00,0x0ef); 	

	
	MainLcdWrite_Comm(0x52); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x53); 	
	MainLcdWrite_Data(0x01,0x3f); 	

	
	MainLcdWrite_Comm(0x20); 	
	MainLcdWrite_Data(0x00,0x00); 	

	
	MainLcdWrite_Comm(0x21); 	
	MainLcdWrite_Data(0x00,0x00); 	


	MainLcdWrite_Comm(0x22); 	
	
	
}




/*===========================================================================*/
void MainLcdWrite_Comm(U8 cmd1)
{
//*******first byte*****************************************************************//

		PA_8255=0x00;
		PC_8255=cmd1;
		

		PB_8255=0x1E;	//RS=0
		PB_8255=0x16;	//cs=0
		PB_8255=0x14;	//wr=0
		
		PB_8255=0x14;	//delay	

		PB_8255=0x16;	//wr=1
		PB_8255=0x1E;	//cs=1
		PB_8255=0x1F;	//RS=1



}	

/*===========================================================================*/
void MainLcdWrite_Data(U8 dat2, dat1)
{
//*******2 byte*****************************************************************//

		
		PA_8255=dat2;
		PC_8255=dat1;
		

		
		PB_8255=0x1F;	//RS=1
		PB_8255=0x17;	//cs=0
		PB_8255=0x15;	//wr=0
		
		PB_8255=0x15;	//delay	

		PB_8255=0x17;	//wr=1
		PB_8255=0x1F;	//cs=1
		PB_8255=0x1F;	//RS=1



}	

/*===========================================================================*/


/*===========================================================================*/
void MainLcdDrawColor_16bit( U8 c2 , U8 c1 )
{
	U16 i;

	
	MAIN_LCD_ALL_WIN_16bit(); 	
			
	for(i=0;i<240*160;i++)
	{
		MainLcdWrite_Data( c2,c1 );
            
	}
	
	for(i=0;i<240*160;i++)
	{
		MainLcdWrite_Data( c2,c1 );
            
	}	
}

/*===========================================================================*/
void MainLcdDisplayPic_16bit(   U8 MAIN_PIC[] )
{
	U16 i;
	  U8 *address;
	
	address=&MAIN_PIC[0];	

	MAIN_LCD_ALL_WIN_16bit(); 

	
			
	for(i=0;i<240*160;i++)
	{
		U8 c2,c1;
		c2=*address;
		address++;
		c1=*address;
		MainLcdWrite_Data( c2,c1 );
		address++;
        
	}	
}

/*===========================================================================*/


/*===========================================================================*/
void Delay_us(U8 value)
{   

    	while(--value)       /*delay 1us*/
		;
}   
     
/*===========================================================================*/
void Delay_ms(U16 value)
{   
    	U16 i;
		U16 j;
    	for(i=0;i<value;i++)
		{
    		for(j=0;j<250;j++)       /*delay 1ms*/    /*change (125)12mhz to (250)24mhz*/
			;
		}
			
}   
 

    
/*===========================================================================*/
void LCD_HardwareReset(void)
{   
        COM_8255=0x80;			/*8255 ALL OUTPUT*/ 
		PB_8255=0xFF;			/*8255 PORT B=FF */ 
		PB_8255 &= 0xEF;			/*8255 PORT B=EF  RESET=L */ 
        Delay_ms(30);    
		PB_8255 |= 0xFF;			/*8255 PORT B=FF  RESET=H */ 
        Delay_ms(10);
}   
    
/*===========================================================================*/
/*===========================================================================*/
void keypress(void)
{
		while(KeyIn==1)
		{;}
		Delay_ms(5);
}    

//pic data for 240x320//
  U8 code MAIN_PIC[] =
{
};
/*===========================================================================*/

/*===========================================================================*/
void main(void)
{
	while(1)	
	{
		/***********************************
		I/O SETUP
		************************************/	
		REC_CTR = 0;
		SPK_CTR = 0;
		MOT_CTR = 0;	//P15
		P17_CTR = 1;	//OTP V off
		BL_CTR = 1;

		P13_CTR = 1;
		P10_CTR = 1;
		P12_CTR = 1;

		/***********************************
		Reset LCD 
		************************************/	
		LCD_HardwareReset();			
		/***********************************
		Init LCD
		************************************/		
	
		InitLCD_MAIN_T28HJS03F_16bit();   
		
		
		//keypress();	
		
		/***********************************
		 LCD Panel Test
		************************************/		
		MainLcdDrawColor_16bit(0x00,0x00);  // black
		Delay_ms(3000);
		//keypress();
		
		MainLcdDrawColor_16bit(0xFF,0xFF);  // white
		Delay_ms(3000);
		//keypress();
		   			
    		MainLcdDrawColor_16bit(0x00,0x1F);  // blue
    		Delay_ms(3000);
			//keypress();
		
    		MainLcdDrawColor_16bit(0x07,0xe0);  // green
    		Delay_ms(3000);
			//keypress();

		MainLcdDrawColor_16bit(0xf8,0x00);  // red
		Delay_ms(3000);
		//keypress();

		MainLcdDisplayPic_16bit(MAIN_PIC);		//DISPLAY MAIN LCD PIC
		Delay_ms(3000);
		//keypress();

		MainLcdDisplayPic_16bit(MAIN_PIC);		//DISPLAY MAIN LCD PIC
		Delay_ms(3000);
		keypress();
	}		
}
/*===========================================================================*/
end;

⌨️ 快捷键说明

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