📄 remote.lis
字号:
0358 L82:
0358 .dbline 282
0358 ;
0358 ; if (UpdateLcd == TRUE) LcdUpdate();
0358 80911C00 lds R24,_UpdateLcd
035C 8130 cpi R24,1
035E 09F4 brne L84
0360 .dbline 282
0360 00D0 rcall _LcdUpdate
0362 L84:
0362 .dbline 284
0362 ;
0362 ; tick++;
0362 80910A00 lds R24,L76
0366 8F5F subi R24,255 ; addi 1
0368 80930A00 sts L76,R24
036C .dbline 285
036C ; if (tick < 6) return;
036C 8630 cpi R24,6
036E 08F4 brsh L86
0370 .dbline 285
0370 7EC0 rjmp L75
0372 L86:
0372 .dbline 286
0372 ; tick = 0;
0372 2224 clr R2
0374 20920A00 sts L76,R2
0378 .dbline 289
0378 ;
0378 ; #ifndef NOTIMEOUT
0378 ; TimeOut++;
0378 80910000 lds R24,_TimeOut
037C 90910100 lds R25,_TimeOut+1
0380 0196 adiw R24,1
0382 90930100 sts _TimeOut+1,R25
0386 80930000 sts _TimeOut,R24
038A .dbline 291
038A ; #endif
038A ; Light++;
038A 80910700 lds R24,_Light
038E 90910800 lds R25,_Light+1
0392 0196 adiw R24,1
0394 90930800 sts _Light+1,R25
0398 80930700 sts _Light,R24
039C .dbline 294
039C ;
039C ;
039C ; if (strlen(&Line[LinePtr][0]) < 14) return;
039C 10910300 lds R17,_LinePtr
03A0 08E2 ldi R16,40
03A2 0102 muls R16,R17
03A4 8001 movw R16,R0
03A6 80E0 ldi R24,<_Line
03A8 90E0 ldi R25,>_Line
03AA 080F add R16,R24
03AC 191F adc R17,R25
03AE 00D0 rcall _strlen
03B0 0E30 cpi R16,14
03B2 E0E0 ldi R30,0
03B4 1E07 cpc R17,R30
03B6 08F4 brsh L88
03B8 .dbline 294
03B8 5AC0 rjmp L75
03BA L88:
03BA .dbline 296
03BA 4427 clr R20
03BC 09C0 rjmp L93
03BE L90:
03BE .dbline 296
03BE 80E0 ldi R24,<L79
03C0 90E0 ldi R25,>L79
03C2 E42F mov R30,R20
03C4 FF27 clr R31
03C6 E80F add R30,R24
03C8 F91F adc R31,R25
03CA 80E2 ldi R24,32
03CC 8083 std z+0,R24
03CE L91:
03CE .dbline 296
03CE 4395 inc R20
03D0 L93:
03D0 .dbline 296
03D0 ;
03D0 ; for (j=0;j<14;j++) buffer[j] = ' ';
03D0 4E30 cpi R20,14
03D2 A8F3 brlo L90
03D4 .dbline 297
03D4 ; if (i > (strlen(&Line[LinePtr][0]))) i = 0;
03D4 10910300 lds R17,_LinePtr
03D8 08E2 ldi R16,40
03DA 0102 muls R16,R17
03DC 8001 movw R16,R0
03DE 80E0 ldi R24,<_Line
03E0 90E0 ldi R25,>_Line
03E2 080F add R16,R24
03E4 191F adc R17,R25
03E6 00D0 rcall _strlen
03E8 20900B00 lds R2,L77
03EC 3324 clr R3
03EE 0215 cp R16,R2
03F0 1305 cpc R17,R3
03F2 18F4 brsh L94
03F4 .dbline 297
03F4 2224 clr R2
03F6 20920B00 sts L77,R2
03FA L94:
03FA .dbline 298
03FA ; j = strlen(&Line[LinePtr][i]);
03FA 10910300 lds R17,_LinePtr
03FE 08E2 ldi R16,40
0400 0102 muls R16,R17
0402 1001 movw R2,R0
0404 80E0 ldi R24,<_Line
0406 90E0 ldi R25,>_Line
0408 280E add R2,R24
040A 391E adc R3,R25
040C 00910B00 lds R16,L77
0410 1127 clr R17
0412 020D add R16,R2
0414 131D adc R17,R3
0416 00D0 rcall _strlen
0418 402F mov R20,R16
041A .dbline 299
041A ; if (j > 14) j = 14;
041A 8EE0 ldi R24,14
041C 8017 cp R24,R16
041E 08F4 brsh L96
0420 .dbline 299
0420 4EE0 ldi R20,14
0422 L96:
0422 .dbline 300
0422 ; memcpy(&buffer[0],&Line[LinePtr][i],j);
0422 242E mov R2,R20
0424 3324 clr R3
0426 3982 std y+1,R3
0428 2882 std y+0,R2
042A 10910300 lds R17,_LinePtr
042E 08E2 ldi R16,40
0430 0102 muls R16,R17
0432 1001 movw R2,R0
0434 80E0 ldi R24,<_Line
0436 90E0 ldi R25,>_Line
0438 280E add R2,R24
043A 391E adc R3,R25
043C 20910B00 lds R18,L77
0440 3327 clr R19
0442 220D add R18,R2
0444 331D adc R19,R3
0446 00E0 ldi R16,<L79
0448 10E0 ldi R17,>L79
044A 00D0 rcall _memcpy
044C .dbline 301
044C ; buffer[13] = 0x00;
044C 2224 clr R2
044E 20920D00 sts L79+13,R2
0452 .dbline 302
0452 ; LcdGotoXY(2,2+LinePtr);
0452 20910300 lds R18,_LinePtr
0456 2E5F subi R18,254 ; addi 2
0458 02E0 ldi R16,2
045A 00D0 rcall _LcdGotoXY
045C .dbline 303
045C ; LcdStr(1,&buffer[0]);
045C 20E0 ldi R18,<L79
045E 30E0 ldi R19,>L79
0460 01E0 ldi R16,1
0462 00D0 rcall _LcdStr
0464 .dbline 304
0464 ; i++;
0464 80910B00 lds R24,L77
0468 8F5F subi R24,255 ; addi 1
046A 80930B00 sts L77,R24
046E .dbline -2
046E .dbline 305
046E ; }
046E L75:
046E 2296 adiw R28,2
0470 00D0 rcall pop_gset1
0472 00D0 rcall pop_lset
0474 .dbline 0 ; func end
0474 1895 reti
0476 .dbsym r j 20 c
0476 .dbend
.area vector(rom, abs)
.org 2
0002 3BC2 rjmp _int0_isr
.area text(rom, con, rel)
0476 .dbfile C:\DATA\MP3\Remote\Code\remote.c
.area bss(ram, con, rel)
000E .dbfile C:\DATA\MP3\Remote\Code\remote.c
000E L100:
000E .blkb 1
.area text(rom, con, rel)
0476 .dbfile C:\DATA\MP3\Remote\Code\remote.c
0476 .dbfunc e int0_isr _int0_isr fV
0476 .dbsym s LastKey L100 c
0476 ; i -> <dead>
.even
0476 _int0_isr::
0476 00D0 rcall push_lset
0478 .dbline -1
0478 .dbline 312
0478 ;
0478 ; //*************************************
0478 ; // void int0_isr(void)
0478 ; //*************************************
0478 ; #pragma interrupt_handler int0_isr:2
0478 ; void int0_isr(void)
0478 ; {
0478 .dbline 316
0478 ; static unsigned char LastKey;
0478 ; unsigned char i;
0478 ;
0478 ; TimeOut = 0;
0478 2224 clr R2
047A 3324 clr R3
047C 30920100 sts _TimeOut+1,R3
0480 20920000 sts _TimeOut,R2
0484 .dbline 318
0484 ;
0484 ; delay_ms(10);
0484 0AE0 ldi R16,10
0486 10E0 ldi R17,0
0488 37D0 rcall _delay_ms
048A .dbline 319
048A ; Key = ScanKey();
048A 04D0 rcall _ScanKey
048C 00930200 sts _Key,R16
0490 .dbline -2
0490 .dbline 320
0490 ; }
0490 L99:
0490 00D0 rcall pop_lset
0492 .dbline 0 ; func end
0492 1895 reti
0494 .dbsym l i 1 c
0494 .dbend
0494 .dbfunc e ScanKey _ScanKey fc
.even
0494 _ScanKey::
0494 .dbline -1
0494 .dbline 336
0494 ;
0494 ; /**********************************************************
0494 ;
0494 ; Name: void ScanKey(void)
0494 ;
0494 ; Description: ScanKeyPad
0494 ;
0494 ; Input: none
0494 ;
0494 ; Output: none
0494 ;
0494 ; Misc:
0494 ;
0494 ; **********************************************************/
0494 ; unsigned char ScanKey()
0494 ; {
0494 .dbline 337
0494 ; if ((!(PINC & SHIFT)) && (!(PINC & UP)) && (!(PINC & DOWN))) return RESET;
0494 9C99 sbic 0x13,4
0496 06C0 rjmp L102
0498 9D99 sbic 0x13,5
049A 04C0 rjmp L102
049C 9A99 sbic 0x13,2
049E 02C0 rjmp L102
04A0 .dbline 337
04A0 06E2 ldi R16,38
04A2 29C0 rjmp L101
04A4 L102:
04A4 .dbline 339
04A4 ;
04A4 ; if ((!(PINC & SHIFT)) && (!(PINC & UP))) return SHIFT_UP;
04A4 9C99 sbic 0x13,4
04A6 04C0 rjmp L104
04A8 9D99 sbic 0x13,5
04AA 02C0 rjmp L104
04AC .dbline 339
04AC 00E9 ldi R16,144
04AE 23C0 rjmp L101
04B0 L104:
04B0 .dbline 340
04B0 ; if ((!(PINC & SHIFT)) && (!(PINC & DOWN))) return SHIFT_DOWN;
04B0 9C99 sbic 0x13,4
04B2 04C0 rjmp L106
04B4 9A99 sbic 0x13,2
04B6 02C0 rjmp L106
04B8 .dbline 340
04B8 04E8 ldi R16,132
04BA 1DC0 rjmp L101
04BC L106:
04BC .dbline 341
04BC ; if ((!(PINC & SHIFT)) && (!(PINC & RIGHT))) return SHIFT_RIGHT;
04BC 9C99 sbic 0x13,4
04BE 04C0 rjmp L108
04C0 9B99 sbic 0x13,3
04C2 02C0 rjmp L108
04C4 .dbline 341
04C4 08E8 ldi R16,136
04C6 17C0 rjmp L101
04C8 L108:
04C8 .dbline 342
04C8 ; if ((!(PINC & SHIFT)) && (!(PINC & LEFT))) return SHIFT_LEFT;
04C8 9C99 sbic 0x13,4
04CA 04C0 rjmp L110
04CC 9999 sbic 0x13,1
04CE 02C0 rjmp L110
04D0 .dbline 342
04D0 02E8 ldi R16,130
04D2 11C0 rjmp L101
04D4 L110:
04D4 .dbline 344
04D4 ;
04D4 ; if (!(PINC & UP)) return UP;
04D4 9D99 sbic 0x13,5
04D6 02C0 rjmp L112
04D8 .dbline 344
04D8 00E2 ldi R16,32
04DA 0DC0 rjmp L101
04DC L112:
04DC .dbline 345
04DC ; if (!(PINC & DOWN)) return DOWN;
04DC 9A99 sbic 0x13,2
04DE 02C0 rjmp L114
04E0 .dbline 345
04E0 04E0 ldi R16,4
04E2 09C0 rjmp L101
04E4 L114:
04E4 .dbline 346
04E4 ; if (!(PINC & RIGHT)) return RIGHT;
04E4 9B99 sbic 0x13,3
04E6 02C0 rjmp L116
04E8 .dbline 346
04E8 08E0 ldi R16,8
04EA 05C0 rjmp L101
04EC L116:
04EC .dbline 347
04EC ; if (!(PINC & LEFT)) return LEFT;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -