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

📄 ili9325.txt

📁 ili9325的驱动程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:


#pragma db code
#include<reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int 

/////////////////////////////////////////////
//根据液晶segment,common值改变。
#define picture1
//#define picture2

//#define  	interface_8_bit
#define  	interface_16_bit
#define common 		320		  
#define segment 	240



#define 	PORTL	P0
#define 	PORTH	P2
//control bus
sbit CS_MAIN=P3^0;		//chip select signal
sbit RES=P3^7;			//reset signal 
sbit DC=P3^1;			//data/command  control signal
sbit WRITE=P3^2;		//write strobe signal
sbit READ=P3^3;
//shift key 
sbit KEY5=P1^0;     	//waitkey 
sbit KEY1=P1^1;
//define tsc2046 interface

sbit DCLK 	= 	P1^2;
sbit CS_TP  = 	P1^3;
sbit DIN  	= 	P1^4;
sbit BUSY 	= 	P1^5;
sbit DOUT 	= 	P1^6;
sbit PIN  	= 	P1^7;


//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&



/****************************************************************************
** 函数声明
*****************************************************************************/
void LCD_write_c(uint com);
void LCD_write_d(uint dat);

void cpu_initial(void);
void ili9320_init_lcd(void);
void ili9325_init_lcd(void);
void clear_ram(void);
void MainLcdFill(uint A);
void showRGBW(void);
void show_cross(void);
void volum_rgb_display(void); 
void rgb_jb(void);
void rgbhbhj(void);
void show_hb(void);
void smhj(void);


void picture_display(unsigned char *pi);
void word_display(unsigned char *pi);
void polygon_display(uint polygon_color); 
void cross_band(uint first_line,uint second_line);

 
void window_fill(uint x,uint y,uint xx,uint yy,uint fill_color);
void icon_pic(uint x,uint y,uint xx,uint yy,unsigned char *pi);
void tp_pic(uint x,uint y,uint xx,uint yy,unsigned char *pi);
void display_icon();
void display_word();

void touch_panel_test(void);
void serial_write_bit_high(void);
void serial_write_bit_low(void);
int  serial_read_data(void);
void serial_write_data(uchar data1);
void serial_init(void);
 
void text_display(uint x,uint y,uint xx,uint yy,uint back_color,uint txt_color, uchar *pi);
void text_moving();
void touch_point_display(uint xxx,uint yyy);


void Delay(uint adj);
void LCD_reset(void);
void cpu_initial(void);
void waitkey(void);

code unsigned char pic1[];
code unsigned char pic2[];
code unsigned char picon[];

code unsigned char txt[10][16];		//0-9
code unsigned char txtx[];			//X
code unsigned char txty[];
/****************************************************************************
** 主程序
*****************************************************************************/

//////////////////////////////////////
//test the touch panel
/////////////////////////////////////



int main(void)
{  
 	cpu_initial();
 	LCD_reset();	


       ili9325_init_lcd();

    

 		MainLcdFill(0xf800);
	   	Delay(50);
    	waitkey();

    	MainLcdFill(0x07e0);
     	Delay(50);
    	waitkey();
      	
    	
    	MainLcdFill(0x001f);
    	Delay(50);
     	waitkey(); 
    	
    	
    	MainLcdFill(0x0000);
    	Delay(50);
     	waitkey();
    	
    	
    	MainLcdFill(0xffff);
    	Delay(50);
    	waitkey(); 

       rgbhbhj();
		Delay(50);
    	waitkey(); 
	    
		rgb_jb();
        Delay(50);
    	waitkey();

        show_hb();
		Delay(50);
    	waitkey();

        show_cross();
		Delay(50);
    	waitkey();
  

		picture_display(pic1);
	   	Delay(50);
     	waitkey();

     	smhj();
	    Delay(50);
    	waitkey();


	    //display_word();
     //   display_icon();
	

    	serial_init();

  		while(1)
    	{
      		touch_panel_test();				//测试触摸屏,根据触摸点位置显示图像
			Delay(10);
			
			while(PIN);
 		//	display_icon();
    	}

   
  
   
    
 }



 /*===========================================================================
** 函数名称: 	cpu_initial()
** 功能描述:	GPIO口PIN脚设置
============================================================================*/
void cpu_initial(void)
{
    P0=0xff;
	P1=0xff;
	P2=0xff;
	P3=0xff;
}
/*===========================================================================
** 函数名称: LCD_write_d()
** 功能描述: 输出数据,并行,软件模拟8080,
** 功能描述: 8bit,通过P0.10-P0.17传送数据
** 入口参数:dat: 输出数据
** 出口参数: 无
============================================================================*/

#ifdef interface_8_bit

void LCD_write_d(uint dat)
{

	CS_MAIN=0;
	DC=1;
	READ=1;

	WRITE=0;
	PORTL=(dat>>8);
    WRITE=0;
    WRITE=1;

	WRITE=0;
	PORTL=(dat&0x00ff);
    WRITE=0;
    WRITE=1; 
  
	CS_MAIN=1;
}
/*===========================================================================
** 函数名称: LCD_write_c()
** 功能描述: 输出指令,并行,软件模拟8080
** 功能描述: 8 bit,通过P0.10-P0.17 传送数据
** 入口参数:com: 指令码
** 出口参数:无
============================================================================*/
void LCD_write_c(uint com)
{
 	CS_MAIN=0;
	DC=0;

	READ=1;
	WRITE=0;
	PORTL=(com>>8);
    WRITE=0;
    WRITE=1;


    WRITE=0;
	PORTL=(com&0x00ff);   
    WRITE=0;
    WRITE=1;
 
	CS_MAIN=1;

}
 #endif

