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

📄 386.lst

📁 C开发的报警程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
1024   5                        Time_DU=0;
1025   5                        FLAG_BB=0;
1026   5                       FLAG_366=0;  
1027   5                       JISHUMORE=0;
1028   5      
1029   5                        P0=0xff;
1030   5                        P1=0xff;
1031   5                        P2=0xff;
1032   5                        P3=0xff;
1033   5                        LS164_CP=0;       //不给时钟信号
1034   5                        LS164_AB=0;       //7段全不点亮
1035   5                        FLASH_DY=0;
1036   5                        LOCK_JS=0;
1037   5                       
1038   5                        MT8880_ControlRegister_Initialize();
1039   5                       
C51 COMPILER V6.10  386                                                                    03/14/2006 10:33:03 PAGE 18  

1040   5                        LED_DISPLAY(); 
1041   5                        DY=0;     //点亮电源灯  
1042   5                        
1043   5                        for(Time_DU=0;Time_DU<1600;Time_DU++)
1044   5                         {
1045   6                          if(Sound_Du==1){Sound_Du=0;DELAY_025ms(1);}
1046   6                          else {Sound_Du=1;DELAY_025ms(1);}
1047   6                         }
1048   5                        Sound_Du=1;
1049   5       
1050   5                      } 
1051   4                    if(NUMBER[0]==1)   //处理撤防
1052   4                      {
1053   5                       LED_DRIVER(0,0,0,0,0,0,0,0); //令所有数码管和BF灯灭
1054   5                       FLAG_BF=0;                   //清布防标志
1055   5                     
1056   5                       for(Time_DU=0;Time_DU<1600;Time_DU++)
1057   5                         {
1058   6                          if(Sound_Du==1){Sound_Du=0;DELAY_025ms(1);}
1059   6                          else {Sound_Du=1;DELAY_025ms(1);}
1060   6                         }
1061   5                       Sound_Du=1;
1062   5      
1063   5                      }
1064   4                    if(NUMBER[0]==2)   //处理布防
1065   4                      {
1066   5                       LED_DRIVER(0,0,0,0,0,0,0,0); //令所有数码管和BF灯灭
1067   5                       LED_DRIVER(0,0,1,0,0,0,0,0); //打开BF布防灯
1068   5                       FLAG_BF=1;                   //设布防标志
1069   5                    
1070   5                       for(Time_DU=0;Time_DU<1600;Time_DU++)
1071   5                        {
1072   6                         if(Sound_Du==1){Sound_Du=0;DELAY_025ms(1);}
1073   6                         else {Sound_Du=1;DELAY_025ms(1);}
1074   6                        }
1075   5                       Sound_Du=1;
1076   5      
1077   5                      }
1078   4                    if(NUMBER[0]==9)   //处理现场监听
1079   4                      {
1080   5                       Field_Listen(); 
1081   5                       return;
1082   5                      }
1083   4      
1084   4                   // LED_DRIVER(0,0,0,0,0,0,0,0);
1085   4                    J_LineToPhone=1;  //模拟挂机 
1086   4                    BJ=1;
1087   4                    return;
1088   4                  } 
1089   3                else     //密码不符返回
1090   3                  {
1091   4                   //LED_DRIVER(0,0,0,0,0,0,0,0);
1092   4                   J_LineToPhone=1;  //模拟挂机
1093   4                   BJ=1;
1094   4                   return;
1095   4                  }
1096   3              } //if(Number_Note==6)4位密码已经读完,先检验密码 的反括号
1097   2      
1098   2      
1099   2            else  //没有收满4位密码的处理
1100   2           {
1101   3            JISHU=JISHU+1;
C51 COMPILER V6.10  386                                                                    03/14/2006 10:33:03 PAGE 19  

1102   3            if(JISHU<=20000)
1103   3              {_nop_();
1104   4               _nop_();
1105   4               goto ReadStatus;
1106   4              }
1107   3            else {
1108   4                  
1109   4                   for(Time_DU=0;Time_DU<1000;Time_DU++)
1110   4                  {
1111   5                   if(Sound_Du==1){Sound_Du=0;DELAY_025ms(1);}
1112   5                   else {Sound_Du=1;DELAY_025ms(1);}
1113   5                  }
1114   4                  Sound_Du=1;
1115   4                  J_LineToPhone=1;  //模拟挂机
1116   4                  BJ=1; 
1117   4      
1118   4                  return;
1119   4                }
1120   3           }//没有收满4位密码的处理
1121   2      
1122   2          } //没有键值输入,包含“收满4位密码/没有收满4位密码”的处理过程结束
1123   1      }  //void Remote_Program() 子程序结束
1124          //--------------------------------------------------------------------------------------------------//
1125          
1126          unsigned char Read24C02_139()
1127          { 
1128   1         unsigned char ENDLOCK=0;
1129   1         bit Check_bit=1;
1130   1         startRead:  START24C02();
1131   1         WriteOneByte(160);            //寻址字节为0A0H,“写”
1132   1         Check_bit=Check24C02();      //校验应答位
1133   1         if(Check_bit==1)              //如果出错,从新启动总线
1134   1         goto startRead;
1135   1         
1136   1         WriteOneByte(99);      //确定片内寻址地址
1137   1         Check_bit=Check24C02();      //校验应答位
1138   1         if(Check_bit==1)              //如果出错,从新启动总线
1139   1         goto startRead;
1140   1         STOP24C02();            //  执行完后,scl=0,sda=1
1141   1      
1142   1        startReadD: START24C02();
1143   1         WriteOneByte(161);            //寻址字节为0A1H,“读”
1144   1         Check_bit=Check24C02();      //校验应答位
1145   1         if(Check_bit==1)              //如果出错,从新启动总线
1146   1         goto startReadD;
1147   1         ENDLOCK=ReadOneByte();
1148   1         MNACK();
1149   1         STOP24C02();
1150   1         return(ENDLOCK);
1151   1      }
1152          
1153          unsigned char Read24C02_FIRST()
1154          { 
1155   1         unsigned char ENDLOCK=0;
1156   1         bit Check_bit=1;
1157   1         startRead:  START24C02();
1158   1         WriteOneByte(160);            //寻址字节为0A0H,“写”
1159   1         Check_bit=Check24C02();      //校验应答位
1160   1         if(Check_bit==1)              //如果出错,从新启动总线
1161   1         goto startRead;
1162   1         
1163   1         WriteOneByte(98);      //确定片内寻址地址
C51 COMPILER V6.10  386                                                                    03/14/2006 10:33:03 PAGE 20  

1164   1         Check_bit=Check24C02();      //校验应答位
1165   1         if(Check_bit==1)              //如果出错,从新启动总线
1166   1         goto startRead;
1167   1         STOP24C02();            //  执行完后,scl=0,sda=1
1168   1      
1169   1        startReadD: START24C02();
1170   1         WriteOneByte(161);            //寻址字节为0A1H,“读”
1171   1         Check_bit=Check24C02();      //校验应答位
1172   1         if(Check_bit==1)              //如果出错,从新启动总线
1173   1         goto startReadD;
1174   1         ENDLOCK=ReadOneByte();
1175   1         MNACK();
1176   1         STOP24C02();
1177   1         return(ENDLOCK);
1178   1      }
1179          
1180          void initinize1(void) 
1181          {
1182   1       bit Check_bit=1;
1183   1      
1184   1       startWrite:   START24C02();     //START24C02()执行完后,scl=0,sda=0
1185   1             WriteOneByte(160);            //寻址字节为0A0H,“写”;执行完后,scl=0,sda=0 
1186   1             Check_bit=Check24C02();      //校验应答位;执行完后,scl=0,sda不管
1187   1             if(Check_bit==1)              //如果出错,从新启动总线
1188   1             goto startWrite;
1189   1      
1190   1             WriteOneByte(102);      //确定片内寻址地址
1191   1             Check_bit=Check24C02();      //校验应答位
1192   1             if(Check_bit==1)              //如果出错,从新启动总线
1193   1             goto startWrite;
1194   1      
1195   1             WriteOneByte(0);  
1196   1             Check_bit=Check24C02();
1197   1             if(Check_bit==1)              //如果出错,从新启动总线
1198   1             goto startWrite;
1199   1             STOP24C02();                 //执行完后,scl=0,sda=1
1200   1             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
1201   1      
1202   1      }
1203          
1204          void initinize2(void) 
1205          {
1206   1       bit Check_bit=1;
1207   1      
1208   1       startWrite:   START24C02();     //START24C02()执行完后,scl=0,sda=0
1209   1             WriteOneByte(160);            //寻址字节为0A0H,“写”;执行完后,scl=0,sda=0 
1210   1             Check_bit=Check24C02();      //校验应答位;执行完后,scl=0,sda不管
1211   1             if(Check_bit==1)              //如果出错,从新启动总线
1212   1             goto startWrite;
1213   1      
1214   1             WriteOneByte(124);      //确定片内寻址地址
1215   1             Check_bit=Check24C02();      //校验应答位
1216   1             if(Check_bit==1)              //如果出错,从新启动总线
1217   1             goto startWrite;
1218   1      
1219   1             WriteOneByte(0);  
1220   1             Check_bit=Check24C02();
1221   1             if(Check_bit==1)              //如果出错,从新启动总线
1222   1             goto startWrite;
1223   1             STOP24C02();                 //执行完后,scl=0,sda=1
1224   1             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
1225   1      }
C51 COMPILER V6.10  386                                                                    03/14/2006 10:33:03 PAGE 21  

1226          
1227          void initinize3(void) 
1228          {
1229   1       bit Check_bit=1;
1230   1       startWrite:   START24C02();     //START24C02()执行完后,scl=0,sda=0
1231   1             WriteOneByte(160);            //寻址字节为0A0H,“写”;执行完后,scl=0,sda=0 
1232   1             Check_bit=Check24C02();      //校验应答位;执行完后,scl=0,sda不管
1233   1             if(Check_bit==1)              //如果出错,从新启动总线
1234   1             goto startWrite;
1235   1      
1236   1             WriteOneByte(144);      //确定片内寻址地址
1237   1             Check_bit=Check24C02();      //校验应答位
1238   1             if(Check_bit==1)              //如果出错,从新启动总线
1239   1             goto startWrite;
1240   1      
1241   1             WriteOneByte(0);  
1242   1             Check_bit=Check24C02();
1243   1             if(Check_bit==1)              //如果出错,从新启动总线
1244   1             goto startWrite;
1245   1             STOP24C02();                 //执行完后,scl=0,sda=1
1246   1             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
1247   1      }
1248          
1249          void initinize4(void) 
1250          {
1251   1       bit Check_bit=1;
1252   1      
1253   1       startWrite:   START24C02();     //START24C02()执行完后,scl=0,sda=0
1254   1             WriteOneByte(160);            //寻址字节为0A0H,“写”;执行完后,scl=0,sda=0 
1255   1             Check_bit=Check24C02();      //校验应答位;执行完后,scl=0,sda不管
1256   1             if(Check_bit==1)              //如果出错,从新启动总线
1257   1             goto startWrite;
1258   1      
1259   1             WriteOneByte(164);      //确定片内寻址地址
1260   1             Check_bit=Check24C02();      //校验应答位
1261   1             if(Check_bit==1)              //如果出错,从新启动总线
1262   1             goto startWrite;
1263   1      
1264   1             WriteOneByte(0);  
1265   1             Check_bit=Check24C02();
1266   1             if(Check_bit==1)              //如果出错,从新启动总线
1267   1             goto startWrite;
1268   1             STOP24C02();                 //执行完后,scl=0,sda=1
1269   1             _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
1270   1      }
1271          
1272          void initinize5(void) 
1273          {
1274   1       bit Check_bit=1;
1275   1      
1276   1       startWrite:   START24C02();     //START24C02()执行完后,scl=0,sda=0
1277   1             WriteOneByte(160);            //寻址字节为0A0H,“写”;执行完后,scl=0,sda=0 
1278   1             Check_bit=Check24C02();      //校验应答位;执行完后,scl=0,sda不管
1279   1             if(Check_bit==1)              //如果出错,从新启动总线
1280   1             goto startWrite;
1281   1  

⌨️ 快捷键说明

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