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

📄 main.c

📁 这是本人有幸收集的最完整的10多级液晶显示程序模块
💻 C
📖 第 1 页 / 共 5 页
字号:
                            lcdwrite_chinese(2,17,10,&xiexian);
                            lcdwrite_chinese(2,27,9,&hanD);
                            lcdwrite_chinese(2,36,9,&hanO);
                            lcdwrite_chineseN(2,45,2,&zhuang);
                            lcdwrite_chineseN(2,71,2,&cha);
                            //lcdwrite_chineseN(0,4,4,&tongxun);
                            lcdwrite_chineseN(0,4,6,&baohu);
                      	   break;
                    case  3:
                            //lcdwrite_chineseN(2,4,4,&baohu);
                            if(union_state.state_buf[11]==protect)//保护模式
                            {
                              lcdwrite_chineseN(2,4,2,&xi);//系统
                              lcdwrite_chineseN(2,30,4,&can);//参数
                            }
                            else
                            {
                              lcdwrite_chineseN(2,4,2,&qidong);//起动参数
                              lcdwrite_chineseN(2,30,4,&can);//参数
                              lcdwrite_chineseN(0,4,2,&xi);//系统
                              lcdwrite_chineseN(0,30,4,&can);//参数
                            }

                      	   break;
                 //   case  4:
                  //          lcdwrite_chineseN(2,4,2,&xi);
                  //          lcdwrite_chineseN(2,30,4,&can);
                  //    	   break;
                 }
                }
                  break;
    case upkey:
               if(arrow_state1==0)
                 break;
               else
               {
                 arrow_state1--;
                 if(arrow_state1%2==1)
                  {
                    lcd_partclr(1,155,0);
                    lcdwrite_arrow(3,155,0);
                    break;
                  }
                 else
                    break;
               }
    case  downkey:
               if(union_state.state_buf[11]==protect)//保护模式
               {
                 if(SuperUser==1)
                 {
                   if(arrow_state1==8)
                   break;
                 }
                 else if(arrow_state1==6)
                   break;
               }
               else
               {
                 if(SuperUser==1)
                 {
                   if(arrow_state1==9)
                   break;
                 }
                 else if(arrow_state1==7)
                   break;
               }

               arrow_state1++;
                 if(arrow_state1%2==1)
                  {
                    lcd_partclr(3,155,0);
                    lcdwrite_arrow(1,155,0);
                    break;
                  }
                 else
                    break;
    case  enterkey:
                    if(SuperUser==1)
                    {
                     switch(arrow_state1)
                     {
                     	case  0:
                     	              dis_number=39;
                     	              arrow_state2=0;
                     	              break;
                     	case  1:
                     	              dis_number=34;
                     	              UserCheck=1;
                     	              arrow_state2=0;
                     	              break;
                        case  2:
                                      arrow_state2=0;
                                      dis_number=110;                  //报警查询
                     	              break;
                     	case  3:
                     	              arrow_state2=8;
                     	              dis_number=185;   //故障记录
                     	              break;
                     	case  4:
                     	              arrow_state2=0;
                     	              dis_number=186;  //操作记录
                     	              break;
                     	case  5:
                     	              dis_number=173;
                     	              arrow_state2=0;
                     	                            //DI/DO状态查询
                     	              break;
                     //	case  6:
                     	            //  arrow_state2=0;

                     	             // break;
                     	case  6:
                     	              dis_number=90;
                     	              arrow_state2=0;
                     	              break;
                     	case  7:
                     	              if(union_state.state_buf[11]==protect)//保护模式
                     	              {
                     	                dis_number=176;//系统参数

                     	              }
                     	            else
                     	            {
                     	              dis_number=14;//起动参数
                     	            }
                     	              arrow_state2=0;
                     	              break;
                     	case  8:
                     	              if(union_state.state_buf[11]==protect)//保护模式
                     	              {
                     	                dis_number=170;//输入输出
                     	              }
                     	              else
                     	              {
                     	                dis_number=176;
                     	              }
                     	              arrow_state2=0;
                     	              break;
                     	case  9:
                     	              dis_number=170;
                     	              arrow_state2=0;
                     	              break;
                     }
                   }
                   else
                   {
                   	 switch(arrow_state1)
                   	 {
                   	   case 0:        dis_number=34;
                   	                UserCheck=1;
                     	              arrow_state2=0;
                     	              break;
                   	   case 1:        arrow_state2=0;
                                      dis_number=110;                  //报警查询
                     	              break;
                   	   case 2:        arrow_state2=8;
                     	              dis_number=185;   //故障记录
                     	              break;
                   	   case 3:        arrow_state2=0;
                     	              dis_number=186;  //操作记录
                     	              break;
                   	   case 4:        dis_number=173;
                     	              arrow_state2=0;
                     	                            //DI/DO状态查询
                     	              break;
                   	  // case 5:        arrow_state2=0;

                     	  //            break;
                   	   case 5:         dis_number=90;
                     	              arrow_state2=0;
                     	              break;
                   	   case 6:
                   	                if(union_state.state_buf[11]==protect)//保护模式
                   	                {
                   	                  dis_number=176;//系统参数
                   	                }
                   	              else
                   	              {
                   	                dis_number=14;//起动参数

                   	              }
                                  arrow_state2=0;
                     	              break;
                   	   case 7:	       dis_number=176;
                     	              arrow_state2=0;
                     	              break;
                   	 }
                   }
                     break;

      case  esckey:
                     if(StartType==7)
                     {
                       dis_number=34;
                       arrow_state2=0;
                     }
                     else
                     {
                     dis_number=0;
                     OperateStateCheck();                                  //------起动准备好界面
                     }
                     break;
    }
}

void   menu_measure()
{
    data union  pre_type
          {
            unsigned int pre_type[1];
            unsigned long int pre_type_val;
          }pre_deal;
    switch(key)
    {
      case  nokey:
                 GetData();
                 clr_fullscreen();
                 switch(arrow_state2)
                 {
                  case 0:
                         data_switch_display(union_vlaue.revalue_buf_int[0],1,2,72,6);
                         data_switch_display(union_vlaue.revalue_buf_int[1],1,3,72,6);
                         data_switch_display(union_vlaue.revalue_buf_int[2],1,0,72,6);
                         data_switch_display(union_vlaue.revalue_buf_int[3],1,1,72,6);
                         lcdwrite(2,4,12,&charIa);
     		                 lcdwrite(2,80,24,&charbfhIr1);
     		                 lcdwrite(3,4,12,&charIb);
     		                 lcdwrite(3,80,24,&charbfhIr1);
     		                 lcdwrite(0,4,12,&charIc);
     		                 lcdwrite(0,80,24,&charbfhIr1);
     		                 old_dis_number=dis_number;
     		                 dis_number=51;
     		                 GetData();
     		                 dis_number=old_dis_number;
     		                 if(union_vlaue.revalue_buf_int[0]==0)
     		                   {lcdwrite(1,80,24,&charbfhIr1);lcdwrite(1,4,12,&charIg); }
     		                 else
     		                 {
     		                       lcdwrite(1,80,6,&charbfhIr1);					//%
     		                       lcdwrite(1,86,24,&charIdnm);					//Idnm
     		                       lcdwrite(1,4,12,&charIdnm);					//I

      		                 }
                         break;
                  case 1:
                         data_switch_display(union_vlaue.revalue_buf_int[0],0,0,40,6);
                         data_switch_display(union_vlaue.revalue_buf_int[1],0,0,101,6);
                         data_switch_display(union_vlaue.revalue_buf_int[2],0,1,40,6);

                         lcdwrite_chinese(2,4,13,&dian);
	                       lcdwrite_chinese(2,17,13,&liu);
	                       lcdwrite_chineseN(2,30,4,&buping);

	   	                   lcdwrite(0,4,6,&ascA);
	   	                   lcdwrite(0,50,6,&bfh);
	   	                   lcdwrite(0,65,6,&ascB);
	   	                   lcdwrite(0,111,6,&bfh);
	   	                   lcdwrite(1,4,6,&ascC);
	   	                   lcdwrite(1,50,6,&bfh);
                         break;
                  case 2:
                         data_switch_display(union_vlaue.revalue_buf_int[0],1,3,99,6);
                         data_switch_display(union_vlaue.revalue_buf_int[1],0,1,99,6);

                         lcdwrite_chinese(2,4,13,&yijing_yi);
                         lcdwrite_chinese(2,17,13,&yong);
                         lcdwrite_chineseN(2,30,2,&reliang_re);
                         lcdwrite_chinese(2,56,13,&liang);
	                       lcdwrite(3,105,6,&bfh);
	                       lcdwrite_chinese(0,4,13,&reliang_re);
	                       lcdwrite_chinese(0,17,13,&dian);
	                       lcdwrite_chinese(0,30,13,&zu);
	                       lcdwrite(1,105,9,&om);
                         break;
                  case 3:
                         data_switch_display(union_vlaue.revalue_buf_int[0],0,2,45,6);
                         lcdwrite(2,51,6,&ascV);
                         data_switch_display(union_vlaue.revalue_buf_int[1],0,2,104,6);
                         lcdwrite(2,110,6,&ascV);
                         data_switch_display(union_vlaue.revalue_buf_int[2],0,3,45,6);
                         lcdwrite(3,51,6,&ascV);
                         data_switch_display(union_vlaue.revalue_buf_int[3],2,3,102,6);
                         pre_deal.pre_type[0]= union_vlaue.revalue_buf_int[5];
                         pre_deal.pre_type[1]= union_vlaue.revalue_buf_int[4];
                         if(pre_deal.pre_type_val<=65535)
                         {
                           data_switch_display(union_vlaue.revalue_buf_int[4],0,0,50,6);
                           lcdwrite(0,56,6,&ascW);
                         }
                         else
                         {
                           pre_deal.pre_type_val/=100;
                           union_vlaue.revalue_buf_int[4]= pre_deal.pre_type[1];
                           data_switch_display(union_vlaue.revalue_buf_int[4],1,0,50,6);
                           lcdwrite(0,56,12,&charKW);
	  	                   }

	  	                   pre_deal.pre_type[0]= union_vlaue.revalue_buf_int[7];
                         pre_deal.pre_type[1]= union_vlaue.revalue_buf_int[6];
                         if(pre_deal.pre_type_val<=65535)
                         {
                           data_switch_display(union_vlaue.revalue_buf_int[6],0,1,50,6);
                           lcdwrite(1,56,18,&charkWh);
                         }
                         if(pre_deal.pre_type_val>65535&&pre_deal.pre_type_val<=65535000)
                         {
                           pre_deal.pre_type_val/=1000;
                           union_vlaue.revalue_buf_int[6]= pre_deal.pre_type[1];
                           data_switch_display(union_vlaue.revalue_buf_int[6],0,1,50,6);
                           lcdwrite(1,56,18,&charMWh);
	                       }

                         data_switch_display(union_vlaue.revalue_buf_int[8],2,0,112,6);
                         lcdwrite(2,1,18,&charUab);
	  	                 lcdwrite(2,62,18,&charUbc);
	  	                 lcdwrite(3,1,18,&charUca);
	  	                 lcdwrite(3,62,6,&asciif);
	  	                 lcdwrite(3,108,12,&charHz);	    //-----f:        Hz
	  	                 lcdwrite(0,1,6,&ascP);
	  	                 lcdwrite(1,1,6,&ascE);
	  	                 lcdwrite(0,78,12,&charPF);
	  	                 break;
	  	              }
	  	           break;
      case  upkey:
                  if(arrow_state2==0)
                    break;
                  else
                  {
                    arrow_state2--;
                    dis_number--;
                    break;
                  }
      case  downkey:
                  if((run_state&0x800)!=0)
                  {
                    if(arrow_state2==3)
                     break;
                  }
                  else if(arrow_state2==2)
                     {break;}

                  arrow_state2++;
                  dis_number++;
                  break;
      case  enterkey:
                 if(((StartType==7)||(StartType==8))&&(UserCheck==0))
                 {  //作为缺省界面
                  arrow_state1=0;
                  dis_number=33;
                 }
                 break;
      case  esckey:
                if(UserCheck==1)
                {  //由用户进入标志
                  dis_number=33;
                  UserCheck=0;
                }
                break;
      case  delkey:
                if(arrow_state2==3)
                {
                  set_addh=0x00;
                  set_addl=0x13;
                  set_valueh=0;
                  set_valuel=0;
                  WriteData();
                  set_addl++;
                  WriteData();
                }

                break;
    }
    //箭头
	if(arrow_state2!=0)lcdwrite(2,116,6,&up_arrow);			//上箭头
	if((arrow_state2<=1)||((arrow_state2==2)&&((run_state&0x800)!=0)))
	  lcdwrite(1,116,6,&down_arrow);			//下箭头
}


void menu_adjust(void)
{

 switch (key)
 {
   case nokey:
              GetData();
              clr_fullscreen();
               menu_adjust_display();
              break;

   case upkey:
              if(edit_state==1)
              {
                if(pre_set>=setmax)
                {
                  pre_set=setmax;
                  return;
                }
                if(upcount<10)
                  pre_set=pre_set+1;
                else if(upcount<20)
                {
                  if(pre_set>setmax-10)
                     pre_set=setmax ;
                  else
                     pre_set=pre_set+10;

                }
                     else if(upcount<30)
                     {
                       if(pre_set>setmax-100)
                         pre_set=setmax;
                       else
                        pre_set=pre_set+100;

                     }
                     else
                     {
                        if(pre_set>setmax-1000)
                          pre_set=setmax-1000;
                        else
                          pre_set=pre_set+1000;
                     }

              }
              else
              {

                switch (arrow_state2)
                {
                  case 4:
                         dis_number=39;
                         break;
                  case 8:
                         dis_number=41;
                         break;
                  case 12:
                         dis_number=43;
                         break;
                  case 16:
                         dis_number=46;
                         break;
                  case 19:
                         dis_number=49;
                         break;
                  case 21:
                         dis_number=51;
                         break;
                  case 22:
                          dis_number=52;
/*------------------------------debug-----------*/
                          break;
                  case 23:
                          dis_number=53;
/*------------------------------debug-----------*/

⌨️ 快捷键说明

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