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

📄 s6b0108.i

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 I
📖 第 1 页 / 共 4 页
字号:
extern unsigned char wash_time_buff_0;
extern unsigned char rinse_time_buff_0;
extern unsigned char spin_time_buff_0;
extern unsigned char save_water_num_buff_0;
extern unsigned char winddry_time_buff_0;
extern unsigned char preset_time_buff_0;
extern unsigned char function_set_buff_0;

 
 
extern unsigned char soak_time_buff;
extern unsigned char wash_time_buff;
extern unsigned char rinse_time_buff;
extern unsigned char spin_time_buff;
extern unsigned char save_water_num_buff;
extern unsigned char winddry_time_buff;
extern unsigned char preset_time_buff;
extern unsigned char function_set_buff;


extern unsigned char program_start_flag;		 
extern unsigned char program_pause_flag;		 

extern unsigned char preset_set_flag;





#line 5 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/s6b0108.c"


void Delay(int);									 
void Long_Delay(int);						 
void Write_0108_Reg(unsigned char);				 
void Write_0108_Data(unsigned char);				 
void Set_XY(unsigned char, unsigned char);		 
void Init_0108();									 
void Clr_Screen_0();								 
void Clr_Screen_1();
void Clr_Screen_2();
void Set_Screen3();								 

void Set_Screen(unsigned char, unsigned char*);
void Comp_Set_Screen(unsigned char, unsigned char, unsigned char, unsigned char*);
 
void Set_Caracter(unsigned char, unsigned char, unsigned char, unsigned char *);
void Set_Char(unsigned char, unsigned char, unsigned char, unsigned char *);
void FSH_Set_Two_Page(unsigned char, unsigned char, unsigned char *);

unsigned char Read_0108_Data();				 
unsigned char Data_Convert(unsigned char);	 

 

























 



void Delay(int t)
{
	while(--t);
}

 



void Long_Delay(int t)
{
	int n = 0xff;
	
	while(--t)
	{
		while(--n);
		n = 0xff;
	}
}

 



unsigned char Data_Convert(unsigned char lcd_data)
{
  Lcd_Byte_0.lcd_byte = lcd_data;
  Lcd_Byte_1.lcd_byte = lcd_data;
  
  Lcd_Byte_0.lcd_byte &= 0x0f;
  Lcd_Byte_1.lcd_byte &= 0xf0;
    
  Lcd_Byte_0.lcd_bit.lb7 = Lcd_Byte_0.lcd_bit.lb0 ;
  Lcd_Byte_0.lcd_bit.lb6 = Lcd_Byte_0.lcd_bit.lb1 ;  
  Lcd_Byte_0.lcd_bit.lb5 = Lcd_Byte_0.lcd_bit.lb2 ;
  Lcd_Byte_0.lcd_bit.lb4 = Lcd_Byte_0.lcd_bit.lb3 ;
  
  Lcd_Byte_0.lcd_byte &= 0xf0;
  
  Lcd_Byte_0.lcd_byte = Lcd_Byte_0.lcd_byte >> 4;	   
  Lcd_Byte_2.lcd_byte = Lcd_Byte_0.lcd_byte |  Lcd_Byte_1.lcd_byte ;	   

  return Lcd_Byte_2.lcd_byte ;
  
}

 



void Write_0108_Reg(unsigned char Reg_Code)
{
	unsigned char bus_low;
	unsigned char bus_high;
	
	bus_low = bus_high = Data_Convert(Reg_Code);
	
	bus_low &= 0x0f;
	bus_high &= 0xf0;
	
	bus_high = bus_high >> 4;
		
	p6_addr.bit.b2				  = 0;
 
	p0_addr.byte &= 0xf0;
	p1_addr.byte &= 0xf0;
	p0_addr.byte |= bus_low;
	p1_addr.byte |= bus_high;
	p0_addr.bit.b4				  = 1;
	p0_addr.bit.b4				  = 0;
}

 



void Write_0108_Data(unsigned char Bus_Data)
{
	unsigned char bus_low;
	unsigned char bus_high;
	
	bus_low = bus_high = Data_Convert(Bus_Data);
	
	bus_low &= 0x0f;
	bus_high &= 0xf0;
	
	bus_high = bus_high >> 4;
			
	p6_addr.bit.b2				  = 1;
 
 
	p0_addr.byte &= 0xf0;
	p1_addr.byte &= 0xf0;
	p0_addr.byte |= bus_low;
	p1_addr.byte |= bus_high;
	p0_addr.bit.b4				  = 1;
 
	p0_addr.bit.b4				  = 0;
}

 



unsigned char Read_0108_Data()
{
	unsigned char Bus_Data_0;
	unsigned char Bus_Data_1;
	
	p6_addr.bit.b2				  = 1;
 
	p0_addr.byte &= 0xf0;
	p1_addr.byte &= 0xf0;	
	p0_addr.bit.b4				  = 1;
	Bus_Data_1 = p1_addr.byte ;
	Bus_Data_0 = p0_addr.byte ;
	p0_addr.bit.b4				  = 0;
	
	Bus_Data_1 = Bus_Data_1 << 4;	
	Bus_Data_0 &= 	0xf0;
	Bus_Data_0 |= Bus_Data_1;
	
	return Bus_Data_0;
	
}

 



void Set_XY(unsigned char X_Column,  unsigned char Y_Page)
{
	Write_0108_Reg(0xB8 +Y_Page);
	Write_0108_Reg(0x40 +X_Column);
}

 



void Init_0108()
{
 
 
 

	Delay(100);
	p0_addr.bit.b5				  =0;
	p6_addr.bit.b1				  =0;
	Delay(100);
	Write_0108_Reg(0x3E );
	Write_0108_Reg(0xC0 );
	Write_0108_Reg(0xB8 );
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0x3F );
	Delay(100);
	p0_addr.bit.b5				  =0;
	p6_addr.bit.b1				  =1;
	Delay(100);
	Write_0108_Reg(0x3E );
	Write_0108_Reg(0xC0 );
	Write_0108_Reg(0xB8 );
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0x3F );
	Delay(100);
	p0_addr.bit.b5				  =1;
	p6_addr.bit.b1				  =0;
	Delay(100);
	Write_0108_Reg(0x3E );
	Write_0108_Reg(0xC0 );
	Write_0108_Reg(0xB8 );
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0x3F );
		
}


 


void Clr_Screen_0()
{
	unsigned char j, k;
	unsigned int n=0;

	p0_addr.bit.b5				  =0;
	p6_addr.bit.b1				  =0;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		
	Write_0108_Reg(0xC0 );
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(0x00);				 
			n++;
		}
		
	}
}
void Clr_Screen_1()
{
	unsigned char j, k;
	unsigned int n=0;

	p0_addr.bit.b5				  =0;
	p6_addr.bit.b1				  =1;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		Write_0108_Reg(0xC0 );
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(0x00);
			n++;
		}
		
	}
}
void Clr_Screen_2()
{
	unsigned char j, k;
	unsigned int n=0;

	p0_addr.bit.b5				  =1;
	p6_addr.bit.b1				  =0;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );		
		Write_0108_Reg(0xC0 );
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(0x00);
			n++;
		}
		
	}
}

 











void Set_Char(unsigned char cs, unsigned char page, unsigned char num, unsigned char * bitmap)		 
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	unsigned char a,b;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);	
	
	Write_0108_Reg(0xB8 + page);					 
	Write_0108_Reg(0x40 + num);					 
	Write_0108_Reg(0xC0 );					 
	
	if (page == 2)					 
	 {
		for(j=0;j<8;j++) 
	 	 {
			 
			b = bitmap[n];
			a = b | 0x01;
			Write_0108_Data(a);					
			n++;
	 	 }
	 }
	else 
	 {
		for(j=0;j<8;j++) 
	 	 {
			Write_0108_Data(bitmap[n]);
			n++;
	 	 }		 
	 }
	
	page += 1;
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 + num);
	
	if (page == 7)					 
	 {
		for(j=0;j<8;j++) 
	 	 {
			 
			b = bitmap[n];
			a = b | 0x80;
			Write_0108_Data(a);					
			n++;
	 	 }
	 }
	else 
	 {
		for(j=0;j<8;j++) 
	 	 {
			Write_0108_Data(bitmap[n]);
			n++;
	 	 }		 
	 }
	 
}


 





void Set_Caracter(unsigned char cs, unsigned char page, unsigned char num, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 + num * 8);
	Write_0108_Reg(0xC0 );

	for(j=0;j<16;j++) 
	 {
		Write_0108_Data(bitmap[n]);
		n++;
	 }
	
	page += 1;
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 + num * 8);
	
	for(j=0;j<16;j++) 
	 {
		Write_0108_Data(bitmap[n]);
		n++;
	 }
	 
}

 



void Set_Two_Page(unsigned char cs, unsigned char page, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);

	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0xC0 );

	for(j=0;j<64;j++) 
	{
		if (j<63)
		Write_0108_Data(bitmap[n]);
		else 
		Write_0108_Data(~bitmap[n]);
		
		n++;
	}
	
	page += 1;
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	
	for(j=0;j<64;j++) 
	 {
		if (j<63)
		Write_0108_Data(bitmap[n]);
		else 
		Write_0108_Data(~bitmap[n]);		
		
		n++;
	 }
	 
}
 



void FSH_Set_Two_Page(unsigned char cs, unsigned char page, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);

	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0xC0 );

	for(j=0;j<64;j++) 
	{
		if (j<63)
		Write_0108_Data(bitmap[n]);
		else 
		Write_0108_Data(bitmap[n]);
		
		n++;
	}
	
	page += 1;
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	
	for(j=0;j<64;j++) 
	 {
		if (j<63)
		Write_0108_Data(bitmap[n]);
		else 
		Write_0108_Data(bitmap[n]);		
		
		n++;
	 }
	 
}
 



void Comp_Set_Two_Page(unsigned char cs, unsigned char page, unsigned char * bitmap)
{
	unsigned char j;
	
	unsigned char a,b;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);

	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	Write_0108_Reg(0xC0 );

	if (page == 2)
	 {
		for(j=0;j<64;j++) 
		 {				 
			if((j == 0)||((j == 63)&&(cs == 0x02 )))
			Write_0108_Data(bitmap[n]);
 
			else
			 {
				b = bitmap[n];
				a = b & 0xfe;
				Write_0108_Data(~a);					
			 }
			n++;				 
		 }
	 }	
	else if (page != 2)
	 {				 
		for(j=0;j<64;j++) 
		 {
			if((j == 0)||((j == 63)&&(cs == 0x02 )))
			Write_0108_Data(bitmap[n]);
 
			else
			Write_0108_Data(~bitmap[n]);					 
			n++;
		 }	
	 }
	
	page += 1;
	
	Write_0108_Reg(0xB8 + page);
	Write_0108_Reg(0x40 );
	
	if (page == 7)
	 {
		for(j=0;j<64;j++) 
		 {				 
			if((j == 0)||((j == 63)&&(cs == 0x02 )))
			Write_0108_Data(bitmap[n]);
 
			else
			 {
				b = bitmap[n];
				a = b & 0x7f;
				Write_0108_Data(~a);
			 }
			n++;					 
		 }
	 }		
	else if (page != 7)
	 {				 
		for(j=0;j<64;j++) 
		 {
			if((j == 0)||((j == 63)&&(cs == 0x02 )))
			Write_0108_Data(bitmap[n]);
 
			else
			Write_0108_Data(~bitmap[n]);					 
			n++;
		 }	
	 }
}

 



void Set_Screen(unsigned char cs, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		Write_0108_Reg(0xC0 );
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(bitmap[n]);
			n++;
 
 
		}
		
	}
}

 



void Comp_Set_Screen(unsigned char cs, unsigned char x1, unsigned char y1, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	unsigned char a;
	unsigned char b;
	unsigned char c;
	unsigned char d;
	
	
 
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		Write_0108_Reg(0xC0 );
		
		if ((k < x1)||(k > y1))
		 {
			for(j=0;j<64;j++) 
		 	{
				Write_0108_Data(bitmap[n]);
				n++;
		 	}
		 }
		if ((k >= x1)&&(k <= y1))
		 {
			if (k==2)
			 {
				for(j=0;j<64;j++) 
		 	  	{				 
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					 {
						b = bitmap[n];
						a = b & 0xfe;
						Write_0108_Data(~a);					
					 }
					n++;				 
				}
			 }	
			 
			if (k==7)
			 {
				for(j=0;j<64;j++) 
		 	  	{				 
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					 {
						b = bitmap[n];
						a = b & 0x7f;
						Write_0108_Data(~a);
					 }
					n++;					 
				}
			 }			 
			
			else if ((k!=2)&&(k!=7))
			 {				 
				for(j=0;j<64;j++) 
		 	  	 {
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					Write_0108_Data(~bitmap[n]);	
								 
					n++;
		 	  	 }	
			 }
		 }
	}
}

 



void Flash_Set_Screen(unsigned char cs, unsigned char x2, unsigned char y2, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		Write_0108_Reg(0xC0 );
		
		if ((k < x2)||(k > y2))
		 {
			for(j=0;j<64;j++) 
		 	{
				Write_0108_Data(bitmap[n]);
				n++;
		 	}
		 }
		 
		if ((k >= x2)&&(k <= y2))
		 {
			if (k==2)
			 {
				for(j=0;j<64;j++) 
		 	  	{				 
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					 {
						Write_0108_Data(0x01);					
					 }
					n++;				 
				}
			 }	
			 
			if (k==7)
			 {
				for(j=0;j<64;j++) 
		 	  	{				 
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					 {
						Write_0108_Data(0x80);
					 }
					n++;					 
				}
			 }			 
			
			else if ((k!=2)&&(k!=7))
			 {				 
				for(j=0;j<64;j++) 
		 	  	 {
					if((j == 0)||((j == 63)&&(cs == 0x02 )))
					Write_0108_Data(bitmap[n]);
 
					else
					Write_0108_Data(0x00);	
								 
					n++;
		 	  	 }	
			 }
		 }		 
	}
}

 



void Change_Set_Screen(unsigned char cs, unsigned char x3, unsigned char y3, unsigned char * new_bitmap, unsigned char * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == 0x00 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =0;
	 }
	else if (cs == 0x01 )
	 {
		p0_addr.bit.b5				  =0;
		p6_addr.bit.b1				  =1;
	 }
	else if (cs == 0x02 )
	 {
		p0_addr.bit.b5				  =1;
		p6_addr.bit.b1				  =0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(0xB8 +k);
		Write_0108_Reg(0x40 );
		Write_0108_Reg(0xC0 );
		
		if ((k < x3)||(k > y3))
		 {
			for(j=0;j<64;j++) 
		 	{
				Write_0108_Data(bitmap[n]);
				n++;
		 	}
		 }
		if ((k >= x3)&&(k <= y3))
		 {
			for(j=0;j<64;j++) 
		 	{
 
 
				
 
				Write_0108_Data(new_bitmap[n-x3*64]);
				
				n++;
		 	}	
		 }
	}
}

 



 


















































































 


⌨️ 快捷键说明

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