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

📄 main.lis

📁 proteus实例集锦
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -