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

📄 1.5rohmstn.c

📁 LCD模块驱动 NOKIA1.8“模块驱动程序
💻 C
📖 第 1 页 / 共 4 页
字号:
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Downloaded[(15-y)*12+x]&l)!=0)
					{
					LCDDATA=0;
					LCDDATA=0;
					}
					else
					{
					LCDDATA=0xff;
					LCDDATA=0xff;
					}
				}
			}
		}

}

void Display_eraseing()
{
	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++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Erasing[(15-y)*12+x]&l)!=0)
					{
					LCDDATA=0;
					LCDDATA=0;
                    LCDDATA=0;
					}
					else
					{
					LCDDATA=0xff;
			        LCDDATA=0xff;
                    LCDDATA=0xff;
					}
				}
			}
		}
}

void Display_erased()
{
	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++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Erased[(16-y)*12+x]&l)!=0)
					{
					LCDDATA=0;
					LCDDATA=0;
                    LCDDATA=0;
					}
					else
					{
					LCDDATA=0xff;
					LCDDATA=0xff;
                    LCDDATA=0xff;
					}
				}
			}
		}
	
}

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

		
		LCDREG=0x2a;
		LCDDATA=0x12;    LCDDATA=0x71;
		LCDREG=0x2b;
		LCDDATA=0x2c; 	 LCDDATA=0x7f;
		LCDREG=0x2c;
		for(y=0;y<40;y++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Transfering[(39-y)*12+x]&l)!=0)
					{
					LCDDATA=0;
					LCDDATA=0;
					}
					else
					{
					LCDDATA=0xff;
					LCDDATA=0xff;
					}
				}
			}
		}

}
void Display_chipcopy_receiving()
{
	unsigned char l;
	unsigned char x;
	unsigned char y;
	Chip_select_LCD();
		LCDREG=0x2a;
		LCDDATA=0x12;    LCDDATA=0x71;
		LCDREG=0x2b;
		LCDDATA=0x2c; 	 LCDDATA=0x7f;
		LCDREG=0x2c;
		for(y=0;y<40;y++)
		{
			for(x=0;x<12;x++)
			{
				for(l=0x80;l>=1;l=l>>1)
				{				
					if((Receiving[(39-y)*12+x]&l)!=0)
					{
					LCDDATA=0;
					LCDDATA=0;
					}
					else
					{
					LCDDATA=0xff;
					LCDDATA=0xff;
				    }
				}
			}
		}
}

//============================================================================================================

void Program_flash(unsigned char block_addr,unsigned char xdata *image_data_addr,unsigned char io_data)
{
	Auxdata_write(BLOCK_ADDR_MASK,block_addr);
	Chip_select_flash();
	FLASH_5555=0xaa;
	FLASH_2AAA=0x55;
	FLASH_5555=0xa0;
//	if (Download_counter>=0x30) io_data=io_data>>2;
	*image_data_addr=io_data;
}

void Chip_erase_flash()
{
	unsigned char i;
	Chip_select_flash();
	FLASH_5555=0xaa;
	FLASH_2AAA=0x55;
	FLASH_5555=0x80;
	FLASH_5555=0xaa;
	FLASH_2AAA=0x55;
	FLASH_5555=0x10;
	for (i=0;i<15;i++)
	{
		Led_light(true);
		Delayms(200);
		Led_light(false);
		Delayms(200);
	}
}


void Auxdata_write(unsigned char data_mask,unsigned char auxa_data)
{
	Chip_select_LCD();
	Auxdata=(Auxdata&data_mask)+auxa_data;
	AUXOUT=Auxdata;
}


//*****************************************
void serial () interrupt 4 
{
	unsigned char image_data;
	EA=0;
	if (Chip_copy)
	{
		if (RI) 
    	{
			RI=0;
			Chip_select_flash();
			image_data=SBUF;
   			Program_flash(Block_addr&block_mask,Image_data_addr,image_data);
 			Image_data_addr++;
			if (Image_data_addr==0x0000)
		 	{	
				Block_addr++;
				if (Block_addr==8) Chip_copy_over=true;
		  		Auxdata_write(BLOCK_ADDR_MASK,Block_addr&block_mask);
				Chip_select_LCD();
 		    	
				LCDREG=0x2a;
				LCDDATA=(Block_addr<<3)+26;	    LCDDATA=(Block_addr<<3)+33;	
				LCDREG=0x2b;
				LCDDATA=0x4e; 	 LCDDATA=0x51;
				LCDREG=0x2c;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				Chip_select_flash();
				
    		}
		}
    	else  
    	{  
			TI = 0;
			Chip_select_flash();
			SBUF=*(Image_data_addr);
 			Image_data_addr++;
			if (Image_data_addr==0x0000)
		 	{	
				Block_addr++;
				if (Block_addr==8) Chip_copy_over=true;
		  		Auxdata_write(BLOCK_ADDR_MASK,Block_addr&block_mask);
 		    
 				Chip_select_LCD();
			
				LCDREG=0x2a;
				LCDDATA=(Block_addr<<3)+26;	    LCDDATA=(Block_addr<<3)+33;	
				LCDREG=0x2b;
				LCDDATA=0x4e; 	 LCDDATA=0x51;
				LCDREG=0x2c;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				Chip_select_flash();
				
			
			}
        }
	}
	else
	{
 		if (RI ) 
    	{
			RI = 0;	
			{
			image_data=SBUF;
        	if (Download_counter==2) Download_total=image_data;
			if (Download_counter==3)	Download_total=image_data*256+Download_total;
			Program_flash(Block_addr&block_mask,Image_data_addr,image_data);            	//program
			if (Download_counter==(Download_total-1)) Download_over=true;
    		Image_data_addr++;                    //addr+1 
     		Download_counter++;
			#if defined(tft19LCD)
  			Download_process++;
			Chip_select_LCD();
 			if (Download_process==0xcd)
			{								
				LCDREG=0x2a;
				LCDDATA=Download_x/4+36;    LCDDATA=Download_x/4+36;
				LCDREG=0x2b;
				LCDDATA=0x4f; 	 LCDDATA=0x52;
				LCDREG=0x2c;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				LCDDATA=0xff;LCDDATA=0xff;
				
				Download_process=0xff;
				Download_x++;
			}
			#endif
			
			}
			
    	}
     }
	EA=1; 
}

//*****************************

void Serial_init()						//serial port setup         
{
	IP0H=0x10;            //proitity setup 
	EA=1;                //interrupt enable
	T2CON=0x30;           //timer2
    T2MOD=0x00; 		  //timer2mode
	PCON=0;               //SMOD baudrate double disable
	SCON=0x50;            //8bitsUART, baud rate variable
	#if defined(baudrate9600)
	RCAP2L = 0xbf;		//bf 9600 df 19200 f0 38400
	#endif
	#if defined(baudrate19200)
	RCAP2L = 0xdf;		//bf 9600 df 19200 f0 38400
	#endif
	#if defined(baudrate38400)
	RCAP2L = 0xf0;		//bf 9600 df 19200 f0 38400
	#endif
	RCAP2H = 0xff;        //baudrate setup:
	TR2=true;                //run timer2
}


void Pcam1_init()
{
	TMOD=0x02;            //timer 0 auto-loadmode
	TH0=256-8950000/5.5/51200;  //timer0=51.2kHz=50us     YYS TEST:203HZ
    //TH0=256-8950000/6/51200;  //                          YYS TEST:224HZ
    //TH0=256-8950000/3.5/51200;    //                        YYS TEST:130HZ
	TR0=true;
	CMOD=0x04;			//PCA's input :timer0:20kHz;pwm :51.2k/256=200Hz
    CCON=0x40;          //RUN the pca
	CCAPM1=0x42;		//PWM mode
	CCAP1H=255-Bl_brightness;     //set duty
}


//===========================================keyboard server begin
void Key_int() interrupt 0
{
	unsigned char key;
	EA=false;
	EX0=false;
	Delayms(10);
	P1=P1|key_mask;
	key=P1&key_mask;
	Delayms(5);
	if(key!=(P1&key_mask)) goto keyend;
	Delayms(5);
	if(key!=(P1&key_mask)) goto keyend;
   	switch(key)
	{
		case key_up: Key_up_server();
			break;
		case key_down: Key_down_server();
			break;
		case key_shift: Key_shift_server();
			break;
		case key_playpause: Key_playpause_server();
			break;
		default: ;
	 }
keyend: Delayus(10);
	EA=true;
	EX0=true;
} 


void Key_up_server()
{
	if (Shift==0) 
    {
		switch(Bl_brightness)
		{
			case 255: 		Bl_brightness=255;//	100%
				break;
			case 204: 		Bl_brightness=255;//	80%
				break; 
			case 153: 		Bl_brightness=204;//	60%
				break; 
            case 102: 		Bl_brightness=153;//	40%
				break; 
			case 80: 		Bl_brightness=102;
				break;
			case 60: 		Bl_brightness=80;
				break;
			case 40: 		Bl_brightness=60;
				break;
			case 0: 		Bl1=1;	Pcam1_init();	Bl_brightness=40;
				break;
			default: ;
	 	}
		CCAP1H=255-Bl_brightness;
	}
	else
	{
		if(Contrast<127)  Contrast++;
		else Contrast=127;
		Chip_select_LCD();
		LCDREG=0x25;								//volumn centrer set
		LCDDATA=Contrast; 		//Volume set

	}

⌨️ 快捷键说明

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