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

📄 12232.lis

📁 AVR单片机做的MP3
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00BE A19A              sbi 0x14,1
 00C0                   .dbline 89
 00C0           ;    OUTMI(0XAE);  
 00C0 0EEA              ldi R16,174
 00C2 C9DF              rcall _OUTMI
 00C4                   .dbline 90
 00C4           ;    OUTMI(0XC0); 
 00C4 00EC              ldi R16,192
 00C6 C7DF              rcall _OUTMI
 00C8                   .dbline 91
 00C8           ;    OUTMI(0XA0); 
 00C8 00EA              ldi R16,160
 00CA C5DF              rcall _OUTMI
 00CC                   .dbline 92
 00CC           ;    OUTMI(0XA4); 
 00CC 04EA              ldi R16,164
 00CE C3DF              rcall _OUTMI
 00D0                   .dbline 93
 00D0           ;    OUTMI(0XA9);
 00D0 09EA              ldi R16,169
 00D2 C1DF              rcall _OUTMI
 00D4                   .dbline 94
 00D4           ;    OUTMI(0XAF);
 00D4 0FEA              ldi R16,175
 00D6 BFDF              rcall _OUTMI
 00D8                   .dbline 96
 00D8           ;    
 00D8           ;    OUTSI(0XAE); 
 00D8 0EEA              ldi R16,174
 00DA D9DF              rcall _OUTSI
 00DC                   .dbline 97
 00DC           ;    OUTSI(0XC0);
 00DC 00EC              ldi R16,192
 00DE D7DF              rcall _OUTSI
 00E0                   .dbline 98
 00E0           ;    OUTSI(0XA0);
 00E0 00EA              ldi R16,160
 00E2 D5DF              rcall _OUTSI
 00E4                   .dbline 99
 00E4           ;    OUTSI(0XA4); 
 00E4 04EA              ldi R16,164
 00E6 D3DF              rcall _OUTSI
 00E8                   .dbline 100
 00E8           ;    OUTSI(0XA9);  
 00E8 09EA              ldi R16,169
 00EA D1DF              rcall _OUTSI
 00EC                   .dbline 101
 00EC           ;    OUTSI(0XAF);    
 00EC 0FEA              ldi R16,175
 00EE CFDF              rcall _OUTSI
 00F0                   .dbline -2
 00F0           L23:
 00F0                   .dbline 0 ; func end
 00F0 0895              ret
 00F2                   .dbend
 00F2                   .dbfunc e SetPage _SetPage fV
 00F2           ;          page1 -> R20
 00F2           ;          page0 -> R22
                        .even
 00F2           _SetPage::
 00F2 00D0              rcall push_gset2
 00F4 422F              mov R20,R18
 00F6 602F              mov R22,R16
 00F8                   .dbline -1
 00F8                   .dbline 106
 00F8           ; } 
 00F8           ; 
 00F8           ; 
 00F8           ; void SetPage(uint8 page0,uint8 page1) 
 00F8           ; { 
 00F8                   .dbline 107
 00F8           ; OUTMI(0xB8|page0); 
 00F8 062F              mov R16,R22
 00FA 086B              ori R16,184
 00FC ACDF              rcall _OUTMI
 00FE                   .dbline 108
 00FE           ; OUTSI(0xB8|page1); 
 00FE 042F              mov R16,R20
 0100 086B              ori R16,184
 0102 C5DF              rcall _OUTSI
 0104                   .dbline -2
 0104           L24:
 0104 00D0              rcall pop_gset2
 0106                   .dbline 0 ; func end
 0106 0895              ret
 0108                   .dbsym r page1 20 c
 0108                   .dbsym r page0 22 c
 0108                   .dbend
 0108                   .dbfunc e SetAddress _SetAddress fV
 0108           ;       address1 -> R20
 0108           ;       address0 -> R22
                        .even
 0108           _SetAddress::
 0108 00D0              rcall push_gset2
 010A 422F              mov R20,R18
 010C 602F              mov R22,R16
 010E                   .dbline -1
 010E                   .dbline 112
 010E           ; } 
 010E           ; 
 010E           ; void SetAddress(uint8 address0,uint8 address1) 
 010E           ; { 
 010E                   .dbline 113
 010E           ; OUTMI(address0); 
 010E 062F              mov R16,R22
 0110 A2DF              rcall _OUTMI
 0112                   .dbline 114
 0112           ; OUTSI(address1); 
 0112 042F              mov R16,R20
 0114 BCDF              rcall _OUTSI
 0116                   .dbline -2
 0116           L25:
 0116 00D0              rcall pop_gset2
 0118                   .dbline 0 ; func end
 0118 0895              ret
 011A                   .dbsym r address1 20 c
 011A                   .dbsym r address0 22 c
 011A                   .dbend
 011A                   .dbfunc e PutCharR _PutCharR fV
 011A           ;             ch -> R20
                        .even
 011A           _PutCharR::
 011A 00D0              rcall push_gset1
 011C 402F              mov R20,R16
 011E                   .dbline -1
 011E                   .dbline 118
 011E           ; } 
 011E           ; 
 011E           ; void PutCharR(uint8 ch) 
 011E           ; { 
 011E                   .dbline 119
 011E           ; OUTSD(ch); 
 011E 042F              mov R16,R20
 0120 A8DF              rcall _OUTSD
 0122                   .dbline -2
 0122           L26:
 0122 00D0              rcall pop_gset1
 0124                   .dbline 0 ; func end
 0124 0895              ret
 0126                   .dbsym r ch 20 c
 0126                   .dbend
 0126                   .dbfunc e PutCharL _PutCharL fV
 0126           ;             ch -> R20
                        .even
 0126           _PutCharL::
 0126 00D0              rcall push_gset1
 0128 402F              mov R20,R16
 012A                   .dbline -1
 012A                   .dbline 123
 012A           ; } 
 012A           ; 
 012A           ; void PutCharL(uint8 ch) 
 012A           ; { 
 012A                   .dbline 124
 012A           ; OUTMD(ch); 
 012A 042F              mov R16,R20
 012C 86DF              rcall _OUTMD
 012E                   .dbline -2
 012E           L27:
 012E 00D0              rcall pop_gset1
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbsym r ch 20 c
 0132                   .dbend
 0132                   .dbfunc e clrscr _clrscr fV
 0132           ;           page -> R20
 0132           ;              i -> R22
                        .even
 0132           _clrscr::
 0132 00D0              rcall push_gset2
 0134                   .dbline -1
 0134                   .dbline 128
 0134           ; }  
 0134           ; 
 0134           ; void clrscr(void) 
 0134           ; { 
 0134                   .dbline 131
 0134           ; uint8 i; 
 0134           ; uint8 page; 
 0134           ; for (page=0;page<4;page++) 
 0134 4427              clr R20
 0136 10C0              rjmp L32
 0138           L29:
 0138                   .dbline 132
 0138           ; { 
 0138                   .dbline 133
 0138           ;   SetPage(page,page); 
 0138 242F              mov R18,R20
 013A 042F              mov R16,R20
 013C DADF              rcall _SetPage
 013E                   .dbline 134
 013E           ;   for (i=0;i<61;i++) 
 013E 6627              clr R22
 0140 08C0              rjmp L36
 0142           L33:
 0142                   .dbline 135
 0142                   .dbline 136
 0142 262F              mov R18,R22
 0144 062F              mov R16,R22
 0146 E0DF              rcall _SetAddress
 0148                   .dbline 137
 0148 0027              clr R16
 014A EDDF              rcall _PutCharL
 014C                   .dbline 138
 014C 0027              clr R16
 014E E5DF              rcall _PutCharR
 0150                   .dbline 139
 0150           L34:
 0150                   .dbline 134
 0150 6395              inc R22
 0152           L36:
 0152                   .dbline 134
 0152 6D33              cpi R22,61
 0154 B0F3              brlo L33
 0156                   .dbline 140
 0156           L30:
 0156                   .dbline 131
 0156 4395              inc R20
 0158           L32:
 0158                   .dbline 131
 0158 4430              cpi R20,4
 015A 70F3              brlo L29
 015C                   .dbline -2
 015C           L28:
 015C 00D0              rcall pop_gset2
 015E                   .dbline 0 ; func end
 015E 0895              ret
 0160                   .dbsym r page 20 c
 0160                   .dbsym r i 22 c
 0160                   .dbend
 0160                   .dbfunc e lcd_init _lcd_init fV
                        .even
 0160           _lcd_init::
 0160                   .dbline -1
 0160                   .dbline 143
 0160           ;   { 
 0160           ;    SetAddress(i,i); 
 0160           ;    PutCharL(0x00); 
 0160           ;    PutCharR(0x00); 
 0160           ;   } 
 0160           ; } 
 0160           ; }  
 0160           ; void lcd_init(void)
 0160           ; {
 0160                   .dbline 144
 0160           ;   lcdini(); //reset                                                    
 0160 A4DF              rcall _lcdini
 0162                   .dbline 145
 0162           ;   clrscr(); //clr  
 0162 E7DF              rcall _clrscr
 0164                   .dbline 146
 0164           ;   clrscr();
 0164 E6DF              rcall _clrscr
 0166                   .dbline -2
 0166           L37:
 0166                   .dbline 0 ; func end
 0166 0895              ret
 0168                   .dbend
 0168                   .dbfunc e get_location _get_location fi
 0168           ;              i -> <dead>
 0168           ;          temp2 -> R10,R11
 0168           ;          start -> y+4
 0168           ;          temp1 -> R12,R13
 0168           ;       location -> y+0
 0168           ;          data2 -> R10
 0168           ;          data1 -> R12
                        .even
 0168           _get_location::
 0168 00D0              rcall push_gset4
 016A A22E              mov R10,R18
 016C C02E              mov R12,R16
 016E 2897              sbiw R28,8
 0170                   .dbline -1
 0170                   .dbline 149
 0170           ; }
 0170           ; uint16 get_location(uint8 data1,uint8 data2)
 0170           ; {
 0170                   .dbline 154
 0170           ;  uint8 i;
 0170           ;  uint16 temp1,temp2;
 0170           ;  uint32 location;
 0170           ;  uint32 start;
 0170           ;  data1-=0xa1,data2-=0xa1;
 0170 8C2D              mov R24,R12
 0172 815A              subi R24,161
 0174 C82E              mov R12,R24
 0176 8A2D              mov R24,R10
 0178 815A              subi R24,161
 017A A82E              mov R10,R24
 017C                   .dbline 155
 017C           ;  temp1=data1*94;
 017C 8EE5              ldi R24,94
 017E 8C9D              mul R24,R12
 0180 6001              movw R12,R0
 0182                   .dbline 156
 0182           ;  location=temp1+data2;
 0182 2A2C              mov R2,R10
 0184 3324              clr R3
 0186 2601              movw R4,R12
 0188 420C              add R4,R2
 018A 531C              adc R5,R3
 018C 1201              movw R2,R4
 018E 4424              clr R4
 0190 5524              clr R5
 0192 FE01              movw R30,R28
 0194 2082              std z+0,R2
 0196 3182              std z+1,R3
 0198 4282              std z+2,R4
 019A 5382              std z+3,R5
 019C                   .dbline 157
 019C           ;  location=location<<5;
 019C 85E0              ldi R24,5
 019E 90E0              ldi R25,0
 01A0 FE01              movw R30,R28
 01A2 2080              ldd R2,z+0
 01A4 3180              ldd R3,z+1
 01A6 4280              ldd R4,z+2
 01A8 5380              ldd R5,z+3
 01AA 8A93              st -y,R24
 01AC 8101              movw R16,R2
 01AE 9201              movw R18,R4
 01B0 00D0              rcall lsl32
 01B2 FE01              movw R30,R28
 01B4 0083              std z+0,R16
 01B6 1183              std z+1,R17
 01B8 2283              std z+2,R18
 01BA 3383              std z+3,R19
 01BC                   .dbline 158
 01BC           ;  temp1=location>>9;
 01BC 89E0              ldi R24,9
 01BE 90E0              ldi R25,0
 01C0 FE01              movw R30,R28

⌨️ 快捷键说明

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