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

📄 control.c

📁 这是本人有幸收集的最完整的10多级液晶显示程序模块
💻 C
📖 第 1 页 / 共 5 页
字号:
			default :break;
		}
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key:
					if(upcount==0)
					{
						set_data.int_data++;
						if(set_data.int_data>2) set_data.int_data=0;	//上限控制
					}
					break;
				case down_key:
					if(downcount==0)
					{
						if(set_data.int_data==0) set_data.int_data=3;	//下限控制
						set_data.int_data--;
					}
					break;
				case ok_key:
					set_addh=0x00;		//组织发送数据
					set_addl=0x62;	
					set_valueh=set_data.char_data[0];
					set_valuel=set_data.char_data[1];
					remote_type.set=1;
					set_bit=0;		//至察看状态标志,进入察看状态
					show_bit=1;		//重至第一次刷新标志
					break;
				case esc_key:
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					break;
			}
		}
	}	
}

//端子属性设定
void portrorl_setting(/*15*/)
{
	if(set_bit==0)
	{
		if(remote_sign.furbish==0)
		{
			remote_sign.furbish=1;
			remote_type.value=1;
			dis_message_count=1;	
			
			switch(union_vlaue.revalue_buf[1])
			{
				case 0x00:
					lcdwrite_chinese(0,48,13,&beng[0]);	//显示本地
					lcdwrite_chinese(0,62,13,&dadi_di[0]);
					break;
				case 0x01:
					lcdwrite_chinese(0,48,13,&yuanjin_yuan[0]);	//显示远程
					lcdwrite_chinese(0,62,13,&cheng[0]);
					break;
				default :break;
			}
			if(show_bit)	//判断是否是第一次显示
			{//第一次显示
				clr_fullscreen();//清屏
				lcdwrite_chinese(2,4,13,&kong[0]);	//显示端子属性	
				lcdwrite_chinese(2,17,13,&kongzhi_zhi[0]);
				lcdwrite_chinese(2,30,13,&quan[0]);
				lcdwrite_chinese(2,43,13,&shixian_xian[0]);
		
				lcdwrite_arrow(0,115,set_bit);	//显示箭头
				show_bit=0;
			}	
		}
		
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key: //至上一界面号
					if(upcount==0)
					{
						dis_number=14;	//返回操作权限设定界面
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;	
					}
					break;
				case down_key:	//至下一界面号
					if(downcount==0)
					{
						if(union_state.state_buf[11]==two_power)
						{
							dis_number=19;//双电源操作方式界面
						}
						else
						{
							dis_number=12;//电机方式启动时间界面
						}
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;
					}	
					break;
				case ok_key:
					set_bit=1;		//至设定状态标志,进入设定状态
					show_bit=1;		//重至第一次刷新标志
					set_data.char_data[1]=union_vlaue.revalue_buf[1];//初始化设定暂存器
					set_data.char_data[0]=0;
					break;
				case esc_key:
					dis_number=33; //至返回界面号
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					remote_sign.furbish=1;
					remote_type.value=1;
					dis_message_count=0;	
					break;
			}
		}
	}
	else	//设定界面显示
	{
		lcdwrite_arrow(0,115,set_bit);	//显示箭头
		switch(set_data.int_data)
		{
			case 0x00:
				lcdwrite_chinese(0,48,13,&beng[0]);	//显示本地
				lcdwrite_chinese(0,62,13,&dadi_di[0]);
				break;
			case 0x01:
				lcdwrite_chinese(0,48,13,&yuanjin_yuan[0]);	//显示远程
				lcdwrite_chinese(0,62,13,&cheng[0]);
				break;
			default :break;
		}
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key:
					if(upcount==0)
					{
						set_data.int_data++;
						if(set_data.int_data>1) set_data.int_data=0;	//上限控制
					}
					break;
				case down_key:
					if(downcount==0)
					{
						if(set_data.int_data==0) set_data.int_data=2;	//下限控制
						set_data.int_data--;
					}
					break;
				case ok_key:
					set_addh=0x00;		//组织发送数据
					set_addl=0x63;	
					set_valueh=set_data.char_data[0];
					set_valuel=set_data.char_data[1];
					remote_type.set=1;
					set_bit=0;		//至察看状态标志,进入察看状态
					show_bit=1;		//重至第一次刷新标志
					break;
				case esc_key:
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					break;
			}
		}
	}
}

void convert_time_setting(/*16*/)
{
	unsigned int temp;
	
	if(set_bit==0)
	{
		if(remote_sign.furbish==0)
		{
			remote_sign.furbish=1;
			remote_type.value=1;
			dis_message_count=1;	
			temp=union_vlaue.revalue_buf_int[0]*2;	
			lcd_partclr(0,40,40);	//显示转换时间
			data_switch_display(temp,2,0,74,6);
			if(show_bit)	//判断是否是第一次显示
			{//第一次显示
				clr_fullscreen();//清屏
				lcdwrite_chinese(2,4,13,&zhuan[0]);	//显示转换时间
				lcdwrite_chinese(2,17,13,&zhuanhuan_huan[0]);
				lcdwrite_chinese(2,30,13,&shijian_shi[0]);
				lcdwrite_chinese(2,43,13,&shijian_jian[0]);
				lcdwrite(1,81,6,&ascS[0]);	//显示S
				lcdwrite_arrow(0,115,set_bit);	//显示箭头
				show_bit=0;
			}
		}
		
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key: //至上一界面号
					if(upcount==0)
					{
						dis_number=23;		//转换方式设定
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;
					}	
					break;
				case down_key: //至下一界面号
					if(downcount==0)
					{
						dis_number=17;		//转换电流设定
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;
					}	
					break;
				case ok_key:
					set_bit=1;		//至设定状态标志,进入设定状态
					show_bit=1;		//重至第一次刷新标志
					set_data.int_data=union_vlaue.revalue_buf_int[0]*2;//初始化设定暂存器
					break;
				case esc_key:
					dis_number=33;//至返回界面号
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					remote_sign.furbish=1;
					remote_type.value=1;
					dis_message_count=0;	
					break;
			}
		}
	}
	else	//设定界面显示
	{
		lcdwrite_arrow(0,115,set_bit);	//显示箭头
		lcd_partclr(0,40,40);	//显示转换时间
		data_switch_display(set_data.int_data,2,0,74,6);

		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key:
					if(upcount<10)
					{
						set_data.int_data+=1;
						if(set_data.int_data>6000) set_data.int_data=100;	//上限控制
					}		
					else if(upcount<40)
					{
						set_data.int_data+=10;
						if(set_data.int_data>6000) set_data.int_data=100;	//上限控制
					}		
					else
					{
						set_data.int_data+=100;
						if(set_data.int_data>6000) set_data.int_data=100;	//上限控制
					}
					break;
				case down_key:
					if(downcount<10)
					{
						set_data.int_data-=1;
						if(set_data.int_data<100) set_data.int_data=6000;	//下限控制
					}
					else if(downcount<40)
					{
						set_data.int_data-=1;
						if(set_data.int_data<100) set_data.int_data=6000;	//下限控制
					}
					else
					{
						set_data.int_data-=1;
						if(set_data.int_data<100) set_data.int_data=6000;	//下限控制
					}
					break;
				case ok_key:
					set_addh=0x00;		//组织发送数据
					set_addl=0x5c;	
					set_data.int_data/=2;
					set_valueh=set_data.char_data[0];
					set_valuel=set_data.char_data[1];
					remote_type.set=1;
					set_bit=0;		//至察看状态标志,进入察看状态
					show_bit=1;		//重至第一次刷新标志
					break;
				case esc_key:
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					break;
			}
		}
	}
}

void convert_current_setting(/*17*/)
{
	unsigned int temp;
	
	if(set_bit==0)
	{
		if(remote_sign.furbish==0)
		{
			remote_sign.furbish=1;
			remote_type.value=1;
			dis_message_count=1;
				
			lcd_partclr(0,40,40);	//显示转换电流
			data_switch_display(union_vlaue.revalue_buf_int[0],0,0,74,6);
			if(show_bit)	//判断是否是第一次显示
			{//第一次显示
				clr_fullscreen();//清屏
				lcdwrite_chinese(2,4,13,&zhuan[0]);	//显示转换电流	
				lcdwrite_chinese(2,17,13,&zhuanhuan_huan[0]);
				lcdwrite_chinese(2,30,13,&dian[0]);
				lcdwrite_chinese(2,43,13,&liu[0]);
				lcdwrite(1,81,6,&bfh[0]);	//显示%
				lcdwrite_arrow(0,115,set_bit);	//显示箭头
				show_bit=0;
			}
		}
				
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key: //至上一界面号
					if(upcount==0)
					{
						dis_number=16;		//转换时间设定
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;
					}	
					break;
				case down_key:	//至下一界面号
					if(downcount==0)
					{
						temp=union_state.state_buf[11];
						if (temp==auto_transfor)
						{
							dis_number=29;		//自耦变压器转换模式设定
						}
						else
						{
							dis_number=28;		//欠压重起设定
						}
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
						remote_sign.furbish=1;
						remote_type.value=1;
						dis_message_count=1;
					}	
					break;
				case ok_key:
					set_bit=1;		//至设定状态标志,进入设定状态
					show_bit=1;		//重至第一次刷新标志
					set_data.int_data=union_vlaue.revalue_buf_int[0];//初始化设定暂存器
					break;
				case esc_key:
					dis_number=33;//至返回界面号
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					remote_sign.furbish=1;
					remote_type.value=1;
					dis_message_count=0;	
					break;
			}
		}
	}
	else	//设定界面显示
	{
		lcdwrite_arrow(0,115,set_bit);	//显示箭头
		lcd_partclr(0,40,40);	//显示转换电流
		data_switch_display(set_data.int_data,0,0,74,6);
		
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key:
					if(upcount<10)
					{
						set_data.int_data++;
						if(set_data.int_data>500) set_data.int_data=100;	//上限控制
					}
					else
					{
						set_data.int_data+=10;
						if(set_data.int_data>500) set_data.int_data=100;	//上限控制
					}
					break;
				case down_key:
					if(downcount<10)
					{
						set_data.int_data--;
						if(set_data.int_data<100) set_data.int_data=500;	//下限控制
					}
					else
					{
						set_data.int_data-=10;
						if(set_data.int_data<100) set_data.int_data=500;	//下限控制
					}
					break;
				case ok_key:
					set_addh=0x00;		//组织发送数据
					set_addl=0x5d;	
					set_valueh=set_data.char_data[0];
					set_valuel=set_data.char_data[1];
					remote_type.set=1;
					set_bit=0;		//至察看状态标志,进入察看状态
					show_bit=1;		//重至第一次刷新标志
					break;
				case esc_key:
					set_bit=0;		//至察看标志
					show_bit=1;

⌨️ 快捷键说明

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