📄 mp3.lis
字号:
.module mp3.c
.area text(rom, con, rel)
0000 .dbfile E:\software\MP3程序\Main\mp3.c
0000 .dbfunc e Init_system _Init_system fV
0000 ; temp -> R20
.even
0000 _Init_system::
0000 0E940000 xcall push_gset1
0004 2897 sbiw R28,8
0006 .dbline -1
0006 .dbline 17
0006 ; #include <iom64v.h>
0006 ; #include <macros.h>
0006 ; #include <string.h>
0006 ; #include <stdio.h>
0006 ; #include "../Lcd/lcd.h"
0006 ; #include "../Keyboard/key.h"
0006 ; #include "../Ds1302/ds1302.h"
0006 ;
0006 ;
0006 ; #define uchar unsigned char
0006 ; #define uint unsigned int
0006 ;
0006 ; extern uchar keybuf;
0006 ; struct time_now timebuf;
0006 ; extern unsigned char const diskinfor[];
0006 ; void Init_system(void)
0006 ; {
0006 .dbline 20
0006 ; uchar temp;
0006 ; //开启外部总线
0006 ; MCUCR=0x80;
0006 80E8 ldi R24,128
0008 85BF out 0x35,R24
000A .dbline 21
000A ; XMCRA=0x00;
000A 2224 clr R2
000C 20926D00 sts 109,R2
0010 .dbline 23
0010 ; //初始化部件
0010 ; KEYBUF_NULL; //键盘初值0
0010 20920000 sts _keybuf,R2
0014 .dbline 23
0014 .dbline 24
0014 ; Usart_init(); //串口初始化
0014 0E940000 xcall _Usart_init
0018 .dbline 25
0018 ; DelayIni(); //延时初始化
0018 0E940000 xcall _DelayIni
001C .dbline 26
001C ; ds1302_init(); //时钟初始化
001C 0E940000 xcall _ds1302_init
0020 .dbline 27
0020 ; outpower_init(); //继电器输出初始化
0020 0E940000 xcall _outpower_init
0024 .dbline 29
0024 ; // Set_time();
0024 ; mp3portIni(); //播放器初始化
0024 0E940000 xcall _mp3portIni
0028 .dbline 31
0028 ; // mp3SineTest(); //测试声音播放
0028 ; mp3Reset(); //软件复位
0028 0E940000 xcall _mp3Reset
002C .dbline 32
002C ; lcd_init(); //LCD初始化
002C 0E940000 xcall _lcd_init
0030 .dbline 33
0030 ; show_clear();
0030 0E940000 xcall _show_clear
0034 .dbline 34
0034 ; show_init("init Vs1003...ok",0,0);
0034 2224 clr R2
0036 3324 clr R3
0038 3982 std y+1,R3
003A 2882 std y+0,R2
003C 2227 clr R18
003E 3327 clr R19
0040 00E0 ldi R16,<L2
0042 10E0 ldi R17,>L2
0044 0E940000 xcall _show_init
0048 .dbline 35
0048 ; delay_1s();
0048 0E940000 xcall _delay_1s
004C .dbline 36
004C ; key_init(); //键盘初始化
004C 0E940000 xcall _key_init
0050 .dbline 37
0050 ; show_init("init Keyboard...ok",2,0);
0050 2224 clr R2
0052 3324 clr R3
0054 3982 std y+1,R3
0056 2882 std y+0,R2
0058 22E0 ldi R18,2
005A 30E0 ldi R19,0
005C 00E0 ldi R16,<L3
005E 10E0 ldi R17,>L3
0060 0E940000 xcall _show_init
0064 .dbline 38
0064 ; delay_1s();
0064 0E940000 xcall _delay_1s
0068 .dbline 39
0068 ; temp = Init_usb();
0068 0E940000 xcall _Init_usb
006C 402F mov R20,R16
006E .dbline 40
006E ; if(temp==1){ //USB控制器初始化
006E 0130 cpi R16,1
0070 59F4 brne L4
0072 .dbline 40
0072 .dbline 41
0072 ; show_init("init Disk...ok",4,0);
0072 2224 clr R2
0074 3324 clr R3
0076 3982 std y+1,R3
0078 2882 std y+0,R2
007A 24E0 ldi R18,4
007C 30E0 ldi R19,0
007E 00E0 ldi R16,<L6
0080 10E0 ldi R17,>L6
0082 0E940000 xcall _show_init
0086 .dbline 42
0086 ; }
0086 1AC0 xjmp L5
0088 L4:
0088 .dbline 43
0088 ; else {Print_str("Disk error\r\n");
0088 .dbline 43
0088 00E0 ldi R16,<L7
008A 10E0 ldi R17,>L7
008C 0E940000 xcall _Print_str
0090 .dbline 44
0090 ; show_lcd(0, 0, 192, 6, &diskinfor[0],0);
0090 2224 clr R2
0092 3324 clr R3
0094 3F82 std y+7,R3
0096 2E82 std y+6,R2
0098 80E0 ldi R24,<_diskinfor
009A 90E0 ldi R25,>_diskinfor
009C 9D83 std y+5,R25
009E 8C83 std y+4,R24
00A0 86E0 ldi R24,6
00A2 90E0 ldi R25,0
00A4 9B83 std y+3,R25
00A6 8A83 std y+2,R24
00A8 80EC ldi R24,192
00AA 9983 std y+1,R25
00AC 8883 std y+0,R24
00AE 2227 clr R18
00B0 3327 clr R19
00B2 0027 clr R16
00B4 1127 clr R17
00B6 0E940000 xcall _show_lcd
00BA L8:
00BA .dbline 45
00BA L9:
00BA .dbline 45
00BA ; while(1);
00BA FFCF xjmp L8
00BC X0:
00BC .dbline 46
00BC ; }
00BC L5:
00BC .dbline 47
00BC ; delay_1s();
00BC 0E940000 xcall _delay_1s
00C0 .dbline 48
00C0 ; test_file_system(); //检查磁盘工作目录
00C0 0E940000 xcall _test_file_system
00C4 .dbline 49
00C4 ; show_init("Start system ...",6,0);
00C4 2224 clr R2
00C6 3324 clr R3
00C8 3982 std y+1,R3
00CA 2882 std y+0,R2
00CC 26E0 ldi R18,6
00CE 30E0 ldi R19,0
00D0 00E0 ldi R16,<L11
00D2 10E0 ldi R17,>L11
00D4 0E940000 xcall _show_init
00D8 .dbline 50
00D8 ; delay_1s();
00D8 0E940000 xcall _delay_1s
00DC .dbline 51
00DC ; delay_1s();
00DC 0E940000 xcall _delay_1s
00E0 .dbline 52
00E0 ; show_clear();
00E0 0E940000 xcall _show_clear
00E4 .dbline 53
00E4 ; show_welcom();
00E4 0E940000 xcall _show_welcom
00E8 .dbline 54
00E8 ; adjust_cheng(0);
00E8 0027 clr R16
00EA 1127 clr R17
00EC 0E940000 xcall _adjust_cheng
00F0 .dbline -2
00F0 L1:
00F0 2896 adiw R28,8
00F2 0E940000 xcall pop_gset1
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym r temp 20 c
00F8 .dbend
00F8 .dbfunc e set_system_time _set_system_time fV
00F8 ; temp -> R22
00F8 ; ii -> R20
.even
00F8 _set_system_time::
00F8 0E940000 xcall push_gset4
00FC .dbline -1
00FC .dbline 60
00FC ; }
00FC ; /*
00FC ; *设置时间
00FC ; */
00FC ; void set_system_time(void)
00FC ; {
00FC .dbline 63
00FC ; uchar ii;
00FC ; uchar temp;
00FC ; ii = 0; //最大是2
00FC 4427 clr R20
00FE 54C1 xjmp L14
0100 L13:
0100 .dbline 64
0100 ; while(1){
0100 .dbline 65
0100 ; show_set_tiem(ii);
0100 042F mov R16,R20
0102 1127 clr R17
0104 0E940000 xcall _show_set_tiem
0108 .dbline 66
0108 ; KEYBUF_NULL;
0108 2224 clr R2
010A 20920000 sts _keybuf,R2
010E .dbline 66
010E L16:
010E .dbline 67
010E L17:
010E .dbline 67
010E ; while(keybuf == NULL);
010E 20900000 lds R2,_keybuf
0112 2220 tst R2
0114 E1F3 breq L16
0116 .dbline 69
0116 ;
0116 ; if(keybuf == K_UP){
0116 822D mov R24,R2
0118 8330 cpi R24,3
011A 09F0 breq X5
011C 8EC0 xjmp L19
011E X5:
011E .dbline 69
011E .dbline 70
011E C42E mov R12,R20
0120 DD24 clr R13
0122 CC20 tst R12
0124 11F4 brne X1
0126 DD20 tst R13
0128 59F0 breq L24
012A X1:
012A C601 movw R24,R12
012C 8130 cpi R24,1
012E E0E0 ldi R30,0
0130 9E07 cpc R25,R30
0132 81F1 breq L32
0134 8230 cpi R24,2
0136 E0E0 ldi R30,0
0138 9E07 cpc R25,R30
013A 09F4 brne X6
013C 55C0 xjmp L40
013E X6:
013E 7DC0 xjmp L21
0140 X2:
0140 .dbline 70
0140 ; switch(ii){
0140 L24:
0140 .dbline 71
0140 ; case 0: temp = timebuf.hour;
0140 60910200 lds R22,_timebuf+2
0144 .dbline 72
0144 ; temp >>= 4;
0144 862F mov R24,R22
0146 8295 swap R24
0148 8F70 andi R24,#0x0F
014A 682F mov R22,R24
014C .dbline 73
014C ; temp &= 0x0f;
014C 6F70 andi R22,15
014E .dbline 74
014E ; temp *= 10;
014E 8AE0 ldi R24,10
0150 869F mul R24,R22
0152 602D mov R22,R0
0154 .dbline 75
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -