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

📄 main.lis

📁 用avr单片机接收GPS的数据的c语言程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -