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

📄 gps.lis

📁 利用AVRM16单片机读与GPS接收模块进行通信
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00C2                   .dbline 258
 00C2           ;   send_8bit(command<<4);
 00C2 042F              mov R16,R20
 00C4 0F70              andi R16,#0x0F
 00C6 0295              swap R16
 00C8 C5DF              xcall _send_8bit
 00CA                   .dbline 259
 00CA           ;   clearRS;
 00CA D998              cbi 0x1b,1
 00CC                   .dbline -2
 00CC           L25:
 00CC 0E940000          xcall pop_gset1
 00D0                   .dbline 0 ; func end
 00D0 0895              ret
 00D2                   .dbsym r command 20 c
 00D2                   .dbend
 00D2                   .dbfunc e guangbiao _guangbiao fV
 00D2           ;              x -> R20
                        .even
 00D2           _guangbiao::
 00D2 0E940000          xcall push_gset1
 00D6 402F              mov R20,R16
 00D8                   .dbline -1
 00D8                   .dbline 263
 00D8           ; }
 00D8           ; //光标开关,1开,0关
 00D8           ; void guangbiao(uchar x) //
 00D8           ; {
 00D8                   .dbline 264
 00D8           ;   if(x==1) WriteCommand(0x0c|0x03);
 00D8 4130              cpi R20,1
 00DA 19F4              brne L27
 00DC                   .dbline 264
 00DC 0FE0              ldi R16,15
 00DE E8DF              xcall _WriteCommand
 00E0 02C0              xjmp L28
 00E2           L27:
 00E2                   .dbline 265
 00E2 0CE0              ldi R16,12
 00E4 E5DF              xcall _WriteCommand
 00E6           L28:
 00E6                   .dbline -2
 00E6           L26:
 00E6 0E940000          xcall pop_gset1
 00EA                   .dbline 0 ; func end
 00EA 0895              ret
 00EC                   .dbsym r x 20 c
 00EC                   .dbend
 00EC                   .dbfunc e Set_display_Adress _Set_display_Adress fV
 00EC           ;        address -> R20
 00EC           ;              x -> R22
 00EC           ;              y -> R20
                        .even
 00EC           _Set_display_Adress::
 00EC 0E940000          xcall push_gset2
 00F0 622F              mov R22,R18
 00F2 402F              mov R20,R16
 00F4                   .dbline -1
 00F4                   .dbline 270
 00F4           ;   else  WriteCommand(0x0c);
 00F4           ; }
 00F4           ; 
 00F4           ; //  设置显示坐标:y行,x列
 00F4           ; void Set_display_Adress(uchar y,uchar x)//
 00F4           ; {
 00F4                   .dbline 272
 00F4           ;  uchar address;
 00F4           ;  switch(y)
 00F4 5527              clr R21
 00F6 4030              cpi R20,0
 00F8 4507              cpc R20,R21
 00FA 69F0              breq L33
 00FC           X0:
 00FC 4130              cpi R20,1
 00FE E0E0              ldi R30,0
 0100 5E07              cpc R21,R30
 0102 61F0              breq L34
 0104 4230              cpi R20,2
 0106 E0E0              ldi R30,0
 0108 5E07              cpc R21,R30
 010A 59F0              breq L35
 010C 4330              cpi R20,3
 010E E0E0              ldi R30,0
 0110 5E07              cpc R21,R30
 0112 51F0              breq L36
 0114 0BC0              xjmp L30
 0116           X1:
 0116                   .dbline 273
 0116           ;  {
 0116           L33:
 0116                   .dbline 275
 0116           ;  case 0:
 0116           ;       address=0x80+x;
 0116 462F              mov R20,R22
 0118 4058              subi R20,128    ; addi 128
 011A                   .dbline 276
 011A           ;       break;
 011A 08C0              xjmp L31
 011C           L34:
 011C                   .dbline 278
 011C           ;  case 1:
 011C           ;       address=0x90+x;
 011C 462F              mov R20,R22
 011E 4057              subi R20,112    ; addi 144
 0120                   .dbline 279
 0120           ;       break;
 0120 05C0              xjmp L31
 0122           L35:
 0122                   .dbline 281
 0122           ;  case 2:
 0122           ;       address=0x88+x;
 0122 462F              mov R20,R22
 0124 4857              subi R20,120    ; addi 136
 0126                   .dbline 282
 0126           ;       break;
 0126 02C0              xjmp L31
 0128           L36:
 0128                   .dbline 284
 0128           ;  case 3:
 0128           ;       address=0x98+x;
 0128 462F              mov R20,R22
 012A 4856              subi R20,104    ; addi 152
 012C                   .dbline 285
 012C           ;       break;
 012C           L30:
 012C           L31:
 012C                   .dbline 287
 012C           ;       }
 012C           ;       WriteCommand(address);
 012C 042F              mov R16,R20
 012E C0DF              xcall _WriteCommand
 0130                   .dbline -2
 0130           L29:
 0130 0E940000          xcall pop_gset2
 0134                   .dbline 0 ; func end
 0134 0895              ret
 0136                   .dbsym r address 20 c
 0136                   .dbsym r x 22 c
 0136                   .dbsym r y 20 c
 0136                   .dbend
 0136                   .dbfunc e display_String _display_String fV
 0136           ;              i -> R20
 0136           ;              s -> R22,R23
 0136           ;              x -> R10
 0136           ;              y -> R12
                        .even
 0136           _display_String::
 0136 0E940000          xcall push_gset5
 013A A22E              mov R10,R18
 013C C02E              mov R12,R16
 013E 6A85              ldd R22,y+10
 0140 7B85              ldd R23,y+11
 0142                   .dbline -1
 0142                   .dbline 291
 0142           ; }
 0142           ; //显示字符串
 0142           ; void display_String(uchar y,uchar x,uchar *s)   //
 0142           ; {
 0142                   .dbline 292
 0142           ;   uchar i=0;
 0142 4427              clr R20
 0144                   .dbline 293
 0144           ;   if(*s=='\0')return;
 0144 FB01              movw R30,R22
 0146 2080              ldd R2,z+0
 0148 2220              tst R2
 014A 09F4              brne L38
 014C                   .dbline 293
 014C 30C0              xjmp L37
 014E           L38:
 014E                   .dbline 294
 014E           ;    for(i=0;;i++)
 014E 4427              clr R20
 0150           L40:
 0150                   .dbline 295
 0150           ;    {
 0150                   .dbline 296
 0150           ;       if(*(s+i)=='\0')break;
 0150 E42F              mov R30,R20
 0152 FF27              clr R31
 0154 E60F              add R30,R22
 0156 F71F              adc R31,R23
 0158 2080              ldd R2,z+0
 015A 2220              tst R2
 015C 09F4              brne L44
 015E                   .dbline 296
 015E 27C0              xjmp L42
 0160           L44:
 0160                   .dbline 297
 0160           ;       if(!i%2)
 0160 4423              tst R20
 0162 21F4              brne L48
 0164 81E0              ldi R24,1
 0166 90E0              ldi R25,0
 0168 7C01              movw R14,R24
 016A 02C0              xjmp L49
 016C           L48:
 016C EE24              clr R14
 016E FF24              clr R15
 0170           L49:
 0170 22E0              ldi R18,2
 0172 30E0              ldi R19,0
 0174 8701              movw R16,R14
 0176 0E940000          xcall mod16s
 017A 0030              cpi R16,0
 017C 0107              cpc R16,R17
 017E 19F0              breq L46
 0180           X2:
 0180                   .dbline 298
 0180           ;       Set_display_Adress(y,x);
 0180 2A2D              mov R18,R10
 0182 0C2D              mov R16,R12
 0184 B3DF              xcall _Set_display_Adress
 0186           L46:
 0186                   .dbline 299
 0186           ;       WriteData(*(s+i));
 0186 E42F              mov R30,R20
 0188 FF27              clr R31
 018A E60F              add R30,R22
 018C F71F              adc R31,R23
 018E 0081              ldd R16,z+0
 0190 7EDF              xcall _WriteData
 0192                   .dbline 300
 0192           ;       if(i%2)x++;
 0192 12E0              ldi R17,2
 0194 042F              mov R16,R20
 0196 0E940000          xcall mod8u
 019A 0023              tst R16
 019C 09F0              breq L50
 019E                   .dbline 300
 019E A394              inc R10
 01A0           L50:
 01A0                   .dbline 301
 01A0           ;       if(x>7){y++,x=0;}
 01A0 87E0              ldi R24,7
 01A2 8A15              cp R24,R10
 01A4 10F4              brsh L52
 01A6                   .dbline 301
 01A6                   .dbline 301
 01A6 C394              inc R12
 01A8 AA24              clr R10
 01AA                   .dbline 301
 01AA           L52:
 01AA                   .dbline 302
 01AA           L41:
 01AA                   .dbline 294
 01AA 4395              inc R20
 01AC                   .dbline 294
 01AC D1CF              xjmp L40
 01AE           L42:
 01AE                   .dbline -2
 01AE           L37:
 01AE 0E940000          xcall pop_gset5
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
 01B4                   .dbsym r i 20 c
 01B4                   .dbsym r s 22 pc
 01B4                   .dbsym r x 10 c
 01B4                   .dbsym r y 12 c
 01B4                   .dbend
 01B4                   .dbfunc e display_Char _display_Char fV
 01B4           ;             ch -> y+4
 01B4           ;              x -> R22
 01B4           ;              y -> R20
                        .even
 01B4           _display_Char::
 01B4 0E940000          xcall push_gset2
 01B8 622F              mov R22,R18
 01BA 402F              mov R20,R16
 01BC                   .dbline -1
 01BC                   .dbline 306
 01BC           ;    }
 01BC           ; }
 01BC           ; //显示单个字符
 01BC           ; void display_Char(uchar y,uchar x,char ch) 
 01BC           ; { 
 01BC                   .dbline 307
 01BC           ;       Set_display_Adress(y,x);
 01BC 262F              mov R18,R22
 01BE 042F              mov R16,R20
 01C0 95DF              xcall _Set_display_Adress
 01C2                   .dbline 308
 01C2           ;       WriteData(ch);
 01C2 0C81              ldd R16,y+4
 01C4 64DF              xcall _WriteData
 01C6                   .dbline -2
 01C6           L54:
 01C6 0E940000          xcall pop_gset2
 01CA                   .dbline 0 ; func end
 01CA 0895              ret
 01CC                   .dbsym l ch 4 c
 01CC                   .dbsym r x 22 c
 01CC                   .dbsym r y 20 c
 01CC                   .dbend
 01CC                   .dbfunc e display_Num _display_Num fV
 01CC           ;            tmp -> y+0
 01CC           ;              i -> R20
 01CC           ;              N -> R22
 01CC           ;          

⌨️ 快捷键说明

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