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

📄 main.lis

📁 mp3源码,是自己写的,关于vs1001与CD卡的读取歌曲,和播放.
💻 LIS
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _songnumber::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile F:\mine\mp3\MP3\main.c
 0001                   .dbsym e songnumber _songnumber c
                        .area vector(rom, abs)
                        .org 4
 0004 0C940000          jmp _DREQ
                        .area data(ram, con, rel)
 0001                   .dbfile F:\mine\mp3\MP3\main.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\mine\mp3\MP3\main.c
 0000                   .dbfunc e DREQ _DREQ fV
                        .even
 0000           _DREQ::
 0000 0E940000          xcall push_lset
 0004                   .dbline -1
 0004                   .dbline 11
 0004           ; #include<all.h>
 0004           ; #include<vs1001k.h>
 0004           ; #include<sdcom.h>
 0004           ; #include<fat.h>
 0004           ; 
 0004           ; char  songnumber=0;//歌曲编号
 0004           ; 
 0004           ; 
 0004           ; #pragma interrupt_handler DREQ:iv_INT0 //数据缓冲
 0004           ; void DREQ(void)
 0004           ; { delay(50);}
 0004                   .dbline 11
 0004 02E3              ldi R16,50
 0006 10E0              ldi R17,0
 0008 0E940000          xcall _delay
 000C                   .dbline -2
 000C                   .dbline 11
 000C           L1:
 000C 0E940000          xcall pop_lset
 0010                   .dbline 0 ; func end
 0010 1895              reti
 0012                   .dbend
                        .area lit(rom, con, rel)
 0000           L3:
 0000 4578              .byte 'E,'x
 0002 6974              .byte 'i,'t
 0004 0000              .byte 0,0
 0006 0000              .byte 0,0
 0008           L4:
 0008 53EF              .byte 'S,239
 000A 6E30              .byte 'n,48
 000C 0000              .byte 0,0
 000E 0000              .byte 0,0
                        .area text(rom, con, rel)
 0012                   .dbfile F:\mine\mp3\MP3\main.c
 0012                   .dbfunc e main _main fV
 0012           ;              n -> y+16
 0012           ;         table3 -> y+8
 0012           ;         table2 -> y+0
                        .even
 0012           _main::
 0012 6497              sbiw R28,20
 0014                   .dbline -1
 0014                   .dbline 15
 0014           ; 
 0014           ; 
 0014           ; void main(void)
 0014           ; { ulong n;
 0014                   .dbline 16
 0014           ;   uchar table2[8]={0x45,0x78,0x69,0x74,0,0,0,0};
 0014 80E0              ldi R24,<L3
 0016 90E0              ldi R25,>L3
 0018 FE01              movw R30,R28
 001A 08E0              ldi R16,8
 001C 10E0              ldi R17,0
 001E FA93              st -y,R31
 0020 EA93              st -y,R30
 0022 9A93              st -y,R25
 0024 8A93              st -y,R24
 0026 0E940000          xcall asgncblk
 002A                   .dbline 17
 002A           ;   uchar table3[8]={0x53,0xef,0x6e,0x30,0,0,0,0};
 002A 80E0              ldi R24,<L4
 002C 90E0              ldi R25,>L4
 002E FE01              movw R30,R28
 0030 3896              adiw R30,8
 0032 08E0              ldi R16,8
 0034 10E0              ldi R17,0
 0036 FA93              st -y,R31
 0038 EA93              st -y,R30
 003A 9A93              st -y,R25
 003C 8A93              st -y,R24
 003E 0E940000          xcall asgncblk
 0042                   .dbline 18
 0042           ;   DDRB=0xbb;
 0042 8BEB              ldi R24,187
 0044 87BB              out 0x17,R24
 0046                   .dbline 19
 0046           ;   DDRD=0x02;
 0046 82E0              ldi R24,2
 0048 81BB              out 0x11,R24
 004A                   .dbline 20
 004A           ;   PORTB=0xff;
 004A 8FEF              ldi R24,255
 004C 88BB              out 0x18,R24
 004E                   .dbline 21
 004E           ;   PORTD=0xff;
 004E 82BB              out 0x12,R24
 0050                   .dbline 22
 0050           ;   MCUCR=0x08;//INT0低电平中断 INT1下降沿
 0050 88E0              ldi R24,8
 0052 85BF              out 0x35,R24
 0054                   .dbline 23
 0054           ;   GICR=0xC0;
 0054 80EC              ldi R24,192
 0056 8BBF              out 0x3b,R24
 0058                   .dbline 27
 0058           ; //  SEI();//开中断
 0058           ; //  while(1);
 0058           ;   
 0058           ;   SPCR=0x50;//高位先 
 0058 80E5              ldi R24,80
 005A 8DB9              out 0xd,R24
 005C                   .dbline 28
 005C           ;   SPSR=0x01;//rat/2
 005C 81E0              ldi R24,1
 005E 8EB9              out 0xe,R24
 0060           L5:
 0060                   .dbline 29
 0060           L6:
 0060                   .dbline 29
 0060           ;   while(sd_init()==0);//等待SD初始化
 0060 0E940000          xcall _sd_init
 0064 0023              tst R16
 0066 E1F3              breq L5
 0068                   .dbline 30
 0068           ;   setlight;
 0068 9198              cbi 0x12,1
 006A                   .dbline 31
 006A           ;   vs1001k_reset();//VS1001K复位
 006A 0E940000          xcall _vs1001k_reset
 006E                   .dbline 33
 006E           ;  
 006E           ;   GetinBoot();//进入
 006E 0E940000          xcall _GetinBoot
 0072                   .dbline 34
 0072           ;   GetFatSec();//得到FAT扇区
 0072 0E940000          xcall _GetFatSec
 0076                   .dbline 35
 0076           ;   SongSector();//得到每首歌的扇区号
 0076 0E940000          xcall _SongSector
 007A                   .dbline 38
 007A           ;     
 007A           ;  
 007A           ;   SEI();//开中断
 007A 7894              sei
 007C 04C0              xjmp L9
 007E           L8:
 007E                   .dbline 40
 007E 00910000          lds R16,_songnumber
 0082 0E940000          xcall _PlaySong
 0086           L9:
 0086                   .dbline 39
 0086           ;   while(1)
 0086 FBCF              xjmp L8
 0088           X0:
 0088                   .dbline 41
 0088           ;   PlaySong(songnumber);
 0088           ;   _NOP();
 0088 0000              nop
 008A                   .dbline -2
 008A                   .dbline 42
 008A           ; }  
 008A           L2:
 008A 6496              adiw R28,20
 008C                   .dbline 0 ; func end
 008C 0895              ret
 008E                   .dbsym l n 16 l
 008E                   .dbsym l table3 8 A[8:8]c
 008E                   .dbsym l table2 0 A[8:8]c
 008E                   .dbend

⌨️ 快捷键说明

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