C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 1 C51 COMPILER V9.01, COMPILATION OF MODULE PROTECT OBJECT MODULE PLACED IN .\output\Protect.obj COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\Protect.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Loa -d.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\co -de_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\Protect.lst) OBJECT(.\output\Pro -tect.obj) line level source 1 /******************************************************************************** 2 Copyright (C), Sinowealth Electronic. Ltd. 3 Author: Sino 4 Version: V0.0 5 Date: 2020/04/26 6 History: 7 V2.0 2020/04/26 Preliminary 8 ********************************************************************************/ 9 #include "Main.h" 10 11 12 //±£»¤Ïà¹ØµÄ²ÎÊý 13 BOOL bUVLock; //¸ºÔØËø¶¨£¬µ±Ç·Ñ¹»Ö¸´ºó£¬ÖÃλ¸Ã±êÖ¾£¬¶ø²»ÊÇÖ±½ÓÇåÁãbUV£¬µ±¸ºÔØÊͷźó£ -¬ÔÙÇåÁãbUV 14 BOOL bOVLock; //³äµçÆ÷Ëø¶¨£¬µ±¹ýѹ»Ö¸´ºó£¬ÖÃλ¸Ã±êÖ¾£¬¶ø²»ÊÇÖ±½ÓÇåÁãbOV£¬µ±³äµçÆ÷ÊÍ· -źó£¬ÔÙÇåÁãbOV 15 U16 xdata uiOVDelayCnt; 16 U16 xdata uiOVRDelayCnt; 17 U16 xdata uiUVDelayCnt; 18 U16 xdata uiUVRDelayCnt; 19 U16 xdata uiOTCDelayCnt; 20 U16 xdata uiOTCRDelayCnt; 21 U16 xdata uiUTCDelayCnt; 22 U16 xdata uiUTCRDelayCnt; 23 U16 xdata uiOTDDelayCnt; 24 U16 xdata uiOTDRDelayCnt; 25 U16 xdata uiUTDDelayCnt; 26 U16 xdata uiUTDRDelayCnt; 27 U16 xdata uiOCCDelayCnt; 28 U16 xdata uiOCD1DelayCnt; 29 U16 xdata uiOCD2DelayCnt; 30 U16 xdata uiOCCRcnt; 31 U16 xdata uiOCDRcnt; 32 33 /************************************************************************************************* 34 * º¯ÊýÃû: ProtectOV 35 * ²Î Êý: ÎÞ 36 * ·µ»ØÖµ: ÎÞ 37 * Ãè Êö: µ¥½Úµç³Ø¹ýѹ±£»¤¼ì²â£¬¹ýѹºóÖÃλbOVΪ1 38 *************************************************************************************************/ 39 void ProtectOV(void) 40 { 41 1 if(!(bOV||bAFE_OV)) 42 1 { 43 2 if(uiCellVmax > E2uiOVvol) 44 2 { 45 3 if(++uiOVDelayCnt >= OV_DELAY_CNT) 46 3 { 47 4 bOV = 1; 48 4 bOVLock = 0; 49 4 uiOVDelayCnt = 0; 50 4 uiOVRDelayCnt = 0; C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 2 51 4 } 52 3 } 53 2 else if(uiCellVmax < E2uiOVRvol) 54 2 { 55 3 uiOVDelayCnt = 0; 56 3 } 57 2 } 58 1 else if(!bOVLock) 59 1 { 60 2 if(uiCellVmax < E2uiOVRvol) 61 2 { 62 3 if(++uiOVRDelayCnt >= OVR_DELAY_CNT) 63 3 { 64 4 if(bChgerLock) 65 4 { 66 5 bOVLock = 1; //¹ýѹãÐÖµ»Ö¸´£¬µ«ÊÇ»¹Ðè¼ì²â¸ºÔØÊÍ·ÅÊÍ·Å 67 5 bChgerStartCheckFlg = 1; //¿ªÆô³äµçÆ÷ 68 5 } 69 4 else 70 4 { 71 5 bOV = 0; 72 5 bAFE_OV = 0; 73 5 AFEClrFlg(); 74 5 } 75 4 uiOVDelayCnt = 0; 76 4 uiOVRDelayCnt = 0; 77 4 } 78 3 } 79 2 else if(uiCellVmax > E2uiOVvol) 80 2 { 81 3 uiOVRDelayCnt = 0; 82 3 } 83 2 } 84 1 } 85 86 /************************************************************************************************* 87 * º¯ÊýÃû: ProtectUV 88 * ²Î Êý: ÎÞ 89 * ·µ»ØÖµ: ÎÞ 90 * Ãè Êö: µ¥½ÚµçоǷѹ±£»¤¼ì²â£¬±£»¤ºóÖÃλbUVΪ1 91 *************************************************************************************************/ 92 void ProtectUV(void) 93 { 94 1 if(!bUV) 95 1 { 96 2 if(uiCellVmin < E2uiUVvol) 97 2 { 98 3 if(++uiUVDelayCnt >= UV_DELAY_CNT) 99 3 { 100 4 bUV = 1; 101 4 bUVLock = 0; 102 4 uiUVDelayCnt = 0; 103 4 uiUVRDelayCnt = 0; 104 4 } 105 3 } 106 2 else if(uiCellVmin > E2uiUVRvol) 107 2 { 108 3 uiUVDelayCnt = 0; 109 3 } 110 2 } 111 1 else if(!bUVLock) 112 1 { C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 3 113 2 if(uiCellVmin > E2uiUVRvol) 114 2 { 115 3 if(++uiUVRDelayCnt >= UVR_DELAY_CNT) 116 3 { 117 4 if(bLoadLock) //Èç¹ûÖ§³Ö¸ºÔØËø¶¨£¬Ôò²»Á¢¿ÌÇåUV±êÖ¾£¬ÐèÒª¸ºÔØÊͷźóÔÙÇåÁã 118 4 { 119 5 bUVLock = 1; //ǷѹãÐÖµ»Ö¸´£¬µ«ÊÇ»¹Ðè¼ì²â¸ºÔØÊÍ·ÅÊÍ·Å 120 5 bLoadStartCheckFlg = 1; //¿ªÆô¸ºÔؼì²â 121 5 } 122 4 else 123 4 { 124 5 bUV = 0; 125 5 } 126 4 uiUVDelayCnt = 0; 127 4 uiUVRDelayCnt = 0; 128 4 } 129 3 } 130 2 else if(uiCellVmin < E2uiUVvol) 131 2 { 132 3 uiUVRDelayCnt = 0; 133 3 } 134 2 } 135 1 } 136 137 /************************************************************************************************* 138 * º¯ÊýÃû: ProtectOTC 139 * ²Î Êý: ÎÞ 140 * ·µ»ØÖµ: ÎÞ 141 * Ãè Êö: ³äµç¸ßα£»¤¼ì²â£¬±£»¤ºóÖÃλbOTCΪ1 142 *************************************************************************************************/ 143 void ProtectOTC(void) 144 { 145 1 if(!bOTC) 146 1 { 147 2 if(uiTempeMax > E2uiTempOTC) 148 2 { 149 3 if(++uiOTCDelayCnt >= TEMPE_DELAY_CNT) 150 3 { 151 4 bOTC = 1; 152 4 uiOTCDelayCnt = 0; 153 4 uiOTCRDelayCnt = 0; 154 4 } 155 3 } 156 2 else if(uiTempeMax < E2uiTempOTCR) 157 2 { 158 3 uiOTCDelayCnt = 0; 159 3 } 160 2 } 161 1 else 162 1 { 163 2 if(uiTempeMax < E2uiTempOTCR) 164 2 { 165 3 if(++uiOTCRDelayCnt >= TEMPER_DELAY_CNT) 166 3 { 167 4 bOTC = 0; 168 4 uiOTCDelayCnt = 0; 169 4 uiOTCRDelayCnt = 0; 170 4 } 171 3 } 172 2 else if(uiTempeMax > E2uiTempOTC) 173 2 { 174 3 uiOTCRDelayCnt = 0; C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 4 175 3 } 176 2 } 177 1 } 178 179 180 /************************************************************************************************* 181 * º¯ÊýÃû: ProtectUTC 182 * ²Î Êý: ÎÞ 183 * ·µ»ØÖµ: ÎÞ 184 * Ãè Êö: ³äµçµÍα£»¤¼ì²â£¬±£»¤ºóÖÃλbUTCΪ1 185 *************************************************************************************************/ 186 void ProtectUTC(void) 187 { 188 1 if(!bUTC) 189 1 { 190 2 if(uiTempeMin < E2uiTempUTC) 191 2 { 192 3 if(++uiUTCDelayCnt >= TEMPE_DELAY_CNT) 193 3 { 194 4 bUTC = 1; 195 4 uiUTCDelayCnt = 0; 196 4 uiUTCRDelayCnt = 0; 197 4 } 198 3 } 199 2 else if(uiTempeMin > E2uiTempUTCR) 200 2 { 201 3 uiUTCDelayCnt = 0; 202 3 } 203 2 } 204 1 else 205 1 { 206 2 if(uiTempeMin > E2uiTempUTCR) 207 2 { 208 3 if(++uiUTCRDelayCnt >= TEMPER_DELAY_CNT) 209 3 { 210 4 bUTC = 0; 211 4 uiUTCDelayCnt = 0; 212 4 uiUTCRDelayCnt = 0; 213 4 } 214 3 } 215 2 else if(uiTempeMin < E2uiTempUTC) 216 2 { 217 3 uiUTCRDelayCnt = 0; 218 3 } 219 2 } 220 1 } 221 222 223 /************************************************************************************************* 224 * º¯ÊýÃû: ProtectOTD 225 * ²Î Êý: ÎÞ 226 * ·µ»ØÖµ: ÎÞ 227 * Ãè Êö: ·Åµç¸ßα£»¤¼ì²â£¬±£»¤ºóÖÃλbOTDΪ1 228 *************************************************************************************************/ 229 void ProtectOTD(void) 230 { 231 1 if(!bOTD) 232 1 { 233 2 if(uiTempeMax > E2uiTempOTD) 234 2 { 235 3 if(++uiOTDDelayCnt >= TEMPE_DELAY_CNT) 236 3 { C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 5 237 4 bOTD = 1; 238 4 uiOTDDelayCnt = 0; 239 4 uiOTDRDelayCnt = 0; 240 4 } 241 3 } 242 2 else if(uiTempeMax < E2uiTempOTDR) 243 2 { 244 3 uiOTDDelayCnt = 0; 245 3 } 246 2 } 247 1 else 248 1 { 249 2 if(uiTempeMax < E2uiTempOTDR) 250 2 { 251 3 if(++uiOTDRDelayCnt >= TEMPER_DELAY_CNT) 252 3 { 253 4 bOTD = 0; 254 4 uiOTDDelayCnt = 0; 255 4 uiOTDRDelayCnt = 0; 256 4 } 257 3 } 258 2 else if(uiTempeMax > E2uiTempOTD) 259 2 { 260 3 uiOTDRDelayCnt = 0; 261 3 } 262 2 } 263 1 } 264 265 266 /************************************************************************************************* 267 * º¯ÊýÃû: ProtectUTD 268 * ²Î Êý: ÎÞ 269 * ·µ»ØÖµ: ÎÞ 270 * Ãè Êö: ·ÅµçµÍα£»¤¼ì²â£¬±£»¤ºóÖÃλbUTDΪ1 271 *************************************************************************************************/ 272 void ProtectUTD(void) 273 { 274 1 if(!bUTD) 275 1 { 276 2 if(uiTempeMin < E2uiTempUTD) 277 2 { 278 3 if(++uiUTDDelayCnt >= TEMPE_DELAY_CNT) 279 3 { 280 4 bUTD = 1; 281 4 uiUTDDelayCnt = 0; 282 4 uiUTDRDelayCnt = 0; 283 4 } 284 3 } 285 2 else if(uiTempeMin > E2uiTempUTDR) 286 2 { 287 3 uiUTDDelayCnt = 0; 288 3 } 289 2 } 290 1 else 291 1 { 292 2 if(uiTempeMin > E2uiTempUTDR) 293 2 { 294 3 if(++uiUTDRDelayCnt >= TEMPER_DELAY_CNT) 295 3 { 296 4 bUTD = 0; 297 4 uiUTDDelayCnt = 0; 298 4 uiUTDRDelayCnt = 0; C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 6 299 4 } 300 3 } 301 2 else if(uiTempeMin < E2uiTempUTD) 302 2 { 303 3 uiUTDRDelayCnt = 0; 304 3 } 305 2 } 306 1 } 307 308 309 310 /************************************************************************************************* 311 * º¯ÊýÃû: ProtectOCC 312 * ²Î Êý: ÎÞ 313 * ·µ»ØÖµ: ÎÞ 314 * Ãè Êö: ³äµç¹ýÁ÷±£»¤¼ì²â£¬±£»¤ºóÖÃλbOCCΪ1 315 *************************************************************************************************/ 316 void ProtectOCC(void) 317 { 318 1 if(!bOCC) 319 1 { 320 2 if(slCadcCurrent > E2slOCCCurrent) 321 2 { 322 3 if(++uiOCCDelayCnt >= OCC_DELAY_CNT) 323 3 { 324 4 bOCC = 1; 325 4 bChgerStartCheckFlg = 1; //ÉèÖóäµçÆ÷¿ªÊ¼¼ì²â±êÖ¾ 326 4 uiOCCDelayCnt = 0; 327 4 } 328 3 } 329 2 else if(!bChgerChkingFlg) 330 2 { 331 3 if(uiOCCDelayCnt > 0) 332 3 { 333 4 uiOCCDelayCnt--; 334 4 } 335 3 } 336 2 } 337 1 } 338 339 340 /************************************************************************************************* 341 * º¯ÊýÃû: ProtectOCD1 342 * ²Î Êý: ÎÞ 343 * ·µ»ØÖµ: ÎÞ 344 * Ãè Êö: ·Åµç¹ýÁ÷1±£»¤¼ì²â£¬±£»¤ºóÖÃλbOCD1Ϊ1 345 *************************************************************************************************/ 346 void ProtectOCD1(void) 347 { 348 1 if(!bOCD1) 349 1 { 350 2 if(slCadcCurrent < E2slOCD1Current) 351 2 { 352 3 if(++uiOCD1DelayCnt >= OCD1_DELAY_CNT) 353 3 { 354 4 uiOCD1DelayCnt = 0; 355 4 bOCD1 = 1; 356 4 bLoadStartCheckFlg = 1; //¿ªÆô¸ºÔؼì²â 357 4 } 358 3 } 359 2 else if(!bLoadChkingFlg) 360 2 { C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 7 361 3 if(uiOCD1DelayCnt > 0) 362 3 { 363 4 uiOCD1DelayCnt--; 364 4 } 365 3 } 366 2 } 367 1 } 368 369 370 /************************************************************************************************* 371 * º¯ÊýÃû: ProtectOCD2 372 * ²Î Êý: ÎÞ 373 * ·µ»ØÖµ: ÎÞ 374 * Ãè Êö: ·Åµç¹ýÁ÷2±£»¤¼ì²â£¬±£»¤ºóÖÃλbOCD2Ϊ1 375 *************************************************************************************************/ 376 void ProtectOCD2(void) 377 { 378 1 if(!bOCD2) 379 1 { 380 2 if(slCadcCurrent < E2slOCD2Current) 381 2 { 382 3 if(++uiOCD2DelayCnt > OCD2_DELAY_CNT) 383 3 { 384 4 uiOCD2DelayCnt = 0; 385 4 bOCD2 = 1; 386 4 bLoadStartCheckFlg = 1; //¿ªÆô¸ºÔؼì²â 387 4 } 388 3 } 389 2 else if(!bLoadChkingFlg) 390 2 { 391 3 if(uiOCD2DelayCnt > 0) 392 3 { 393 4 uiOCD2DelayCnt--; 394 4 } 395 3 } 396 2 } 397 1 } 398 399 400 /************************************************************************************************* 401 * º¯ÊýÃû: ProtectProcess 402 * ²Î Êý: ÎÞ 403 * ·µ»ØÖµ: ÎÞ 404 * Ãè Êö: ¸÷ÖÖ±£»¤¼ì²â 405 *************************************************************************************************/ 406 void ProtectProcess(void) 407 { 408 1 if(!bPorSelfTestFlg) //Èç¹ûÊÇÉϵç1s×Ô¼ì¹ý³ÌÖУ¬Ôò²»¼ì²âÕý³£±£»¤ 409 1 { 410 2 ProtectOV(); //¼ì²â¹ýѹ±£»¤¼°ÆäÊÍ·Å 411 2 ProtectUV(); //¼ì²âǷѹ±£»¤¼°ÆäÊÍ·Å 412 2 413 2 ProtectOTC(); //¼ì²â³äµç¸ßα£»¤¼°ÆäÊÍ·Å 414 2 ProtectUTC(); //¼ì²â³äµçµÍα£»¤¼°ÆäÊÍ·Å 415 2 ProtectOTD(); //¼ì²â·Åµç¸ßα£»¤¼°ÆäÊÍ·Å 416 2 ProtectUTD(); //¼ì²â·ÅµçµÍα£»¤¼°ÆäÊÍ·Å 417 2 418 2 ProtectOCC(); //³äµç¹ýÁ÷±£»¤ 419 2 ProtectOCD1(); //·Åµç¹ýÁ÷1±£»¤ 420 2 ProtectOCD2(); //·Åµç¹ýÁ÷2±£»¤ 421 2 } 422 1 } C51 COMPILER V9.01 PROTECT 02/19/2025 10:42:28 PAGE 8 423 424 425 /************************************************************************************************* 426 * º¯ÊýÃû: ProtectOCRecover 427 * ²Î Êý: ÎÞ 428 * ·µ»ØÖµ: ÎÞ 429 * Ãè Êö: µçÁ÷±£»¤×Ô»Ö¸´ 430 *************************************************************************************************/ 431 void ProtectOCRecover(void) 432 { 433 1 if(bOCRC_EN) 434 1 { 435 2 if(bOCD1 || bOCD2 || bAFE_SC) 436 2 { 437 3 if(++uiOCDRcnt >= OCDR_DELAY_CNT) 438 3 { 439 4 ucLoadRCnt = 0; 440 4 uiOCDRcnt = 0; 441 4 bOCD1 = 0; 442 4 bOCD2 = 0; 443 4 bLoadStartCheckFlg = 0; 444 4 bLoadChkingFlg = 0; 445 4 if(bAFE_SC) 446 4 { 447 5 bAFE_SC = 0; 448 5 AFEClrFlg(); 449 5 } 450 4 } 451 3 } 452 2 453 2 if(bOCC) 454 2 { 455 3 if(++uiOCCRcnt > OCCR_DELAY_CNT) 456 3 { 457 4 uiOCCRcnt = 0; 458 4 bOCC = 0; 459 4 ucChgerRCnt = 0; 460 4 bChgerChkingFlg = 0; 461 4 } 462 3 } 463 2 } 464 1 } 465 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 1552 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 34 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = 2 ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)