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

📄 manage.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 5 页
字号:
 487   2                      tp.dat=0;
 488   2                      str[0]=K_TC;
 489   2                      str[1]=K_HJ;
 490   2                      str[2]=0;
 491   2                      x=Windows(x,0,str);
 492   2                      if(str[0]==K_TC)return;
 493   2                      for(i=0;i<25;i++)str[i]=0;
 494   2                      switch(x)
 495   2                      {
 496   3                              case 1:
 497   3                                                      j=0;
 498   3                                                      LcdDisplay(0,0,"请输入项目编号:",3);
 499   3                                                      m=0;
 500   3                                                      while(1)
 501   3                                                      {
 502   4                                                              k=KeyScan();
 503   4                                                              if(k==K_TC)
 504   4                                                              {
 505   5                                                                      m=1;
 506   5                                                                      break;
 507   5                                                              }
 508   4                                                              if(k==K_HD)
 509   4                                                              {
 510   5                                                                      j^=25;
 511   5                                                                      if(j==0)LcdDisplay(16,0," ",1);
 512   5                                                                      else    LcdDisplay(16,0,"项目换档状态!",1);
 513   5                                                                      continue;
 514   5                                                              }
 515   4                                                              for(i=0;i<25;i++)
 516   4                                                                      if(k==xm[i])break;
 517   4                                                              if(i<25)break;
 518   4                                                              Beep(400);
 519   4                                                      }
 520   3                                                      if(m==1)break;
 521   3                                                      WareNo = (i+1+j)|0xFF00;
 522   3                                                      tp.dat = WareNo;
 523   3                                                      GetWareInfo(tp.dat,0);
 524   3                                                      break;
 525   3      
 526   3                              case 2:         GetPlu(3);
 527   3                                                      if(WareNo==0)break;
 528   3                                                      GetWareInfo(WareNo,0);
 529   3                                                      break;
 530   3      
 531   3                              case 3:         adr=ItemNumber;         //当前项目数量          1       HEX
 532   3                                                      I2cRead(adr,1,tp.str);
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 10  

 533   3                                                      if(tp.str[0]>=50)               //test
 534   3                                                      {Hint(16,0,"项目数量已满!",3);break;}
 535   3                                                      tp.str[0]+=1;
 536   3                                                      WareNo = tp.str[0] | 0xFF00;
 537   3                                                      if(GetWareInfo(WareNo,1)==1)
 538   3                                                              I2cWrite(adr,1,tp.str);
 539   3                                                      break;
 540   3      
 541   3                              case 4:         adr = PluNumber;        //当前PLU数量           2       HEX
 542   3                                                      I2cRead(adr,2,tp.str);
 543   3                                                      if(tp.dat>=11900)
 544   3                                                      {Hint(16,0,"PLU数量已满!",3);break;}
 545   3                                                      tp.dat+=1;
 546   3                                                      WareNo=tp.dat;
 547   3                                                      if(GetWareInfo(WareNo,1)==1)
 548   3                                                              I2cWrite(adr,2,tp.str);
 549   3                                                      break;
 550   3      
 551   3                              case 5:
 552   3                                                      WareDown();
 553   3                                                      break;
 554   3      
 555   3                              default:        Beep(400);              break;
 556   3                      }
 557   2                      k=0;
 558   2              }
 559   1      }
 560          
 561          
 562          /*--------------------------------------------------------------------------------
 563                                  增加用户 或  删除用户
 564                                  flag=1  增加用户   flag=0   删除用户
 565          --------------------------------------------------------------------------------*/
 566          uint InputSalerNo()
 567          {
 568   1              uint adr;
 569   1              uchar InitLen[2];
 570   1      
 571   1              InitLen[0]=0;
 572   1              while(1)
 573   1              {
 574   2                      LcdDisplay(16,56,"营业员:",1);
 575   2                      InitLen[0]=0;
 576   2                      SalerNo=GetInt(16,120,0,2,0,InitLen);//输入营业员编号
 577   2                      if(InitLen[0]==K_TC)return 0;
 578   2                      if(SalerNo!=0 && SalerNo<13)break;
 579   2                      LcdDisplay(48,16,"0 < 营业员编号 < 13",1);
 580   2              }
 581   1              adr=(SalerNo-1)*4+SalerPwd;
 582   1              return adr;
 583   1      }
 584          
 585          void ModifyPwd(uint n)
 586          {
 587   1              ulong key;
 588   1              uchar InitLen[2];
 589   1              uint us1;
 590   1              gyt4 pwd;
 591   1      
 592   1      //      LcdDisplay(32,40,"新 密 码:",1);
 593   1      //      LcdDisplay(48,40,"重复密码:",1);
 594   1              if(n==0)
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 11  

 595   1                      us1=BossPwd;
 596   1              else
 597   1                      us1=n;
 598   1              I2cRead(us1,4,pwd.str);//读出密码
 599   1              while(1)
 600   1              {
 601   2                      LcdDisplay(16,40,"原 密 码:",1);
 602   2                      InitLen[0]=0;
 603   2                      key=GetInt(16,120,0,8,1,InitLen);//输入原密码
 604   2                      if(InitLen[0]==K_TC)return;
 605   2                      if(pwd.dat==key)break;
 606   2                      LcdDisplay(48,32,"密码不正确!",1);
 607   2                      Beep(400);
 608   2              }
 609   1              while(1)
 610   1              {
 611   2                      LcdDisplay(32,40,"新 密 码:",1);
 612   2                      LcdDisplay(48,40,"重复密码:",1);
 613   2                      InitLen[0]=0;
 614   2                      key=GetInt(32,120,0,8,1,InitLen);//输入新密码
 615   2                      if(InitLen[0]==K_TC)return;
 616   2                      InitLen[0]=0;
 617   2                      pwd.dat=GetInt(48,120,0,8,1,InitLen);//重新输入新密码
 618   2                      if(InitLen[0]==K_TC)return;
 619   2                      if(key==pwd.dat)break;
 620   2                      Hint(16,0,"两次输入不一致,重新输入",3);
 621   2                      Beep(400);
 622   2              }
 623   1              I2cWrite(us1,4,pwd.str);
 624   1              Hint(16,64,"修改成功!",3);
 625   1      }
 626          
 627          void SalerEdit(uchar flag)
 628          {
 629   1              uchar i,InitLen[2];
 630   1              uint us1=0;
 631   1              ulong key=0;
 632   1              gyt4 mydat;
 633   1      
 634   1              switch(flag)
 635   1              {
 636   2                      case 1: if(VerifyBossPwd()!=1)break;
 637   2                                      while(1)
 638   2                                      {
 639   3                                              LcdDisplay(0,56,"增加营业员",3);
 640   3                                              us1=InputSalerNo();
 641   3                                              if(us1==0)return;
 642   3                                              I2cRead(us1,4,mydat.str);
 643   3                                              if(mydat.dat!=0)
 644   3                                              {
 645   4                                                      Hint(16,16,"本营业员已经设置!",3);
 646   4                                                      continue;
 647   4                                              }
 648   3                                              LcdDisplay(32,56,"密  码:",1);
 649   3                                              LcdDisplay(48,56,"重  复:",1);
 650   3                                              InitLen[0]=0;
 651   3                                              key=GetInt(32,120,0,8,1,InitLen);//输入密码
 652   3                                              if(InitLen[0]==K_TC)return;
 653   3                                              InitLen[0]=0;
 654   3                                              mydat.dat=GetInt(48,120,0,8,1,InitLen);//重复输入密码
 655   3                                              if(InitLen[0]==K_TC)return;
 656   3                                              if(key==0)
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 12  

 657   3                                              {
 658   4                                                      Hint(16,32,"密码不能为0",3);
 659   4                                                      continue;
 660   4                                              }
 661   3                                              if(key==mydat.dat)break;
 662   3                                              Hint(16,0,"两次输入不一致,重新输入",3);
 663   3                                              Beep(400);
 664   3                                      }
 665   2                                      I2cWrite(us1,4,mydat.str);//写数据
 666   2                                      I2cRead(SalerNum,1,&i);
 667   2                                      i++;
 668   2                                      I2cWrite(SalerNum,1,&i);
 669   2                                      Hint(16,56,"增加成功!",3);
 670   2                                      break;
 671   2                      case 2: I2cRead(SalerNum,1,&i);
 672   2                                      if(i==0)
 673   2                                      {
 674   3                                              Hint(16,32,"没有设置营业员!",3);
 675   3                                              break;
 676   3                                      }
 677   2                                      if(VerifyBossPwd()!=1)break;
 678   2                                      LcdDisplay(0,56,"删除营业员",3);
 679   2                                      us1=InputSalerNo();
 680   2                                      if(us1==0)return;
 681   2                                      I2cRead(us1,4,mydat.str);
 682   2                                      if(mydat.dat==0)
 683   2                                      {
 684   3                                              Hint(16,32,"没有这个营业员!",3);
 685   3                                              break;
 686   3                                      }
 687   2                                      mydat.dat=0;
 688   2                                      I2cWrite(us1,4,mydat.str);
 689   2                                      i--;
 690   2                                      I2cWrite(SalerNum,1,&i);
 691   2                                      Hint(16,64,"删除成功!",3);
 692   2                                      break;
 693   2                      case 3:
 694   2                                      LcdDisplay(0,32,"修改营业员密码",3);
 695   2                                      us1=InputSalerNo();
 696   2                                      if(us1==0)return;
 697   2                                      I2cRead(us1,4,mydat.str);
 698   2                                      if(mydat.dat==0)
 699   2                                      {
 700   3                                              Hint(16,32,"没有这个营业员!",3);
 701   3                                              break;
 702   3                                      }
 703   2                                      ModifyPwd(us1);
 704   2                                      break;
 705   2                      case 4: LcdDisplay(0,16,"设置或修改管理员密码",3);
 706   2                                      ModifyPwd(0);
 707   2                                      break;
 708   2                      default :break;
 709   2              }
 710   1      }
 711          
 712          /*-------------------------------------------------------------------------------------
 713                                  营业员管理
 714          --------------------------------------------------------------------------------------*/
 715          void SalerManage()
 716          {
 717   1              uchar i=1,InitVal[3];
 718   1      
C51 COMPILER V8.01   MANAGE                                                                03/28/2006 09:49:23 PAGE 13  

 719   1              while(1)
 720   1              {
 721   2                      WindowsSet(4);
 722   2                      strcpy(&WinHint[0][1],"1.增加营业员");
 723   2                      strcpy(&WinHint[1][1],"2.删除营业员");
 724   2                      strcpy(&WinHint[2][1],"3.修改营业员密码");
 725   2                      strcpy(&WinHint[3][1],"4.修改管理员密码");
 726   2      
 727   2                      InitVal[0]=K_TC;
 728   2                      InitVal[1]=K_HJ;
 729   2                      InitVal[2]=0;
 730   2                      i=Windows(i,0,InitVal);
 731   2                      if(InitVal[0]==K_TC)return;
 732   2                      SalerEdit(i);
 733   2              }
 734   1      }
 735          
 736          /*-----------------------------------------------------------------------------------
 737                    营业员登陆
 738          -----------------------------------------------------------------------------------*/
 739          uchar Login()
 740          {//首先应该判断营业员数量,如果为零则不登陆
 741   1              uchar i,InitLen[2];
 742   1              ulong pwd;
 743   1              uint us1;

⌨️ 快捷键说明

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