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

📄 main.c

📁 市场上应用较多的320X240触摸屏
💻 C
📖 第 1 页 / 共 2 页
字号:
	delays();

    lcd_WR		=1;
	delays();

 	
    lcd_RS		=0;//
	delays();
	
	lcd_CS		=1;
	delays();


}

unsigned lcd_cmdread(unsigned char cmdReg)
{

unsigned char REG_Read=0;
	LCD_ChkBusy(); 											//if RA8803 busy

	lcd_DATA 	= cmdReg; 									//write reg address
	delays();
   
    lcd_CS		=0;
	delays();

	lcd_RD		=1;
	delays();
    
    lcd_RS		=0; 
	delays(); 
	
	lcd_WR		=0; 
	delays();

    
	lcd_WR		=1; 
	delays();

    lcd_RS		=1; 
	delays(); 
	
	lcd_CS		=1;
	delays();
//----------------------------------------------	
	TRISDbits.TRISD0	=1;									//set RD0 	as in port 
	TRISDbits.TRISD1	=1;									//set RD1 	as in port	
	TRISDbits.TRISD2	=1;									//set RD2 	as in port	
	TRISDbits.TRISD3	=1;									//set RD3 	as in port	
	TRISDbits.TRISD4	=1;									//set RD4 	as in port	
	TRISDbits.TRISD5	=1;									//set RD5 	as in port	
	TRISDbits.TRISD6	=1;									//set RD6 	as in port 
	TRISDbits.TRISD7	=1;									//set RD7 	as in port	 
//-----------------------------------------------
    lcd_CS		=0;
	delays();

	lcd_WR		=1;
	delays();
	lcd_RD		=1;
	delays();
	lcd_RS		=0; 
	delays(); 	

	lcd_RD		=0; 
	delays();

	REG_Read 	=lcd_DATA;
	delays(); 	
	
	lcd_RD		=1; 
	delays();

    lcd_RS		=1; 
	delays(); 	

	lcd_CS		=1;
	delays();
//-----------------------------------------------	
	TRISDbits.TRISD0	=0;									//set RD0 	as out port 
	TRISDbits.TRISD1	=0;									//set RD1 	as out port	
	TRISDbits.TRISD2	=0;									//set RD2 	as out port	
	TRISDbits.TRISD3	=0;									//set RD3 	as out port	
	TRISDbits.TRISD4	=0;									//set RD4 	as out port	
	TRISDbits.TRISD5	=0;									//set RD5 	as out port	
	TRISDbits.TRISD6	=0;									//set RD6 	as out port 
	TRISDbits.TRISD7	=0;									//set RD7 	as out port	
	lcd_DATA 	=0xff;	
	
	return (REG_Read); 

}

					
void lcd_reset(void)
{
	lcd_RS		=0; 
	delays();
     
	lcd_WR		=1;
	delays();

    lcd_CS		=1;
	delays();

	lcd_RD		=1;
	delays();

	lcd_DATA		=0xff;
	delay1ms(100); 
	

	lcd_RES		=0; 										//reset start
	delay1ms(70);											//delay atlest 250ms
	lcd_RES		=1;											//reset end
	delay1ms(500); 		
     
}
void lcd_on(void)
{
	
    unsigned char datax;
    datax =lcd_cmdread(0x00);
    datax |= 0x04;                
    lcd_cmdwrite(0x00,datax);

}
void lcd_Initial(void)
{   
     
	lcd_cmdwrite(0x00,0xcd);   //WLCR  
	lcd_cmdwrite(0x01,0x02);   //MISC   
	lcd_cmdwrite(0x02,0x10);   //APSR   
	lcd_cmdwrite(0x03,0x80);   //ADSR
	lcd_cmdwrite(0x10,0x6b);   //WCCR  

	lcd_cmdwrite(0x12,0xb3);   //MAMR    

	lcd_cmdwrite(0x20,0x27);   //AWRR   
	lcd_cmdwrite(0x30,0xef);   //AWBR   
	lcd_cmdwrite(0x40,0x00);   //AWLR   
	lcd_cmdwrite(0x50,0x00);   //AWTR 
  	
	lcd_cmdwrite(0x21,0x27);   //DWRR   
	lcd_cmdwrite(0x31,0xef);   //DWBR   
	lcd_cmdwrite(0x41,0x00);   //DWLR
	lcd_cmdwrite(0x51,0x00);   //DWTR
	
	lcd_cmdwrite(0x60,0x00);   //CPXR
	lcd_cmdwrite(0x61,0x00);   //BGSG
	lcd_cmdwrite(0x70,0x00);   //CPYR
	lcd_cmdwrite(0x71,0x00);   //BGCM
	lcd_cmdwrite(0x72,0xef);   //EDCM
        	
	lcd_cmdwrite(0x90,0x09);   //SCCR   
	
	lcd_cmdwrite(0xc0,0xc8);   //TPCR   
	lcd_cmdwrite(0xc1,0x3a);   //TPSR   
	lcd_cmdwrite(0xc8,0x80);   //TPXR
	lcd_cmdwrite(0xc9,0x80);   //TPYR
	lcd_cmdwrite(0xca,0x00);   //TPZR

	lcd_cmdwrite(0xd0,0x0f);   //LCCR   	
	lcd_cmdwrite(0xe0,0x00);   //PNTR	
	lcd_cmdwrite(0xf0,0xa0);   //FNCR   
	lcd_cmdwrite(0xf1,0x0f);   //FVHT   
}



void delay1ms(unsigned int count) 
{
    int i,j;
    for(i=0;i<=count;i++)
     for(j=0;j<=45;j++);
}



void WriteTextScreen(const rom unsigned char *TxtData)					

										
{
			unsigned int i,j;
    
	lcd_cmdwrite(0x00,0xcd);								


	lcd_cmdwrite(0x60,0x00);								

	// set cursor X location to 0
	lcd_cmdwrite(0x70,0x00);								

	// set cursor Y location to 0

    for (j=0; j<8; j++)
	{
	 	for(i=0; i<24; i++)
   		{
	   		lcd_datawrite(*TxtData++);
		}
	}
}


void WriteGraphicScreen(const rom unsigned char *GDData)
{
	unsigned int i, j;
   
    lcd_cmdwrite(0x00,0xc5);									// normal power mode, Graphic mode
    lcd_cmdwrite(0x60,0x00);									// set cursor X location to 0
    lcd_cmdwrite(0x70,0x00);									// set cursor Y location to 0

	lcd_cmdwrite(0x12,0x91);									// normal power mode, Graphic mode

    for(i=0;i<128;i++)
	{
      	for(j=0;j<24;j++)
     	{
     		lcd_datawrite(*GDData++);
        }
	}
}


void delays(void)

{
 Nop(); Nop(); Nop();
}


void main(void)
{
   inti_lcdio();
   lcd_reset();
   lcd_Initial();
   lcd_on();
while(1)
{
WriteTextScreen(TextLogo);
delay1ms(500);
WriteGraphicScreen(GraphicLogo1);
led=!led;
}
}


⌨️ 快捷键说明

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