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

📄 1.5rohmstn.c

📁 LCD模块驱动 NOKIA1.8“模块驱动程序
💻 C
📖 第 1 页 / 共 4 页
字号:
			LCDDATA =(g)&(0xfc);
			LCDDATA =(r)&(0xfc);
		}
 		image_data_addr=image_data_addr-(width*3); 
	 }
  end:   ;
 }

//========================================================
void Display_x_shutter(unsigned char block_addr)
{
	unsigned char xdata *image_data_addr;
	unsigned int data_offset;
	unsigned int width;
	unsigned int highth;
	unsigned char r;
	unsigned char g;
	unsigned char b;
	unsigned int i;
	unsigned int j;
	unsigned int k;

	image_data_addr=FLASH_START;
	Auxdata_write(BLOCK_ADDR_MASK,block_addr&block_mask);
	Chip_select_flash();
	r=*image_data_addr;
	if(r==0xff) 	Empty=true;
	else Empty=false;
	data_offset=*(image_data_addr+10);               //data offset
	width=*(image_data_addr+18);                    //image width
	highth=*(image_data_addr+22);                    //image highth
	if (Empty==true) {	highth=0;goto end;} 
	image_data_addr=image_data_addr+data_offset;
	image_data_addr=image_data_addr+((highth-1)*width*3);
	Chip_select_LCD();
 	LCDREG=0x2a;
	LCDDATA=0x00;
	LCDDATA=0x02; LCDDATA=0x00;LCDDATA=0x81;
	for(i=0;i<16;i++)
 	{
 		for(j=0;j<(160/16);j++)
		{	
		LCDREG=0x2a;
	LCDDATA=0x00;
	LCDDATA=0x02; LCDDATA=0x00;LCDDATA=0x81;
			LCDREG=0x2b;
			LCDDATA=16*j+i; LCDDATA=16*j+i;
			LCDREG=0x2c;
		   	for(k=0;k<width;k++)
 			{
				image_data_addr=image_data_addr+3;
				Chip_select_flash();
				b= (*(image_data_addr-1));
				g = (*(image_data_addr-2));
				r = (*(image_data_addr-3));
				Chip_select_LCD();
		
				LCDDATA =((b)&(0xf8))+((g>>5)&(0x07));
				LCDDATA = ((g<<3)&(0xe0))+((r>>3)&(0x1f));
  			}
 			image_data_addr=image_data_addr-17*(width*3);
		}	
	  image_data_addr=image_data_addr+(highth-1)*(width*3);
	}
   end :  ;
 }




//========================================================
void Display_y(unsigned char block_addr)
{
	unsigned char xdata *image_data_addr;
	unsigned int data_offset;
	unsigned int width;
	unsigned int highth;
	unsigned char r;
	unsigned char g;
	unsigned char b;
	unsigned int i;
	unsigned int j;

	image_data_addr=FLASH_START;
	Auxdata_write(BLOCK_ADDR_MASK,block_addr&block_mask);
	Chip_select_flash();
	r=*image_data_addr;
	if(r==0xff) 	Empty=true;
	else Empty=false;
	data_offset=*(image_data_addr+10);               //data offset
	width=*(image_data_addr+18);                    //image width
	highth=*(image_data_addr+22);                    //image highth
	if (Empty==true) {highth=0;goto end;}
	image_data_addr=image_data_addr+data_offset+((highth-1)*width*3);
	Chip_select_LCD();
   

	for(i=0;i<(width);i++)
 	{	

	
 		for(j=0;j<162;j++)
 		{
			Chip_select_flash();
			b = (*(image_data_addr+2));
			g = (*(image_data_addr+1));
			r = (*(image_data_addr));
			Chip_select_LCD();
			LCDREG=0x2a;
			LCDDATA=0x00;
			LCDDATA=2+i; 
			LCDDATA=0x00;
			LCDDATA=2+i;	
			LCDREG=0x2b;
			LCDDATA=0x00;
			LCDDATA=j;
			LCDDATA=0x00;
			LCDDATA=j;		
			LCDREG=0x2c;
			LCDDATA =((b)&(0xf8))+((g>>5)&(0x07));
			LCDDATA = ((g<<3)&(0xe0))+((r>>3)&(0x1f));
			image_data_addr=image_data_addr-(width*3);
  		}		
 		image_data_addr=image_data_addr+((highth)*width*3)+3;
	}
	end:   ;
 }


