📄 main.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 + -