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

📄 hicj6.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -