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

📄 whx40318.c

📁 流量计程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                                           break;
                                  }
                               }

                             break;
                   }
                }
            fill_time(year,month,day,1);
            xs(0xc5,ary,8);
            fill_time(hour,minu,sec,1);
            xs(0x99,ary,8);
            set_time(kcount);

          }

          CONB_12887=0xa6;
          YEAR_ADR=year;
          MONTH_ADR=month;
          DAY_ADR=day;
          HOUR_ADR=hour;
          MIN_ADR=minu;
          CONB_12887=0x26;
          qinping();
          xs(0x85,"--OK--",5);
       }



Res()
{  unsigned char i,j,k;
   for(i=0;i<=11;i++)
       lastday[i]=0;
   for(i=0;i<=11;i++)
    for(j=0;j<=30;j++)
        hday[i][j]=0;

   for(i=0;i<=7;i++)
       for(j=0;j<=11;j++)
           for(k=0;k<=30;k++)
               worktime[i][j][k]=0;
   total=0;
   count30s=0;
   while((insyear!=year)||(insmonth!=month)||(insday!=day))
        { readtime();
          insyear=year;
          insmonth=month;
          insday=day;
        }

 }




 /*一下便是所加入的电流变电压输入范围调整程序,加在了Tu_Run()里头*/



ITV_VALUE(unsigned int x,unsigned char i,unsigned char m)
{unsigned char j=0;
 k=0;
 qinping();
 xs(0xc0,"INPUT ",5);
 if (m==0)
     xs(0xc6,"CHZ",2);
 else xs(0xc6,"ITV",2);
 ary[0]=i+0x30;
 xs(0xc9,ary,0);
 xs(0xca," RANGE:",6);
 while(k!=12)
    { if (k=key()!=0)
         { k=jzqr();
           if(k<=9)
             { XBYTE[x+j]=k;
               ary[j]=k+0x30;
               xs(0x94,ary,j);
               j++;
             }
         }
      if (j==4) k=12;
    }
 qinping();
 delay(20);
 qinping();
 k=0;
}

LLJ_RANGE()
{ char i;
  k=0;
  qinping();
  xs(0x84,"SLECT ",5);
  xs(0x8a,"NUM(1):",6);
  xs(0xc0,"LLJ:",3);
   for (i=0;i<=3;i++)
       ary[i]=XBYTE[0xf944+i]+0x30;
  xs(0xc4,ary,3);
  xs(0xc8,"*50",2);

  while(k!=12)
   { if(k=key()!=0)
      { k=jzqr();
        switch(k)
         { case 1: ITV_VALUE(0xf944,0,0);
                   delay(200);
                   break;
         }
      }
    xs(0x84,"SLECT ",5);
    xs(0x8a,"NUM(1):",6);
    xs(0xc0,"LLJ:",3);
    for (i=0;i<=3;i++)
       ary[i]=XBYTE[0xf944+i]+0x30;
    xs(0xc4,ary,3);
    xs(0xc8,"*50",2);

   }
   k=12;
   qinping();
   delay(20);
   qinping();
 }
PHONE_RANGE()
{unsigned char i,vl,vh;
  k=0;
  qinping();
  xs(0xc4,"PHONE ",5);
  xs(0xca,"NUM(1):",6);
  xs(0x94,"PHONE:",5);
  for (i=0;i<=7;i++)
     { ary[i]=XBYTE[0xf938+i]+0x30;
       xs(0x9a,ary,7);
     }
  for (i=0;i<=3;i++)
     { ary[i]=XBYTE[0xf940+i]+0x30;
       xs(0xa2,ary,3);
     }
  while(k!=12)
   { if(k=key()!=0)
      { k=jzqr();
        switch(k)
         { case 1: ITV_VALUE(0xf938,1,0);
                   delay(200);
                   ITV_VALUE(0xf93c,2,0);
                   delay(200);
                   ITV_VALUE(0xf940,3,0);
                   break;
         }
      }
     xs(0xc4,"PHONE ",5);
     xs(0xca,"NUM(1):",6);
     xs(0x94,"PHONE:",5);
     for (i=0;i<=7;i++)
         ary[i]=XBYTE[0xf938+i]+0x30;
     xs(0x9a,ary,7);
     for (i=0;i<=3;i++)
         ary[i]=XBYTE[0xf940+i]+0x30;
     xs(0xa2,ary,3);
   }
   for (i=0;i<=10;i+=2)
      { vh=XBYTE[0xf938+i];
        vh<<=4;
        vl=XBYTE[0xf939+i];
        phonenum[i/2]=( vh|vl);
      }
   k=12;
   qinping();
   delay(20);
   qinping();
 }


 FEEL_RANGE()
{ char i;
  k=0;
  qinping();
  xs(0x84,"SLECT ",5);
  xs(0x8a,"NUM(1):",6);
  xs(0xc0,"CH:0 1 2 3",9);
  xs(0xca," 4 5 6 7",7);
  xs(0x94,"VA:",2);
  for (i=0;i<=7;i++)
     { ary[i]=XBYTE[0xf930+i]+0x30;
       xs((0x97+i*2),(ary+i),0);
     }
   while(k!=12)
   { if(k=key()!=0)
      { k=jzqr();
        switch(k)
         { case 1: ITV_VALUE(0xf930,1,0);
                   delay(200);
                   ITV_VALUE(0xf934,2,0);
                   break;
         }
      }
     xs(0x84,"SLECT ",5);
     xs(0x8a,"NUM<1>:",6);
     xs(0xc0,"CH:0 1 2 3",9);
     xs(0xca," 4 5 6 7",7);
     xs(0x94,"VA:",2);
     for (i=0;i<=7;i++)
        { ary[i]=XBYTE[0xf930+i]+0x30;
          xs((0x97+i*2),(ary+i),0);
        }
   }
   k=12;
   qinping();
   delay(20);
   qinping();
 }

 INPUT_RANGE()
{ char i;
  k=0;
  qinping();
  xs(0x84,"SLECT ",5);
  xs(0x8a,"NUM:",3);
  xs(0xc0,"4ITV ",4);
  xs(0xcb,"6ITV ",4);
  xs(0x94,"5ITV ",4);
  xs(0x9f,"7ITV ",4);
  for(i=0;i<=7;i++)
    ary[i]=XBYTE[0xf920+i]+0x30;
  xs(0xc5,ary,3);
  xs(0x99,ary+4,3);
  for(i=0;i<=7;i++)
    ary[i]=XBYTE[0xf928+i]+0x30;
  xs(0xd0,ary,3);
  xs(0xa4,ary+4,3);
  while(k!=12)
   { if(k=key()!=0)
      { k=jzqr();
        switch(k)
         { case 4: ITV_VALUE(0xf920,4,1);
                   break;
           case 5: ITV_VALUE(0xf924,5,1);
                   break;
           case 6: ITV_VALUE(0xf928,6,1);
                   break;
           case 7: ITV_VALUE(0xf92c,7,1);
                   break;
         }
      }

     xs(0x84,"SLECT ",5);
     xs(0x8a,"NUM:",3);
     xs(0xc0,"4ITV ",4);
     xs(0xcb,"6ITV ",4);
     xs(0x94,"5ITV ",4);
     xs(0x9f,"7ITV ",4);
     for(i=0;i<=7;i++)
        ary[i]=XBYTE[0xf920+i]+0x30;
     xs(0xc5,ary,3);
     xs(0x99,ary+4,3);
     for(i=0;i<=7;i++)
        ary[i]=XBYTE[0xf928+i]+0x30;
     xs(0xd0,ary,3);
     xs(0xa4,ary+4,3);
   }
   k=12;
   qinping();
   delay(20);
   qinping();
}

char ma()
{  unsigned int mm,mn;
   char mk=0,mi=0;
   qinping();
   xs(0xc0,"INPUT ",5);
   xs(0xc6,"PASS ",4);
   xs(0xcb,"CODE:",4);
   mk=0x94;
   k=0;
   mm=0;
   while(k!=12)
    {
      if(k=key()!=0)
        { k=jzqr();
          ary[mi]=k;
          xs(mk,"*",0);
          mk++;
          mi++;
          if(mi==5){k=12;}
        }
     }

   mm=ary[0]*10000+ary[1]*1000+ary[2]*100+ary[3]*10+ary[4];
   if(mm==MIMA)
      return(1);
   else
     return(0);
 }


lmx_min(lmne,i,j)
 unsigned  char lmne,i,j;
 {  ary[2]=lmne%10+0x30;
    lmne=lmne/10;
    ary[1]=lmne%10+0x30;
    lmne=lmne/10;
    ary[0]=lmne+0x30;
    switch(j)
       { case 1: xs(0x80,"LM:  ",4);
                 break;
         case 2: xs(0x80,"LN:  ",4);
                 break;
         case 3: xs(0x80,"EIV: ",4);
                 break;
         case 4: xs(0x80,"MAX: ",4);
                 break;
         case 5: xs(0x80,"MIN: ",4);
                 break;
       }
     switch(i)
       { case 0: xs(0x8a,"#0:",2);
                 xs(0x8d,ary,2);
                 break;
         case 1: xs(0xc0,"#1:",2);
                 xs(0xc3,ary,2);
                 break;
         case 2: xs(0xca,"#2:",2);
                 xs(0xcd,ary,2);
                 break;

         case 4: xs(0x94,"#4:",2);
                 xs(0x97,ary,2);
                 break;
         case 5: xs(0x9e,"#5:",2);
                 xs(0xa1,ary,2);
                 break;
         case 6: xs(0xd4,"#6:",2);
                 xs(0xd7,ary,2);
                 break;
         case 7: xs(0xde,"#7:",2);
                 xs(0xe1,ary,2);
                 break;
        }
      }

Tu_Run()
{ unsigned char x,i,j;
   unsigned char max[8],min[8];/*Don't xdata is */
  if (ma())
    { ruflg=1;
      j=1;
      qinping();
      k=0;
      for (i=0;i<=7;i++)
         { max[i]=0;
           min[i]=255;
         }

      while (k!=12)
           { for (i=0;i<=7;i++)
                  if(i!=3)
                   { secflg=0;
                     x=a_d(i);
                     if (x>max[i])
                         max[i]=x;
                     if (x<min[i])
                         min[i]=x;
                     switch (j)
                       { case 1: lmx_min(lm[i],i,j);
                                 break;
                         case 2: lmx_min(ln[i],i,j);
                                 break;
                         case 3: lmx_min(x,i,j);
                                 break;
                         case 4: lmx_min(max[i],i,j);
                                 break;
                         case 5: lmx_min(min[i],i,j);
                                 break;
                       }
                   }
              if (k=key()!=0)
                { k=jzqr();
                  switch (k)
                    { case 11: j++;
                               if(j>5) j=1;
                               qinping();
                               break;
                      case 15: j--;
                               if(j<1)j=5;
                               qinping();
                               break;
                    }
                }
           }

      qinping();
      xs(0x80,"Reset ",5);
      xs(0x86,"Sys",2);
      xs(0x89,"tem?",3);
      xs(0xc0,"1-Yes",4);
      xs(0x94,"0-No",3);
      xs(0xc7,"2-Range",6); /*加入了输入范围调整显示*/
      xs(0x9b,"3-Feel",5);  /*加入互感器选择*/
      xs(0xd4,"Sel:",3);
      k=0;
      while(k!=12)
       {
        if(k=key()!=0)
         { k=jzqr();
           switch(k)
           { case 5: LLJ_RANGE();
                     k=12;
                     break;
             case 4: PHONE_RANGE();
                     k=12;
                     break;
             case 3: FEEL_RANGE();
                     k=12;
                     break;
             case 2: INPUT_RANGE();
                     k=12;
                     break;
             case 1:xs(0xd8,"1",0);
                     for(i=0;i<=7;i++)
                       { delay(100);
                         if (i!=3)
                           { lm[i]=max[i];
                             delay(10);
                             ln[i]=min[i]-min[i]/10;
                             delay(10);
                             if (max[i]<230)
                                 lm[i]=max[i]+max[i]/10;
                             delay(10);
                           }
                       }
                     Res();
                     k=12;
                     break;
             case 0: for(i=0;i<=6;i++)
                        delay(200);
                        k=12;
                      break;
             deflaut: break;
           }
        }
      }
  }
  qinping();
  ruflg=0;
  xs(0x85,"--Ok--",5);
}


 main()
{   unsigned char kk;
    SP=0x89;
    sys_init();
     pp=&fsl;
     pp1=&temp_data_cod_value;
     P17=0;
     while(1)
     { while (sms_ok)           /*SMS上电初始化成功,灯全亮*/
            { PB_8255=0xff;
              delay(200);
              sms_ok=0;
            }
       while (sms_change_ok)    /*SMS发送数据成功*/
            {
              PB_8255=0xf0;
              delay(200);
              PB_8255=0;
              delay(200);
              PB_8255=0xf0;
              delay(200);
              sms_change_ok=0;
            }

      if(kk=key()!=0)
         {
            kk=jzqr();
            switch(kk)
            {  case 3: sms_state=1;
                       PB_8255=0xff;
                       delay(200);
                       break;
               case 4: readtime();
                       itvxx(&codma,4);
                        break;
               case 5: readtime();
                       itvxx(&itv2,5);
                        break;
               case 6: readtime();
                       itvxx(&itv3,6);
                        break;
               case 7: readtime();
                       itvxx(&itv4,7);
                        break;
               case 8: readtime();
                        llx();
                        break;
               case 9: readtime();
                        wtday();
                        break;
               case 10:readtime();
                       wtmon();
                        break;
               case 13:Tu_Run();
                        break;
               case 14:Time();
                       break;
            }
        }

    }
 }

⌨️ 快捷键说明

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