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

📄 display.c

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 C
📖 第 1 页 / 共 5 页
字号:
  {//-----OPEN
     HITESC(MAIN_MENU);
     if(pVar->KeyID==PLUSKEY)// PageDOWNKEY
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->YMMenuCount=3;
     };
     if(pVar->KeyID==MINUSKEY)// PageUPKEY
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 pVar->YMMenuCount=0;
     }
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 if(pVar->YMCursorCount==0) pVar->YMCursorCount++;
		else	      pVar->YMCursorCount=0;
     }
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 if(pVar->YMCursorCount==1)  pVar->YMCursorCount=0;
	      else	       pVar->YMCursorCount=1;
     };
     if(pVar->KeyID==OKKEY)  //确认键
     {
	 pVar->KeyID=NULLKEY;
	 i=pVar->YMCursorCount+pVar->YMMenuCount;
	 switch(i)
	 {
	       case 0x00:   pVar->MenuMode=MCDD_MENU;	    // 脉冲电度
			    pVar->action=NOUSE;
			    break;
		case 0x01:  pVar->MenuMode=JFDD_MENU;	    // 积分电度
			    pVar->action=NOUSE;
			    break;
	       default:     break;
	 };
     };
  };//-------OPEN
}

void MCDDMenu(void)  //脉冲电度
{
  int i,n,s,j;
  unsigned int z,x,y,k;
  unsigned long  li;
  if(pVar->action==NOUSE)
  {
     pVar->ymsum=ymnum*20;
     LcdClr();
     DspMenu(31,0,31,2);
     if(pVar->YMValueType==0)  DspMenu(32,0,32,2); //脉冲值
	 else		       DspMenu(33,0,33,2); //电度值
     Line(0,   0, 127,	0, 1);
     Line(0,  15, 127, 15, 1);
     Line(0,  60, 127, 60, 1);
     Line(127, 0, 127, 60, 1);
     Line(0,   0,   0, 60, 1);
     Line(45,  0,  45, 60, 1);
     pVar->action=OPEN;
     if(pVar->ymsum>4)
     {
       if(pVar->YMCount+5>pVar->ymsum) pVar->YMCount=pVar->ymsum-5;
       pVar->ymhn=0;
     }else
     {
       pVar->YMCount=0;
       pVar->ymhn=0XFF;
     }
     k=pVar->YMCount+1;
     for(i=0;i<5;i++)
     {
	 s=3*i;
	 n=k;
	 DatBuf[s+2]=n%10;  n=n/10;
	 DatBuf[s+1]=n%10;  n=n/10;
	 DatBuf[s+0]=n%10;
	 k++;
     }
     OutString(DatBuf,0,YMNumAdr,1);
  }
  if(pVar->action==OPEN)
  {  //-----OPEN
     HITESC(YM_MENU);
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->YMCount=pVar->YMCount+1;
     }
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	if(pVar->YMCount>0) pVar->YMCount=pVar->YMCount-1;
     };
     for(i=0;i<5;i++)
     {
	k=pVar->YMCount+i;
	n=i*10;
	if(pVar->YMValueType==0)   //脉冲值
	{
	     if(k<pVar->ymsum)
	     {
		li=YMBUF[k];
		StrBuf[n+9]=li%10; li=li/10;
		StrBuf[n+8]=li%10; li=li/10;
		StrBuf[n+7]=li%10; li=li/10;
		StrBuf[n+6]=li%10; li=li/10;
		StrBuf[n+5]=li%10; li=li/10;
		StrBuf[n+4]=li%10; li=li/10;
		StrBuf[n+3]=li%10; li=li/10;
		StrBuf[n+2]=li%10; li=li/10;
		StrBuf[n+1]=li%10; li=li/10;
		StrBuf[n+0]=li%10;
	     }else
	     {
		StrBuf[n+9]=66;
		StrBuf[n+8]=66;
		StrBuf[n+7]=66;
		StrBuf[n+6]=66;
		StrBuf[n+5]=66;
		StrBuf[n+4]=66;
		StrBuf[n+3]=66;
		StrBuf[n+2]=66;
		StrBuf[n+1]=66;
		StrBuf[n+0]=66;
	     }
	}else
	{

	}
     }
     OutString(StrBuf,0,YMDatAdr,1);
  }; //open
}

void JFDDMenu(void) //	积分电度
{
  int i,n,s,j;
  unsigned int z,x,y,k;
  unsigned long  li;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(31,0,31,2);
     DspMenu(33,0,33,2);       //电度值
     Line(0,   0, 127,	0, 1);
     Line(0,  15, 127, 15, 1);
     Line(0,  60, 127, 60, 1);
     Line(127, 0, 127, 60, 1);
     Line(0,   0,   0, 60, 1);
     Line(45,  0,  45, 60, 1);
     pVar->action=OPEN;
     pVar->maxywnum=pVar->lnsum*4;
     if(pVar->maxywnum>4)
     {
       if(pVar->YWCount+5>pVar->maxywnum) pVar->YWCount=pVar->maxywnum-5;
       pVar->ywhn=0;
     }else
     {
       pVar->YWCount=0;
       pVar->ywhn=0XFF;
     }
     k=pVar->YWCount;
     for(i=0;i<5;i++)
     {
	 s=5*i;
	 n=k/4+1;
	 DatBuf[s+1]=n%10;  n=n/10;
	 DatBuf[s+0]=n%10;
	 DatBuf[s+2]=32;   /*---32-"W"----*/
	 j=k%4;
	 switch(j)
	 {
	   case 0x00:DatBuf[s+3]=25; /*---25-"P"----*/
		     DatBuf[s+4]=65; /*---65-"+"---*/
		     break;
	   case 0x01:DatBuf[s+3]=25; /*---25-"P"----*/
		     DatBuf[s+4]=66; /*---66-"-"---*/
		     break;
	   case 0x02:DatBuf[s+3]=26; /*---26-"Q"----*/
		     DatBuf[s+4]=65; /*---65-"+"---*/
		     break;
	   case 0x03:DatBuf[s+3]=26; /*---26-"Q"----*/
		     DatBuf[s+4]=66; /*---66-"-"---*/
		     break;
	 }
	 k++;
     }
     OutString(DatBuf,0,YWNumAdr,1);
  }
  if(pVar->action==OPEN)
  {	//-----OPEN
	HITESC(YM_MENU);
	if(pVar->KeyID==DOWNKEY)// " V " 向下键
	{
	   pVar->KeyID=NULLKEY;
	   pVar->action=NOUSE;
	   pVar->YWCount=pVar->YWCount+1;
	}
	if(pVar->KeyID==UPKEY)// " ^ " 向上键
	{
	   pVar->KeyID=NULLKEY;
	   pVar->action=NOUSE;
	   if(pVar->YWCount>0) pVar->YWCount=pVar->YWCount-1;
	};
	if(pVar->KeyID==F1)// 修改状态
	{
	    pVar->KeyID=NULLKEY;
	    pVar->action=FLASH;
	    pVar->NewCursorOffset=0;
	    pVar->OldCursorOffset=0;
	    CursorGotoXy(StrBuf,YMDatAdr,1);
	    return;
	}
	for(i=0;i<5;i++)
	{
	    j=(pVar->YWCount+i)/4;
	    k=((pVar->YWCount+i)%4)*2+1;
	    li=YWBuf[j][k];
	    StrBuf[i*10+9]=li%10;	 li=li/10;
	    StrBuf[i*10+8]=li%10;	 li=li/10;
	    StrBuf[i*10+7]=li%10;	 li=li/10;
	    StrBuf[i*10+6]=(li%10)+150;  li=li/10;
	    StrBuf[i*10+5]=li%10;	 li=li/10;
	    StrBuf[i*10+4]=li%10;	 li=li/10;
	    StrBuf[i*10+3]=li%10;	 li=li/10;
	    StrBuf[i*10+2]=li%10;	 li=li/10;
	    StrBuf[i*10+1]=li%10;	 li=li/10;
	    StrBuf[i*10+0]=li%10;
	}
	OutString(StrBuf,0,YMDatAdr,1);
  }; //open
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==RIGHTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->NewCursorOffset++;
	 if(pVar->NewCursorOffset>49)pVar->NewCursorOffset=0;
	 CursorGotoXy(StrBuf,YMDatAdr,1);
     };
     if(pVar->KeyID==LEFTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->NewCursorOffset>0) pVar->NewCursorOffset--;
		       else	     pVar->NewCursorOffset=49;
	 CursorGotoXy(StrBuf,YMDatAdr,1);
     };
     if(pVar->KeyID==DOWNKEY)
     {
	pVar->KeyID=NULLKEY;
	pVar->NewCursorOffset=pVar->NewCursorOffset+10;
	if(pVar->NewCursorOffset>49)pVar->NewCursorOffset=0;
	CursorGotoXy(StrBuf,YMDatAdr,1);
     };
     if(pVar->KeyID==UPKEY)
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>10) pVar->NewCursorOffset=pVar->NewCursorOffset-10;
	CursorGotoXy(StrBuf,YMDatAdr,1);
     };
     if(pVar->KeyID==MINUSKEY)//  "-"=PageUPKEY
     {
	pVar->KeyID=NULLKEY;
	if((pVar->NewCursorOffset%10)==6)
	{
	   if(StrBuf[pVar->NewCursorOffset]>150)
	   {
	      StrBuf[pVar->NewCursorOffset]--;
	   }else
	   {
	      StrBuf[pVar->NewCursorOffset]=159;
	   }
	}else
	{
	   if(StrBuf[pVar->NewCursorOffset]>0)
	   {
	      StrBuf[pVar->NewCursorOffset]--;
	   }else
	   {
	      StrBuf[pVar->NewCursorOffset]=9;
	   }
	}
	CursorGotoXy(StrBuf,YMDatAdr,1);
     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	if((pVar->NewCursorOffset%10)==6)
	{
	   if(StrBuf[pVar->NewCursorOffset]<159)
	   {
	      StrBuf[pVar->NewCursorOffset]++;
	   }else
	   {
	      StrBuf[pVar->NewCursorOffset]=150;
	   }
	}else
	{
	   if(StrBuf[pVar->NewCursorOffset]<9)
	   {
	      StrBuf[pVar->NewCursorOffset]++;
	   }else
	   {
	      StrBuf[pVar->NewCursorOffset]=0;
	   }
	}
	CursorGotoXy(StrBuf,YMDatAdr,1);
     }
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 for(i=0;i<5;i++)
	 {
	    j=(pVar->YWCount+i)/4;
	    k=((pVar->YWCount+i)%4)*2+1;
	    li=StrBuf[i*10+0];	      li=li*10;
	    li=li+StrBuf[i*10+1];     li=li*10;
	    li=li+StrBuf[i*10+2];     li=li*10;
	    li=li+StrBuf[i*10+3];     li=li*10;
	    li=li+StrBuf[i*10+4];     li=li*10;
	    li=li+StrBuf[i*10+5];     li=li*10;
	    li=li+StrBuf[i*10+6]-150; li=li*10;
	    li=li+StrBuf[i*10+7];     li=li*10;
	    li=li+StrBuf[i*10+8];     li=li*10;
	    li=li+StrBuf[i*10+9];
	    YWBuf[j][k]=li;
	 }
     }
  }
}

