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

📄 main.lis

📁 Proteus实例集锦(包括电路图.仿真程序,各种各样的电路
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -