📄 gsb.lis
字号:
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 + -