📄 hicj6.lst
字号:
868 1 //if (Ac_Tmp)
869 1 {
870 2 if(Ac_New)
871 2 {
872 3 write7279(UNDECODE+4,0,1); // DIG(7+4)=11 Battery Red
873 3 write7279(UNDECODE+5,Bat_Val[4],1); // DIG(7+5)=12 Battery Green
874 3 }
875 2 else
876 2 {
877 3 Cs_Bat=0;
878 3 P1=0;
879 3 short_delay();
880 3 Bat_New=Bat_Old=Bat;
881 3 if(Bat_New){Battery=Bat_Val[0]; }
882 3 else{Battery=Bat_Val[4];}
883 3 for(i=0;i<5;i++)
884 3 {
885 4 P1=i;
886 4 short_delay();
887 4 Bat_New=Bat;
888 4 Bat_Tmp=Bat_New^Bat_Old;
889 4 Bat_Old=Bat_New;
890 4 if(Bat_Tmp)
891 4 {
892 5 Battery=Bat_Val[i];
893 5 }
894 4 }
895 3 write7279(UNDECODE+5,0,1);
896 3 write7279(UNDECODE+4,Battery,1);
897 3 }
898 2 }
899 1 }
900 /**********************************************************
901 *名 称:Alarm_Pro
902 *功 能:短路、断线报价处理
903 *说 明:
904 *调 用:
905 *入口参数:无
906 *返 回 值:无
907 ***********************************************************/
908 void Alarm_Pro(void)
909 {
910 1 BYTE i;
911 1 Alarm_Check=0;
912 1 Type=0;
913 1 Alarm=0;
914 1 Flash=0;
915 1 for(i=0;i<5;i++)
916 1 {
917 2 Short_Bak=Read1B(170+i,0);
918 2 Break_Bak=Read1B(175+i,0);
919 2 if((Short_New[i]|Short_Bak)&Short_En[i]&Hdd_En[i]) Alarm|=0x10;
920 2 if((Break_New[i]|Break_Bak)&Break_En[i]&Hdd_En[i]) Alarm|=0x20;
921 2 if(Short_New[i]&Short_En[i]) Flash|=1;
C51 COMPILER V6.12 HICJ6 01/03/2005 12:08:21 PAGE 16
922 2 if(Break_New[i]&Break_En[i]) Flash|=2;
923 2 }
924 1 for(i=0;i<40;i++)
925 1 {
926 2 Type=Read1B(200+i,0);
927 2 if((Hdd_En[i%8]&(1<<(i%8))))
928 2 {
929 3 if(Type&0x01) Alarm|=0x04;
930 3 if(Type&0x02) Alarm|=0x02;
931 3 if(Type&0x04) Alarm|=0x01;
932 3 if(Type&0x08) Alarm|=0x80;
933 3 }
934 2 }
935 1 Alarm_Flag=1;
936 1 }
937 /**********************************************************
938 *名 称:TrsRelay
939 *功 能:通过口线模拟的串口给控制器发送合分指令
940 *说 明:
941 *调 用:
942 *入口参数:无
943 *返 回 值:无
944 ***********************************************************/
945 /*
946 void TrsRelay(BYTE YkNo,BYTE YkHf)
947 {
948 BYTE Check;
949 DIR2=0;
950 long_delay();
951 PSendChar(0xfe);
952 PSendChar(0xeb);
953 PSendChar(0x90);
954 PSendChar(0x00);
955 PSendChar(0x00);
956 PSendChar(0x00);
957 PSendChar(0x00);
958
959 PSendChar(0x06); //Length
960 PSendChar(0x00); //0
961 PSendChar(0x37);//Function
962 PSendChar(Relay_Station);//Station L
963 PSendChar(0x00);//0 H
964 PSendChar(YkNo);
965 PSendChar(YkHf);
966 Check=YkNo+YkHf+0x37+Relay_Station;
967 PSendChar(Check);
968 DIR2=1;
969 }
970 */
971 /**********************************************************
972 *名 称:main
973 *功 能:主程序
974 *说 明:
975 *调 用:
976 *入口参数:无
977 *返 回 值:无
978 ***********************************************************/
979 void WriteHddPro(void)
980 {
981 1 // Run=1;
982 1 if(HddVal[WriteOrder])
983 1 {
C51 COMPILER V6.12 HICJ6 01/03/2005 12:08:21 PAGE 17
984 2 Hdd_Str.Hdd_L=Read_Hdd(WriteOrder);
985 2 Hdd_Str.Hdd_L+=HddVal[WriteOrder];
986 2 HddVal[WriteOrder]=0;
987 2 Write_Hdd(WriteOrder);
988 2 }
989 1 WriteOrder++;
990 1 if(WriteOrder==40) WriteOrder=0;
991 1 // Run=0;
992 1 }
993
994 /**********************************************************
995 *名 称:main
996 *功 能:主程序
997 *说 明:
998 *调 用:
999 *入口参数:无
1000 *返 回 值:无
1001 ***********************************************************/
1002
1003 main()
1004 {
1005 1 BYTE data i,j,Tmp1,YkNo;
1006 1
1007 1 Init();
1008 1
1009 1 loop:
1010 1
1011 1
1012 1
1013 1 if(Press_Count<3) Speaker=0;
1014 1 if(Press_Count==3 || Press_Count==4) Speaker=1;
1015 1 if(Time_Counter>Run_Count)
1016 1 {
1017 2
1018 2 // TrsRelay(1,0xcc); //////
1019 2 if(HddEn_Count)
1020 2 {
1021 3
1022 3 HddEn_Count_Pro();
1023 3 }
1024 2
1025 2 WriteHddPro();
1026 2 if((Start&0x80)==0x80) Run_Count=25;
1027 2 else Run_Count=5;
1028 2 Run=~Run;
1029 2 //if(Run) TrsRelay(1,0x33);
1030 2 // else TrsRelay(1,0xcc);
1031 2 Time_Counter=0;
1032 2 Bat_Check();
1033 2 if(Flash&0x01)
1034 2 { if(Run)
1035 3 write7279(SEGON,0x34,1);
1036 3 else
1037 3 write7279(SEGOFF,0x34,1);
1038 3 }
1039 2 if(Flash&0x02)
1040 2 { if(Run)
1041 3 write7279(SEGON,0x35,1);
1042 3 else
1043 3 write7279(SEGOFF,0x35,1);
1044 3 }
1045 2
C51 COMPILER V6.12 HICJ6 01/03/2005 12:08:21 PAGE 18
1046 2
1047 2
1048 2
1049 2 }
1050 1
1051 1 if (Press_Count<1000 && Sp_Flag)
1052 1 {
1053 2 Speaker=Run;
1054 2
1055 2 }
1056 1 else
1057 1 Speaker=Key;
1058 1
1059 1 if(((Start&0x80)==0x80) && (Hdd_Rp!=Hdd_Wp))
1060 1 Hdd_Check();
1061 1 if (Key_Press==1) Disp_Pro();
1062 1
1063 1 if (Press_Count==1000)
1064 1 {
1065 2 Press_Count=1001;
1066 2 EA=0;
1067 2 send_byte(CMD_RESET,0); // 清除显示
1068 2 send_byte(CMD_RESET,1);
1069 2 cs1=cs2=1;
1070 2 EA=1;
1071 2 House=House_Max-1;
1072 2 Speaker=1;
1073 2 Alarm_Check=1;
1074 2 }
1075 1
1076 1 if(Alarm_Check) Alarm_Pro();
1077 1 Key_Pro();
1078 1 if(Rcv_Flag)
1079 1 {
1080 2 Rcv_Pro();
1081 2 }
1082 1 if(Trs_Flag==1 && Trs_Wp==Trs_Rp)
1083 1 {
1084 2 Trs_Edit();
1085 2 }
1086 1 if(Rcv_Count>10) Rcv_Wp=0;
1087 1 if(Key_Count>100)
1088 1 {
1089 2 Key_Count=0;
1090 2 Speaker=0;
1091 2 delay10ms(100);
1092 2 for(i=0;i<5;i++)
1093 2 {
1094 3 Short_New[i]=0;
1095 3 Write1B(0,170+i,0);
1096 3 Break_New[i]=0;
1097 3 Write1B(0,175+i,0);
1098 3 }
1099 2 Speaker=1;
1100 2 Start=0x80;
1101 2 Write1B(0x80,255,0);
1102 2 Alarm_Flag=1;
1103 2 }
1104 1
1105 1 //Key_Number=read7279(CMD_READ);
1106 1
1107 1 if(Alarm_Flag)
C51 COMPILER V6.12 HICJ6 01/03/2005 12:08:21 PAGE 19
1108 1 {
1109 2 Alarm_Flag=0;
1110 2 write7279(UNDECODE+6,Alarm,1);
1111 2 }
1112 1
1113 1 /*
1114 1 if(Ms20>140)
1115 1 {
1116 1 Ms20=0;
1117 1 for(i=0;i<40;i++)
1118 1 {
1119 1 Tmp1=Read1B(200+i,1);
1120 1 if(Tmp1&0x80)
1121 1 {
1122 1 Tmp1&=0x7f;
1123 1 if(Hdd10s[i]>Tmp1)
1124 1 {
1125 1 RelayOff[i/8]|=1<<(i%8);
1126 1 }
1127 1 Hdd10s[i]=0;
1128 1 }
1129 1 }
1130 1 }
1131 1
1132 1 if(Trs_Counter>15)
1133 1 {
1134 1 Trs_Counter=0;
1135 1 for(i=0;i<5;i++)
1136 1 {
1137 1 if(RelayOff[i])
1138 1 {
1139 1 for(j=0;j<8;j++)
1140 1 {
1141 1 Tmp1=1<<j;
1142 1 if(RelayOff[i]&Tmp1)
1143 1 {
1144 1 RelayOff[i]&=~Tmp1;
1145 1 YkNo=i*8+j+1;
1146 1 //TrsRelay(YkNo,0x33);
1147 1 TrsRelayOff[i]|=Tmp1;
1148 1 RelayOffTimes[YkNo-1]++;
1149 1 i=5;
1150 1 break;
1151 1 }
1152 1 }
1153 1 }
1154 1 }
1155 1
1156 1
1157 1
1158 1 for(i=0;i<5;i++)
1159 1 {
1160 1 if(TrsRelayOff[i])
1161 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -