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

📄 control.c

📁 这是本人有幸收集的最完整的10多级液晶显示程序模块
💻 C
📖 第 1 页 / 共 5 页
字号:
	   
/*
电机保护方式时该函数用于停车状态时的界面显示
测控方式时的默认界面显示
保护方式断开时的界面显示
双电源方式下的断开界面显示
所有工作方式均适用,界面包含接线状态、起动和工作方式、操作权限、转换方式等系统状态信息
*/
void stop_show(/*0*/)		//停车界面显示
{
	if(union_state.state_buf[0]&0x01) //停车状态
	{
	if(key==ok_key)			//如果有确认键,立即处理键
	{
		dis_number=33; //转向察看参数界面号
		show_bit=1;	//第一次进入标志
		remote_sign.furbish=1;//刷新标志
		dis_message_count=0;
		arrow_state1=0;				
	}
/******************先显示横线************************/	
	else if(remote_sign.furbish==0)	//数据接受完成开始刷新
	{
		remote_sign.furbish=1;
		remote_type.value=1;
		dis_message_count=3;

		if(show_bit)				//第一次刷新显示固定信息
		{
			clr_fullscreen();
			show_bit=0;
		}
/**************起动方式显示***********************/
//双电源方式显示
		if(union_state.state_buf[11]==two_power) //读取起动方式
		{
			lcd_partclr(0,51,39);
			lcd_partclr(1,51,39);
			switch(union_vlaue.revalue_buf[3]) //读取双电源操作方式
			{
				case 0x00:
					lcdwrite_chinese(0,0,13,&shou[0]);	//显示手投手复
					lcdwrite_chinese(0,12,13,&tou[0]);
					lcdwrite_chinese(0,25,13,&shou[0]);
					lcdwrite_chinese(0,38,13,&fu[0]);
					break;
				case 0x01:
					lcdwrite_chinese(0,0,13,&shou[0]);	//显示手投自复
					lcdwrite_chinese(0,13,13,&tou[0]);
					lcdwrite_chinese(0,26,13,&zi[0]);
					lcdwrite_chinese(0,39,13,&fu[0]);
					break;
				case 0x02:
					lcdwrite_chinese(0,0,13,&zi[0]);	//显示自投手复
					lcdwrite_chinese(0,13,13,&tou[0]);
					lcdwrite_chinese(0,26,13,&shou[0]);
					lcdwrite_chinese(0,39,13,&fu[0]);
					break;
				case 0x03:
					lcdwrite_chinese(0,0,13,&zi[0]);	//显示自投自复
					lcdwrite_chinese(0,13,13,&tou[0]);
					lcdwrite_chinese(0,26,13,&zi[0]);
					lcdwrite_chinese(0,39,13,&fu[0]);
					break;
				default : break;
			}
			if(union_state.state_buf[0]&0x04) //读权限标志
			{
				lcdwrite_chinese(0,96,13,&yuanjin_yuan[0]);//显示远程
				lcdwrite_chinese(0,109,13,&cheng[0]);
			}
				else
				{
					lcdwrite_chinese(0,96,13,&beng[0]);//显示本地
					lcdwrite_chinese(0,109,13,&dadi_di[0]);
				}
			lcd_partclr(2,9,113);
			lcd_partclr(3,9,113);
			if(union_state.state_buf[1]&0x01)
			{
				lcdwrite_chinese(2,35,13,&jie[0]);	//显示接线错误
				lcdwrite_chinese(2,48,13,&xian[0]);
				lcdwrite_chinese(2,62,13,&cuo[0]);
				lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
			}
				else
				{
					if(union_vlaue.revalue_buf[5]&0x01)	//读取故障状态
					{
						lcdwrite_chinese(2,35,13,&he[0]);	//显示合闸失败
						lcdwrite_chinese(2,48,13,&zha[0]);
						lcdwrite_chinese(2,62,13,&shibai_shi[0]);
						lcdwrite_chinese(2,75,13,&bai[0]);
					}
						else if(union_vlaue.revalue_buf[5]&0x02)
						{
							lcdwrite_chinese(2,35,13,&fen[0]);//显示分闸失败
							lcdwrite_chinese(2,48,13,&zha[0]);
							lcdwrite_chinese(2,62,13,&shibai_shi[0]);
							lcdwrite_chinese(2,75,13,&bai[0]);
						}
							else if(union_state.state_buf[0]&0x02)
							{
								lcdwrite_chinese(2,35,13,&jianxiu_jian[0]);//显示检修状态
								lcdwrite_chinese(2,48,13,&xiu[0]);
								lcdwrite_chinese(2,61,13,&zhuang[0]);
								lcdwrite_chinese(2,74,13,&tai[0]);	
							}
							else
							{
								switch(union_state.state_buf[1]&0x06)
								{
									case 0x02:
										lcdwrite_chinese(2,15,13,&zhu[0]);//显示主电源准备就绪
										lcdwrite_chinese(2,28,13,&dian[0]);
										lcdwrite_chinese(2,41,13,&yuan[0]);	
										lcdwrite_chinese(2,54,13,&zhun[0]);
										lcdwrite_chinese(2,67,13,&bei[0]);
										lcdwrite_chinese(2,80,13,&jiu[0]);
										lcdwrite_chinese(2,93,13,&xu[0]);
										break;
									case 0x04:
										lcdwrite_chinese(2,15,13,&bei[0]);//显示备电源准备就绪
										lcdwrite_chinese(2,28,13,&dian[0]);
										lcdwrite_chinese(2,41,13,&yuan[0]);	
										lcdwrite_chinese(2,54,13,&zhun[0]);
										lcdwrite_chinese(2,67,13,&bei[0]);
										lcdwrite_chinese(2,80,13,&jiu[0]);
										lcdwrite_chinese(2,93,13,&xu[0]);
										break;
									case 0x06:
										lcdwrite_chinese(2,9,13,&zhu[0]);	//显示主备电源准备就绪
										lcdwrite_chinese(2,22,13,&bei[0]);
										lcdwrite_chinese(2,35,13,&dian[0]);
										lcdwrite_chinese(2,48,13,&yuan[0]);	
										lcdwrite_chinese(2,61,13,&zhun[0]);
										lcdwrite_chinese(2,74,13,&bei[0]);
										lcdwrite_chinese(2,87,13,&jiu[0]);
										lcdwrite_chinese(2,100,13,&xu[0]);
										break;
									default : break;
								}
							}
				}
		}
//显示测控方式	
			else if (union_state.state_buf[11]==protect)
			{
				lcd_partclr(0,0,35);
				lcd_partclr(1,0,35);
				lcd_partclr(0,89,32);
				lcd_partclr(1,89,32);
				lcdwrite_chinese(0,35,13,&baohu[0]);	//显示保护方式
				lcdwrite_chinese(0,48,13,&hu[0]);
				lcdwrite_chinese(0,62,13,&fang[0]);
				lcdwrite_chinese(0,75,13,&shi[0]);
				lcd_partclr(2,9,113);
				lcd_partclr(3,9,113);
				if(union_state.state_buf[1]&0x01)
				{
					lcdwrite_chinese(2,35,13,&jie[0]);	//显示接线错误
					lcdwrite_chinese(2,48,13,&xian[0]);
					lcdwrite_chinese(2,62,13,&cuo[0]);
					lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
				}
					else
					{
						if(union_vlaue.revalue_buf[5]&0x01)	//读取故障状态
						{
							lcdwrite_chinese(2,35,13,&he[0]);	//显示合闸失败
							lcdwrite_chinese(2,48,13,&zha[0]);
							lcdwrite_chinese(2,62,13,&shibai_shi[0]);
							lcdwrite_chinese(2,75,13,&bai[0]);
						}
							else if(union_vlaue.revalue_buf[5]&0x02)
							{
								lcdwrite_chinese(2,35,13,&fen[0]);//显示分闸失败
								lcdwrite_chinese(2,48,13,&zha[0]);
								lcdwrite_chinese(2,62,13,&shibai_shi[0]);
								lcdwrite_chinese(2,75,13,&bai[0]);
							}
								else
								{
									lcdwrite_chinese(2,22,13,&he[0]);//合闸准备就绪
									lcdwrite_chinese(2,35,13,&zha[0]);
									lcdwrite_chinese(2,48,13,&zhun[0]);
									lcdwrite_chinese(2,61,13,&bei[0]);
									lcdwrite_chinese(2,74,13,&jiu[0]);
									lcdwrite_chinese(2,87,13,&xu[0]);
								}
					}
			}		
//显示起动方式和保护方式
				else if(union_state.state_buf[11]==measure_control)	
				{
			  	    clr_fullscreen();   
					lcdwrite_chinese(2,35,13,&ce[0]);//显示测控方式
					lcdwrite_chinese(2,48,13,&kong[0]);
					lcdwrite_chinese(2,62,13,&fang[0]);
					lcdwrite_chinese(2,75,13,&shi[0]);

				}
					else
					{
						lcd_partclr(0,51,39);
						lcd_partclr(1,51,39);
						switch(union_state.state_buf[11]) //根据起动方式处理显示界面
						{
						case direct_start:
							lcdwrite_chinese(0,0,13,&zhijie_zhi[0]);//显示直接起动
							lcdwrite_chinese(0,13,13,&jie[0]);
							lcdwrite_chinese(0,26,13,&qidong[0]);
							lcdwrite_chinese(0,39,13,&dong[0]);							
							break;
						case double_start: 
							lcdwrite_chinese(0,0,13,&zheng[0]);	//显示正反起动
							lcdwrite_chinese(0,13,13,&fan[0]);
							lcdwrite_chinese(0,26,13,&qidong[0]);
							lcdwrite_chinese(0,39,13,&dong[0]);								
							break;
						case two_speed_start: 
							lcdwrite_chinese(0,0,13,&shuang[0]);	//显示双速起动
							lcdwrite_chinese(0,13,13,&su[0]);
							lcdwrite_chinese(0,26,13,&qidong[0]);
							lcdwrite_chinese(0,39,13,&dong[0]);	
							break;
						case res_start: 
							lcdwrite_chinese(0,0,13,&dian[0]);	//显示电阻降压
							lcdwrite_chinese(0,13,13,&zu[0]);
							lcdwrite_chinese(0,26,13,&jiang[0]);
							lcdwrite_chinese(0,39,13,&dianya_ya[0]);
							
							if(union_vlaue.revalue_buf[1]&0x02)
							{
								lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
								lcdwrite_chinese(0,74,13,&liu[0]);	
							}
								else
								{
									lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式	
									lcdwrite_chinese(0,74,13,&shijian_jian[0]);	
								}	
							break;
						case ydelta_start: 
							lcdwrite_chinese(0,0,13,&y_delta[0]);	//显示星三角起动
							lcdwrite_chinese(0,12,13,&delta[0]);
							lcdwrite_chinese(0,26,13,&qidong[0]);
							lcdwrite_chinese(0,39,13,&dong[0]);
														
							if(union_vlaue.revalue_buf[1]&0x02)
							{
								lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
								lcdwrite_chinese(0,74,13,&liu[0]);	
							}
								else
								{
									lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式	
									lcdwrite_chinese(0,74,13,&shijian_jian[0]);	
								}
							break;
						case auto_transfor:  
							lcdwrite_chinese(0,0,13,&zi[0]);	//显示自耦降压
							lcdwrite_chinese(0,13,13,&ou[0]);	
							lcdwrite_chinese(0,26,13,&jiang[0]);
							lcdwrite_chinese(0,39,13,&dianya_ya[0]);
							
							if(union_vlaue.revalue_buf[1]&0x02)
							{
								lcdwrite_chinese(0,61,13,&dian[0]);//显示电流方式
								lcdwrite_chinese(0,74,13,&liu[0]);	
							}
								else
								{
									lcdwrite_chinese(0,61,13,&shijian_shi[0]);//显示时间方式	
									lcdwrite_chinese(0,74,13,&shijian_jian[0]);	
								}
							break;
						default : break;
						}	
						if(union_state.state_buf[0]&0x04)
						{
							lcdwrite_chinese(0,96,13,&yuanjin_yuan[0]);//显示远程
							lcdwrite_chinese(0,109,13,&cheng[0]);
						}
						else
						{
							lcdwrite_chinese(0,96,13,&beng[0]);//显示本地
							lcdwrite_chinese(0,109,13,&dadi_di[0]);
						}
						lcd_partclr(2,9,113);
						lcd_partclr(3,9,113);
						if(union_vlaue.revalue_buf[5]&0x01)	//读取故障状态
						{
							lcdwrite_chinese(2,35,13,&qidong[0]);//显示起动失败
							lcdwrite_chinese(2,48,13,&dong[0]);
							lcdwrite_chinese(2,61,13,&shibai_shi[0]);
							lcdwrite_chinese(2,74,13,&bai[0]);											
						}
						else if(union_vlaue.revalue_buf[5]&0x02)
						{
							lcdwrite_chinese(2,35,13,&ting[0]);	//显示停车失败
							lcdwrite_chinese(2,48,13,&che[0]);
							lcdwrite_chinese(2,62,13,&shibai_shi[0]);
							lcdwrite_chinese(2,75,13,&bai[0]);	
						}
							else
							{
								if(union_state.state_buf[1]&0x01)
								{
									lcdwrite_chinese(2,35,13,&jie[0]);	//显示接线错误
									lcdwrite_chinese(2,48,13,&xian[0]);
									lcdwrite_chinese(2,62,13,&cuo[0]);
									lcdwrite_chinese(2,75,13,&cuowu_wu[0]);
								}
								else if(union_state.state_buf[1]&0x02)
								{
									lcdwrite_chinese(2,22,13,&qidong[0]);//显示起动准备就绪
									lcdwrite_chinese(2,35,13,&dong[0]);	
									lcdwrite_chinese(2,48,13,&zhun[0]);
									lcdwrite_chinese(2,61,13,&bei[0]);
									lcdwrite_chinese(2,74,13,&jiu[0]);
									lcdwrite_chinese(2,87,13,&xu[0]);									
								}
								else
								{
									lcdwrite_chinese(2,35,13,&wan[0]);	//显示万龙电器
									lcdwrite_chinese(2,48,13,&wanlong[0]);
									lcdwrite_chinese(2,62,13,&dian[0]);
									lcdwrite_chinese(2,75,13,&dianqi_qi[0]);	
								}
							}
						
					}
	}
	}
	else		//非停车状态
	{
		if((union_state.state_buf[11]&0x07)>=two_power)
		{
			dis_number=7; //转向察看参数界面号
			show_bit=1;	//第一次进入标志
			set_bit=0;
			remote_sign.furbish=1;//刷新标志
			dis_message_count=5;
			remote_type.value=1;
		}
		else
		{
			dis_number=3;//转向察看参数界面号
			show_bit=1;	//第一次进入标志
			set_bit=0;
			remote_sign.furbish=1;//刷新标志
			dis_message_count=4;
			remote_type.value=1;			
		}
	}

}

/*
电机保护方式起动和运行界面显示
显示操作类型、起动运行状态,起动及运行参数等
测控方式没有此界面,因此,不包含在内
*/
void motor_run_show()
{
	unsigned char a;
	
	if(union_state.state_buf[0]&0x01) //停车状态
	{
		dis_number=0; //转向察看参数界面号
		show_bit=1;	//第一次进入标志
		set_bit=0;
		remote_sign.furbish=1;//刷新标志
		dis_message_count=3;
		remote_type.value=1;		
	}
	else		//非停车状态
	{
		if((union_state.state_buf[11]&0x07)>=two_power)
		{
			dis_number=7; //转向察看参数界面号
			show_bit=1;	//第一次进入标志
			set_bit=0;
			remote_sign.furbish=1;//刷新标志
			dis_message_count=5;
			remote_type.value=1;
		}
		else
		{
				
	if(key==ok_key)			//如果有确认键,立即处理键
	{
		dis_number=33; //转向察看参数界面号
		show_bit=1;	//第一次进入标志
		remote_sign.furbish=1;//刷新标志
		dis_message_count=0;
		arrow_state1=0;	
	}
	if(remote_sign.furbish==0)
	{
		remote_sign.furbish=1;//刷新标志
		dis_message_count=4;
		remote_type.value=1;
	if(show_bit)
	{
		clr_fullscreen();
		lcdwrite(1,0,1,&pointline[0]);
		lcdwrite(1,1,1,&pointline[0]);
		lcdwrite(1,119,1,&pointline[0]);
		lcdwrite(1,120,1,&pointline[0]);
		for(a=2;a<119;a++)
		{
			lcdwrite(1,a,1,&dline[0]);	//显示线
		}
		lcdwrite(0,0,6,&ascI[0]);	//显示I
		lcdwrite(0,6,4,&mh[0]);	//显示:
		lcdwrite(0,43,6,&bfh[0]);	//显示%
		
		lcdwrite(0,67,6,&ascC[0]);	//显示C
		lcdwrite(0,73,6,&asciic[0]);
		lcdwrite(0,79,4,&mh[0]);	//显示:
		lcdwrite(0,115,6,&bfh[0]);	//显示%
		show_bit=0;
		point_row=0;
	}

		lcd_partclr(2,39,14);
		lcd_partclr(3,39,14);
		switch (union_state.state_buf[11]) //读起动方式
		{
			case direct_start:
				switch (union_vlaue.revalue_buf[13]) //读操作方式
				{

⌨️ 快捷键说明

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