//========================================================
void Display_y_shutter(unsigned char block_addr)
{
	unsigned char xdata *image_data_addr;
	unsigned int data_offset;
	unsigned int width;
	unsigned int highth;
	unsigned char r;
	unsigned char g;
	unsigned char b;
	unsigned int i;
	unsigned int j;
	unsigned int k;

	image_data_addr=FLASH_START;
	Auxdata_write(BLOCK_ADDR_MASK,block_addr&block_mask);
	Chip_select_flash();
	r=*image_data_addr;
	if(r==0xff) 	Empty=true;
	else Empty=false;
	data_offset=*(image_data_addr+10);               //data offset
	width=*(image_data_addr+18);                    //image width
	highth=*(image_data_addr+22);                    //image highth
	if (Empty==true) goto end;
	image_data_addr=image_data_addr+data_offset+((highth-1)*width*3);
	Chip_select_LCD();
	for(i=0;i<16;i++)
 	{
		
 		for(j=0;j<(width/16);j++)
		{
			
 			for(k=0;k<128;k++)
 			{
				Chip_select_flash();
				b = (*(image_data_addr+2));
				g = (*(image_data_addr+1));
				r = (*(image_data_addr));
				Chip_select_LCD();
				LCDREG=0x2a;
				LCDDATA=(2+(16*j)+i); LCDDATA=(2+(16*j)+i);	
				LCDREG=0x2b;
				LCDDATA=k;	LCDDATA=k;
				LCDREG=0x2c;
			
				LCDDATA =((b)&(0xf8))+((g>>5)&(0x07));
				LCDDATA = ((g<<3)&(0xe0))+((r>>3)&(0x1f));
				image_data_addr=image_data_addr-(width*3);
  			}			
 			image_data_addr=image_data_addr+((highth*width+16)*3);
 		}		
		image_data_addr=image_data_addr-((width-1)*3);
	}
	end: ;
 }


void Display_on()
{
	unsigned char i;
	unsigned char j;
	LCDREG=0x2a;
	LCDDATA=0x00;//x address
	LCDDATA=0x02;
    LCDDATA=0x00;
	LCDDATA=0x81;
	LCDREG=0x2b;					//y address
	LCDDATA=0x00;
    LCDDATA=0x00;
	LCDDATA=0x00;
	LCDDATA=0xa1;
	LCDREG=0x2c;
	for(i=0;i<128;i++)
	{
 	for(j=0;j<165;j++)
	   		{
			LCDDATA = 0xff;
			LCDDATA = 0xff;	
		    LCDDATA = 0xff;
			}
	}
}

void Display_off()
{
	unsigned char i;
	unsigned char j;
	LCDREG=0x2a;
	LCDDATA=0x00;//x address
	LCDDATA=0x02;
    LCDDATA=0x00;
	LCDDATA=0x81;
	LCDREG=0x2b;					//y address
	LCDDATA=0x00;
    LCDDATA=0x00;
	LCDDATA=0x00;
	LCDDATA=0xa1;
	LCDREG=0x2c;
	for(i=0;i<128;i++)
	{
 	for(j=0;j<165;j++)
	   		{
			LCDDATA = 0x00;
			LCDDATA = 0x00;	
		    LCDDATA = 0x00;
			}
	}
}

void Display_r()
{
	unsigned char i;
	unsigned char j;
	LCDREG=0x2a;
	LCDDATA=0x00;//x address
	LCDDATA=0x02;
    LCDDATA=0x00;
	LCDDATA=0x81;
	LCDREG=0x2b;					//y address
	LCDDATA=0x00;
    LCDDATA=0x00;
	LCDDATA=0x00;
	LCDDATA=0xa1;
	LCDREG=0x2c;
	for(i=0;i<128;i++)
	{
 	for(j=0;j<162;j++)
	   		{
			LCDDATA = 0xfc;
			LCDDATA = 0x00;	
		    LCDDATA = 0x00;
			}
	}
}

void Display_g()
{
	unsigned char i;
	unsigned char j;
	LCDREG=0x2a;
	LCDDATA=0x00;//x address
	LCDDATA=0x02;
    LCDDATA=0x00;
	LCDDATA=0x81;
	LCDREG=0x2b;					//y address
	LCDDATA=0x00;
    LCDDATA=0x00;
	LCDDATA=0x00;
	LCDDATA=0xa1;
	LCDREG=0x2c;
	for(i=0;i<128;i++)
	{
 	for(j=0;j<162;j++)
	   		{
			LCDDATA = 0x00;
			LCDDATA = 0xfc;	
		    LCDDATA = 0x00;
			}
	}
}

