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