📄 main.lis
字号:
00C8 14D0 xcall _main_init
00CA .dbline 77
00CA ;
00CA ; for(;;)
00CA L19:
00CA .dbline 78
00CA .dbline 79
00CA 0E940000 xcall _SONG_task
00CE .dbline 80
00CE A895 wdr
00D0 .dbline 81
00D0 0E940000 xcall _KBOD_task
00D4 .dbline 82
00D4 A895 wdr
00D6 .dbline 83
00D6 0E940000 xcall _DISP_task
00DA .dbline 84
00DA A895 wdr
00DC .dbline 85
00DC .dbline 77
00DC .dbline 77
00DC F6CF xjmp L19
00DE X2:
00DE .dbline -2
00DE L17:
00DE .dbline 0 ; func end
00DE 0895 ret
00E0 .dbend
00E0 .dbfunc e uart_init _uart_init fV
.even
00E0 _uart_init::
00E0 .dbline -1
00E0 .dbline 91
00E0 ; {
00E0 ; SONG_task();
00E0 ; _WDR();
00E0 ; KBOD_task();
00E0 ; _WDR();
00E0 ; DISP_task();
00E0 ; _WDR();
00E0 ; }
00E0 ; }
00E0 ;
00E0 ;
00E0 ; //=======================================================================
00E0 ; void uart_init(void) //用232串口发数据到PC,收集数据
00E0 ; {
00E0 .dbline 92
00E0 ; UCSRB=(1<<RXEN)|(1<<TXEN);//允许发送和接收
00E0 88E1 ldi R24,24
00E2 8AB9 out 0xa,R24
00E4 .dbline 93
00E4 ; UBRRH=1;
00E4 81E0 ldi R24,1
00E6 80BD out 0x20,R24
00E8 .dbline 94
00E8 ; UBRRL=0X9E;
00E8 8EE9 ldi R24,158
00EA 89B9 out 0x9,R24
00EC .dbline 95
00EC ; UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
00EC 86E8 ldi R24,134
00EE 80BD out 0x20,R24
00F0 .dbline -2
00F0 L23:
00F0 .dbline 0 ; func end
00F0 0895 ret
00F2 .dbend
00F2 .dbfunc e main_init _main_init fV
.even
00F2 _main_init::
00F2 2597 sbiw R28,5
00F4 .dbline -1
00F4 .dbline 101
00F4 ; }
00F4 ;
00F4 ;
00F4 ; //=======================================================================
00F4 ; void main_init(void)
00F4 ; {
00F4 .dbline 102
00F4 ; I2C_Ini();
00F4 0E940000 xcall _I2C_Ini
00F8 .dbline 103
00F8 ; STA013_Ini();
00F8 0E940000 xcall _STA013_Ini
00FC .dbline 104
00FC ; buffer[0]=SDInit(); //里面有SPI的使能初始化,要放在LCD初始化的前面
00FC 0E940000 xcall _SDInit
0100 00934000 sts _buffer,R16
0104 .dbline 105
0104 ; LCD_init(); //初始化LCD模块
0104 0E940000 xcall _LCD_init
0108 .dbline 109
0108 ; //显示LOGO
0108 ;
0108 ;
0108 ; if(buffer[0])
0108 20904000 lds R2,_buffer
010C 2220 tst R2
010E 81F0 breq L25
0110 .dbline 110
0110 ; {
0110 .dbline 111
0110 ; LCD_write_String(0,1,12,"SD INIT ERR!",0);
0110 2224 clr R2
0112 2C82 std y+4,R2
0114 80E0 ldi R24,<L27
0116 90E0 ldi R25,>L27
0118 9B83 std y+3,R25
011A 8A83 std y+2,R24
011C 8CE0 ldi R24,12
011E 8883 std y+0,R24
0120 21E0 ldi R18,1
0122 0027 clr R16
0124 0E940000 xcall _LCD_write_String
0128 .dbline 112
0128 ; putstring("SD INIT ERR!");
0128 00E0 ldi R16,<L27
012A 10E0 ldi R17,>L27
012C 84DF xcall _putstring
012E L28:
012E .dbline 113
012E L29:
012E .dbline 113
012E ; while(1);
012E FFCF xjmp L28
0130 X3:
0130 .dbline 114
0130 ; }
0130 L25:
0130 .dbline 115
0130 ; LCD_write_String(0,1,11,"SD INIT OK!",0);
0130 2224 clr R2
0132 2C82 std y+4,R2
0134 80E0 ldi R24,<L31
0136 90E0 ldi R25,>L31
0138 9B83 std y+3,R25
013A 8A83 std y+2,R24
013C 8BE0 ldi R24,11
013E 8883 std y+0,R24
0140 21E0 ldi R18,1
0142 0027 clr R16
0144 0E940000 xcall _LCD_write_String
0148 .dbline 116
0148 ; putstring("SD INIT OK!");
0148 00E0 ldi R16,<L31
014A 10E0 ldi R17,>L31
014C 74DF xcall _putstring
014E .dbline 118
014E ;
014E ; sta_Init();
014E 0E940000 xcall _sta_Init
0152 .dbline 119
0152 ; LCD_write_String(0,2,10,"STA013 OK!",0);
0152 2224 clr R2
0154 2C82 std y+4,R2
0156 80E0 ldi R24,<L32
0158 90E0 ldi R25,>L32
015A 9B83 std y+3,R25
015C 8A83 std y+2,R24
015E 8AE0 ldi R24,10
0160 8883 std y+0,R24
0162 22E0 ldi R18,2
0164 0027 clr R16
0166 0E940000 xcall _LCD_write_String
016A .dbline 120
016A ; putstring("STA013 OK!");
016A 00E0 ldi R16,<L32
016C 10E0 ldi R17,>L32
016E 63DF xcall _putstring
0170 .dbline 122
0170 ;
0170 ; if(FATinit())
0170 0E940000 xcall _FATinit
0174 0023 tst R16
0176 81F0 breq L33
0178 .dbline 123
0178 ; {
0178 .dbline 124
0178 ; LCD_write_String(0,3,13,"FAT INIT ERR!",0);
0178 2224 clr R2
017A 2C82 std y+4,R2
017C 80E0 ldi R24,<L35
017E 90E0 ldi R25,>L35
0180 9B83 std y+3,R25
0182 8A83 std y+2,R24
0184 8DE0 ldi R24,13
0186 8883 std y+0,R24
0188 23E0 ldi R18,3
018A 0027 clr R16
018C 0E940000 xcall _LCD_write_String
0190 .dbline 125
0190 ; putstring("FAT INIT ERR!");
0190 00E0 ldi R16,<L35
0192 10E0 ldi R17,>L35
0194 50DF xcall _putstring
0196 L36:
0196 .dbline 126
0196 L37:
0196 .dbline 126
0196 ; while(1);
0196 FFCF xjmp L36
0198 X4:
0198 .dbline 127
0198 ; }
0198 L33:
0198 .dbline 128
0198 ; LCD_write_String(0,3,12,"FAT INIT OK!",0);
0198 2224 clr R2
019A 2C82 std y+4,R2
019C 80E0 ldi R24,<L39
019E 90E0 ldi R25,>L39
01A0 9B83 std y+3,R25
01A2 8A83 std y+2,R24
01A4 8CE0 ldi R24,12
01A6 8883 std y+0,R24
01A8 23E0 ldi R18,3
01AA 0027 clr R16
01AC 0E940000 xcall _LCD_write_String
01B0 .dbline 129
01B0 ; putstring("FAT INIT OK!");
01B0 00E0 ldi R16,<L39
01B2 10E0 ldi R17,>L39
01B4 40DF xcall _putstring
01B6 .dbline 131
01B6 ;
01B6 ; Mp3_number_Counter();
01B6 0E940000 xcall _Mp3_number_Counter
01BA .dbline 133
01BA ;
01BA ; if(MP3_all_number==0)
01BA 20904202 lds R2,_MP3_all_number
01BE 2220 tst R2
01C0 81F4 brne L40
01C2 .dbline 134
01C2 ; {
01C2 .dbline 135
01C2 ; LCD_write_String(0,4,13,"HAVE NOT MP3!",0); //启动3310显示没有MP3文件
01C2 2224 clr R2
01C4 2C82 std y+4,R2
01C6 80E0 ldi R24,<L42
01C8 90E0 ldi R25,>L42
01CA 9B83 std y+3,R25
01CC 8A83 std y+2,R24
01CE 8DE0 ldi R24,13
01D0 8883 std y+0,R24
01D2 24E0 ldi R18,4
01D4 0027 clr R16
01D6 0E940000 xcall _LCD_write_String
01DA .dbline 136
01DA ; putstring("HAVE NOT MP3!");
01DA 00E0 ldi R16,<L42
01DC 10E0 ldi R17,>L42
01DE 2BDF xcall _putstring
01E0 L43:
01E0 .dbline 137
01E0 L44:
01E0 .dbline 137
01E0 ; while(1);
01E0 FFCF xjmp L43
01E2 X5:
01E2 .dbline 138
01E2 ; }
01E2 L40:
01E2 .dbline 140
01E2 ;
01E2 ; Delay_ms(500);
01E2 04EF ldi R16,500
01E4 11E0 ldi R17,1
01E6 16DF xcall _Delay_ms
01E8 .dbline 141
01E8 ; LCD_clear();
01E8 0E940000 xcall _LCD_clear
01EC .dbline 143
01EC ;
01EC ; LCD_set_XY(0,2);
01EC 22E0 ldi R18,2
01EE 0027 clr R16
01F0 0E940000 xcall _LCD_set_XY
01F4 .dbline 144
01F4 ; LCD_write_byte(0xFF,1);
01F4 21E0 ldi R18,1
01F6 0FEF ldi R16,255
01F8 0E940000 xcall _LCD_write_byte
01FC .dbline 145
01FC ; LCD_write_byte(0x01,1);
01FC 21E0 ldi R18,1
01FE 01E0 ldi R16,1
0200 0E940000 xcall _LCD_write_byte
0204 .dbline 147
0204 ;
0204 ; LCD_set_XY(82,2);
0204 22E0 ldi R18,2
0206 02E5 ldi R16,82
0208 0E940000 xcall _LCD_set_XY
020C .dbline 148
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -