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

📄 s6b0108.c

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 C
📖 第 1 页 / 共 2 页
字号:
void FSH_Set_Two_Page(unsigned char cs, unsigned char page, unsigned char far * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);

	Write_0108_Reg(Set_Page + page);
	Write_0108_Reg(Set_Column);
	Write_0108_Reg(Set_Start_Line_0);

	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(Set_Page + page);
	Write_0108_Reg(Set_Column);
	
	for(j=0;j<64;j++) 
	 {
		if (j<63)
		Write_0108_Data(bitmap[n]);
		else 
		Write_0108_Data(bitmap[n]);		
		
		n++;
	 }
	 
}
/****************************************************************

两页反白显示程序:一次将两个显示页进行反白显示

cs: 需要输入字符的液晶屏,CS1, CS2 或 CS3;

page: 需要输入字符的起始页

bitmap:点阵数据表地址

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

void Comp_Set_Two_Page(unsigned char cs, unsigned char page, unsigned char far * bitmap)
{
	unsigned char j;
	
	unsigned char a,b;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);

	Write_0108_Reg(Set_Page + page);
	Write_0108_Reg(Set_Column);
	Write_0108_Reg(Set_Start_Line_0);

	if (page == 2)
	 {
		for(j=0;j<64;j++) 
		 {				 
			if((j == 0)||((j == 63)&&(cs == CS3)))			/* 保留菜单边框 */
			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 == CS3)))			/* 保留菜单边框 */
			Write_0108_Data(bitmap[n]);
 
			else
			Write_0108_Data(~bitmap[n]);					/* 反白显示 */			 
			n++;
		 }	
	 }
	
	page += 1;
	
	Write_0108_Reg(Set_Page + page);
	Write_0108_Reg(Set_Column);
	
	if (page == 7)
	 {
		for(j=0;j<64;j++) 
		 {				 
			if((j == 0)||((j == 63)&&(cs == CS3)))			/* 保留菜单边框 */
			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 == CS3)))			/* 保留菜单边框 */
			Write_0108_Data(bitmap[n]);
 
			else
			Write_0108_Data(~bitmap[n]);					/* 反白显示 */	 
			n++;
		 }	
	 }
}

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

整屏显示程序:一次显示整个显示屏(CS1, CS2 或 CS3)

cs: 需要输入字符的液晶屏,CS1, CS2 或 CS3;

bitmap:点阵数据表地址

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

void Set_Screen(unsigned char cs, unsigned char far *bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		Write_0108_Reg(Set_Start_Line_0);
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(bitmap[n]);
			n++;
//			if (n == 64*(k*3+1))
//			n = 64*(3*k+3);
		}
		
	}
}

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

整屏反白显示程序:整个屏幕进行反白显示(CS1, CS2 或 CS3)

cs: 需要输入字符的液晶屏,CS1, CS2 或 CS3;

x1: 反白显示的起始页

y1: 反白显示的结束页

bitmap:点阵数据表地址

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

void Comp_Set_Screen(unsigned char cs, unsigned char x1, unsigned char y1, unsigned char far * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	unsigned char a;
	unsigned char b;
	unsigned char c;
	unsigned char d;
	
	
//	a = bitmap[0];
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		Write_0108_Reg(Set_Start_Line_0);
		
		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 == CS3)))			/* 保留菜单边框 */
					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 == CS3)))			/* 保留菜单边框 */
					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 == CS3)))			/* 保留菜单边框 */
					Write_0108_Data(bitmap[n]);
 
					else
					Write_0108_Data(~bitmap[n]);					/* 反白显示 */	
								 
					n++;
		 	  	 }	
			 }
		 }
	}
}

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

指定区域闪烁显示程序:对值定区域进行闪烁显示

cs: 需要输入字符的液晶屏,CS1, CS2 或 CS3;

x2: 反白显示的起始页

y2: 反白显示的结束页

bitmap:点阵数据表地址

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

void Flash_Set_Screen(unsigned char cs, unsigned char x2, unsigned char y2, unsigned char far * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		Write_0108_Reg(Set_Start_Line_0);
		
		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 == CS3)))			/* 保留菜单边框 */
					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 == CS3)))			/* 保留菜单边框 */
					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 == CS3)))			/* 保留菜单边框 */
					Write_0108_Data(bitmap[n]);
 
					else
					Write_0108_Data(0x00);							/* 显示空白 */	
								 
					n++;
		 	  	 }	
			 }
		 }		 
	}
}

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

切换指定区域显示内容程序:切换指定区域显示内容

cs: 需要输入字符的液晶屏,CS1, CS2 或 CS3;

x3: 反白显示的起始页

y3: 反白显示的结束页

bitmap:原点阵数据表地址

new_bitmap:新点阵数据地址

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

void Change_Set_Screen(unsigned char cs, unsigned char x3, unsigned char y3, unsigned char far * new_bitmap, unsigned char far * bitmap)
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	if (cs == CS1)
	 {
		CSA=0;
		CSB=0;
	 }
	else if (cs == CS2)
	 {
		CSA=0;
		CSB=1;
	 }
	else if (cs == CS3)
	 {
		CSA=1;
		CSB=0;
	 }
	 
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		Write_0108_Reg(Set_Start_Line_0);
		
		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++) 
		 	{
//				if((j == 0)||(j == 0))
//				Write_0108_Data(bitmap[n]);
				
//				else
				Write_0108_Data(new_bitmap[n-x3*64]);
				
				n++;
		 	}	
		 }
	}
}

/****************************************************************
  清除KS0108显示存储器
****************************************************************/

/*
void Set_Screen3()
{
	unsigned char j, k;
	unsigned int n=0;
	unsigned int i;
	
	CSA=0;
	CSB=0;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		
	Write_0108_Reg(Set_Start_Line_0);

//		i = 64*(k*3+1);
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(nBitmapDot16_1[n]);
			n++;
//			if (n == 64*(k*3+1))
//			n = 64*(3*k+3);
		}
		
	}
}
void Set_Screen4()
{
	unsigned char j, k;
	unsigned int n=0;
//	unsigned int n=64;

	CSA=0;
	CSB=1;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		
	Write_0108_Reg(Set_Start_Line_0);
		
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(nBitmapDot16_2[n]);
			n++;
//			if (n == 64*(k*3+2))
//			n = 64*(3*k+4);
		}
		
	}
}
void Set_Screen5()
{
	unsigned char j, k;
	unsigned int n=0;
//	unsigned int n=128;

	CSA=1;
	CSB=0;
	Delay(100);
	for(k=0;k<8;k++)
	{
		Write_0108_Reg(Set_Page+k);
		Write_0108_Reg(Set_Column);
		
	Write_0108_Reg(Set_Start_Line_0);
		for(j=0;j<64;j++) 
		{
			Write_0108_Data(nBitmapDot16_3[n]);
			n++;
//			if (n == 64*(k*3+3))
//			n = 64*(3*k+5);
		}
		
	}
}

*/

//////////////////////////////////////////////////////////////////////////////////


⌨️ 快捷键说明

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