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

📄 main.lis

📁 mega16的rs232通讯程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0252 FF27              clr R31
 0254 E00F              add R30,R16
 0256 F11F              adc R31,R17
 0258 3080              ldd R3,z+0
 025A 3214              cp R3,R2
 025C 09F0              breq L46
 025E                   .dbline 143
 025E           ;                                break;
 025E 03C0              xjmp L44
 0260           L46:
 0260                   .dbline 144
 0260           L43:
 0260                   .dbline 141
 0260 4395              inc R20
 0262           L45:
 0262                   .dbline 141
 0262 4217              cp R20,R18
 0264 70F3              brlo L42
 0266           L44:
 0266                   .dbline 145
 0266           ;                 }
 0266           ;                 if (i == num)
 0266 4217              cp R20,R18
 0268 11F4              brne L48
 026A                   .dbline 146
 026A           ;                        return OK;
 026A 01E0              ldi R16,1
 026C 01C0              xjmp L41
 026E           L48:
 026E                   .dbline 148
 026E           ;                 else 
 026E           ;                        return NG;
 026E 0027              clr R16
 0270                   .dbline -2
 0270           L41:
 0270 0E940000          xcall pop_gset1
 0274                   .dbline 0 ; func end
 0274 0895              ret
 0276                   .dbsym r i 20 c
 0276                   .dbsym r num 18 c
 0276                   .dbsym r CheckBuffer 16 pc
 0276                   .dbend
 0276                   .dbfunc e check_com _check_com fc
 0276           ;              i -> R20
                        .even
 0276           _check_com::
 0276 0E940000          xcall push_gset1
 027A                   .dbline -1
 027A                   .dbline 151
 027A           ; }
 027A           ; 
 027A           ; unsigned char check_com(){
 027A                   .dbline 153
 027A 40910600          lds R20,_len
 027E 5527              clr R21
 0280 4039              cpi R20,144
 0282 E0E0              ldi R30,0
 0284 5E07              cpc R21,R30
 0286 09F4              brne X12
 0288 49C0              xjmp L69
 028A           X12:
 028A 4139              cpi R20,145
 028C E0E0              ldi R30,0
 028E 5E07              cpc R21,R30
 0290 09F4              brne X13
 0292 44C0              xjmp L69
 0294           X13:
 0294 4239              cpi R20,146
 0296 E0E0              ldi R30,0
 0298 5E07              cpc R21,R30
 029A 09F4              brne X14
 029C 3FC0              xjmp L69
 029E           X14:
 029E 4339              cpi R20,147
 02A0 E0E0              ldi R30,0
 02A2 5E07              cpc R21,R30
 02A4 09F4              brne X15
 02A6 3AC0              xjmp L69
 02A8           X15:
 02A8 4439              cpi R20,148
 02AA E0E0              ldi R30,0
 02AC 5E07              cpc R21,R30
 02AE 09F0              breq L54
 02B0 4FC0              xjmp L51
 02B2           X10:
 02B2                   .dbline 153
 02B2           ;                unsigned char i;
 02B2           ;                switch (len){
 02B2           L54:
 02B2                   .dbline 154
 02B2           ;                               case COMM: switch (RxBuffer[0]){
 02B2 40910D00          lds R20,_RxBuffer
 02B6 5527              clr R21
 02B8 4338              cpi R20,131
 02BA E0E0              ldi R30,0
 02BC 5E07              cpc R21,R30
 02BE D1F0              breq L61
 02C0 83E8              ldi R24,131
 02C2 90E0              ldi R25,0
 02C4 8417              cp R24,R20
 02C6 9507              cpc R25,R21
 02C8 2CF0              brlt L68
 02CA           L67:
 02CA 4D37              cpi R20,125
 02CC E0E0              ldi R30,0
 02CE 5E07              cpc R21,R30
 02D0 D9F0              breq L64
 02D2 40C0              xjmp L77
 02D4           L68:
 02D4 403E              cpi R20,224
 02D6 E0E0              ldi R30,0
 02D8 5E07              cpc R21,R30
 02DA 09F0              breq L58
 02DC 3BC0              xjmp L77
 02DE           X11:
 02DE                   .dbline 154
 02DE           L58:
 02DE                   .dbline 155
 02DE           ;                                                                 case En: if (check_buf(Enter,4) == OK)
 02DE 24E0              ldi R18,4
 02E0 00E0              ldi R16,<_Enter
 02E2 10E0              ldi R17,>_Enter
 02E4 AADF              xcall _check_buf
 02E6 0130              cpi R16,1
 02E8 09F0              breq X16
 02EA 34C0              xjmp L77
 02EC           X16:
 02EC                   .dbline 156
 02EC           ;                                                                                   comcheck = ENTER;
 02EC 2224              clr R2
 02EE 20920000          sts _comcheck,R2
 02F2                   .dbline 157
 02F2           ;                                                                                       break;
 02F2 30C0              xjmp L77
 02F4           L61:
 02F4                   .dbline 158
 02F4           ;                                                                 case Run: if(check_buf(RunBuffer,2) == OK)
 02F4 22E0              ldi R18,2
 02F6 00E0              ldi R16,<_RunBuffer
 02F8 10E0              ldi R17,>_RunBuffer
 02FA 9FDF              xcall _check_buf
 02FC 0130              cpi R16,1
 02FE 51F5              brne L77
 0300                   .dbline 159
 0300           ;                                                                                       {comcheck = RUN;
 0300                   .dbline 159
 0300 81E0              ldi R24,1
 0302 80930000          sts _comcheck,R24
 0306                   .dbline 162
 0306           ;                                                                                        
 0306           ;                                                                                        //runtask(RxBuffer);
 0306           ;                                                                                       }
 0306                   .dbline 163
 0306           ;                                                                                       break;
 0306 26C0              xjmp L77
 0308           L64:
 0308                   .dbline 164
 0308           ;                                                                 case Stop: if(check_buf(StopBuffer,2) == OK)
 0308 22E0              ldi R18,2
 030A 00E0              ldi R16,<_StopBuffer
 030C 10E0              ldi R17,>_StopBuffer
 030E 95DF              xcall _check_buf
 0310 0130              cpi R16,1
 0312 01F5              brne L77
 0314                   .dbline 165
 0314           ;                                                                                       {comcheck = STOP;
 0314                   .dbline 165
 0314 82E0              ldi R24,2
 0316 80930000          sts _comcheck,R24
 031A                   .dbline 168
 031A           ;                                                                                       //stoptask(RxBuffer);
 031A           ;                                                                                        
 031A           ;                                                                                       }
 031A                   .dbline 169
 031A           ;                                                                                       break;
 031A                   .dbline 170
 031A           ;                                                                 default:  break;
 031A                   .dbline 171
 031A           ;                                                                 }break;
 031A 1CC0              xjmp L77
 031C           L69:
 031C                   .dbline 175
 031C           ;                               case ONE:
 031C           ;                               case TWO:
 031C           ;                               case THREE:
 031C           ;                               case FOUR: if (check_buf(TxBuffer,4) == OK)
 031C 24E0              ldi R18,4
 031E 00E0              ldi R16,<_TxBuffer
 0320 10E0              ldi R17,>_TxBuffer
 0322 8BDF              xcall _check_buf
 0324 0130              cpi R16,1
 0326 B1F4              brne L77
 0328                   .dbline 176
 0328                   .dbline 176
 0328 4427              clr R20
 032A 0FC0              xjmp L75
 032C           L72:
 032C                   .dbline 176
 032C 80E0              ldi R24,<_Enter
 032E 90E0              ldi R25,>_Enter
 0330 E42F              mov R30,R20
 0332 FF27              clr R31
 0334 E80F              add R30,R24
 0336 F91F              adc R31,R25
 0338 2080              ldd R2,z+0
 033A 80E0              ldi R24,<_RxBuffer
 033C 90E0              ldi R25,>_RxBuffer
 033E E42F              mov R30,R20
 0340 FF27              clr R31
 0342 E80F              add R30,R24
 0344 F91F              adc R31,R25
 0346 2082              std z+0,R2
 0348           L73:
 0348                   .dbline 176
 0348 4395              inc R20
 034A           L75:
 034A                   .dbline 176
 034A           ;                                                       {for (i = 0;i < 4;i++) RxBuffer[i] = Enter[i];
 034A 4430              cpi R20,4
 034C 78F3              brlo L72
 034E                   .dbline 177
 034E           ;                                                        }
 034E                   .dbline 179
 034E           ;                                                   //UDR = TSTA1;
 034E           ;                                                   break;
 034E 02C0              xjmp L77
 0350           L51:
 0350                   .dbline 180
 0350           ;                               default: PORTC = 0xf0;break;                                               
 0350 80EF              ldi R24,240
 0352 85BB              out 0x15,R24
 0354                   .dbline 180
 0354           L76:
 0354                   .dbline 182
 0354           L77:
 0354                   .dbline 182
 0354           ;                }
 0354           ;                while (!(UCSRA&(1<<UDRE)));
 0354 5D9B              sbis 0xb,5
 0356 FECF              rjmp L76
 0358                   .dbline 183
 0358           ;                n=1;
 0358 81E0              ldi R24,1
 035A 80930C00          sts _n,R24
 035E                   .dbline 184
 035E           ;                UDR = TSTA1;
 035E 8BE6              ldi R24,107
 0360 8CB9              out 0xc,R24
 0362                   .dbline -2
 0362           L50:
 0362 0E940000          xcall pop_gset1
 0366                   .dbline 0 ; func end
 0366 0895              ret
 0368                   .dbsym r i 20 c
 0368                   .dbend
 0368                   .dbfunc e main _main fV
                        .even
 0368           _main::
 0368                   .dbline -1
 0368                   .dbline 188
 0368           ;               
 0368           ; 
 0368           ; }
 0368           ; void main(){
 0368                   .dbline 189
 0368           ;  n = 0;
 0368 2224              clr R2
 036A 20920C00          sts _n,R2
 036E                   .dbline 190
 036E           ;  flag = NG;
 036E 20920500          sts _flag,R2
 0372                   .dbline 191
 0372           ;  init_devices();
 0372 5ADF              xcall _init_devices
 0374 09C0              xjmp L81
 0376           L80:
 0376                   .dbline 192
 0376           ;  while(1){
 0376                   .dbline 193
 0376           ;                 if (flag == OK && n == 0)
 0376 80910500          lds R24,_flag
 037A 8130              cpi R24,1
 037C 29F4              brne L83
 037E 20900C00          lds R2,_n
 0382 2220              tst R2
 0384 09F4              brne L83
 0386                   .dbline 194
 0386           ;                 check_com();
 0386 77DF              xcall _check_com
 0388           L83:
 0388                   .dbline 196
 0388           L81:
 0388                   .dbline 192
 0388 F6CF              xjmp L80
 038A           X17:
 038A                   .dbline -2
 038A           L79:
 038A                   .dbline 0 ; func end
 038A 0895              ret
 038C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\ly\mega\m16rs\main.c
 0000           _comcheck::
 0000                   .blkb 1
 0001                   .dbsym e comcheck _comcheck c
 0001           _TxBuffer::
 0001                   .blkb 4
 0005                   .dbsym e TxBuffer _TxBuffer A[4:4]c
 0005           _flag:
 0005                   .blkb 1
 0006                   .dbsym s flag _flag c
 0006           _len:
 0006                   .blkb 1
 0007                   .dbsym s len _len c

⌨️ 快捷键说明

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