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

📄 board.c

📁 单片机控制面板程序
💻 C
📖 第 1 页 / 共 5 页
字号:
              confirm=0;
           switch(confirm)
             {
              case 0:
                {
                 point_flag=0;
				 high_led_number=4;
                 led_pos=0;
				 if(fault_data==0)
				   {
				    led01=10;//F.--
                    led02=10;
                    led03=15;
                    led04=19;
			        fault_flash_flag=0;
				   }
				 else
                    fault_pro();
                 break;
                }
              case 0x10:
                {
                 fault_flash_flag=0;//关闭闪烁效果
				 fault_first_flag=1;//不在连续进入故障检测程序
				 point_flag=0;
                 high_led_number=4;
                 led_pos=1;
                 led01=1;
                 led02=0;
                 led03=10;
                 led04=14;
                 break;
                }
              case 0x20:
                {
                 fault_flash_flag=0;//关闭闪烁效果
				 fault_first_flag=1;//不在连续进入故障检测程序
				 point_flag=0;
				 high_led_number=4;
                 led_pos=1;
                 led01=1;
                 led02=0;
                 led03=10;
                 led04=13;
                 break;
                }
			  case 0x30:
                {
                 fault_flash_flag=0;//关闭闪烁效果
				 fault_first_flag=1;//不在连续进入故障检测程序
				 point_flag=0;
				 high_led_number=4;
                 led_pos=1;
                 led01=1;
                 led02=0;
                 led03=10;
                 led04=28;
                 break;
                }
              default:
                 break;
              }
            }
           break;
           }
       case ENTER_KEY:
          {
           key_sample_count_h=0;
           if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
             {
			  switch(confirm)
                 {
                  case 0x10:
                    {
                    send_ask_set_flag=0;
					send_ask_fault_flag=0;
					show_mode();
                    break;
                    }
                  case 0x20:
                    {
					send_ask_set_flag=1;
                    send_ask_fault_flag=0;
					send_kind=send_kind|SEND_FU;
					set_mode();
                    break;
                    }
                  case 0x21:
                    {
                    //if(led_com_flag==0)//只有在运行未使能时才能对设置参数进行修改
                    //{
                     if(set_rev_flag==1)
					 {
					 point_flag=0;
					 high_led_number=4;
					 send_ask_set_flag=0;
					 send_ask_fault_flag=0;
					 set_rev_flag=0;
					 send_kind=send_kind|SEND_SET;
					 set_value();
                     confirm=0x20;
                     led04=13;
                     led03=10;
                     led01=led_data%10;
                     led02=led_data/10;
                       led_pos=1;
					 }
                    //}
                     break;
                    }
				  case 0x30:
				    {
					 send_ask_set_flag=0;
					 send_ask_fault_flag=1;
					 fault_mode();
					 send_kind=send_kind|SEND_FAULT_STACK;
					 break;
					 }
                 default:break;
                 }
              }
           break;
          }
       case ADD_KEY:
          {
          send_ask_set_flag=0;
		  send_ask_fault_flag=0;
          key_sample_count_h=0;
		  if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
             {
              switch(led_pos)
                 {
                  case 1:
                     {
                      led01=led01+1;
                      if(led01==0xa)
                        led01=0;
                      break;
                      }
                 case 2:
                     {
                      led02=led02+1;
                      if(led02==0xa)
                        led02=0;
                      break;
                      }
                 case 3:
                     {
                      led03=led03+1;
                      if(led03==0xa)
                        led03=0;
                      break;
                      }
                 case 4:
                     {
                     if((led04==10)||(led04==15))
					 {
					 if(led04==10)
                         led04=15;
                      else
                         led04=10;
					  }
					 else
					  {
                       led04=led04+1;
                      if(led04==0xa)
                        led04=0;
					   }
                      break;
                      }
                 default:break;
                 }
              }
          break;
          }
       case SHIFT_ADD_KEY:
          {
          send_ask_set_flag=0;
		  send_ask_fault_flag=0;
          key_sample_count_h=0;
		  if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
            {
             switch(confirm)
               {
                case 0x10:case 0x20:case 0x30:
                   {
                    led_pos=led_pos+1;
                    if(led_pos==3)
                       led_pos=1;
                    break;
                   }
                case 0x21:
                   {
                    switch(high_led_number)
					 {
					  case 4:
					  {
				      led_pos=led_pos+1;
                      if(led_pos==5)
                         led_pos=1;
					  break;
					  }
                      case 3:
					  {
				      led_pos=led_pos+1;
                      if(led_pos==4)
                         led_pos=1;
					  break;
					  }
					  case 2:
					  {
				      led_pos=led_pos+1;
                      if(led_pos==3)
                         led_pos=1;
					  break;
					  }
					  case 1:
					  {
				      led_pos=led_pos+1;
                      if(led_pos==2)
                         led_pos=1;
					  break;
					  }
					  default:break;
					 }
                  break;
                  }
                default:break;
                }
             }
          break;
          }
       case COPY_KEY:
          {
          key_sample_count_h++;
          if(key_sample_count_h>5)
             {
              key_sample_count_h=0;
              if(function_key_kind==0)//只有在没有其它功能键按下的前提下才能复制参数
                {
                 function_key_kind=1;//1表示是参数复制键
                 led_data=1;//参数号从1开始
                } 
              }
          break;
          }
       case PASTE_KEY:
          {
          key_sample_count_h++;
          if(key_sample_count_h>5)
             {
              key_sample_count_h=0;
              if(function_key_kind==0)//只有在没有其它功能键按下的前提下才能复制参数
                {
                 function_key_kind=2;//2表示是参数粘帖键
                 led_data=1;//参数号从1开始
                } 
              }
          break;
          }
       case SUB_KEY:
         {
          send_ask_set_flag=0;
		  send_ask_fault_flag=0;
          key_sample_count_h=0;
		  if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
             {
              switch(led_pos)
                 {
                  case 1:
                     {
                      led01=led01-1;
                      if(led01<0)
                        led01=9;
                      break;
                      }
                 case 2:
                     {
                      led02=led02-1;
                      if(led02<0)
                        led02=9;
                      break;
                      }
                 case 3:
                     {
                      led03=led03-1;
                      if(led03<0)
                        led03=9;
                      break;
                      }
                 case 4:
                     {
                     if((led04==10)||(led04==15))
 					 {
					 if(led04==10)
                         led04=15;
                      else
                         led04=10;
					  }
                      else
					   {
					   led04=led04-1;
                       if(led04<0)
                        led04=9;
					   }
                      break;
                      }
                 default:break;
                 }
              }
          break;
          }
       case SHIFT_SUB_KEY:
          {
          send_ask_set_flag=0;
		  send_ask_fault_flag=0;
          key_sample_count_h=0;
		  if((confirm!=0)&&(confirm!=0x11)&&(confirm!=0x31))
            {
             switch(confirm)
               {
                case 0x10:case 0x20:case 0x30:
                   {
                    led_pos=led_pos-1;
                    if(led_pos==0)
                       led_pos=2;
                    break;
                   }
                case 0x21:
                   {
                    switch(high_led_number)
					 {
					  case 4:
					  {
					  led_pos=led_pos-1;
                      if(led_pos==0)
                        led_pos=4;
					  break;
					  }
					  case 3:
					  {
					  led_pos=led_pos-1;
                      if(led_pos==0)
                        led_pos=3;
					  break;
					  }
					  case 2:
					  {
					  led_pos=led_pos-1;
                      if(led_pos==0)
                        led_pos=2;
					  break;
					  }
					  case 1:
					  {
					  led_pos=led_pos-1;
                      if(led_pos==0)
                        led_pos=1;
					  break;
					  }
					  default:break;
					  }
                    break;
                   }
                default:break;
                }
			 }
		  break;
          }
       case RESET_KEY:
           {
           if(confirm==0x31)//只有在故障查看菜单中才能进行软件复位
		      {  
              if(key_sample_count_h>5)
                {
                 key_sample_count_h=0;
                 if(function_key_kind==0)//没有其它功能键按下的情况下才能处理复位
                   {
                    function_key_kind=4;//4表示是复位键
                    send_kind=send_kind|SEND_KEY;
		   
		            send_ask_set_flag=0;
		            send_ask_fault_flag=0;
		            point_flag=0;
		            high_led_number=4;
                    led_pos=0;
		            confirm=0;
		
		            led01=10;//F.--
                    led02=10;
                    led03=15;
                    led04=19;
		            fault_flash_flag=0;
		            fault_data=0;
                   }
                }
              }
		   break;
          }
       default:
          {
           key_sample_count_h=0;
           break;
          }
     }
}
//================================
//程序说明:读取显示序号
//================================
show_mode()
{
    led_data=led01+led02*10;
	if(led_data>40)//参数个数限幅
	   led_data=40;
    if(led_data==0)//参数个数限幅
	   led_data=1;

    led_pos=0;
    confirm=0x11;
}
//================================
//程序说明:读取设置序号
//================================
set_mode()
{
    led_data=led01+led02*10;

//以后只要在这里进行修改,即可以完成厂家面板和用户面板的区别。

/*	   if(led_data>18)//参数个数限幅
	    led_data=18;
	   if(led_data==0)//参数个数限幅
	    led_data=1;*/
	  
	if(led_data>70)
	   led_data=70;
	if(led_data==0)//参数个数限幅
	   led_data=1;

    led_pos=1;
    confirm=0x21;
}
//========================================================
//程序说明:读取主机故障堆栈,序号在前,表示最新发生的故障
//========================================================
fault_mode()
{
    led_data=led01+led02*10;
	if(led_data>20)//参数个数限幅
	   led_data=20;

⌨️ 快捷键说明

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