void   FREQMenu(void)  // 频率显示
{
  int i;
  unsigned int	j,k;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(79,0,79,4);
     pVar->action=OPEN;
     return;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(MAIN_MENU);
     j=freqvalue;
     DatBuf[3]=j%10;  j=j/10;
     DatBuf[2]=j%10;  j=j/10;
     DatBuf[1]=j%10;  j=j/10;
     DatBuf[0]=j%10;
     OutString(DatBuf,0,FreqAdr,4);
  };
}

void   SSET_Menu(void)	// 系统配置
{
/*
  if(pVar->action==NOUSE)
  {
   LcdClr();
   DspMenu(6,0,6,2);
   DspMenu(7,SSetMenuCount*0x05,7,2);
   pVar->action=OPEN;
   LcdPutc(49,pVar->CursorCount*2+1,171,1);
  }
  if(pVar->action==OPEN)
  {//-----OPEN

     HITESC(MAIN_MENU);
     if(pVar->KeyID==0x11)// "+"=PageDown
     {
	pVar->KeyID=0x80;
	pVar->action=NOUSE;
	SSetMenuCount=SSetMenuCount+4;
	if(SSetMenuCount>0x0C) SSetMenuCount=0x0C;
     };
     if(pVar->KeyID==0x10)// "-"=PageUPKEY
     {
	pVar->KeyID=0x80;
	pVar->action=NOUSE;
	if(SSetMenuCount>0x03) SSetMenuCount=SSetMenuCount-4;
	   else SSetMenuCount=0;
     }
     if(pVar->KeyID==0x14)// " V " 向下键
     {
	pVar->KeyID=0x80;
	pVar->action=NOUSE;
	if(pVar->CursorCount>=3)
	{
	  SSetMenuCount=SSetMenuCount+1;
	  pVar->CursorCount=3;
	}else pVar->CursorCount++;
	if(SSetMenuCount>0x0C) SSetMenuCount=0x0C;
     }
     if(pVar->KeyID==0x15)// " ^ " 向上键
     {
	pVar->KeyID=0x80;
	pVar->action=NOUSE;
	if(pVar->CursorCount==0)
	{
	  if(SSetMenuCount>0x00) SSetMenuCount=SSetMenuCount-1;
	  pVar->CursorCount=0;
	}else pVar->CursorCount--;
     };
     if(pVar->KeyID==0x12)  //确认键
     {
	pVar->KeyID=SSetMenuCount+pVar->CursorCount;
	if(pVar->KeyID>0x0C) pVar->KeyID=0x0C;
     };
     switch(pVar->KeyID)
     {
	case 0x00:     pVar->MenuMode=SYSSET_MENU;  // 系统设置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       SMenuCount=0;
		       break;
	case 0x01:     pVar->MenuMode=LINESET_MENU; // 线路配置
		       pVar->KeyID=0x80;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       LineNum=0;
		       break;
	case 0x02:     pVar->MenuMode=JCSET_MENU;   //交流系数设置
		       pVar->KeyID=0x80; LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x03:     pVar->MenuMode=DCSET_MENU;   //直流系数设置
		       pVar->KeyID=0x80; LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x04:     pVar->MenuMode=YCSET_MENU;   // 遥测发送表设置
		       pVar->KeyID=0x80; LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x05:     pVar->MenuMode=YXDSET_MENU; // 遥信配置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x06:     pVar->MenuMode=YXSET_MENU; // 遥信设置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x07:     pVar->MenuMode=YMDSET_MENU; // 遥脉配置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x08:     pVar->MenuMode=YMSET_MENU; // 遥脉设置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
//		       SSetMenuCount=0;
		       break;
	case 0x09:     pVar->MenuMode=YKDSET_MENU; // 遥控配置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
		       break;
	case 0x0A:     pVar->MenuMode=YKSET_MENU; // 遥控设置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
		       break;
	case 0x0B:     pVar->MenuMode=BHCOM_MENU; // 保护配置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
		       break;
	case 0x0C:     pVar->MenuMode=BHSET_MENU; // 保护设置
		       pVar->KeyID=0x80;LineNum=0;
		       pVar->action=NOUSE;
		       break;
	default:       break;
     };
 };//-------OPEN
 */
}


void   MEMMenu(void)   // 内存显示
{
  int i;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     if(pVar->MemMenuCount>3)pVar->MemMenuCount=3;
     DspMenu(3, pVar->MemMenuCount*0x05,3,3);
     i=(pVar->MemMenuCount+pVar->MemCursorCount)*0x05+1;
     DspMenuCur(3,i,3,((pVar->MemCursorCount)*10)+2,4,0x83);
     DspMenu(4,0,4,3);//JM4+0,Adr4, Type=3 内存显示
     pVar->action=OPEN;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(MAIN_MENU);
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->MemMenuCount=3;
     };
     if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->MemMenuCount=0;
     }
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	if(pVar->MemCursorCount>=3)
	{
	  pVar->MemMenuCount=pVar->MemMenuCount+1;
	  pVar->MemCursorCount=3;

⌨️ 快捷键说明

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