/*===========================================================================
** 函数名称: LCD_write_d()
** 功能描述: 输出数据,并行,软件模拟8080,
** 功能描述: 16bit,通过P0-P2传送数据
** 入口参数:dat: 输出数据
** 出口参数: 无
============================================================================*/

#ifdef interface_16_bit

void LCD_write_d(uint dat)
{

//	CS_MAIN=0;
	DC=1;
//	READ=1;
//	WRITE=0;

	PORTH=(uchar)(dat>>8);
	PORTL=(uchar)(dat&0x00ff);

    WRITE=0;    
    WRITE=1;    
//	CS_MAIN=1;
}

/*===========================================================================
** 函数名称: LCD_write_c()
** 功能描述: 输出指令,并行,软件模拟8080 
** 功能描述: 16 bit,通过P0 ,p2 传送数据
** 入口参数:com: 指令码
** 出口参数:无
============================================================================*/
void LCD_write_c(uint com)
{
 	CS_MAIN=0;
	DC=0;
//	READ=1;
//	WRITE=0;

	PORTH=(uchar)(com>>8);
	PORTL=(uchar)(com&0x00ff);

    WRITE=0;
    WRITE=1;   
//	CS_MAIN=1;
 }
 
#endif
/*===========================================================================
** 函数名称: ili9320_init_lcd
** 功能描述: 输出显示数据,并行,软件模拟8080
** 功能描述: 对LCD进行初始化
** 功能描述: 显示图片数据8bit
============================================================================*/
   
void ili9320_init_lcd(void)
{ 
            
Delay(50);	
LCD_write_c(0x0000);
LCD_write_d(0x0001);

LCD_write_c(0x0001);
LCD_write_d(0x0100);

LCD_write_c(0x0002);
LCD_write_d(0x0700);

LCD_write_c(0x0003);
LCD_write_d(0x1030);

LCD_write_c(0x0004);
LCD_write_d(0x0000);

LCD_write_c(0x0008);
LCD_write_d(0x0202);

LCD_write_c(0x0009);
LCD_write_d(0x0000);

LCD_write_c(0x000a);
LCD_write_d(0x0000);

LCD_write_c(0x000c);
LCD_write_d(0x0000);

LCD_write_c(0x000d);
LCD_write_d(0x0000);

LCD_write_c(0x000f);
LCD_write_d(0x0000);

//power on sequence
LCD_write_c(0x0010);
LCD_write_d(0x0000);

LCD_write_c(0x0011);
LCD_write_d(0x0007);

LCD_write_c(0x0012);
LCD_write_d(0x0000);

LCD_write_c(0x0013);
LCD_write_d(0x0000);
Delay(200);

LCD_write_c(0x0010);
LCD_write_d(0x17b0);

LCD_write_c(0x0011);
LCD_write_d(0x0007);
Delay(50);

LCD_write_c(0x0012);
LCD_write_d(0x013a);
Delay(50);

LCD_write_c(0x0013);
LCD_write_d(0x1a00);

LCD_write_c(0x0029);
LCD_write_d(0x000c);
Delay(50);

LCD_write_c(0x0020);
LCD_write_d(0x0000);

LCD_write_c(0x0021);
LCD_write_d(0x0000);

//adjust the gamma curve
LCD_write_c(0x0030);
LCD_write_d(0x0000);

LCD_write_c(0x0031);
LCD_write_d(0x0505);

LCD_write_c(0x0032);
LCD_write_d(0x0004);

LCD_write_c(0x0035);
LCD_write_d(0x0006);

LCD_write_c(0x0036);
LCD_write_d(0x0707);

LCD_write_c(0x0037);
LCD_write_d(0x0105);

LCD_write_c(0x0038);
LCD_write_d(0x0002);

LCD_write_c(0x0039);
LCD_write_d(0x0707);

LCD_write_c(0x003c);
LCD_write_d(0x0704);

LCD_write_c(0x003d);
LCD_write_d(0x0807);

//set gram area
LCD_write_c(0x0050);
LCD_write_d(0x0000);

LCD_write_c(0x0051);
LCD_write_d(0x00ef);

LCD_write_c(0x0052);
LCD_write_d(0x0000);

LCD_write_c(0x0053);
LCD_write_d(0x013f);

LCD_write_c(0x0060);
LCD_write_d(0x2700);

LCD_write_c(0x0061);
LCD_write_d(0x0001);

LCD_write_c(0x006a);
LCD_write_d(0x0000);

//partial display control
LCD_write_c(0x0080);
LCD_write_d(0x0000);

LCD_write_c(0x0081);
LCD_write_d(0x0000);

LCD_write_c(0x0082);
LCD_write_d(0x0000);

LCD_write_c(0x0083);
LCD_write_d(0x0000);

LCD_write_c(0x0084);
LCD_write_d(0x0000);

LCD_write_c(0x0085);
LCD_write_d(0x0000);

//panel control
LCD_write_c(0x0090);
LCD_write_d(0x0010);

LCD_write_c(0x0092);
LCD_write_d(0x0000);

LCD_write_c(0x0093);
LCD_write_d(0x0003);

LCD_write_c(0x0095);
LCD_write_d(0x0110);

LCD_write_c(0x0097);
LCD_write_d(0x0000);

LCD_write_c(0x0098);
LCD_write_d(0x0000);


LCD_write_c(0x0007);
LCD_write_d(0x0173);

⌨️ 快捷键说明

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