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

📄 remote.lis

📁 用ATmega128做的mp3播放器
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 02D2           ;       WDR();
 02D2 A895              wdr
 02D4                   .dbline 131
 02D4           ;     me = 0;         // manchester encoded txbyte
 02D4 CC24              clr R12
 02D6                   .dbline 132
 02D6           ;     for (j=0 ; j<4; j++)
 02D6 AA24              clr R10
 02D8 0DC0              xjmp L46
 02DA           L43:
 02DA                   .dbline 133
 02DA           ;         {
 02DA                   .dbline 134
 02DA           ;         me >>=2;
 02DA C694              lsr R12
 02DC C694              lsr R12
 02DE                   .dbline 135
 02DE           ;         if (TxByte & 0x01)
 02DE 40FF              sbrs R20,0
 02E0 04C0              rjmp L47
 02E2                   .dbline 136
 02E2           ;                 {
 02E2                   .dbline 137
 02E2           ;                 me |= 0x80;
 02E2 8C2D              mov R24,R12
 02E4 8068              ori R24,128
 02E6 C82E              mov R12,R24
 02E8                   .dbline 138
 02E8           ;                 }
 02E8 03C0              xjmp L48
 02EA           L47:
 02EA                   .dbline 140
 02EA           ;         else
 02EA           ;                 {
 02EA                   .dbline 141
 02EA           ;                 me |= 0x40;
 02EA 8C2D              mov R24,R12
 02EC 8064              ori R24,64
 02EE C82E              mov R12,R24
 02F0                   .dbline 142
 02F0           ;                 }
 02F0           L48:
 02F0                   .dbline 143
 02F0 4695              lsr R20
 02F2                   .dbline 144
 02F2           L44:
 02F2                   .dbline 132
 02F2 A394              inc R10
 02F4           L46:
 02F4                   .dbline 132
 02F4 8A2D              mov R24,R10
 02F6 8430              cpi R24,4
 02F8 80F3              brlo L43
 02FA                   .dbline 145
 02FA 0C2D              mov R16,R12
 02FC 0AD0              xcall _TxChar
 02FE                   .dbline 146
 02FE           L40:
 02FE                   .dbline 128
 02FE 6395              inc R22
 0300           L42:
 0300                   .dbline 128
 0300 6230              cpi R22,2
 0302 38F3              brlo L39
 0304                   .dbline 147
 0304           ;         TxByte >>=1;
 0304           ;         }
 0304           ;     TxChar(me);
 0304           ;     }
 0304           ; delay_ms(1);
 0304 01E0              ldi R16,1
 0306 10E0              ldi R17,0
 0308 0E940000          xcall _delay_ms
 030C                   .dbline -2
 030C                   .dbline 148
 030C           ; }
 030C           L38:
 030C 0E940000          xcall pop_gset4
 0310                   .dbline 0 ; func end
 0310 0895              ret
 0312                   .dbsym r i 22 c
 0312                   .dbsym r j 10 c
 0312                   .dbsym r me 12 c
 0312                   .dbsym r TxByte 20 c
 0312                   .dbend
 0312                   .dbfunc e TxChar _TxChar fV
 0312           ;             ch -> R16
                        .even
 0312           _TxChar::
 0312                   .dbline -1
 0312                   .dbline 156
 0312           ; 
 0312           ; //******************************************************************
 0312           ; //*   TxChar(unsigned char ch)
 0312           ; //*   
 0312           ; //* Send a byte to the remote  
 0312           ; //******************************************************************
 0312           ; void TxChar(unsigned char ch)
 0312           ; {
 0312 01C0              xjmp L51
 0314           L50:
 0314                   .dbline 157
 0314 A895              wdr
 0316           L51:
 0316                   .dbline 157
 0316           ; while (!(UCSR1A & 0x20)) WDR(); 
 0316 20909B00          lds R2,155
 031A 25FE              sbrs R2,5
 031C FBCF              rjmp L50
 031E                   .dbline 158
 031E           ; UDR1 = ch;
 031E 00939C00          sts 156,R16
 0322                   .dbline -2
 0322                   .dbline 159
 0322           ; }
 0322           L49:
 0322                   .dbline 0 ; func end
 0322 0895              ret
 0324                   .dbsym r ch 16 c
 0324                   .dbend
                        .area vector(rom, abs)
                        .org 120
 0078 0C949201          jmp _RxChar
                        .area text(rom, con, rel)
 0324                   .dbfile C:\DATA\MP3\Player\Code\remote.c
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DATA\MP3\Player\Code\remote.c
 0000           L54:
 0000                   .blkb 1
 0001           L55:
 0001                   .blkb 1
 0002           L56:
 0002                   .blkb 1
                        .area data(ram, con, rel)
 0000                   .dbfile C:\DATA\MP3\Player\Code\remote.c
 0000           L57:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile C:\DATA\MP3\Player\Code\remote.c
                        .area text(rom, con, rel)
 0324                   .dbfile C:\DATA\MP3\Player\Code\remote.c
 0324                   .dbfunc e RxChar _RxChar fV
 0324                   .dbsym s Qte L57 c
 0324                   .dbsym s Error L56 c
 0324                   .dbsym s TempKey L55 c
 0324                   .dbsym s ch L54 c
                        .even
 0324           _RxChar::
 0324 2A92              st -y,R2
 0326 3A92              st -y,R3
 0328 8A93              st -y,R24
 032A 9A93              st -y,R25
 032C 2FB6              in R2,0x3f
 032E 2A92              st -y,R2
 0330                   .dbline -1
 0330                   .dbline 168
 0330           ; 
 0330           ; //******************************************************************
 0330           ; //*   void RxChar(void)
 0330           ; //*   
 0330           ; //* Send a byte to the remote  
 0330           ; //******************************************************************
 0330           ; #pragma interrupt_handler RxChar:31
 0330           ; void RxChar(void)
 0330           ; {
 0330                   .dbline 173
 0330           ; static unsigned char ch,TempKey;
 0330           ; static unsigned char Error;
 0330           ; static unsigned char Qte = 0;
 0330           ; 
 0330           ; ch = UDR1;
 0330 20909C00          lds R2,156
 0334 20920000          sts L54,R2
 0338                   .dbline 175
 0338           ; 
 0338           ; if ((ch == 0xf0) && (Key == 0))
 0338 822D              mov R24,R2
 033A 803F              cpi R24,240
 033C 59F4              brne L58
 033E 20900000          lds R2,_Key
 0342 2220              tst R2
 0344 39F4              brne L58
 0346                   .dbline 176
 0346           ;    {
 0346                   .dbline 177
 0346           ;    Qte = 1;
 0346 81E0              ldi R24,1
 0348 80930000          sts L57,R24
 034C                   .dbline 178
 034C           ;    Error = FALSE;
 034C 2224              clr R2
 034E 20920200          sts L56,R2
 0352                   .dbline 179
 0352           ;    return;
 0352 2FC0              xjmp L53
 0354           L58:
 0354                   .dbline 182
 0354           ;    }
 0354           ; 
 0354           ; if ((ch == 0x0f) && (Error == FALSE))
 0354 80910000          lds R24,L54
 0358 8F30              cpi R24,15
 035A 61F4              brne L60
 035C 20900200          lds R2,L56
 0360 2220              tst R2
 0362 41F4              brne L60
 0364                   .dbline 183
 0364           ;    {
 0364                   .dbline 184
 0364           ;    Qte = 0;
 0364 2224              clr R2
 0366 20920000          sts L57,R2
 036A                   .dbline 185
 036A           ;    Key = TempKey;
 036A 20900100          lds R2,L55
 036E 20920000          sts _Key,R2
 0372                   .dbline 186
 0372           ;    return;
 0372 1FC0              xjmp L53
 0374           L60:
 0374                   .dbline 189
 0374           ;    }
 0374           ; 
 0374           ; if (Qte == 1)
 0374 80910000          lds R24,L57
 0378 8130              cpi R24,1
 037A 41F4              brne L62
 037C                   .dbline 190
 037C           ;    {
 037C                   .dbline 191
 037C           ;    TempKey = ch;
 037C 20900000          lds R2,L54
 0380 20920100          sts L55,R2
 0384                   .dbline 192
 0384           ;    Qte++;
 0384 8F5F              subi R24,255    ; addi 1
 0386 80930000          sts L57,R24
 038A                   .dbline 193
 038A           ;    return;
 038A 13C0              xjmp L53
 038C           L62:
 038C                   .dbline 196
 038C 80910000          lds R24,L57
 0390 8230              cpi R24,2
 0392 79F4              brne L64
 0394 20900000          lds R2,L54
 0398 2094              com R2
 039A 30900100          lds R3,L55
 039E 3214              cp R3,R2
 03A0 41F0              breq L64
 03A2                   .dbline 197
 03A2                   .dbline 198
 03A2 81E0              ldi R24,1
 03A4 80930200          sts L56,R24
 03A8                   .dbline 199
 03A8 80910000          lds R24,L57
 03AC 8F5F              subi R24,255    ; addi 1
 03AE 80930000          sts L57,R24
 03B2                   .dbline 200
 03B2           L64:
 03B2                   .dbline -2
 03B2                   .dbline 202
 03B2           ;    }
 03B2           ; 
 03B2           ; if ((Qte == 2) && (TempKey != ~ch))
 03B2           ;    {
 03B2           ;    Error = TRUE;
 03B2           ;    Qte++;
 03B2           ;    return;
 03B2           ;    }
 03B2           ; }
 03B2           L53:
 03B2 2990              ld R2,y+
 03B4 2FBE              out 0x3f,R2
 03B6 9991              ld R25,y+
 03B8 8991              ld R24,y+
 03BA 3990              ld R3,y+
 03BC 2990              ld R2,y+
 03BE                   .dbline 0 ; func end
 03BE 1895              reti
 03C0                   .dbend
                        .area data(ram, con, rel)
 0001                   .dbfile C:\DATA\MP3\Player\Code\remote.c
 0001           L4:
 0001                   .blkb 4
                        .area idata
 0001 25630000          .byte 37,'c,0,0
                        .area data(ram, con, rel)
 0005                   .dbfile C:\DATA\MP3\Player\Code\remote.c
 0005           L3:
 0005                   .blkb 6
                        .area idata
 0005 256325730000      .byte 37,'c,37,'s,0,0
                        .area data(ram, con, rel)
 000B                   .dbfile C:\DATA\MP3\Player\Code\remote.c

⌨️ 快捷键说明

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