📄 main.lis
字号:
01E8 2224 clr R2
01EA 2082 std z+0,R2
01EC .dbline 120
01EC L30:
01EC .dbline 117
01EC 0395 inc R16
01EE L32:
01EE .dbline 117
01EE 0038 cpi R16,128
01F0 A8F3 brlo L29
01F2 .dbline -2
01F2 L28:
01F2 .dbline 0 ; func end
01F2 0895 ret
01F4 .dbsym r i 16 c
01F4 .dbend
01F4 .dbfunc e TxEnable _TxEnable fV
.even
01F4 _TxEnable::
01F4 .dbline -1
01F4 .dbline 126
01F4 ; {
01F4 ; RxBuf[i] = 0;
01F4 ; }
01F4 ; }
01F4 ; /*-----------------------------------------------------------------------*/
01F4 ; /////////////////////////// 串口发送使能 ////////////////////////////////
01F4 ; /*-----------------------------------------------------------------------*/
01F4 ; void TxEnable(void)
01F4 ; {
01F4 .dbline 128
01F4 ; //RxIndex = 0;
01F4 ; UDR = TxBuf[0]; // 发送缓冲头送入串口发送寄存器,激活开始发送
01F4 20900100 lds R2,_TxBuf
01F8 2CB8 out 0xc,R2
01FA .dbline 129
01FA ; UCSRB |= ((1<<TXCIE));//|(1<<TXEN));
01FA 569A sbi 0xa,6
01FC .dbline -2
01FC L33:
01FC .dbline 0 ; func end
01FC 0895 ret
01FE .dbend
01FE .dbfunc e Put_AT_command _Put_AT_command fV
01FE ; count -> R20
01FE ; atlen -> R22
01FE ; atc -> R10,R11
.even
01FE _Put_AT_command::
01FE 00D0 rcall push_gset3
0200 622F mov R22,R18
0202 5801 movw R10,R16
0204 .dbline -1
0204 .dbline 135
0204 ; }
0204 ; /*-----------------------------------------------------------------------*/
0204 ; ///////////////////////////// 发送AT命令 /////////////////////////////////
0204 ; /*-----------------------------------------------------------------------*/
0204 ; void Put_AT_command(const unsigned char *atc, unsigned char atlen)
0204 ; {
0204 .dbline 138
0204 ; unsigned char count;
0204 ;
0204 ; for(count = 0;count < atlen;count++) // AT命令窜移入发送缓冲
0204 4427 clr R20
0206 0DC0 rjmp L38
0208 L35:
0208 .dbline 139
0208 .dbline 140
0208 E42F mov R30,R20
020A FF27 clr R31
020C EA0D add R30,R10
020E FB1D adc R31,R11
0210 E491 lpm R30,Z
0212 80E0 ldi R24,<_TxBuf
0214 90E0 ldi R25,>_TxBuf
0216 A42F mov R26,R20
0218 BB27 clr R27
021A A80F add R26,R24
021C B91F adc R27,R25
021E EC93 st x,R30
0220 .dbline 141
0220 L36:
0220 .dbline 138
0220 4395 inc R20
0222 L38:
0222 .dbline 138
0222 4617 cp R20,R22
0224 88F3 brlo L35
0226 .dbline 143
0226 ; {
0226 ; TxBuf[count] = atc[count];
0226 ; }
0226 ;
0226 ; TxBuf[atlen] = 0x0D; // 发送缓冲窜结尾加“回车”
0226 80E0 ldi R24,<_TxBuf
0228 90E0 ldi R25,>_TxBuf
022A E62F mov R30,R22
022C FF27 clr R31
022E E80F add R30,R24
0230 F91F adc R31,R25
0232 8DE0 ldi R24,13
0234 8083 std z+0,R24
0236 .dbline 144
0236 ; TxBuf[atlen + 1] = 0x00; // 发送缓冲窜结束符号
0236 80E0 ldi R24,<_TxBuf+1
0238 90E0 ldi R25,>_TxBuf+1
023A E62F mov R30,R22
023C FF27 clr R31
023E E80F add R30,R24
0240 F91F adc R31,R25
0242 2224 clr R2
0244 2082 std z+0,R2
0246 .dbline 146
0246 ;
0246 ; OkFlag = 0;
0246 20920F00 sts _OkFlag,R2
024A .dbline 147
024A ; TxStatus = 0;
024A 20920E00 sts _TxStatus,R2
024E .dbline 148
024E ; TxIndex = 1; // 发送指针偏移1
024E 81E0 ldi R24,1
0250 80930000 sts _TxIndex,R24
0254 .dbline 149
0254 ; TxEnable(); // 激活发送
0254 CFDF rcall _TxEnable
0256 L40:
0256 .dbline 150
0256 L41:
0256 .dbline 150
0256 ; while(!TxStatus); // 等代发送结束,发送缓冲指针为零则可以发送
0256 20900E00 lds R2,_TxStatus
025A 2220 tst R2
025C E1F3 breq L40
025E .dbline 151
025E ; DelayMs(20);
025E 04E1 ldi R16,20
0260 10E0 ldi R17,0
0262 00D0 rcall _DelayMs
0264 L43:
0264 .dbline 152
0264 L44:
0264 .dbline 152
0264 ; while(!OkFlag); // 收到模块返回OK,命令结束
0264 20900F00 lds R2,_OkFlag
0268 2220 tst R2
026A E1F3 breq L43
026C .dbline 153
026C ; OkFlag = 0;
026C 2224 clr R2
026E 20920F00 sts _OkFlag,R2
0272 .dbline -2
0272 L34:
0272 00D0 rcall pop_gset3
0274 .dbline 0 ; func end
0274 0895 ret
0276 .dbsym r count 20 c
0276 .dbsym r atlen 22 c
0276 .dbsym r atc 10 pkc
0276 .dbend
0276 .dbfunc e Put_AT_String _Put_AT_String fV
0276 ; count -> R20
0276 ; atlen -> R22
0276 ; atc -> R10,R11
.even
0276 _Put_AT_String::
0276 00D0 rcall push_gset3
0278 622F mov R22,R18
027A 5801 movw R10,R16
027C .dbline -1
027C .dbline 161
027C ;
027C ; }
027C ;
027C ; /*-----------------------------------------------------------------------*/
027C ; ///////////////////////// 从内存发送AT命令串 ////////////////////////////
027C ; /*-----------------------------------------------------------------------*/
027C ; void Put_AT_String(unsigned char *atc, unsigned char atlen)
027C ; {
027C .dbline 164
027C ; unsigned char count;
027C ;
027C ; for(count = 0;count < atlen;count++)
027C 4427 clr R20
027E 0DC0 rjmp L50
0280 L47:
0280 .dbline 165
0280 .dbline 166
0280 E42F mov R30,R20
0282 FF27 clr R31
0284 EA0D add R30,R10
0286 FB1D adc R31,R11
0288 2080 ldd R2,z+0
028A 80E0 ldi R24,<_TxBuf
028C 90E0 ldi R25,>_TxBuf
028E E42F mov R30,R20
0290 FF27 clr R31
0292 E80F add R30,R24
0294 F91F adc R31,R25
0296 2082 std z+0,R2
0298 .dbline 167
0298 L48:
0298 .dbline 164
0298 4395 inc R20
029A L50:
029A .dbline 164
029A 4617 cp R20,R22
029C 88F3 brlo L47
029E .dbline 169
029E ; {
029E ; TxBuf[count] = *(atc+count);
029E ; }
029E ;
029E ; TxBuf[atlen] = 0x0D; // 发送缓冲窜结尾加“回车”
029E 80E0 ldi R24,<_TxBuf
02A0 90E0 ldi R25,>_TxBuf
02A2 E62F mov R30,R22
02A4 FF27 clr R31
02A6 E80F add R30,R24
02A8 F91F adc R31,R25
02AA 8DE0 ldi R24,13
02AC 8083 std z+0,R24
02AE .dbline 170
02AE ; TxBuf[atlen + 1] = 0x00; // 发送缓冲窜结束符号
02AE 80E0 ldi R24,<_TxBuf+1
02B0 90E0 ldi R25,>_TxBuf+1
02B2 E62F mov R30,R22
02B4 FF27 clr R31
02B6 E80F add R30,R24
02B8 F91F adc R31,R25
02BA 2224 clr R2
02BC 2082 std z+0,R2
02BE .dbline 172
02BE ;
02BE ; OkFlag = 0;
02BE 20920F00 sts _OkFlag,R2
02C2 .dbline 173
02C2 ; TxStatus = 0;
02C2 20920E00 sts _TxStatus,R2
02C6 .dbline 174
02C6 ; TxIndex = 1; // 发送指针偏移1
02C6 81E0 ldi R24,1
02C8 80930000 sts _TxIndex,R24
02CC .dbline 175
02CC ; TxEnable(); // 激活发送
02CC 93DF rcall _TxEnable
02CE L52:
02CE .dbline 176
02CE L53:
02CE .dbline 176
02CE ; while(!TxStatus); // 等代发送结束,发送缓冲指针为零则可以发送
02CE 20900E00 lds R2,_TxStatus
02D2 2220 tst R2
02D4 E1F3 breq L52
02D6 .dbline 177
02D6 ; DelayMs(20);
02D6 04E1 ldi R16,20
02D8 10E0 ldi R17,0
02DA 00D0 rcall _DelayMs
02DC L55:
02DC .dbline 178
02DC L56:
02DC .dbline 178
02DC ; while(!OkFlag); // 收到模块返回OK,命令结束
02DC 20900F00 lds R2,_OkFlag
02E0 2220 tst R2
02E2 E1F3 breq L55
02E4 .dbline 179
02E4 ; OkFlag = 0;
02E4 2224 clr R2
02E6 20920F00 sts _OkFlag,R2
02EA .dbline -2
02EA L46:
02EA 00D0 rcall pop_gset3
02EC .dbline 0 ; func end
02EC 0895 ret
02EE .dbsym r count 20 c
02EE .dbsym r atlen 22 c
02EE .dbsym r atc 10 pc
02EE .dbend
02EE .dbfunc e PutString _PutString fV
02EE ; count -> R20
02EE ; retflag -> R22
02EE ; length -> R10
02EE ; str -> R12,R13
.even
02EE _PutString::
02EE 00D0 rcall push_gset4
02F0 A22E mov R10,R18
02F2 6801 movw R12,R16
02F4 6885 ldd R22,y+8
02F6 .dbline -1
02F6 .dbline 185
02F6 ; }
02F6 ; /*-----------------------------------------------------------------------*/
02F6 ; ///////////////////////// 向串口发送一串数据 ////////////////////////////
02F6 ; /*-----------------------------------------------------------------------*/
02F6 ; void PutString(unsigned char *str, unsigned char length,unsigned char retflag)
02F6 ; {
02F6 .dbline 188
02F6 ; unsigned char count;
02F6 ;
02F6 ; for(count = 0;count < length;count++)
02F6 4427 clr R20
02F8 0DC0 rjmp L62
02FA L59:
02FA .dbline 189
02FA .dbline 190
02FA E42F mov R30,R20
02FC FF27 clr R31
02FE EC0D add R30,R12
0300 FD1D adc R31,R13
0302 2080 ldd R2,z+0
0304 80E0 ldi R24,<_TxBuf
0306 90E0 ldi R25,>_TxBuf
0308 E42F mov R30,R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -