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

📄 gsb.lis

📁 单片机控制GSM22来工作
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00F4           ;    }
 00F4           ;    if((temp!=0x0d)&&(temp!=0x0a)) //
 00F4           ;    {
 00F4           ;     flagend = i_Rcv;
 00F4           ;       Rcv[i_Rcv] = temp;
 00F4           ;       i_Rcv++;
 00F4                   .dbline 96
 00F4           ;    }
 00F4           ;    //flagend = i_Rcv;
 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 97
 0116           ; }
 0116           L33:
 0116                   .dbline 99
 0116           ; 
 0116           ; //判断发送是否成功
 0116 462F              mov R20,R22
 0118 4058              subi R20,128    ; addi 128
 011A                   .dbline 100
 011A           ; uchar ISok(uchar *msure)
 011A 08C0              xjmp L31
 011C           L34:
 011C                   .dbline 102
 011C           ; {
 011C           ;  
 011C 462F              mov R20,R22
 011E 4057              subi R20,112    ; addi 144
 0120                   .dbline 103
 0120           ;  if((flagend-1)>flagend)
 0120 05C0              xjmp L31
 0122           L35:
 0122                   .dbline 105
 0122           ;  {
 0122           ;   if((Rcv[flagend]==msure[1])&&(Rcv[Rcv_cap-1]==msure[0])) //大写
 0122 462F              mov R20,R22
 0124 4857              subi R20,120    ; addi 136
 0126                   .dbline 106
 0126           ;    return 1;
 0126 02C0              xjmp L31
 0128           L36:
 0128                   .dbline 108
 0128           ;   else
 0128           ;    return 0;
 0128 462F              mov R20,R22
 012A 4856              subi R20,104    ; addi 152
 012C                   .dbline 109
 012C           ;  }
 012C           L30:
 012C           L31:
 012C                   .dbline 111
 012C           ;  else if((Rcv[flagend]==msure[1])&&(Rcv[flagend-1]==msure[0]))
 012C           ;   return 1;
 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 115
 0142           ;  else
 0142           ;   return 0;
 0142           ; }
 0142           ; //发送
 0142                   .dbline 116
 0142           ; void USART_Transmit( unsigned char *T)
 0142 4427              clr R20
 0144                   .dbline 117
 0144           ; { 
 0144 FB01              movw R30,R22
 0146 2080              ldd R2,z+0
 0148 2220              tst R2
 014A 09F4              brne L38
 014C                   .dbline 117
 014C 30C0              xjmp L37
 014E           L38:
 014E                   .dbline 118
 014E           ; 
 014E 4427              clr R20
 0150           L40:
 0150                   .dbline 119
 0150           ;   uchar i = 0;
 0150                   .dbline 120
 0150           ;   while(T[i])           //length--,循环length次
 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 120
 015E 27C0              xjmp L42
 0160           L44:
 0160                   .dbline 121
 0160           ;   {
 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 122
 0180           ;    while ( !( UCSRA & (1<<UDRE)) )
 0180 2A2D              mov R18,R10
 0182 0C2D              mov R16,R12
 0184 B3DF              xcall _Set_display_Adress
 0186           L46:
 0186                   .dbline 123
 0186           ;    ;
 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 124
 0192           ;    UDR = T[i];
 0192 12E0              ldi R17,2
 0194 042F              mov R16,R20
 0196 0E940000          xcall mod8u
 019A 0023              tst R16
 019C 09F0              breq L50
 019E                   .dbline 124
 019E A394              inc R10
 01A0           L50:
 01A0                   .dbline 125
 01A0           ;    i++;
 01A0 87E0              ldi R24,7
 01A2 8A15              cp R24,R10
 01A4 10F4              brsh L52
 01A6                   .dbline 125
 01A6                   .dbline 125
 01A6 C394              inc R12
 01A8 AA24              clr R10
 01AA                   .dbline 125
 01AA           L52:
 01AA                   .dbline 126
 01AA           L41:
 01AA                   .dbline 118
 01AA 4395              inc R20
 01AC                   .dbline 118
 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 130
 01BC           ;   }
 01BC           ;   
 01BC           ; }
 01BC           ; 
 01BC           ; void sendcmd(uchar *command,uchar *msure,uint t)    //可以改进,用do while()
 01BC                   .dbline 131
 01BC           ; {static i=0;//用于观察发送AT指今的情况
 01BC 262F              mov R18,R22
 01BE 042F              mov R16,R20
 01C0 95DF              xcall _Set_display_Adress
 01C2                   .dbline 132
 01C2           ;  while(!ISok(msure))
 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           ;            num -> R10,R11
 01CC           ;              x -> R12
 01CC           ;              y -> R14
                        .even
 01CC           _display_Num::
 01CC 0E940000          xcall push_gset5
 01D0 C22E              mov R12,R18
 01D2 E02E              mov R14,R16
 01D4 2597              sbiw R28,5
 01D6 AF84              ldd R10,y+15
 01D8 B888              ldd R11,y+16
 01DA 6989              ldd R22,y+17
 01DC                   .dbline -1
 01DC                   .dbline 137
 01DC           ;  {    
 01DC           ;         i++;
 01DC           ;         display_Num(1,0,i,3);
 01DC           ;   USART_Transmit(command);
 01DC           ;   delay_nms(t);
 01DC                   .dbline 140
 01DC           ;  }
 01DC           ;  i=0;
 01DC           ;  //display(1,Rcv,0);
 01DC 4427              clr R20
 01DE 12C0              xjmp L59
 01E0           L56:
 01E0                   .dbline 141
 01E0                   .dbline 142
 01E0 2AE0              ldi R18,10
 01E2 30E0              ldi R19,0
 01E4 8501              movw R16,R10
 01E6 0E940000          xcall mod16u
 01EA CE01              movw R24,R28
 01EC E42F              mov R30,R20
 01EE FF27              clr R31
 01F0 E80F              add R30,R24
 01F2 F91F              adc R31,R25
 01F4 0083              std z+0,R16
 01F6                   .dbline 143
 01F6 2AE0              ldi R18,10
 01F8 30E0              ldi R19,0
 01FA 8501              movw R16,R10
 01FC 0E940000          xcall div16u
 0200 5801              movw R10,R16
 0202                   .dbline 144
 0202           L57:
 0202                   .dbline 140
 0202 4395              inc R20
 0204           L59:
 0204                   .dbline 140
 0204 4617              cp R20,R22
 0206 60F3              brlo L56
 0208                   .dbline 144
 0208           ; }
 0208           ; 
 0208           ; 
 0208           ; void clearf(void)         //为下一次写指令做准备
 0208                   .dbline 145
 0208           ; {
 0208 4A95              dec R20
 020A 30C0              xjmp L61
 020C           L60:
 020C                   .dbline 147
 020C           ;  uchar i;
 020C           ;  i = flagend - 1;
 020C                   .dbline 148
 020C           ;  if(i<flagend)
 020C 2C2D              mov R18,R12
 020E 0E2D              mov R16,R14
 0210 6DDF              xcall _Set_display_Adress
 0212                   .dbline 149
 0212           ;  {
 0212 242E              mov R2,R20
 0214 3324              clr R3
 0216 4150              subi R20,1
 0218 CE01              movw R24,R28
 021A E22D              mov R30,R2
 021C FF27              clr R31
 021E E80F              add R30,R24
 0220 F91F              adc R31,R25
 0222 0081              ldd R16,z+0
 0224 005D              subi R16,208    ; addi 48
 0226 33DF              xcall _WriteData
 0228                   .dbline 150
 0228           ;   flagend = i;
 0228 4423              tst R20
 022A 49F4              brne L63
 022C                   .dbline 151
 022C           ;  }
 022C                   .dbline 151
 022C CE01              movw R24,R28
 022E E42F              mov R30,R20
 0230 FF27              clr R31
 0232 E80F              add R30,R24
 0234 F91F              adc R31,R25
 0236 0081              ldd R16,z+0
 0238 005D              subi R16,208    ; addi 48
 023A 29DF              xcall _WriteData
 023C                   .dbline 151
 023C 18C0              xjmp L62
 023E           L63:
 023E                   .dbline 152
 023E           ;  else
 023E 242E              mov R2,R20
 0240 3324              clr R3
 0242 4150              subi R20,1
 0244 CE01              movw R24,R28
 0246 E22D              mov R30,R2
 0248 FF27              clr R31
 024A E80F              add R30,R24
 024C F91F              adc R31,R25
 024E 0081              ldd R16,z+0
 0250 005D              subi R16,208    ; addi 48
 0252 1DDF              xcall _WriteData

⌨️ 快捷键说明

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