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

📄 display.c

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 C
📖 第 1 页 / 共 5 页
字号:
	}else pVar->MemCursorCount++;
	if(pVar->MemMenuCount>0x03) pVar->MemMenuCount=0x03;
     }
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 if(pVar->MemCursorCount==0)
	 {
	   if(pVar->MemMenuCount>0x00) pVar->MemMenuCount=pVar->MemMenuCount-1;
	   pVar->MemCursorCount=0;
	 }else pVar->MemCursorCount--;
     };
     if(pVar->KeyID==OKKEY)  //确认键
     {
	 pVar->KeyID=NULLKEY;
	 i=pVar->MemCursorCount+pVar->MemMenuCount;
	 switch(i)
	 {
	    case 0x00:	 pVar->MenuMode=MEMReg1_MENU;	    // 寄存器Ⅰ
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x01:	 pVar->MenuMode=MEMReg2_MENU;	    //	寄存器Ⅱ
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x02:	 pVar->MenuMode=MEMRam196_MENU;     //	RAM(196)
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x03:	 pVar->MenuMode=MEMRamPSD_MENU;     //	RAM(PSD)
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x04:	 pVar->MenuMode=MEMRam256_MENU;     //	RAM(256)
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x05:	 pVar->MenuMode=MEMFlashPSD_MENU;   //	Flash(PSD)
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	    case 0x06:	 pVar->MenuMode=MEMX25043_MENU;     //	X25043
			 pVar->KeyID=NULLKEY;
			 pVar->action=NOUSE;
			 break;
	   default:	break;
		};
     };
  };//-------OPEN
}

void MEMReg1(void)    // 寄存器Ⅰ
{
  int i,j,k,m,n1,n2,n3,ii;
  unsigned  char    *RegPtr;

  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(5,0,5,1);
     if(pVar->RegNum1>0x3E0)pVar->RegNum1=0x3e0;
     for(i=0;i<8;i++)
     {
	  k=i*6;
	  for(j=0;j<6;j++)
	  {
		switch(j)
		{
		     case  0x03:m=i*4+pVar->RegNum1;
				n3=m%16; m=m/16;
				n2=m%16; m=m/16;
				n1=m%16;
				DatBuf[k+j]=n1;
				break;
		     case  0x04:DatBuf[k+j]=n2;
				break;
		     case  0x05:DatBuf[k+j]=n3;
				break;
		     default:	DatBuf[k+j]=0;
				break;
		}
	  }
     };
     OutString(DatBuf,0,MemAdress,1);
     pVar->action=OPEN;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(MEM_MENU);
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum1>=4)pVar->RegNum1=pVar->RegNum1-4;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum1=pVar->RegNum1+4;
	 if(pVar->RegNum1>0x3e0)pVar->RegNum1=0x3e0;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==PLUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum1=pVar->RegNum1+32;
	 if(pVar->RegNum1>0x3e0)pVar->RegNum1=0x3e0;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==MINUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum1>=32)pVar->RegNum1=pVar->RegNum1-32;
	 pVar->action=NOUSE;
     };
     RegPtr=(unsigned char *)pVar->RegNum1;
     for(i=0;i<64;i++)
     {
	 m=(*RegPtr);
	 n2=m%16; m=m/16;
	 n1=m%16;
	 StrBuf[i*2+0]=n1;
	 StrBuf[i*2+1]=n2;
	 RegPtr++;
     }
     OutString(StrBuf,0,MemDatAdr,1);
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 pVar->NewCursorOffset=3;
	 pVar->OldCursorOffset=3;
	 CursorGotoXy(DatBuf,MemAdress,1);
	 return;
     };
  }
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==RIGHTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->NewCursorOffset++;
	 if(pVar->NewCursorOffset>5)pVar->NewCursorOffset=5;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==LEFTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->NewCursorOffset>3)pVar->NewCursorOffset--;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==MINUSKEY)//  "-"=PageUPKEY
     {
	 pVar->KeyID=NULLKEY;
	 if(DatBuf[pVar->NewCursorOffset]!=0)  DatBuf[pVar->NewCursorOffset]=DatBuf[pVar->NewCursorOffset]-1;
			  else
	 {
		  if(pVar->NewCursorOffset==3) DatBuf[pVar->NewCursorOffset]=0x03;
			  else		 DatBuf[pVar->NewCursorOffset]=0x0F;
	 }
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	 pVar->KeyID=NULLKEY;
	 DatBuf[pVar->NewCursorOffset]++;
	 if(pVar->NewCursorOffset==3)
	 {
	    if(DatBuf[pVar->NewCursorOffset]>3)DatBuf[pVar->NewCursorOffset]=0;
	 }else
	 {
	    if(DatBuf[pVar->NewCursorOffset]>15)DatBuf[pVar->NewCursorOffset]=0;
	 }
	 CursorGotoXy(DatBuf,MemAdress,1);
     }
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 pVar->RegNum1=DatBuf[3]*256+DatBuf[4]*16+DatBuf[5];
     }
  }
}

