📄 host.lst
字号:
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 + -