📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _MP3_current_number::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\TDDownload\MP3BOA~1.8\main.c
0001 .dbsym e MP3_current_number _MP3_current_number c
0001 _set_volume::
0001 .blkb 1
.area idata
0001 04 .byte 4
.area data(ram, con, rel)
0002 .dbfile D:\TDDownload\MP3BOA~1.8\main.c
0002 .dbsym e set_volume _set_volume c
.area text(rom, con, rel)
0000 .dbfile D:\TDDownload\MP3BOA~1.8\main.c
0000 .dbfunc e Delay_us _Delay_us fV
0000 ; time -> R16,R17
.even
0000 _Delay_us::
0000 .dbline -1
0000 .dbline 35
0000 ; //ICC-AVR application builder : 2005-11-12 17:11:59
0000 ; // Target : M16
0000 ; // Crystal: 8.0000Mhz
0000 ; // copyright:鲁军波(endylu)
0000 ; // www.shop34612283.taobao.com
0000 ; // www.adembed.com
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ; #include "main.h"
0000 ;
0000 ; /*
0000 ; void USART_TXD(uint8 data) //发送采用查询方式
0000 ; {
0000 ; while( !(UCSRA & BIT(UDRE)) );
0000 ; UDR=data;
0000 ; while( !(UCSRA & BIT(TXC )) );
0000 ; UCSRA|=BIT(TXC);
0000 ; }
0000 ; */
0000 ;
0000 ; uint8 timer1_over;
0000 ; uint8 MP3_all_number,MP3_current_number=0;
0000 ; uint8 play_state;
0000 ; uint8 key_value;
0000 ; uint8 set_volume=4; //用的8级音量(64.69...99)
0000 ; uint8 buffer[512]; //缓存扇区的512个字节
0000 ;
0000 ; FAT_INFO fat_info; //FAT的关键数据
0000 ; MP3_INFO mp3_info; //文件的关键数据
0000 ;
0000 ;
0000 ; //=======================================================================
0000 ; void Delay_us(uint16 time) //set time 120 to 100us,set 1 to 3.5us;
0000 ; {while (time--)
0000 01C0 xjmp L3
0002 L2:
0002 .dbline 36
0002 A895 wdr
0004 L3:
0004 .dbline 35
0004 1801 movw R2,R16
0006 0150 subi R16,1
0008 1040 sbci R17,0
000A 2220 tst R2
000C D1F7 brne L2
000E 3320 tst R3
0010 C1F7 brne L2
0012 X0:
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbsym r time 16 i
0014 .dbend
0014 .dbfunc e Delay_ms _Delay_ms fV
0014 ; time -> R20,R21
.even
0014 _Delay_ms::
0014 0E940000 xcall push_gset1
0018 A801 movw R20,R16
001A .dbline -1
001A .dbline 40
001A ; _WDR();
001A ;
001A ; }
001A ; void Delay_ms(uint16 time)
001A ; {while (time--)
001A 03C0 xjmp L7
001C L6:
001C .dbline 41
001C 00EB ldi R16,1200
001E 14E0 ldi R17,4
0020 EFDF xcall _Delay_us
0022 L7:
0022 .dbline 40
0022 1A01 movw R2,R20
0024 4150 subi R20,1
0026 5040 sbci R21,0
0028 2220 tst R2
002A C1F7 brne L6
002C 3320 tst R3
002E B1F7 brne L6
0030 X1:
0030 .dbline -2
0030 L5:
0030 0E940000 xcall pop_gset1
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r time 20 i
0036 .dbend
0036 .dbfunc e putstring _putstring fV
0036 ; string -> R20,R21
.even
0036 _putstring::
0036 0E940000 xcall push_gset1
003A A801 movw R20,R16
003C .dbline -1
003C .dbline 45
003C ; Delay_us(1200);
003C ; }
003C ;
003C ; void putstring(uint8 *string)
003C ; {
003C 06C0 xjmp L11
003E L10:
003E .dbline 47
003E .dbline 48
003E FA01 movw R30,R20
0040 0081 ldd R16,z+0
0042 0E940000 xcall _putchar
0046 .dbline 49
0046 4F5F subi R20,255 ; offset = 1
0048 5F4F sbci R21,255
004A .dbline 50
004A L11:
004A .dbline 46
004A ; while(*string)
004A FA01 movw R30,R20
004C 2080 ldd R2,z+0
004E 2220 tst R2
0050 B1F7 brne L10
0052 .dbline -2
0052 L9:
0052 0E940000 xcall pop_gset1
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbsym r string 20 pc
0058 .dbend
0058 .dbfunc e timer1_init _timer1_init fV
.even
0058 _timer1_init::
0058 .dbline -1
0058 .dbline 54
0058 ; {
0058 ; putchar(*string);
0058 ; string++;
0058 ; }
0058 ; }
0058 ; //***************************************************************
0058 ; void timer1_init(void)
0058 ; {//timer1 INIT 0.1S
0058 .dbline 55
0058 ; TCCR1B=0X0D;
0058 8DE0 ldi R24,13
005A 8EBD out 0x2e,R24
005C .dbline 56
005C ; TCNT0=0X00;
005C 2224 clr R2
005E 22BE out 0x32,R2
0060 .dbline 57
0060 ; OCR1AH=0X02; //定时0.1s
0060 82E0 ldi R24,2
0062 8BBD out 0x2b,R24
0064 .dbline 58
0064 ; OCR1AL=0X00;
0064 2ABC out 0x2a,R2
0066 .dbline 59
0066 ; TIMSK|=0X10;
0066 89B7 in R24,0x39
0068 8061 ori R24,16
006A 89BF out 0x39,R24
006C .dbline -2
006C L13:
006C .dbline 0 ; func end
006C 0895 ret
006E .dbend
006E .dbfunc e ASCII _ASCII fV
006E ; n -> R22
006E ; b -> R20,R21
.even
006E _ASCII::
006E 0E940000 xcall push_gset2
0072 622F mov R22,R18
0074 A801 movw R20,R16
0076 .dbline -1
0076 .dbline 63
0076 ; }
0076 ; //=======================================================================
0076 ; void ASCII(uint8 *b,uint8 n)
0076 ; {*b=n/10+48;
0076 .dbline 63
0076 1AE0 ldi R17,10
0078 062F mov R16,R22
007A 0E940000 xcall div8u
007E 802F mov R24,R16
0080 805D subi R24,208 ; addi 48
0082 FA01 movw R30,R20
0084 8083 std z+0,R24
0086 .dbline 64
0086 ; *(b+1)=n%10+48;
0086 1AE0 ldi R17,10
0088 062F mov R16,R22
008A 0E940000 xcall mod8u
008E 802F mov R24,R16
0090 805D subi R24,208 ; addi 48
0092 FA01 movw R30,R20
0094 8183 std z+1,R24
0096 .dbline -2
0096 L14:
0096 0E940000 xcall pop_gset2
009A .dbline 0 ; func end
009A 0895 ret
009C .dbsym r n 22 c
009C .dbsym r b 20 pc
009C .dbend
.area vector(rom, abs)
.org 76
004C 0C944E00 jmp _timer0comp
.area text(rom, con, rel)
009C .dbfile D:\TDDownload\MP3BOA~1.8\main.c
009C .dbfunc e timer0comp _timer0comp fV
.even
009C _timer0comp::
009C 0E940000 xcall push_lset
00A0 .dbline -1
00A0 .dbline 70
00A0 ; }
00A0 ;
00A0 ; //=======================================================================
00A0 ; #pragma interrupt_handler timer0comp:20
00A0 ; void timer0comp (void)
00A0 ; {
00A0 .dbline 71
00A0 ; read_keyboard();
00A0 0E940000 xcall _read_keyboard
00A4 .dbline -2
00A4 L15:
00A4 0E940000 xcall pop_lset
00A8 .dbline 0 ; func end
00A8 1895 reti
00AA .dbend
.area vector(rom, abs)
.org 24
0018 0C945500 jmp _timer1compA
.area text(rom, con, rel)
00AA .dbfile D:\TDDownload\MP3BOA~1.8\main.c
00AA .dbfunc e timer1compA _timer1compA fV
.even
00AA _timer1compA::
00AA 8A93 st -y,R24
00AC 8FB7 in R24,0x3f
00AE 8A93 st -y,R24
00B0 .dbline -1
00B0 .dbline 76
00B0 ; }
00B0 ;
00B0 ; #pragma interrupt_handler timer1compA:7
00B0 ; void timer1compA (void)
00B0 ; {
00B0 .dbline 77
00B0 ; timer1_over=1;
00B0 81E0 ldi R24,1
00B2 80934302 sts _timer1_over,R24
00B6 .dbline -2
00B6 L16:
00B6 8991 ld R24,y+
00B8 8FBF out 0x3f,R24
00BA 8991 ld R24,y+
00BC .dbline 0 ; func end
00BC 1895 reti
00BE .dbend
00BE .dbfunc e main _main fV
.even
00BE _main::
00BE .dbline -1
00BE .dbline 82
00BE ; }
00BE ;
00BE ; //=======================================================================
00BE ; void main(void)
00BE ; {
00BE .dbline 84
00BE ; //WDTCR|=(1<<WDP0)|(1<<WDP1)|(1<<WDP2)|(1<<WDE);
00BE ; uart_init();
00BE 0FD0 xcall _uart_init
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -