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

📄 control.c

📁 这是本人有幸收集的最完整的10多级液晶显示程序模块
💻 C
📖 第 1 页 / 共 5 页
字号:
			switch(key)
			{
				case up_key:
					set_data_temp++;
					if(union_vlaue.revalue_buf[0])	//读取工作模式
					{
						if(set_data_temp>=9) set_data_temp=0;	//550模式,有双电源方式
					}
						else
						{
							if(set_data_temp>=8) set_data_temp=0;//500模式,无双电源方式
						}
					break;
				case down_key:
					if(union_vlaue.revalue_buf[0])
					{
						if(set_data_temp==0) set_data_temp=10;	//550模式,有双电源方式
					}
						else
						{
							if(set_data_temp==0) set_data_temp=9;//550模式,有双电源方式
						}
					set_data_temp--;
					break;
				case ok_key:
					//组织发送数据
					set_bit=0;		//至察看状态标志,进入察看状态
					show_bit=1;		//重至第一次刷新标志
					break;
				case esc_key:
					set_bit=0;		//至察看标志
					show_bit=1;		//重至第一次刷新标志
					break;
			}
		}
	}	
}
*/
//启动时间设定
void start_time_setting(/*12*/)
{
	unsigned int temp;
	
	if(set_bit==0)
	{
		if(remote_sign.furbish==0)
		{
			remote_sign.furbish=1;	//刷新标志
			dis_message_count=1;
			remote_type.value=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();//清屏
				if(union_state.state_buf[11]==two_speed_start)
				{
					lcdwrite_chinese(2,4,13,&di[0]);	//显示低速起动时限
					lcdwrite_chinese(2,17,13,&su[0]);
					lcdwrite_chinese(2,30,13,&qidong[0]);
					lcdwrite_chinese(2,43,13,&dong[0]);
					lcdwrite_chinese(2,56,13,&shijian_shi[0]);
					lcdwrite_chinese(2,69,13,&shixian_xian[0]);	
				}
				else
				{
					lcdwrite_chinese(2,4,13,&qidong[0]);	//显示起动时限	
					lcdwrite_chinese(2,17,13,&dong[0]);
					lcdwrite_chinese(2,30,13,&shijian_shi[0]);
					lcdwrite_chinese(2,43,13,&shixian_xian[0]);			
				}
				lcdwrite_arrow(0,115,set_bit);	//显示箭头
				lcdwrite(0,81,6,&ascS[0]);	//显示S
				show_bit=0;
			}
		}
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key:	//至上一界面号
					if(upcount==0)
					{
						dis_number=15;	//端子属性界面
						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];
						switch(temp)
						{
							case two_speed_start:
								dis_number=13;		//高速起动时间设定界面
								break;	
							case double_start:
								dis_number=30;		//操作连续设定界面
								break;
							case direct_start:
								dis_number=28;		//欠压重起设定界面	
								break;
							case res_start:
							case ydelta_start:
							case auto_transfor:
								dis_number=23;		//转换方式设定
								break;
						}
						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=0x5a;	
					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 hstart_time_setting(/*13*/)
{
	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,&gao[0]);	//显示高速起动时限
				lcdwrite_chinese(2,17,13,&su[0]);
				lcdwrite_chinese(2,30,13,&qidong[0]);
				lcdwrite_chinese(2,43,13,&dong[0]);
				lcdwrite_chinese(2,56,13,&shijian_shi[0]);
				lcdwrite_chinese(2,69,13,&shixian_xian[0]);
				
				lcdwrite_arrow(0,115,set_bit);	//显示箭头
				lcdwrite(1,81,6,&ascS[0]);	//显示S
				show_bit=0;
			}
		}
				
		if(key)				//处理按键
		{
			switch(key)
			{
				case up_key: //至上一界面号
					if(upcount==0)
					{
						dis_number=12;		//低速起动时间设定
						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=22;		//高速直接起动设定
						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=0x5b;	
					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 ctrlright_setting(/*14*/)
{
	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;
				case 0x02:
					lcdwrite_chinese(0,48,13,&jin[0]);	//显示禁止
					lcdwrite_chinese(0,62,13,&jinzhi_zhi[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)
					{
						//至上一界面号
						/*此界面为起动参数设置最高级菜单*/
						set_bit=0;		//至察看标志
						show_bit=1;		//重至第一次刷新标志
					}
					break;
				case down_key:
					if(downcount==0)
					{
						//至下一界面号,界面号15为端子属性界面
						dis_number=15;
						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];//初始化设定暂存器
					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.char_data[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;
			case 0x02:
				lcdwrite_chinese(0,48,13,&jin[0]);	//显示禁止
				lcdwrite_chinese(0,62,13,&jinzhi_zhi[0]);
				break;

⌨️ 快捷键说明

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