📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile C:\DATA\MP3\Code\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 .dbline -1
0000 .dbline 24
0000 ; #include <iom128v.h>
0000 ; #include "fat.h"
0000 ; #include "ata.h"
0000 ; #include "vs1001.h"
0000 ; #include "remote.h"
0000 ; #include "main.h"
0000 ; #include "generic.h"
0000 ; #include <string.h>
0000 ; #include <stdio.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #define debug
0000 ; #define debugport 1
0000 ;
0000 ; //******************************************************************
0000 ; //* MAIN Global Variable
0000 ; //******************************************************************
0000 ; unsigned char text[255];
0000 ;
0000 ; //*************************************
0000 ; // void main(void)
0000 ; //*************************************
0000 ; void main(void)
0000 ; {
0000 .dbline 25
0000 ; init_sci();
0000 0E940000 xcall _init_sci
0004 .dbline 26
0004 ; ClrScr();
0004 0E940000 xcall _ClrScr
0008 .dbline 27
0008 ; tx_char(debugport,0x07); // Bell
0008 27E0 ldi R18,7
000A 01E0 ldi R16,1
000C 0E940000 xcall _tx_char
0010 .dbline 28
0010 ; GotoXY(1,1);
0010 21E0 ldi R18,1
0012 01E0 ldi R16,1
0014 0E940000 xcall _GotoXY
0018 .dbline 29
0018 ; tx_string(debugport,"MP3 Player 1.0\0");
0018 20E0 ldi R18,<L2
001A 30E0 ldi R19,>L2
001C 01E0 ldi R16,1
001E 0E940000 xcall _tx_string
0022 .dbline 30
0022 ; GotoXY(1,2);
0022 22E0 ldi R18,2
0024 01E0 ldi R16,1
0026 0E940000 xcall _GotoXY
002A .dbline 31
002A ; tx_string(debugport,"--------------\0");
002A 20E0 ldi R18,<L3
002C 30E0 ldi R19,>L3
002E 01E0 ldi R16,1
0030 0E940000 xcall _tx_string
0034 .dbline 32
0034 ; GotoXY(1,3);
0034 23E0 ldi R18,3
0036 01E0 ldi R16,1
0038 0E940000 xcall _GotoXY
003C .dbline 33
003C ; if (MCUCSR & 0x01) tx_string(debugport,"-Power ON\0");
003C 24B6 in R2,0x34
003E 20FE sbrs R2,0
0040 05C0 rjmp L4
0042 .dbline 33
0042 20E0 ldi R18,<L6
0044 30E0 ldi R19,>L6
0046 01E0 ldi R16,1
0048 0E940000 xcall _tx_string
004C L4:
004C .dbline 34
004C ; GotoXY(1,4);
004C 24E0 ldi R18,4
004E 01E0 ldi R16,1
0050 0E940000 xcall _GotoXY
0054 .dbline 35
0054 ; if (MCUCSR & 0x02) tx_string(debugport,"-Ext RESET\0");
0054 24B6 in R2,0x34
0056 21FE sbrs R2,1
0058 05C0 rjmp L7
005A .dbline 35
005A 20E0 ldi R18,<L9
005C 30E0 ldi R19,>L9
005E 01E0 ldi R16,1
0060 0E940000 xcall _tx_string
0064 L7:
0064 .dbline 36
0064 ; GotoXY(1,5);
0064 25E0 ldi R18,5
0066 01E0 ldi R16,1
0068 0E940000 xcall _GotoXY
006C .dbline 37
006C ; if (MCUCSR & 0x04) tx_string(debugport,"-Brown Out\0");
006C 24B6 in R2,0x34
006E 22FE sbrs R2,2
0070 05C0 rjmp L10
0072 .dbline 37
0072 20E0 ldi R18,<L12
0074 30E0 ldi R19,>L12
0076 01E0 ldi R16,1
0078 0E940000 xcall _tx_string
007C L10:
007C .dbline 38
007C ; GotoXY(1,6);
007C 26E0 ldi R18,6
007E 01E0 ldi R16,1
0080 0E940000 xcall _GotoXY
0084 .dbline 39
0084 ; if (MCUCSR & 0x08) tx_string(debugport,"-Watch Dog\0");
0084 24B6 in R2,0x34
0086 23FE sbrs R2,3
0088 05C0 rjmp L13
008A .dbline 39
008A 20E0 ldi R18,<L15
008C 30E0 ldi R19,>L15
008E 01E0 ldi R16,1
0090 0E940000 xcall _tx_string
0094 L13:
0094 .dbline 40
0094 ; MCUCSR = 0x0f; // Clear flags
0094 8FE0 ldi R24,15
0096 84BF out 0x34,R24
0098 .dbline 42
0098 ;
0098 ; delay_ms(5000);
0098 08E8 ldi R16,5000
009A 13E1 ldi R17,19
009C 0E940000 xcall _delay_ms
00A0 .dbline 44
00A0 ;
00A0 ; WDR();
00A0 A895 wdr
00A2 .dbline 45
00A2 ; WDTCR = 0x0f; // Watch Dog enable
00A2 8FE0 ldi R24,15
00A4 81BD out 0x21,R24
00A6 .dbline 47
00A6 ;
00A6 ; ClrScr();
00A6 0E940000 xcall _ClrScr
00AA .dbline 48
00AA ; GotoXY(1,1);
00AA 21E0 ldi R18,1
00AC 01E0 ldi R16,1
00AE 0E940000 xcall _GotoXY
00B2 .dbline 49
00B2 ; tx_string(debugport,"MP3 Player 1.0\0");
00B2 20E0 ldi R18,<L2
00B4 30E0 ldi R19,>L2
00B6 01E0 ldi R16,1
00B8 0E940000 xcall _tx_string
00BC .dbline 50
00BC ; GotoXY(1,2);
00BC 22E0 ldi R18,2
00BE 01E0 ldi R16,1
00C0 0E940000 xcall _GotoXY
00C4 .dbline 51
00C4 ; tx_string(debugport,"--------------\0");
00C4 20E0 ldi R18,<L3
00C6 30E0 ldi R19,>L3
00C8 01E0 ldi R16,1
00CA 0E940000 xcall _tx_string
00CE .dbline 53
00CE ; //while(1) WDR();
00CE ; VS1001Init();
00CE 0E940000 xcall _VS1001Init
00D2 .dbline 55
00D2 ;
00D2 ; GotoXY(1,4);
00D2 24E0 ldi R18,4
00D4 01E0 ldi R16,1
00D6 0E940000 xcall _GotoXY
00DA .dbline 56
00DA ; if (init_ata(0)) tx_string(debugport,"-ATA OK\0");
00DA 0027 clr R16
00DC 0E940000 xcall _init_ata
00E0 0030 cpi R16,0
00E2 0107 cpc R16,R17
00E4 31F0 breq L16
00E6 X0:
00E6 .dbline 56
00E6 20E0 ldi R18,<L18
00E8 30E0 ldi R19,>L18
00EA 01E0 ldi R16,1
00EC 0E940000 xcall _tx_string
00F0 05C0 xjmp L17
00F2 L16:
00F2 .dbline 57
00F2 ; else tx_string(debugport,"-ATA FAIL\0");
00F2 20E0 ldi R18,<L19
00F4 30E0 ldi R19,>L19
00F6 01E0 ldi R16,1
00F8 0E940000 xcall _tx_string
00FC L17:
00FC .dbline 59
00FC ;
00FC ; GotoXY(1,5);
00FC 25E0 ldi R18,5
00FE 01E0 ldi R16,1
0100 0E940000 xcall _GotoXY
0104 .dbline 60
0104 ; if (Reg_Test()) tx_string(debugport,"-MP3 OK\0");
0104 0E940000 xcall _Reg_Test
0108 0023 tst R16
010A 31F0 breq L20
010C .dbline 60
010C 20E0 ldi R18,<L22
010E 30E0 ldi R19,>L22
0110 01E0 ldi R16,1
0112 0E940000 xcall _tx_string
0116 05C0 xjmp L21
0118 L20:
0118 .dbline 61
0118 ; else tx_string(debugport,"-MP3 FAIL\0");
0118 20E0 ldi R18,<L23
011A 30E0 ldi R19,>L23
011C 01E0 ldi R16,1
011E 0E940000 xcall _tx_string
0122 L21:
0122 .dbline 63
0122 ;
0122 ; GotoXY(1,6);
0122 26E0 ldi R18,6
0124 01E0 ldi R16,1
0126 0E940000 xcall _GotoXY
012A .dbline 64
012A ; tx_string(debugport," Press a key \0");
012A 20E0 ldi R18,<L24
012C 30E0 ldi R19,>L24
012E 01E0 ldi R16,1
0130 0E940000 xcall _tx_string
0134 .dbline 66
0134 ;
0134 ; InitFat();
0134 0E940000 xcall _InitFat
0138 .dbline 68
0138 ;
0138 ; VS1001_SetVolume(50,50);
0138 22E3 ldi R18,50
013A 02E3 ldi R16,50
013C 0E940000 xcall _VS1001_SetVolume
0140 .dbline 69
0140 ; Sine_Sweep();
0140 0E940000 xcall _Sine_Sweep
0144 01C0 xjmp L26
0146 L25:
0146 .dbline 71
0146 A895 wdr
0148 L26:
0148 .dbline 71
0148 ;
0148 ; while(!is_char(debugport)) WDR();
0148 01E0 ldi R16,1
014A 0E940000 xcall _is_char
014E 0023 tst R16
0150 D1F3 breq L25
0152 .dbline 72
0152 ; rx_char(debugport);
0152 01E0 ldi R16,1
0154 0E940000 xcall _rx_char
0158 .dbline 74
0158 ;
0158 ; DirBrowser(2);
0158 02E0 ldi R16,2
015A 10E0 ldi R17,0
015C 20E0 ldi R18,0
015E 30E0 ldi R19,0
0160 .dbline -2
0160 .dbline 75
0160 ; }
0160 L1:
0160 .dbline 0 ; func end
0160 00C0 xjmp _DirBrowser
0162 .dbend
.area data(ram, con, rel)
0000 .dbfile C:\DATA\MP3\Code\main.c
0000 L29:
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile C:\DATA\MP3\Code\main.c
0002 L30:
0002 .blkb 2
.area idata
0002 0000 .word 0
.area data(ram, con, rel)
0004 .dbfile C:\DATA\MP3\Code\main.c
.area bss(ram, con, rel)
0000 .dbfile C:\DATA\MP3\Code\main.c
0000 L31:
0000 .blkb 2
.area text(rom, con, rel)
0162 .dbfile C:\DATA\MP3\Code\main.c
0162 .dbfunc e DirBrowser _DirBrowser fV
0162 .dbsym s FilePtrSave L31 I
0162 .dbsym s Page L30 I
0162 .dbsym s FilePtr L29 I
0162 ; MaxFile -> R10,R11
0162 ; ch -> R12
0162 ; Cluster -> y+16
.even
0162 _DirBrowser::
0162 0E940000 xcall push_arg4
0166 0E940000 xcall push_gset4
016A 2897 sbiw R28,8
016C .dbline -1
016C .dbline 81
016C ;
016C ; //*************************************
016C ; // void DirBrowser(unsigned long Cluster)
016C ; //*************************************
016C ; void DirBrowser(unsigned long Cluster)
016C ; {
016C .dbline 90
016C ; extern unsigned char text[255];
016C ; extern struct FileInfo File;
016C ; unsigned char ch;
016C ; unsigned int MaxFile;
016C ; static int FilePtr = 0;
016C ; static int Page = 0;
016C ; static int FilePtrSave;
016C ;
016C ; ClrScr();
016C 0E940000 xcall _ClrScr
0170 .dbline 91
0170 ; GotoXY(1,1);
0170 21E0 ldi R18,1
0172 01E0 ldi R16,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -