📄 main.lis
字号:
044A 242E mov R2,R20
044C 3324 clr R3
044E 4150 subi R20,1
0450 2220 tst R2
0452 79F7 brne L88
0454 .dbline 260
0454 ; }
0454 ; return(TRUE);
0454 01E0 ldi R16,1
0456 .dbline -2
0456 L87:
0456 00D0 rcall pop_gset1
0458 .dbline 0 ; func end
0458 0895 ret
045A .dbsym r strlen 20 c
045A .dbsym r str2 18 pkc
045A .dbsym r str1 16 pc
045A .dbend
045A .dbfunc e Delete_SMS _Delete_SMS fV
045A ; count -> R20
045A ; num -> R22
.even
045A _Delete_SMS::
045A 00D0 rcall push_gset2
045C 602F mov R22,R16
045E .dbline -1
045E .dbline 267
045E ; }
045E ;
045E ; /*-----------------------------------------------------------------------*/
045E ; ///////////////////////////// 删除短信 //////////////////////////////
045E ; /*-----------------------------------------------------------------------*/
045E ; void Delete_SMS(unsigned char num) // 删除SMS,=0删除所有SMS
045E ; {
045E .dbline 270
045E ; unsigned char count;
045E ;
045E ; for(count = 0;count < AtcmgdLen;count++) // AT命令窜移入发送缓冲
045E 4427 clr R20
0460 0FC0 rjmp L97
0462 L94:
0462 .dbline 271
0462 .dbline 272
0462 80E0 ldi R24,<_Atcmgd
0464 90E0 ldi R25,>_Atcmgd
0466 E42F mov R30,R20
0468 FF27 clr R31
046A E80F add R30,R24
046C F91F adc R31,R25
046E E491 lpm R30,Z
0470 80E0 ldi R24,<_TmpBuf
0472 90E0 ldi R25,>_TmpBuf
0474 A42F mov R26,R20
0476 BB27 clr R27
0478 A80F add R26,R24
047A B91F adc R27,R25
047C EC93 st x,R30
047E .dbline 273
047E L95:
047E .dbline 270
047E 4395 inc R20
0480 L97:
0480 .dbline 270
0480 4830 cpi R20,8
0482 78F3 brlo L94
0484 .dbline 275
0484 ; {
0484 ; TmpBuf[count] = Atcmgd[count];
0484 ; }
0484 ;
0484 ; if(num == ALL)
0484 6F3F cpi R22,255
0486 F1F4 brne L98
0488 .dbline 276
0488 ; {
0488 .dbline 277
0488 ; for(count = 1; count < 10; count++)
0488 41E0 ldi R20,1
048A 09C0 rjmp L103
048C L100:
048C .dbline 278
048C .dbline 279
048C 842F mov R24,R20
048E 805D subi R24,208 ; addi 48
0490 80932A01 sts _TmpBuf+8,R24
0494 .dbline 280
0494 29E0 ldi R18,9
0496 00E0 ldi R16,<_TmpBuf
0498 10E0 ldi R17,>_TmpBuf
049A EDDE rcall _Put_AT_String
049C .dbline 282
049C L101:
049C .dbline 277
049C 4395 inc R20
049E L103:
049E .dbline 277
049E 4A30 cpi R20,10
04A0 A8F3 brlo L100
04A2 .dbline 283
04A2 ; {
04A2 ; TmpBuf[AtcmgdLen] = count + 0x30;
04A2 ; Put_AT_String((unsigned char*)TmpBuf,(AtcmgdLen+1));
04A2 ;
04A2 ; }
04A2 ; TmpBuf[AtcmgdLen] = 0x31;
04A2 81E3 ldi R24,49
04A4 80932A01 sts _TmpBuf+8,R24
04A8 .dbline 284
04A8 ; for(count = 0; count < 10; count++)
04A8 4427 clr R20
04AA 09C0 rjmp L109
04AC L106:
04AC .dbline 285
04AC .dbline 286
04AC 842F mov R24,R20
04AE 805D subi R24,208 ; addi 48
04B0 80932B01 sts _TmpBuf+9,R24
04B4 .dbline 287
04B4 2AE0 ldi R18,10
04B6 00E0 ldi R16,<_TmpBuf
04B8 10E0 ldi R17,>_TmpBuf
04BA DDDE rcall _Put_AT_String
04BC .dbline 289
04BC L107:
04BC .dbline 284
04BC 4395 inc R20
04BE L109:
04BE .dbline 284
04BE 4A30 cpi R20,10
04C0 A8F3 brlo L106
04C2 .dbline 291
04C2 ; {
04C2 ; TmpBuf[AtcmgdLen+1] = count + 0x30;
04C2 ; Put_AT_String((unsigned char*)TmpBuf,(AtcmgdLen+2));
04C2 ;
04C2 ; }
04C2 ;
04C2 ; }
04C2 08C0 rjmp L99
04C4 L98:
04C4 .dbline 293
04C4 .dbline 294
04C4 862F mov R24,R22
04C6 805D subi R24,208 ; addi 48
04C8 80932A01 sts _TmpBuf+8,R24
04CC .dbline 295
04CC 29E0 ldi R18,9
04CE 00E0 ldi R16,<_TmpBuf
04D0 10E0 ldi R17,>_TmpBuf
04D2 D1DE rcall _Put_AT_String
04D4 .dbline 297
04D4 L99:
04D4 .dbline -2
04D4 L93:
04D4 00D0 rcall pop_gset2
04D6 .dbline 0 ; func end
04D6 0895 ret
04D8 .dbsym r count 20 c
04D8 .dbsym r num 22 c
04D8 .dbend
04D8 .dbfunc e CheckSMS_in _CheckSMS_in fc
.even
04D8 _CheckSMS_in::
04D8 2197 sbiw R28,1
04DA .dbline -1
04DA .dbline 304
04DA ; else
04DA ; {
04DA ; TmpBuf[AtcmgdLen] = num + 0x30;
04DA ; Put_AT_String((unsigned char*)TmpBuf,(AtcmgdLen+1));
04DA ;
04DA ; }
04DA ; }
04DA ;
04DA ; /*-----------------------------------------------------------------------*/
04DA ; /////////////////////////// 检查SMS返回 //////////////////////////////
04DA ; /*-----------------------------------------------------------------------*/
04DA ; unsigned char CheckSMS_in(void)
04DA ; {
04DA L113:
04DA .dbline 305
04DA L114:
04DA .dbline 305
04DA ; while(!RxStatus); // 等待接收完成
04DA 20900D00 lds R2,_RxStatus
04DE 2220 tst R2
04E0 E1F3 breq L113
04E2 .dbline 306
04E2 ; DelayMs(100);
04E2 04E6 ldi R16,100
04E4 10E0 ldi R17,0
04E6 00D0 rcall _DelayMs
04E8 .dbline 308
04E8 ;
04E8 ; if(StringCompare(RxBuf,SMSin,SMSinLen)) // 如果收到OK完成 +CMTI: "SM", 1
04E8 8EE0 ldi R24,14
04EA 8883 std y+0,R24
04EC 20E0 ldi R18,<_SMSin
04EE 30E0 ldi R19,>_SMSin
04F0 00E0 ldi R16,<_RxBuf
04F2 10E0 ldi R17,>_RxBuf
04F4 9BDF rcall _StringCompare
04F6 0023 tst R16
04F8 11F0 breq L116
04FA .dbline 309
04FA ; {
04FA .dbline 310
04FA ; return (OK);
04FA 01E0 ldi R16,1
04FC 01C0 rjmp L112
04FE L116:
04FE .dbline 313
04FE ; }
04FE ; else
04FE ; {
04FE .dbline 314
04FE ; return (ERROR);
04FE 0027 clr R16
0500 .dbline -2
0500 L112:
0500 2196 adiw R28,1
0502 .dbline 0 ; func end
0502 0895 ret
0504 .dbend
0504 .dbfunc e CheckSMS _CheckSMS fV
0504 ; numlen -> R22
0504 ; j -> R22
0504 ; index -> R22
0504 ; i -> R20
.even
0504 _CheckSMS::
0504 00D0 rcall push_gset2
0506 .dbline -1
0506 .dbline 322
0506 ; }
0506 ;
0506 ; }
0506 ; /*-----------------------------------------------------------------------*/
0506 ; /////////////// 将设置号码存入内存 /////////////////
0506 ; /*-----------------------------------------------------------------------*/
0506 ; void CheckSMS(void)
0506 ; {
0506 .dbline 323
0506 ; unsigned char i=0,j=0,index,numlen=0;
0506 4427 clr R20
0508 .dbline 323
0508 6627 clr R22
050A .dbline 323
050A .dbline 324
050A ; for(;i<12;i++)
050A 09C0 rjmp L122
050C L119:
050C .dbline 325
050C .dbline 326
050C 80E0 ldi R24,<_PhoneNum
050E 90E0 ldi R25,>_PhoneNum
0510 E42F mov R30,R20
0512 FF27 clr R31
0514 E80F add R30,R24
0516 F91F adc R31,R25
0518 2224 clr R2
051A 2082 std z+0,R2
051C .dbline 327
051C L120:
051C .dbline 324
051C 4395 inc R20
051E L122:
051E .dbline 324
051E 4C30 cpi R20,12
0520 A8F3 brlo L119
0522 .dbline 341
0522 ; {
0522 ; PhoneNum[i] = 0;
0522 ; }
0522 ; /* do
0522 ; {
0522 ; i++;
0522 ; j=i+1;
0522 ; }
0522 ; //while((Pdu[i] == 'G') && (Pdu[j] == 'H'));
0522 ;
0522 ; index = j+1;
0522 ; i = index;
0522 ; while(Pdu[i++] == '+')numlen++;
0522 ;
0522 ; j = 79; */
0522 ;
0522 ; index = 79;
0522 6FE4 ldi R22,79
0524 .dbline 342
0524 ; for(i=0;i<11;i++)
0524 4427 clr R20
0526 13C0 rjmp L126
0528 L123:
0528 .dbline 343
0528 .dbline 344
0528 262E mov R2,R22
052A 3324 clr R3
052C 6F5F subi R22,255 ; addi 1
052E 80E0 ldi R24,<_Pdu
0530 90E0 ldi R25,>_Pdu
0532 E22D mov R30,R2
0534 FF27 clr R31
0536 E80F add R30,R24
0538 F91F adc R31,R25
053A 2080 ldd R2,z+0
053C 80E0 ldi R24,<_PhoneNum
053E 90E0 ldi R25,>_PhoneNum
0540 E42F mov R30,R20
0542 FF27 clr R31
0544 E80F add R30,R24
0546 F91F adc R31,R25
0548 2082 std z+0,R2
054A .dbline 345
054A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -