📄 main.lis
字号:
0092 ; head[1]=Read_buf();
0092 ; head[2]=Read_buf();
0092 ; if(head[0]=='R' && head[1]=='M' && head[2]=='C')
0092 ; {
0092 ; Parse ();
0092 ; return ;
0092 ; }
0092 ; }
0092 ;
0092 ; /**********************************************************************
0092 ; * get information from GPRMC
0092 ; *Description: need array to place time,date, latitude,longtitude
0092 ; size of the array
0092 ; ************************************************************************/
0092 ; void Parse (void)
0092 ; {
0092 .dbline 119
0092 ; char temp;
0092 ; int i=0;
0092 4427 clr R20
0094 5527 clr R21
0096 .dbline 122
0096 ;
0096 ; //read time
0096 ; temp=Read_buf();// jump over ','
0096 0E940000 xcall _Read_buf
009A .dbline 123
009A ; temp=Read_buf();
009A 0E940000 xcall _Read_buf
009E 602F mov R22,R16
00A0 0CC0 xjmp L19
00A2 L18:
00A2 .dbline 125
00A2 .dbline 126
00A2 1A01 movw R2,R20
00A4 4F5F subi R20,255 ; offset = 1
00A6 5F4F sbci R21,255
00A8 80E0 ldi R24,<_time
00AA 90E0 ldi R25,>_time
00AC F101 movw R30,R2
00AE E80F add R30,R24
00B0 F91F adc R31,R25
00B2 6083 std z+0,R22
00B4 .dbline 127
00B4 0E940000 xcall _Read_buf
00B8 602F mov R22,R16
00BA .dbline 128
00BA L19:
00BA .dbline 124
00BA ; while(i<10)
00BA 4A30 cpi R20,10
00BC E0E0 ldi R30,0
00BE 5E07 cpc R21,R30
00C0 84F3 brlt L18
00C2 .dbline 132
00C2 ; {
00C2 ; time[i++]=temp;
00C2 ; temp=Read_buf();
00C2 ; }
00C2 ;
00C2 ; // convert ();
00C2 ; //read status
00C2 ; status=Read_buf();
00C2 0E940000 xcall _Read_buf
00C6 00931B00 sts _status,R16
00CA .dbline 133
00CA ; if (status=='V')
00CA 0635 cpi R16,86
00CC 09F4 brne L21
00CE .dbline 134
00CE ; return;
00CE 61C0 xjmp L17
00D0 L21:
00D0 .dbline 137
00D0 ;
00D0 ; //read latitude
00D0 ; temp=Read_buf();//read the ','
00D0 0E940000 xcall _Read_buf
00D4 602F mov R22,R16
00D6 .dbline 138
00D6 ; i=0;
00D6 4427 clr R20
00D8 5527 clr R21
00DA 0FC0 xjmp L24
00DC L23:
00DC .dbline 140
00DC 1A01 movw R2,R20
00DE 4F5F subi R20,255 ; offset = 1
00E0 5F4F sbci R21,255
00E2 2F92 push R2
00E4 3F92 push R3
00E6 0E940000 xcall _Read_buf
00EA 3F90 pop R3
00EC 2F90 pop R2
00EE 80E0 ldi R24,<_latitude
00F0 90E0 ldi R25,>_latitude
00F2 F101 movw R30,R2
00F4 E80F add R30,R24
00F6 F91F adc R31,R25
00F8 0083 std z+0,R16
00FA L24:
00FA .dbline 139
00FA ; while(i<9)
00FA 4930 cpi R20,9
00FC E0E0 ldi R30,0
00FE 5E07 cpc R21,R30
0100 6CF3 brlt L23
0102 .dbline 143
0102 ; latitude[i++]=Read_buf();
0102 ;
0102 ; //read NSindicator
0102 ; temp=Read_buf();//read the ','
0102 0E940000 xcall _Read_buf
0106 .dbline 144
0106 ; NSind=Read_buf();
0106 0E940000 xcall _Read_buf
010A 00931100 sts _NSind,R16
010E .dbline 145
010E ; temp=Read_buf();//read the ','
010E 0E940000 xcall _Read_buf
0112 602F mov R22,R16
0114 .dbline 148
0114 ;
0114 ; //read longtitude
0114 ; i=0;
0114 4427 clr R20
0116 5527 clr R21
0118 0FC0 xjmp L27
011A L26:
011A .dbline 150
011A 1A01 movw R2,R20
011C 4F5F subi R20,255 ; offset = 1
011E 5F4F sbci R21,255
0120 2F92 push R2
0122 3F92 push R3
0124 0E940000 xcall _Read_buf
0128 3F90 pop R3
012A 2F90 pop R2
012C 80E0 ldi R24,<_longtitude
012E 90E0 ldi R25,>_longtitude
0130 F101 movw R30,R2
0132 E80F add R30,R24
0134 F91F adc R31,R25
0136 0083 std z+0,R16
0138 L27:
0138 .dbline 149
0138 ; while(i<10)
0138 4A30 cpi R20,10
013A E0E0 ldi R30,0
013C 5E07 cpc R21,R30
013E 6CF3 brlt L26
0140 .dbline 153
0140 ; longtitude[i++]=Read_buf();
0140 ;
0140 ; //read EWindicator
0140 ; temp=Read_buf();//read the ','
0140 0E940000 xcall _Read_buf
0144 602F mov R22,R16
0146 .dbline 154
0146 ; EWind=Read_buf();
0146 0E940000 xcall _Read_buf
014A 00930600 sts _EWind,R16
014E .dbline 155
014E ; i=0;
014E 4427 clr R20
0150 5527 clr R21
0152 0BC0 xjmp L30
0154 L29:
0154 .dbline 157
0154 ; while (i<3)
0154 ; {
0154 .dbline 158
0154 ; temp=Read_buf();//read the ','
0154 0E940000 xcall _Read_buf
0158 602F mov R22,R16
015A 03C0 xjmp L33
015C L32:
015C .dbline 160
015C 0E940000 xcall _Read_buf
0160 602F mov R22,R16
0162 L33:
0162 .dbline 159
0162 6C32 cpi R22,44
0164 D9F7 brne L32
0166 .dbline 161
0166 4F5F subi R20,255 ; offset = 1
0168 5F4F sbci R21,255
016A .dbline 162
016A L30:
016A .dbline 156
016A 4330 cpi R20,3
016C E0E0 ldi R30,0
016E 5E07 cpc R21,R30
0170 8CF3 brlt L29
0172 .dbline 163
0172 ; while (temp!=',')
0172 ; temp=Read_buf();
0172 ; i++;
0172 ; }
0172 ; for (i=0;i<6;i++)
0172 4427 clr R20
0174 5527 clr R21
0176 L35:
0176 .dbline 164
0176 .dbline 165
0176 0E940000 xcall _Read_buf
017A 80E0 ldi R24,<_date
017C 90E0 ldi R25,>_date
017E FA01 movw R30,R20
0180 E80F add R30,R24
0182 F91F adc R31,R25
0184 0083 std z+0,R16
0186 .dbline 166
0186 L36:
0186 .dbline 163
0186 4F5F subi R20,255 ; offset = 1
0188 5F4F sbci R21,255
018A .dbline 163
018A 4630 cpi R20,6
018C E0E0 ldi R30,0
018E 5E07 cpc R21,R30
0190 94F3 brlt L35
0192 .dbline -2
0192 L17:
0192 0E940000 xcall pop_gset2
0196 .dbline 0 ; func end
0196 0895 ret
0198 .dbsym r i 20 I
0198 .dbsym r temp 22 c
0198 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\Program\gps\main.c
0000 _date::
0000 .blkb 6
0006 .dbsym e date _date A[6:6]c
0006 _EWind::
0006 .blkb 1
0007 .dbsym e EWind _EWind c
0007 _longtitude::
0007 .blkb 10
0011 .dbsym e longtitude _longtitude A[10:10]c
0011 _NSind::
0011 .blkb 1
0012 .dbsym e NSind _NSind c
0012 _latitude::
0012 .blkb 9
001B .dbsym e latitude _latitude A[9:9]c
001B _status::
001B .blkb 1
001C .dbsym e status _status c
001C _time::
001C .blkb 10
0026 .dbsym e time _time A[10:10]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -