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

📄 host.lst

📁 智能数字电流表。双CPU工作
💻 LST
📖 第 1 页 / 共 5 页
字号:
 817   4                                   rst_wdog();
 818   4                                      if (KeyValue == 0xB0)       //MENU
 819   4                                      {
 820   5                                              //恢复参数,读芯片
 821   5                                              ReadParams();     //读参数
 822   5                                              SetTimer(Param.BaudIndex);
 823   5                                              break;
 824   5                                      }
 825   4      
 826   4                                      if (KeyValue == 0x70)       //回车
 827   4                                      {
 828   5                                              uchar uKey, i; 
 829   5                                              word  Value;
 830   5                                              word  Passward = 0;
 831   5                                              for (i=0; i<3; i++)
 832   5                                              {
 833   6                                                      //要求输入密码
 834   6                                                      Hints(PwdHint); 
 835   6                                                      uKey = GetKeyValue(&Value, Passward, 4); 
 836   6                                                      if (uKey == 0x70)
 837   6                                                      {               
 838   7                                                              if ((Value == Param.Password.w) || (Value == 0))    //比较密码
 839   7                                                              {
 840   8                                                                      WriteParams(); //保存参数,写芯片
 841   8                                                                      i = 3;
 842   8                                                              }
 843   7                                                      }
 844   6                                                      else break;
 845   6                                                      rst_wdog();
 846   6                                              }
 847   5                                              break;                                  
 848   5                                      }
 849   4                              }
 850   3                              rst_wdog();
 851   3                      }
 852   2              changed = 0;
 853   2              }
 854   1              Hints(ProgHint); //显示提示
 855   1              return;
 856   1      }
 857          
 858          void OptionAYS() reentrant
 859          {
 860   1              Hints(A_YSHint); //显示提示
C51 COMPILER V7.01  HOST                                                                   03/24/2005 22:10:08 PAGE 15  

 861   1              return;
 862   1      }
 863          
 864          void OptionIn_Out() reentrant
 865          {
 866   1              Hints(In_OuHint); //显示提示
 867   1              return;
 868   1      }
 869          
 870          void OptionALR() reentrant
 871          {
 872   1              Hints(ALRHint); //显示提示
 873   1              return;
 874   1      }
 875          
 876          void OptionSecr() reentrant
 877          {
 878   1              Hints(SecrHint); //显示提示
 879   1              return;
 880   1      }
 881          
 882          void OptionAdBd() reentrant
 883          {
 884   1              Hints(Ad_BdHint); //显示提示
 885   1              return;
 886   1      }
 887          
 888          //显示零点
 889          void AutoZero() reentrant
 890          {
 891   1              Param.wZero.dw = GetCount();   //得到零
 892   1              Display(Param.wZero.w[1], 5);
 893   1              changed = 1;
 894   1              /*
 895   1              Delay(25, 1000);
 896   1              TRG = 1;  //闪烁显示
 897   1              TRG = 0;
 898   1              I_Send('A');
 899   1              Delay(25, 1000);
 900   1              TRG = 1;  //静止显示
 901   1              TRG = 0;
 902   1              I_Send('N');
 903   1              */
 904   1              return;         
 905   1      }
 906          
 907          void InputX() reentrant  //显示输入值
 908          {
 909   1              byte Input[] = {0x06, 0x00, 0x00, 0xB6, 0xB6};
 910   1          GetParamsCode(Input, 3, Param.wInput.w); 
 911   1          Input[Param.PointPos] &= 0xBF;
 912   1              Hints(Input);       //显示提示
 913   1              return; 
 914   1      }
 915          
 916          void OutputX() reentrant //显示输出值
 917          {
 918   1              byte Output[] = {0x9B, 0xB6, 0xB6, 0xB6, 0xB6};
 919   1              GetParamsCode(Output, 1, Param.wOutput.w); 
 920   1              Hints(Output);   //显示提示
 921   1              return; 
 922   1      }
