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

📄 remote.lis

📁 硬盘MP3播放器-MEGA128-VS1001K-USB-遥控-LCD-ICCAVR代码-硬盘-支持FAT32-单面PCB 第二部分
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04EC 9999              sbic 0x13,1
 04EE 02C0              rjmp L118
 04F0                   .dbline 347
 04F0 02E0              ldi R16,2
 04F2 01C0              rjmp L101
 04F4           L118:
 04F4                   .dbline 349
 04F4           ; 
 04F4           ; return NONE;
 04F4 0027              clr R16
 04F6                   .dbline -2
 04F6           L101:
 04F6                   .dbline 0 ; func end
 04F6 0895              ret
 04F8                   .dbend
 04F8                   .dbfunc e delay_ms _delay_ms fV
 04F8           ;              j -> R20,R21
 04F8           ;              i -> R22,R23
 04F8           ;             ms -> R16,R17
                        .even
 04F8           _delay_ms::
 04F8 00D0              rcall push_gset2
 04FA                   .dbline -1
 04FA                   .dbline 358
 04FA           ; }
 04FA           ; 
 04FA           ; //******************************************************************
 04FA           ; //*   Delay millisecond Function
 04FA           ; //*   
 04FA           ; //*   Clock = 1Mhz
 04FA           ; //******************************************************************
 04FA           ; void delay_ms(int ms)
 04FA           ; {
 04FA                   .dbline 361
 04FA           ; int i,j;
 04FA           ; 
 04FA           ; for (j=0;j<ms;j++) 
 04FA 4427              clr R20
 04FC 5527              clr R21
 04FE 0BC0              rjmp L124
 0500           L121:
 0500                   .dbline 362
 0500           ;       {
 0500                   .dbline 363
 0500 6627              clr R22
 0502 7727              clr R23
 0504           L125:
 0504                   .dbline 363
 0504           L126:
 0504                   .dbline 363
 0504 6F5F              subi R22,255  ; offset = 1
 0506 7F4F              sbci R23,255
 0508                   .dbline 363
 0508 6238              cpi R22,130
 050A E0E0              ldi R30,0
 050C 7E07              cpc R23,R30
 050E D4F3              brlt L125
 0510                   .dbline 364
 0510 A895              wdr
 0512                   .dbline 365
 0512           L122:
 0512                   .dbline 361
 0512 4F5F              subi R20,255  ; offset = 1
 0514 5F4F              sbci R21,255
 0516           L124:
 0516                   .dbline 361
 0516 4017              cp R20,R16
 0518 5107              cpc R21,R17
 051A 94F3              brlt L121
 051C                   .dbline -2
 051C                   .dbline 366
 051C           ;       for (i=0;i<130;i++);
 051C           ;       WDR();
 051C           ;       }
 051C           ; }
 051C           L120:
 051C 00D0              rcall pop_gset2
 051E                   .dbline 0 ; func end
 051E 0895              ret
 0520                   .dbsym r j 20 I
 0520                   .dbsym r i 22 I
 0520                   .dbsym r ms 16 I
 0520                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 90C2              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0520                   .dbfile C:\DATA\MP3\Remote\Code\remote.c
                        .area bss(ram, con, rel)
 000F                   .dbfile C:\DATA\MP3\Remote\Code\remote.c
 000F           L130:
 000F                   .blkb 1
 0010           L131:
 0010                   .blkb 1
 0011           L132:
 0011                   .blkb 1
                        .area text(rom, con, rel)
 0520                   .dbfile C:\DATA\MP3\Remote\Code\remote.c
 0520                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 0520                   .dbsym s Qte L132 c
 0520                   .dbsym s Decoded L131 c
 0520                   .dbsym s Error L130 c
 0520           ;              i -> R22
 0520           ;             ch -> R20
                        .even
 0520           _uart0_rx_isr::
 0520 2A92              st -y,R2
 0522 3A92              st -y,R3
 0524 4A92              st -y,R4
 0526 0A93              st -y,R16
 0528 1A93              st -y,R17
 052A 2A93              st -y,R18
 052C 3A93              st -y,R19
 052E 8A93              st -y,R24
 0530 9A93              st -y,R25
 0532 EA93              st -y,R30
 0534 FA93              st -y,R31
 0536 2FB6              in R2,0x3f
 0538 2A92              st -y,R2
 053A 00D0              rcall push_gset2
 053C                   .dbline -1
 053C                   .dbline 375
 053C           ; 
 053C           ; //*************************************
 053C           ; // void uart0_rx_isr(void)  
 053C           ; //
 053C           ; // manchester encoded byte
 053C           ; //*************************************
 053C           ; #pragma interrupt_handler uart0_rx_isr:12
 053C           ; void uart0_rx_isr(void)
 053C           ; {
 053C                   .dbline 382
 053C           ; unsigned char ch;
 053C           ; unsigned char i;
 053C           ; static unsigned char Error;
 053C           ; static unsigned char Decoded;
 053C           ; static unsigned char Qte;
 053C           ; 
 053C           ; ch = UDR;  //uart has received a character in UDR
 053C 4CB1              in R20,0xc
 053E                   .dbline 384
 053E           ; 
 053E           ; if (ch == 0xf0) 
 053E 403F              cpi R20,240
 0540 31F4              brne L133
 0542                   .dbline 385
 0542           ;    {
 0542                   .dbline 386
 0542           ;    Qte = 0;
 0542 2224              clr R2
 0544 20921100          sts L132,R2
 0548                   .dbline 387
 0548           ;    Error = FALSE;
 0548 20920F00          sts L130,R2
 054C                   .dbline 388
 054C           ;    return;
 054C 6CC0              rjmp L129
 054E           L133:
 054E                   .dbline 391
 054E           ;    }
 054E           ;    
 054E           ; if ((ch == 0x0f) && (Error == FALSE)) 
 054E 4F30              cpi R20,15
 0550 A9F4              brne L135
 0552 20900F00          lds R2,L130
 0556 2220              tst R2
 0558 89F4              brne L135
 055A                   .dbline 392
 055A           ;    {
 055A                   .dbline 393
 055A           ;    RxData[Qte/2] = 0x00;
 055A 22E0              ldi R18,2
 055C 30E0              ldi R19,0
 055E 00911100          lds R16,L132
 0562 1127              clr R17
 0564 00D0              rcall div16s
 0566 F801              movw R30,R16
 0568 80E0              ldi R24,<_RxData
 056A 90E0              ldi R25,>_RxData
 056C E80F              add R30,R24
 056E F91F              adc R31,R25
 0570 2224              clr R2
 0572 2082              std z+0,R2
 0574                   .dbline 394
 0574           ;    NewMessage = TRUE;
 0574 81E0              ldi R24,1
 0576 80930500          sts _NewMessage,R24
 057A                   .dbline 395
 057A           ;    return;
 057A 55C0              rjmp L129
 057C           L135:
 057C                   .dbline 398
 057C           ;    }
 057C           ; 
 057C           ; Decoded = 0x00;
 057C 2224              clr R2
 057E 20921000          sts L131,R2
 0582                   .dbline 400
 0582           ; 
 0582           ; for (i=0;i<4;i++)
 0582 6627              clr R22
 0584 1DC0              rjmp L140
 0586           L137:
 0586                   .dbline 401
 0586           ;       {
 0586                   .dbline 402
 0586           ;       Decoded >>= 1;
 0586 20901000          lds R2,L131
 058A 2694              lsr R2
 058C 20921000          sts L131,R2
 0590                   .dbline 403
 0590           ;       if ((ch & 0x03) == 0x02) Decoded |= 0x08;
 0590 842F              mov R24,R20
 0592 8370              andi R24,3
 0594 8230              cpi R24,2
 0596 29F4              brne L141
 0598                   .dbline 403
 0598 822D              mov R24,R2
 059A 8860              ori R24,8
 059C 80931000          sts L131,R24
 05A0 0CC0              rjmp L142
 05A2           L141:
 05A2                   .dbline 404
 05A2           ;       else if ((ch & 0x03) == 0x01) Decoded = Decoded;
 05A2 842F              mov R24,R20
 05A4 8370              andi R24,3
 05A6 8130              cpi R24,1
 05A8 29F4              brne L143
 05AA                   .dbline 404
 05AA 20901000          lds R2,L131
 05AE 20921000          sts L131,R2
 05B2 03C0              rjmp L144
 05B4           L143:
 05B4                   .dbline 405
 05B4           ;       else Error = TRUE;
 05B4 81E0              ldi R24,1
 05B6 80930F00          sts L130,R24
 05BA           L144:
 05BA           L142:
 05BA                   .dbline 406
 05BA 4695              lsr R20
 05BC 4695              lsr R20
 05BE                   .dbline 407
 05BE           L138:
 05BE                   .dbline 400
 05BE 6395              inc R22
 05C0           L140:
 05C0                   .dbline 400
 05C0 6430              cpi R22,4
 05C2 08F3              brlo L137
 05C4                   .dbline 409
 05C4           ;       ch >>= 2;
 05C4           ;       }
 05C4           ; 
 05C4           ; if (Qte <= (MAXLEN * 2)) 
 05C4 80E5              ldi R24,80
 05C6 20901100          lds R2,L132
 05CA 8215              cp R24,R2
 05CC 38F1              brlo L145
 05CE                   .dbline 410
 05CE           ;    {
 05CE                   .dbline 411
 05CE           ;    if ((Qte % 2) == 0) RxData[Qte/2] = Decoded;
 05CE 12E0              ldi R17,2
 05D0 022D              mov R16,R2
 05D2 00D0              rcall mod8u
 05D4 0023              tst R16
 05D6 79F4              brne L147
 05D8                   .dbline 411
 05D8 22E0              ldi R18,2
 05DA 30E0              ldi R19,0
 05DC 00911100          lds R16,L132
 05E0 1127              clr R17
 05E2 00D0              rcall div16s
 05E4 F801              movw R30,R16
 05E6 80E0              ldi R24,<_RxData
 05E8 90E0              ldi R25,>_RxData
 05EA E80F              add R30,R24
 05EC F91F              adc R31,R25
 05EE 20901000          lds R2,L131
 05F2 2082              std z+0,R2
 05F4 13C0              rjmp L148
 05F6           L147:
 05F6                   .dbline 412
 05F6           ;    else RxData[Qte/2] += (Decoded << 4);
 05F6 22E0              ldi R18,2
 05F8 30E0              ldi R19,0
 05FA 00911100          lds R16,L132
 05FE 1127              clr R17
 0600 00D0              rcall div16s
 0602 1801              movw R2,R16
 0604 80E0              ldi R24,<_RxData
 0606 90E0              ldi R25,>_RxData
 0608 280E              add R2,R24
 060A 391E              adc R3,R25
 060C 80911000          lds R24,L131
 0610 8F70              andi R24,#0x0F
 0612 8295              swap R24
 0614 F101              movw R30,R2
 0616 4080              ldd R4,z+0
 0618 480E              add R4,R24
 061A 4082              std z+0,R4
 061C           L148:
 061C                   .dbline 413
 061C           ;    }
 061C           L145:
 061C                   .dbline 414
 061C           ; Qte++;
 061C 80911100          lds R24,L132
 0620 8F5F              subi R24,255    ; addi 1
 0622 80931100          sts L132,R24
 0626                   .dbline -2
 0626                   .dbline 415
 0626           ; }
 0626           L129:
 0626 00D0              rcall pop_gset2
 0628 2990              ld R2,y+
 062A 2FBE              out 0x3f,R2
 062C F991              ld R31,y+
 062E E991              ld R30,y+
 0630 9991              ld R25,y+
 0632 8991              ld R24,y+
 0634 3991              ld R19,y+
 0636 2991              ld R18,y+
 0638 1991              ld R17,y+
 063A 0991              ld R16,y+
 063C 4990              ld R4,y+
 063E 3990              ld R3,y+
 0640 2990              ld R2,y+
 0642                   .dbline 0 ; func end
 0642 1895              reti
 0644                   .dbsym r i 22 c
 0644                   .dbsym r ch 20 c
 0644                   .dbend
 0644                   .dbfunc e AnalyseData _AnalyseData fV
 0644           ;  

⌨️ 快捷键说明

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