void MEMReg2(void)    // 寄存器Ⅱ
{
  int i,j,k,m,n1,n2,n3,ii;
  unsigned  char    *RegPtr;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(5,0,5,1);
     if(pVar->RegNum2>224)pVar->RegNum2=224; // 0xe0
     for(i=0;i<8;i++)
     {
	k=i*6;
	for(j=0;j<6;j++)
	{
	      switch(j)
	      {
	       case  0x02:DatBuf[k+j]=1;
			  break;
	       case  0x03:DatBuf[k+j]=15;
			  break;
	       case  0x04:m=i*4+pVar->RegNum2;
			  n2=m%16; m=m/16;
			  n1=m%16;
			  DatBuf[k+j]=n1;
			  break;
	       case  0x05:DatBuf[k+j]=n2;
			  break;
	       default:   DatBuf[k+j]=0;
			  break;
	      }
	}
     };
     OutString(DatBuf,0,MemAdress,1);
     pVar->action=OPEN;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(MEM_MENU);
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum2>=4)pVar->RegNum2=pVar->RegNum2-4;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum2=pVar->RegNum2+4;
	 if(pVar->RegNum2>224)pVar->RegNum2=224;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==PLUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum2=pVar->RegNum2+32;
	 if(pVar->RegNum2>224)pVar->RegNum2=224;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==MINUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum2>=32)pVar->RegNum2=pVar->RegNum2-32;
	 pVar->action=NOUSE;
     };
     RegPtr=(unsigned char *)pVar->RegNum2+0x1f00;
     for(i=0;i<64;i++)
     {
	 m=(*RegPtr);
	 n2=m%16; m=m/16;
	 n1=m%16;
	 StrBuf[i*2+0]=n1;
	 StrBuf[i*2+1]=n2;
	 RegPtr++;
     }
     OutString(StrBuf,0,MemDatAdr,1);
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 pVar->NewCursorOffset=4;
	 pVar->OldCursorOffset=4;
	 CursorGotoXy(DatBuf,MemAdress,1);
	 return;
     };
  }
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==RIGHTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->NewCursorOffset++;
	 if(pVar->NewCursorOffset>5)pVar->NewCursorOffset=5;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==LEFTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->NewCursorOffset>4)pVar->NewCursorOffset--;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==MINUSKEY)//  "-"=PageUPKEY
     {
	 pVar->KeyID=NULLKEY;
	 if(DatBuf[pVar->NewCursorOffset]!=0) DatBuf[pVar->NewCursorOffset]=DatBuf[pVar->NewCursorOffset]-1;
			   else 	DatBuf[pVar->NewCursorOffset]=0x0F;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	 pVar->KeyID=NULLKEY;
	 DatBuf[pVar->NewCursorOffset]++;
	 if(DatBuf[pVar->NewCursorOffset]>15)DatBuf[pVar->NewCursorOffset]=0;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 pVar->RegNum2=DatBuf[4]*16+DatBuf[5];
     }
  }
}

void MEMRam196(void)  //  RAM(196)
{
  int i,j,k,m,n1,n2,n3,ii;
  unsigned  char    *RegPtr;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(5,0,5,1);
     if(pVar->RegNum3>480)pVar->RegNum3=480;
     for(i=0;i<8;i++)
     {
	  k=i*6;
	  for(j=0;j<6;j++)
	  {
	      switch(j)
	      {
		    case  0x03:m=i*4+pVar->RegNum3;
			       n3=m%16; m=m/16;
			       n2=m%16; m=m/16;
			       n1=m%16;
			       DatBuf[k+j]=n1+4;
			       break;
		    case  0x04:DatBuf[k+j]=n2;
			       break;
		    case  0x05:DatBuf[k+j]=n3;
			       break;
		    default:   DatBuf[k+j]=0;
			       break;
	      }
	  }
     };
     OutString(DatBuf,0,MemAdress,1);
     pVar->action=OPEN;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(MEM_MENU);
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum3>=4)pVar->RegNum3=pVar->RegNum3-4;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum3=pVar->RegNum3+4;
	 if(pVar->RegNum3>480)pVar->RegNum3=480;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==PLUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum3=pVar->RegNum3+32;
	 if(pVar->RegNum3>480)pVar->RegNum3=480;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==MINUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum3>=32)pVar->RegNum3=pVar->RegNum3-32;
	 pVar->action=NOUSE;
     };
     RegPtr=(unsigned char *)pVar->RegNum3+0x400;
     for(i=0;i<64;i++)
     {
	 m=(*RegPtr);
	 n2=m%16; m=m/16;
	 n1=m%16;
	 StrBuf[i*2+0]=n1;
	 StrBuf[i*2+1]=n2;
	 RegPtr++;
     }
     OutString(StrBuf,0,MemDatAdr,1);
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 pVar->NewCursorOffset=3;
	 pVar->OldCursorOffset=3;
	 CursorGotoXy(DatBuf,MemAdress,1);
	 return;
     };
  }
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==RIGHTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->NewCursorOffset++;
	 if(pVar->NewCursorOffset>5)pVar->NewCursorOffset=5;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==LEFTKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->NewCursorOffset>3)pVar->NewCursorOffset--;
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==MINUSKEY)//  "-"=PageUPKEY
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->NewCursorOffset==3)
	 {
			if(DatBuf[pVar->NewCursorOffset]>4) DatBuf[pVar->NewCursorOffset]--;
			else		     DatBuf[pVar->NewCursorOffset]=5;
	 }else
	 {
			 if(DatBuf[pVar->NewCursorOffset]!=0) DatBuf[pVar->NewCursorOffset]=DatBuf[pVar->NewCursorOffset]-1;
			  else			      DatBuf[pVar->NewCursorOffset]=0x0F;
	 }
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	 pVar->KeyID=NULLKEY;
	 DatBuf[pVar->NewCursorOffset]++;
	 if(pVar->NewCursorOffset==3)
	 {
	    if(DatBuf[pVar->NewCursorOffset]>5) DatBuf[pVar->NewCursorOffset]=4;
	 }else
	 {
		 DatBuf[pVar->NewCursorOffset]++;
		 if(DatBuf[pVar->NewCursorOffset]>15)DatBuf[pVar->NewCursorOffset]=0;
	 }
	 CursorGotoXy(DatBuf,MemAdress,1);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=NOUSE;
	 pVar->RegNum3=(DatBuf[3]-4)*256+DatBuf[4]*16+DatBuf[5];
     };
  }
}

void	MEMRamPSD(void)  //  RAM(PSD)
{
  int i,j,k,m,n1,n2,n3,ii;
  unsigned  char    *RegPtr;
  register unsigned long portid;
  register unsigned char value;

  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(5,0,5,1);
     if(pVar->RegNum4>(unsigned int)(0x5fff)) pVar->RegNum4=(unsigned  int)0x5fff;
     for(i=0;i<8;i++)
     {
	 k=i*6;
	 portid=PSD_RAM_BASE+i*4+pVar->RegNum4;
	 for(j=0;j<6;j++)
	 {
	     value=portid%16;
	     portid=portid/16;
	     DatBuf[k+5-j]=value;
	 }
     };
     OutString(DatBuf,0,MemAdress,1);
     pVar->action=OPEN;
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     portid=PSD_RAM_BASE+pVar->RegNum4;
     HITESC(MEM_MENU);
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum4>=4)pVar->RegNum4=pVar->RegNum4-4;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum4=pVar->RegNum4+4;
	 if(pVar->RegNum4>(unsigned int)(0x5fff)) pVar->RegNum4=(unsigned  int)0x5fff;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==PLUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 pVar->RegNum4=pVar->RegNum4+32;
	 if(pVar->RegNum4>(unsigned int)(0x5fff)) pVar->RegNum4=(unsigned  int)0x5fff;
	 pVar->action=NOUSE;
     };
     if(pVar->KeyID==MINUSKEY)
     {
	 pVar->KeyID=NULLKEY;
	 if(pVar->RegNum4>=32)pVar->RegNum4=pVar->RegNum4-32;
	 pVar->action=NOUSE;
     };
     portid=PSD_RAM_BASE+pVar->RegNum4;
     for(i=0;i<64;i++)
     {
	 asm  eldb  value, [portid];
	 StrBuf[i*2+1]=value%16; value=value/16;
	 StrBuf[i*2+0]=value%16;
	 portid++;
     }
     OutString(StrBuf,0,MemDatAdr,1);
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 pVar->NewCursorOffset=2;
	 pVar->OldCursorOffset=2;
	 CursorGotoXy(DatBuf,MemAdress,1);
	 return;
     };
  }
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     Fla

⌨️ 快捷键说明

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