C51 COMPILER V7.01  HOST                                                                   03/24/2005 22:10:08 PAGE 16  

 923          
 924          void ALROFF() reentrant      //关闭报警
 925          {
 926   1              Hints(OFFHint);   //显示OFF
 927   1              Param.bAlert = 0;
 928   1              changed = 1;
 929   1              return;
 930   1      }
 931          
 932          void ALRON() reentrant      //启动报警
 933          {
 934   1              Hints(ONHint);   //显示ON
 935   1              Param.bAlert = 1;
 936   1              return;
 937   1      }
 938          
 939          void Passward() reentrant  //显示密码输入界面 
 940          {
 941   1              uchar uKeyValue; 
 942   1              word  Value;
 943   1          word  Passward = 0;
 944   1              Hints(PwdHint); 
 945   1              uKeyValue = GetKeyValue(&Value, Passward, 4); 
 946   1              KeyResult(uKeyValue, 4, 4, Value); 
 947   1              return;
 948   1      }
 949          
 950          void AddrX() reentrant   //显示当前地址
 951          {
 952   1              byte AddrFace[] = {0xB7, 0x9E, 0xB6, 0xB6, 0xB6};
 953   1              GetParamsCode(AddrFace, 2, Param.bAddress);
 954   1              AddrFace[Param.PointPos] &= 0xBF;
 955   1              Hints(AddrFace);   //显示当前地址   
 956   1              return;
 957   1      }
 958          void BaudX() reentrant   //显示当前波特率
 959          {
 960   1              Hints(Bauds[Param.BaudIndex]);   //显示当前波特率       
 961   1              return;
 962   1      }
 963          
 964          void Inp() reentrant     //显示INP
 965          {
 966   1              Hints(INPHint);   //显示INP
 967   1              return;
 968   1      }
 969          
 970          void Oup() reentrant     //显示OUP
 971          {
 972   1              Hints(OUPHint);   //显示OUP
 973   1              return;
 974   1      }
 975          
 976          void Point() reentrant      //提示小数点输入
 977          {
 978   1              Hints(PoInHint);
 979   1              return;
 980   1      }
 981          void SetInput() reentrant   //设置输入值
 982          {
 983   1              uchar uKey;
 984   1              word Value;
C51 COMPILER V7.01  HOST                                                                   03/24/2005 22:10:08 PAGE 17  

 985   1              word wInput = Param.wInput.w;
 986   1              InputX();      //显示当前值
 987   1              uKey = GetKeyValue(&Value, wInput, 2);
 988   1              KeyResult(uKey, 14, 7, Value);
 989   1              return;
 990   1      }
 991          
 992          void SetOutput() reentrant
 993          {
 994   1              word Value;
 995   1              uchar uKey;
 996   1              word wOutput = Param.wOutput.w; 
 997   1              OutputX();      //显示当前值
 998   1              uKey = GetKeyValue(&Value, wOutput, 4);
 999   1              KeyResult(uKey, 15, 26, Value);
1000   1          return;
1001   1      }
1002          
1003          void SetPoint() reentrant    //设置小数点
1004          {
1005   1              uchar KeyValue;
1006   1              uint  Div = 1;
1007   1              uchar uSelIndex = Param.PointPos;     //片选下标
1008   1              OutputX();      //显示当前值
1009   1              
1010   1              while (1)
1011   1              {
1012   2                      KeyValue = P2 & 0xF0;   //去掉低4位
1013   2                      if (KeyValue != 0xF0)
1014   2                      {
1015   3                              Delay(15, 500);
1016   3                              KeyValue = P2 & 0xF0;
1017   3                              switch (KeyValue)
1018   3                              {
1019   4                              case 0xE0:  //左键, 左翻片子
1020   4                                      uSelIndex --;
1021   4                                  if (uSelIndex < 1) 
1022   4                                      uSelIndex = 4;
1023   4                                  TRG = 1;
1024   4                                      TRG = 0;
1025   4                                      I_Send('P');
1026   4                                      Delay(1, 5);
1027   4                                      I_Send(uSelIndex);
1028   4                                      break;
1029   4                              case 0xD0:  //右键, 右翻片子
1030   4                                      uSelIndex ++;
1031   4                                  if (uSelIndex > 4) 
1032   4                                      uSelIndex = 1;
1033   4                                      TRG = 1;
1034   4                                      TRG = 0;
1035   4                                      I_Send('P');
1036   4                                      Delay(1, 5);
1037   4                                      I_Send(uSelIndex);
1038   4                                      break;
1039   4                              case 0xB0:  //MENU,取消操作
1040   4                                      TRG = 1;  //静止显示
1041   4                                      TRG = 0;
1042   4                                      I_Send('A'); 
1043   4                                      Delay(1, 1000);
1044   4                                      TRG = 1;   //停止闪烁
1045   4                                      TRG = 0;   
1046   4                                      I_Send('N');   
C51 COMPILER V7.01  HOST                                                                   03/24/2005 22:10:08 PAGE 18  

1047   4                      KeyFuncIndex = 17;    //跳到上一层
1048   4                      KeyFuncPtr = KeyTab[KeyFuncIndex].CurrentOperate;
1049   4                              (*KeyFuncPtr)();  //执行
1050   4                                      return;
1051   4                              case 0x70:     //回车,确认操作
1052   4                                      TRG = 1;   //闪烁显示
1053   4                                      TRG = 0;
1054   4                                      I_Send('A');
1055   4                                      Delay(50, 1000); 
1056   4                                      //计算数据并保存
1057   4                                      Param.PointPos = uSelIndex;
1058   4                                      changed = 1;
1059   4                                      TRG = 1;   //停止闪烁
1060   4                                      TRG = 0;   
1061   4                                      I_Send('N'); 
1062   4                                      KeyFuncIndex = 8;    //跳回到2XXXX
1063   4                      KeyFuncPtr = KeyTab[KeyFuncIndex].CurrentOperate;
1064   4                              (*KeyFuncPtr)();  //执行
1065   4                                      return;
1066   4                              default:
1067   4                                      break;
1068   4                              }
1069   3                      }
1070   2                      rst_wdog();
1071   2              }
1072   1              return;
1073   1      }
1074          
1075          void ALRLX() reentrant      //显示报警下限
1076          {
1077   1              uchar ALR_L[] = {0x38, 0xB6, 0xB6, 0xB6, 0xB6};
1078   1              GetParamsCode(ALR_L, 1, Param.wALR_L.w);
1079   1              Hints(ALR_L);   //显示
1080   1              return;
1081   1      }
1082          
1083          void ALRHX() reentrant      //显示报警上限
1084          {
1085   1              uchar ALR_H[] = {0xB6, 0xB6, 0xB6, 0xB6, 0xB6};
1086   1              GetParamsCode(ALR_H, 1, Param.wALR_H.w);
1087   1              Hints(ALR_H);   //显示
1088   1              return;
1089   1      }
1090          
1091          void AL_L() reentrant        //报警下限输入
1092          {

⌨️ 快捷键说明

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