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

📄 interrupt.lis

📁 与GPS模块连接
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 01A0 042F              mov R16,R20
 01A2                   .dbline -2
 01A2           L23:
 01A2 00D0              rcall pop_gset1
 01A4                   .dbline 0 ; func end
 01A4 0895              ret
 01A6                   .dbsym r temp 20 c
 01A6                   .dbend
 01A6                   .dbfunc e Clear_GpsData _Clear_GpsData fV
 01A6           ;              j -> R16
                        .even
 01A6           _Clear_GpsData::
 01A6                   .dbline -1
 01A6                   .dbline 79
 01A6           ; }
 01A6           ; 
 01A6           ; void Clear_GpsData(void)
 01A6           ; {
 01A6                   .dbline 81
 01A6           ;       uchar j;
 01A6           ;  for(j=0; j<26; j++)
 01A6 0027              clr R16
 01A8 09C0              rjmp L32
 01AA           L29:
 01AA                   .dbline 82
 01AA                   .dbline 83
 01AA 80E0              ldi R24,<_JWDINFO
 01AC 90E0              ldi R25,>_JWDINFO
 01AE E02F              mov R30,R16
 01B0 FF27              clr R31
 01B2 E80F              add R30,R24
 01B4 F91F              adc R31,R25
 01B6 80E3              ldi R24,48
 01B8 8083              std z+0,R24
 01BA                   .dbline 84
 01BA           L30:
 01BA                   .dbline 81
 01BA 0395              inc R16
 01BC           L32:
 01BC                   .dbline 81
 01BC 0A31              cpi R16,26
 01BE A8F3              brlo L29
 01C0                   .dbline -2
 01C0           L28:
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbsym r j 16 c
 01C2                   .dbend
 01C2                   .dbfunc e Read_GpsData _Read_GpsData fV
 01C2           ;           temp -> R20
                        .even
 01C2           _Read_GpsData::
 01C2 00D0              rcall push_gset1
 01C4                   .dbline -1
 01C4                   .dbline 89
 01C4           ;       {
 01C4           ;                  JWDINFO[j] ='0';
 01C4           ;                       }
 01C4           ;    }
 01C4           ; 
 01C4           ; //$PTNLRTF,A,A,273306,04,3,2222.28064,N,11332.80025,E,00011,+000.000,+000.000,+000.000*55
 01C4           ; void Read_GpsData(void)
 01C4           ; {
 01C4                   .dbline 90
 01C4           ;       uchar temp = 0;
 01C4 4427              clr R20
 01C6                   .dbline 91
 01C6           ;               temp = Read_byte();
 01C6 BCDF              rcall _Read_byte
 01C8 402F              mov R20,R16
 01CA                   .dbline 92
 01CA           ;          if(temp=='$')
 01CA 0432              cpi R16,36
 01CC B1F4              brne L34
 01CE                   .dbline 93
 01CE           ;             {
 01CE                   .dbline 94
 01CE           ;               temp = Read_byte();
 01CE B8DF              rcall _Read_byte
 01D0 402F              mov R20,R16
 01D2                   .dbline 95
 01D2           ;         if(temp == 'G')
 01D2 0734              cpi R16,71
 01D4 91F4              brne L36
 01D6                   .dbline 96
 01D6           ;           { 
 01D6                   .dbline 97
 01D6           ;                       temp = Read_byte();
 01D6 B4DF              rcall _Read_byte
 01D8 402F              mov R20,R16
 01DA                   .dbline 98
 01DA           ;               if(temp == 'P')
 01DA 0035              cpi R16,80
 01DC 71F4              brne L38
 01DE                   .dbline 99
 01DE           ;                 {
 01DE                   .dbline 100
 01DE           ;                       temp = Read_byte();
 01DE B0DF              rcall _Read_byte
 01E0 402F              mov R20,R16
 01E2                   .dbline 101
 01E2           ;                       if(temp == 'G')
 01E2 0734              cpi R16,71
 01E4 51F4              brne L40
 01E6                   .dbline 102
 01E6           ;                       {
 01E6                   .dbline 103
 01E6           ;                               temp = Read_byte();
 01E6 ACDF              rcall _Read_byte
 01E8 402F              mov R20,R16
 01EA                   .dbline 104
 01EA           ;                               if(temp == 'L')
 01EA 0C34              cpi R16,76
 01EC 31F4              brne L42
 01EE                   .dbline 105
 01EE           ;                               {
 01EE                   .dbline 106
 01EE           ;                                   temp = Read_byte();
 01EE A8DF              rcall _Read_byte
 01F0 402F              mov R20,R16
 01F2                   .dbline 107
 01F2           ;                                      if(temp == 'L')
 01F2 0C34              cpi R16,76
 01F4 11F4              brne L44
 01F6                   .dbline 108
 01F6           ;                                                       {  LED1_ON;
 01F6                   .dbline 108
 01F6 2898              cbi 0x5,0
 01F8                   .dbline 109
 01F8           ;                                                           Parse_GpsData();
 01F8 02D0              rcall _Parse_GpsData
 01FA                   .dbline 111
 01FA           ;                                                          // LED1_OFF;
 01FA           ;                                                                                       }
 01FA           L44:
 01FA                   .dbline 112
 01FA           ;                                                                                }
 01FA           L42:
 01FA                   .dbline 113
 01FA           ;                                                                    }
 01FA           L40:
 01FA                   .dbline 114
 01FA           ;                               }
 01FA           L38:
 01FA                   .dbline 115
 01FA           ;                       }
 01FA           L36:
 01FA                   .dbline 116
 01FA           L34:
 01FA                   .dbline -2
 01FA           L33:
 01FA 00D0              rcall pop_gset1
 01FC                   .dbline 0 ; func end
 01FC 0895              ret
 01FE                   .dbsym r temp 20 c
 01FE                   .dbend
 01FE                   .dbfunc e Parse_GpsData _Parse_GpsData fV
 01FE           ;           temp -> R20
 01FE           ;              i -> R20
                        .even
 01FE           _Parse_GpsData::
 01FE 00D0              rcall push_gset1
 0200                   .dbline -1
 0200                   .dbline 121
 0200           ;               }
 0200           ;              }
 0200           ;   
 0200           ; 
 0200           ; void Parse_GpsData(void)
 0200           ; {     uchar i, temp;
 0200                   .dbline 122
 0200           ;       Clear_GpsData();
 0200 D2DF              rcall _Clear_GpsData
 0202                   .dbline 123
 0202           ;       Read_byte();
 0202 9EDF              rcall _Read_byte
 0204                   .dbline 124
 0204           ;       temp = Read_byte();
 0204 9DDF              rcall _Read_byte
 0206 402F              mov R20,R16
 0208                   .dbline 125
 0208           ;       if(',' != temp) {
 0208 0C32              cpi R16,44
 020A 31F1              breq L47
 020C                   .dbline 125
 020C                   .dbline 126
 020C           ;             JWDINFO[0] = temp;
 020C 40933900          sts _JWDINFO,R20
 0210                   .dbline 127
 0210           ;               for(i=0; i<25; i++)
 0210 4427              clr R20
 0212 09C0              rjmp L52
 0214           L49:
 0214                   .dbline 128
 0214                   .dbline 129
 0214 95DF              rcall _Read_byte
 0216 80E0              ldi R24,<_JWDINFO+1
 0218 90E0              ldi R25,>_JWDINFO+1
 021A E42F              mov R30,R20
 021C FF27              clr R31
 021E E80F              add R30,R24
 0220 F91F              adc R31,R25
 0222 0083              std z+0,R16
 0224                   .dbline 130
 0224           L50:
 0224                   .dbline 127
 0224 4395              inc R20
 0226           L52:
 0226                   .dbline 127
 0226 4931              cpi R20,25
 0228 A8F3              brlo L49
 022A                   .dbline 131
 022A           ;               {
 022A           ;                       JWDINFO[i+1] = Read_byte();
 022A           ;               }
 022A           ;     if(((JWDINFO[11]=='S')||(JWDINFO[11]=='N'))&&((JWDINFO[25]=='E')||(JWDINFO[25]=='W')))
 022A 80914400          lds R24,_JWDINFO+11
 022E 8335              cpi R24,83
 0230 11F0              breq L60
 0232 8E34              cpi R24,78
 0234 89F4              brne L54
 0236           L60:
 0236 80915200          lds R24,_JWDINFO+25
 023A 8534              cpi R24,69
 023C 11F0              breq L61
 023E 8735              cpi R24,87
 0240 59F4              brne L54
 0242           L61:
 0242                   .dbline 132
 0242           ;                  {  JWD_ptr=JWDINFO;
 0242                   .dbline 132
 0242 80E0              ldi R24,<_JWDINFO
 0244 90E0              ldi R25,>_JWDINFO
 0246 90930100          sts _JWD_ptr+1,R25
 024A 80930000          sts _JWD_ptr,R24
 024E                   .dbline 133
 024E           ;                       Fbit.Send_GInfoFlag=TRUE;}
 024E 80917000          lds R24,_Fbit+2
 0252 8160              ori R24,1
 0254 80937000          sts _Fbit+2,R24
 0258                   .dbline 133
 0258           L54:
 0258                   .dbline 135
 0258           L47:
 0258                   .dbline -2
 0258           L46:
 0258 00D0              rcall pop_gset1
 025A                   .dbline 0 ; func end
 025A 0895              ret
 025C                   .dbsym r temp 20 c
 025C                   .dbsym r i 20 c
 025C                   .dbend
 025C                   .dbfunc e Send_GpsInfo _Send_GpsInfo fV
 025C           ;              i -> R20
                        .even
 025C           _Send_GpsInfo::
 025C 00D0              rcall push_gset1
 025E                   .dbline -1
 025E                   .dbline 138
 025E           ;     //else{Clear_GpsData();}
 025E           ;                                                                   }
 025E           ; }
 025E           ; 
 025E           ; void  Send_GpsInfo(void){
 025E                   .dbline 140
 025E           ;        uchar i;
 025E           ;  if(!Fbit.Send_GInfoFlag)return;
 025E 80917000          lds R24,_Fbit+2
 0262 8170              andi R24,1
 0264 09F4              brne L64
 0266                   .dbline 140
 0266 3DC0              rjmp L63
 0268           L64:
 0268                   .dbline 141
 0268           ;  Fbit.Send_GInfoFlag=FALSE;
 0268 80917000          lds R24,_Fbit+2
 026C 8E7F              andi R24,254
 026E 80937000          sts _Fbit+2,R24
 0272                   .dbline 142
 0272           ; JWD_ptr=JWDINFO;
 0272 80E0              ldi R24,<_JWDINFO
 0274 90E0              ldi R25,>_JWDINFO
 0276 90930100          sts _JWD_ptr+1,R25
 027A 80930000          sts _JWD_ptr,R24
 027E                   .dbline 143
 027E 4427              clr R20
 0280 25C0              rjmp L71
 0282           L68:
 0282                   .dbline 143
 0282                   .dbline 144
 0282 E0910000          lds R30,_JWD_ptr
 0286 F0910100          lds R31,_JWD_ptr+1
 028A 0081              ldd R16,z+0
 028C 1127              clr R17
 028E 00D0              rcall _CharTOASC
 0290                   .dbline 145
 0290 82E0              ldi R24,2
 0292 849F              mul R24,R20
 0294 F001              movw R30,R0
 0296 80E0              ldi R24,<_DJWDINFO
 0298 90E0              ldi R25,>_DJWDINFO
 029A E80F              add R30,R24
 029C F91F              adc R31,R25
 029E 20900000          lds R2,_comm_t
 02A2 2082              std z+0,R2
 02A4                   .dbline 146
 02A4 82E0              ldi R24,2
 02A6 849F              mul R24,R20
 02A8 F001              movw R30,R0
 02AA 80E0              ldi R24,<_DJWDINFO+1
 02AC 90E0              ldi R25,>_DJWDINFO+1
 02AE E80F              add R30,R24
 02B0 F91F              adc R31,R25
 02B2 20900000          lds R2,_comm_b
 02B6 2082              std z+0,R2
 02B8                   .dbline 147
 02B8 80910000          lds R24,_JWD_ptr
 02BC 90910100          lds R25,_JWD_ptr+1
 02C0 0196              adiw R24,1
 02C2 90930100          sts _JWD_ptr+1,R25

⌨️ 快捷键说明

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