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

📄 mmi.c

📁 msp430与图形液晶接口(12232),需要自己定义字库
💻 C
📖 第 1 页 / 共 5 页
字号:
      		current_page=YX_PAGE;
      		page_point=0;
      		drf_flag=0x55;
      	}
      	else if(pp==2 && DEVICE_TYPE!=61)			//主菜单下选定传动
      	{      		
      		current_page=PW_PAGE;
      		pass_flag=1;
      		pass_word=1000;      		
      		cursor_point=0;
      		cursor_state=0; 	      					
      	}
      	else if(pp==3)			//主菜单下选定修改
      	{      		
      		current_page=PW_PAGE;
      		pass_flag=2;
      		pass_word=1000;      		
      		cursor_point=0;
      		cursor_state=0; 	      					
      	}
      	else if(pp==4 && DEVICE_TYPE!=61)			//主菜单下选定查询
      	{      		
      		current_page=ASP_PAGE;         		
      		page_point=0;
      		asp_line_point=0;      			    					
      	}
      	else if(pp==5)			//主菜单下选定通讯      	    		
      		current_page=COM_PAGE;      	
      	else if(pp==6)			//主菜单下选定调试
      	{      		
      		current_page=RDR_PAGE;
      		cursor_point=0;
      		cursor_state=0;      		    					
      	}
      	else if(pp==7)				//主菜单下选定调试
      		current_page=HELP_PAGE;
      }
 	  } 		
 	}
 	else if (current_page==YC_PAGE)	//测量页
 	{
 		if (key==KEY_ESC)
 		{
 			current_page=MAIN_PAGE;
 			page_point=0;
 			arrow_state=0;
 		}
 		else if(key==KEY_RIGHT || key==KEY_DOWN) 					
 			page_point=(	page_point+1) % YC_PAGE_NUM;
 		else if(key==KEY_LEFT || key==KEY_UP)
 		{
 			if (page_point==0) page_point=YC_PAGE_NUM-1;
 			else page_point--; 		
 		}			
 		
 	}
 	else if (current_page==YX_PAGE)	//状态页
 	{
 		if (key==KEY_ESC)
 		{
 			current_page=MAIN_PAGE;
 			page_point=0;
 			arrow_state=0;
 		}		
 		else if(key==KEY_RIGHT || key==KEY_DOWN) 					
 			page_point=(	page_point+1) % YX_PAGE_NUM;
 		else if(key==KEY_LEFT || key==KEY_UP)
 		{
 			if (page_point==0) page_point=YX_PAGE_NUM-1;
 			else page_point--; 		
 		}			
 		
 	}
 	else if(current_page==PW_PAGE)	//密码页
 	{
 		if (key==KEY_ESC)
 		{ 		
 			current_page=MAIN_PAGE;
 			page_point=0;
 			arrow_state=0;
 		}
 		else if(cursor_state==0 && key==KEY_ENTER)
 		{
 			cursor_point=0;
 			cursor_state=0x55;
 		} 		
 		else if(cursor_state==0x55)
 		{
 			if (key==KEY_LEFT )
 				cursor_point=(cursor_point+4-1) % 4;
 			else if (key==KEY_RIGHT  )
 				cursor_point=(cursor_point+1) % 4;
 			else if (key==KEY_UP || key==KEY_DOWN)
      {
        dec_to_4bit(&bit[0],pass_word);	 	
        if (key==KEY_UP) 	
          bit[cursor_point]=(bit[cursor_point]+1)	% 10;
        else bit[cursor_point]=(bit[cursor_point]+10-1)	% 10;
        pass_word=bit4_to_dec(&bit[0]); 	
      }		
      else if (key==KEY_ENTER)
      {
      	cursor_state=0;
      	if(pass_word==1001)
      	{
	        if (pass_flag==1)	//传动密码页
	        {
	          pass_flag=0;	         	
	          current_page=YK_PAGE;
	          arrow_point=0;
	          arrow_state=0;		            					
	        }
	        else if(pass_flag==2)	//修改密码页
	        {
	          pass_flag=0;
	          current_page=MODIFY_PAGE;
	          arrow_point=0;
	          arrow_state=0;					
	        } 	
      	}			
 			}	
 		}
 	}
 	else if (current_page==YK_PAGE ) 	//传动菜单
 	{
 	  if  ( arrow_state==0)	//传动菜单下无光标选定
 	  {
      if (key==KEY_ENTER)
      {
        arrow_state=0x55;
        arrow_point=0;
      }
      else if(key==KEY_LEFT) page_point=(page_point+YK_PAGE_NUM-1) % YK_PAGE_NUM;
      else if(key==KEY_RIGHT) page_point=(page_point+1) % YK_PAGE_NUM;
      else if(key==KEY_ESC)
      {
	 			current_page=MAIN_PAGE;
	 			page_point=0;
	 			arrow_state=0;
 			}
 		}
 		else	//传动菜单下有光标选定
 		{
      if (key==KEY_ESC)
      {
        arrow_state=0;
      }
      #if DEVICE_TYPE==11 || DEVICE_TYPE==21	|| DEVICE_TYPE==35 //线路、电容器
      else if( (key==KEY_RIGHT || key==KEY_LEFT) && page_point==0 )
      {
     		if (arrow_point==0 || arrow_point==2)
        	arrow_point++;
        else
        	arrow_point--;
      }
     	else if (key==KEY_UP || key==KEY_DOWN)
      {      	
     		if (arrow_point==0 || arrow_point==1)
        	arrow_point+=2;
        else
        	arrow_point-=2;
      }
      #endif
      #if DEVICE_TYPE==45  || DEVICE_TYPE==46 //低后备  高后备
      else if( (key==KEY_RIGHT || key==KEY_LEFT))
      {
     		if (arrow_point==0 || arrow_point==2|| arrow_point==4)
        	arrow_point++;
        else
        	arrow_point--;
        if (arrow_point==6) arrow_point=7;
      }
     	else if (key==KEY_UP || key==KEY_DOWN)
      {      	
     		if (arrow_point==0 || arrow_point==1|| arrow_point==4)
        	arrow_point+=2;
        else
        	arrow_point-=2;
        if (arrow_point==6) arrow_point=5;
      }
      #endif
      else if (key==KEY_ENTER)
      {
      	pp=arrow_point+page_point*4;
      	if (pp==0) 	      //分闸
      	{
      		coe_data=0x50;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==2) 	//合闸
      	{
      		coe_data=0x60;
      		coe_data_bak=coe_data;
      	}
				#if DEVICE_TYPE==11 || DEVICE_TYPE==21	//线路、电容器
      	else if (pp==1) 	//控一
      	{
      		coe_data=0x10;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==3)		//控二
      	{
      		coe_data=0x20;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==4) 	//控三
      	{
      		coe_data=0x30;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==6)		//控四
      	{
      		coe_data=0x40;
      		coe_data_bak=coe_data;
      	}
				#endif	
				#if DEVICE_TYPE==45  || DEVICE_TYPE==46		//低后备  高后备
      	else if (pp==1) 	//跳母联
      	{
      		coe_data=0x40;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==3)		//跳高侧
      	{
      		coe_data=0x10;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==4)		//跳三侧
      	{
      		coe_data=0x18;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==5) 	//主变升
      	{
      		coe_data=0x20;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==7)		//主变降
      	{
      		coe_data=0x30;
      		coe_data_bak=coe_data;
      	}
      	#endif	
				#if DEVICE_TYPE==35 								//差动
      	else if (pp==1) 	//跳母联
      	{
      		coe_data=0x40;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==3)		//跳低侧
      	{
      		coe_data=0x10;
      		coe_data_bak=coe_data;
      	}
      	else if (pp==4)		//跳三侧
      	{
      		coe_data=0x18;
      		coe_data_bak=coe_data;
      	}
				#endif	
				current_page=YK_CONFIG_PAGE;				
				arrow_state=0;
      }
    }
  }
  else if(current_page==YK_CONFIG_PAGE)	//YK确认菜单
  {
  	if (arrow_state==0 && key==KEY_ENTER)
  	{
  		arrow_point=0;
  		arrow_state=0x55;  	
  	}
  	else if (arrow_state==0 && key==KEY_ESC)
  	{
  		current_page=YK_PAGE;
      arrow_state=0;
  	}
  	else if (arrow_state==0x55)
  	{
  		if(key==KEY_ENTER )
  		{
  			if (arrow_point==0)		//确认
  			{
	  			coe_flag=0x55;	
	      	current_page=COE_WAIT_PAGE;
      	}
      	else			//取消
      	{
      		current_page=YK_PAGE;
      		arrow_state=0;
      	}
      }
      else if(key==KEY_LEFT ||key== KEY_RIGHT)
      	arrow_point=(arrow_point+1) &1;
  	}
  }
  else if (current_page==MODIFY_PAGE) 	//修改菜单
 	{
 	  if  ( arrow_state==0)	//修改菜单下无光标选定
 	  {
      if (key==KEY_ENTER)
      {
        arrow_state=0x55;
        arrow_point=0;
      }
      else if(key==KEY_ESC)
      {
	 			current_page=MAIN_PAGE;
	 			page_point=0;
	 			arrow_state=0;
 			}
 		}
 		else	//修改菜单下有光标选定
 		{
      if (key==KEY_ESC)
      {
        arrow_state=0;
      }
      else if (key==KEY_RIGHT || key==KEY_LEFT)
      {
     		if (arrow_point==0 || arrow_point==2)
        	arrow_point++;
        else
        	arrow_point--;
      }
     	else if (key==KEY_UP || key==KEY_DOWN)
      {
     		if (arrow_point==0 || arrow_point==1)
        	arrow_point+=2;
        else
        	arrow_point-=2;
      }
      else if (key==KEY_ENTER)
      {
      	if (arrow_point==0)	//光标指向时间
      	{      		
 					current_page=TIME_PAGE;
 					ajt_flag=0x55;
      	}
      	else if(arrow_point==1)	//光标指向定值
      	{      		
      		#if DEVICE_TYPE==61			//361从液晶FLASH中读定值
      		current_page=SET_PAGE;		
      		set_data[0]=my_set.id;			
      		page_point=0;
					#else    		
					current_page=READ_WAIT_PAGE;
      		rds_flag=0x55;
      		read_flag=0x10;
      		#endif
      	}
      	else if(arrow_point==2)	//光标指向系数
      	{
      		current_page=READ_WAIT_PAGE;
      		#if DEVICE_TYPE==61			//361从液晶FLASH中读系数      		
					current_page=KCH_PAGE;
					page_point=0;
					#else    		
					current_page=READ_WAIT_PAGE;
      		rdk_flag=0x55;
      		read_flag=0x20;
      		#endif
      	}
      	else if(arrow_point==3)	//光标指向表底 无操作
      	{
					current_page=MODIFY_PAGE;
					arrow_point=0;
					arrow_state=0;		
      	}
      }
    }
  }
  else if (current_page==TIME_PAGE)	//时间
  {
  	if (key==KEY_ESC)
  	{
 			current_page=MODIFY_PAGE; 			
 			arrow_state=0;
	 	}
  }
  else if (current_page==KCH_PAGE)	//系数
  {
  	if (key==KEY_ESC && cursor_state==0)
  	{
 			current_page=MODIFY_PAGE; 			
 			arrow_state=0;
	 	}
	 	else if(key==KEY_ENTER)
	 	{
	 		if (cursor_state==0x55)
	 		{
	 			cursor_state=0;	 			
	 			cursor_line++;	cursor_line&=1;		
	 		}
	 		else
	 		{
	 			cursor_state=0x55;
	 			cursor_point=0;	 			
	 		}
	 	}
	 	else if(cursor_state==0 && (key==KEY_LEFT || key==KEY_RIGHT))
	 	{
	 		if (key==KEY_RIGHT) page_point=(page_point+1) % KCH_PAGE_NUM;
	 		else  page_point=(page_point+KCH_PAGE_NUM-1) % KCH_PAGE_NUM;
	 	}
	 	else if (cursor_state==0 && key==KEY_UP )	//写入系数
	 	{
	 		#if DEVICE_TYPE==61		//361装置无存储EEP,系数存在液晶里	
	 		for(i=0;i<8;i++)	 		
	 		{
	 			wt_buf[2*i]=kch_data[i] & 0xff;
	 			wt_buf[2*i+1]=kch_data[i] >>8;
	 		}	 				
			write_430_mem(KCH_ADDR,16,&wt_buf[0]);
			write_eep_ok=0x55;
			current_page=MODIFY_RETUREN_PAGE;
		 	#else
	 		wrk_flag=0x55;	
	 		#endif 			
	 	}
	 	else if(cursor_state==0x55)
	 	{
	 		if (key==KEY_LEFT) cursor_point=(cursor_point+4-1) & 3 ;
	 		else if (key==KEY_RIGHT)cursor_point=(cursor_point+1) & 3 ;
	 		else if (key==KEY_UP || key==KEY_DOWN)
	 		{
	 			dd=kch_data[page_point*2+cursor_line];
	 			dec_to_4bit(&bit[0],dd);	
	 			if (key==KEY_UP) 	
         	bit[cursor_point]=(bit[cursor_point]+1)	% 10;
        else 	bit[cursor_point]=(bit[cursor_point]+10-1)	% 10;	
       	dd=bit4_to_dec(&bit[0]);
       	kch_data[page_point*2+cursor_line]=dd;
	 		}
	 		else if(key==KEY_ESC ) cursor_state=0;	
	 		
	 	}
  }
  else if(current_page==SET_PAGE)   //定值页
  {
  	if (cursor_state==0)
  	{
	  	if (key==KEY_ESC )
	  	{
	 			current_page=MODIFY_PAGE; 			
	 			arrow_state=0;
		 	}
		 	else if(key==KEY_LEFT || key==KEY_RIGHT)
		 	{
		 		if (key==KEY_RIGHT) page_point=(page_point+1) % SET_PAGE_NUM;
		 		else  page_point=(page_point+SET_PAGE_NUM-1) % SET_PAGE_NUM;
		 	}
		 	else if(key==KEY_ENTER)
		 	{		 		
	 			cursor_state=0x55;
	 			type=set_type[page_point*2+cursor_line];
	 			if (type==0x55) //此行无编

⌨️ 快捷键说明

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