void Display_b()
{
	unsigned char i;
	unsigned char j;
	LCDREG=0x2a;
	LCDDATA=0x00;//x address
	LCDDATA=0x02;
    LCDDATA=0x00;
	LCDDATA=0x81;
	LCDREG=0x2b;					//y address
	LCDDATA=0x00;
    LCDDATA=0x00;
	LCDDATA=0x00;
	LCDDATA=0xa1;
	LCDREG=0x2c;
	for(i=0;i<128;i++)
	{
 	for(j=0;j<162;j++)
	   		{
			LCDDATA = 0x00;
			LCDDATA = 0x00;	
		    LCDDATA = 0xfc;
			}
	}
}
void Display_check()
{
	unsigned char i;
	unsigned char j;
	Chip_select_LCD();
	LCDREG=0x04;     LCDREG=0x02;			//MAX.X address register
	LCDREG=0x05;	 LCDREG=0x00;
	LCDREG=0x06;     LCDREG=0x81;					//MIM.X address register
	LCDREG=0x07;	 LCDREG=0x80;
	for(i=0;i<45;i++)
	{
 	for(j=0;j<128;j++)
	   		{
			LCDDATA = 0xf8;
			LCDDATA = 0x00;	
			LCDDATA=0x07;
			LCDDATA=0xe0;
			LCDDATA=0x00;
			LCDDATA=0x1f;
			}
	}
}



void Display_logo()
{
	int i;
	unsigned char l;
	unsigned char x;
	unsigned char y;
	Chip_select_LCD();
	
		LCDREG=0x2a;
		LCDDATA=0x00;
		LCDDATA=0x12; 
		LCDDATA=0x00;
        LCDDATA=0x71;
		LCDREG=0x2b;
		LCDDATA=0x00;
		LCDDATA=0x42; 
		LCDDATA=0x00;
	    LCDDATA=0x7f;
		LCDREG=0x2c;
		for(y=0;y<16;y++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Logo9616[(15-y)*12+x]&l)!=0)
					{
					LCDDATA = 0x00;
					LCDDATA = 0x00;
				    LCDDATA = 0x00;
					}
					else
					{
						LCDDATA = 0xff;
						LCDDATA =0xff;
			            LCDDATA =0xff;
				
					}
				}
				
			}
		}
	Delayms(500);
	
}



void Display_downloading()
{
	unsigned char l;
	unsigned char x;
	unsigned char y;
	Chip_select_LCD();

	

	
		LCDREG=0x2a;
		LCDDATA=0x00;
		LCDDATA=0x12;
        LCDDATA=0x00;
        LCDDATA=0x71;
		LCDREG=0x2b;
		LCDDATA=0x00;
		LCDDATA=0x35; 
		LCDDATA=0x00;
	    LCDDATA=0x55;
		LCDREG=0x2c;
		for(y=0;y<32;y++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Downloading[(31-y)*12+x]&l)!=0)
					{
					LCDDATA=0x00;
			     	LCDDATA=0x00;
				    LCDDATA=0x00;
					}
					else
					{
					LCDDATA=0xff;
					LCDDATA=0xff;
					LCDDATA=0xff;
					}
				}
			}
		}
	
		LCDREG=0x2a;
		LCDDATA=0x00;
		LCDDATA=Block_addr*12+8; 
		LCDDATA=0x00;
        LCDDATA=Block_addr*12+15;
		LCDREG=0x2b;
		LCDDATA=0x00;
		LCDDATA=0x46; 
		LCDDATA=0x00;
	    LCDDATA=0x4b;
		LCDREG=0x2c;
		for(y=0;y<48;y++)
		{
			LCDDATA=0xff;
			LCDDATA=0xff;
            LCDDATA=0xff;		
		}
		
}

void Display_downloaded()
{
	unsigned char l;
	unsigned char x;
	unsigned char y;
	Chip_select_LCD();

	
		LCDREG=0x2a;
		LCDDATA=0x00;
		LCDDATA=0x12; 
		LCDDATA=0x00;
        LCDDATA=0x71;
		LCDREG=0x2b;
		LCDDATA=0x00;
		LCDDATA=0x38;
 	    LCDDATA=0x00;
	    LCDDATA=0x7f;
		LCDREG=0x2c;
		for(y=0;y<16;y++)
		{

⌨️ 快捷键说明

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