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