⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mp3.lst

📁 mp3代码 要用的干净下啊 希望用东西共享啊
💻 LST
📖 第 1 页 / 共 5 页
字号:
__text_start:
__start:
    086B E5CF      LDI	R28,0x5F
    086C E0D8      LDI	R29,0x8
    086D BFCD      OUT	0x3D,R28
    086E BFDE      OUT	0x3E,R29
    086F 52C8      SUBI	R28,0x28
    0870 40D0      SBCI	R29,0
    0871 EA0A      LDI	R16,0xAA
    0872 8308      STD	Y+0,R16
    0873 2400      CLR	R0
    0874 EDEE      LDI	R30,0xDE
    0875 E0F0      LDI	R31,0
    0876 E014      LDI	R17,4
    0877 32E2      CPI	R30,0x22
    0878 07F1      CPC	R31,R17
    0879 F011      BEQ	0x087C
    087A 9201      ST	R0,Z+
    087B CFFB      RJMP	0x0877
    087C 8300      STD	Z+0,R16
    087D E5E8      LDI	R30,0x58
    087E E1F0      LDI	R31,0x10
    087F E6A0      LDI	R26,0x60
    0880 E0B0      LDI	R27,0
    0881 E110      LDI	R17,0x10
    0882 3DE6      CPI	R30,0xD6
    0883 07F1      CPC	R31,R17
    0884 F021      BEQ	0x0889
    0885 95C8      LPM
    0886 9631      ADIW	R30,1
    0887 920D      ST	R0,X+
    0888 CFF9      RJMP	0x0882
    0889 940E088C  CALL	_main
_exit:
    088B CFFF      RJMP	_exit
_main:
    088C 9722      SBIW	R28,2
FILE: D:\桌面\mp3\main\main.c
(0001) #include "config.h"
(0002) 
(0003) /*********************************************************************************************************
(0004) ** 函数名称: STA013演示程序
(0005) ** 功能描述:
(0006) ** 输 入:  
(0007) ** 输  出:             
(0008) ** 全局变量: 
(0009) ** 调用模块: 
(0010) ** 说明:
(0011) ** 注意:    
(0012) ** 日 期:   2006年8月29日
(0013) ********************************************************************************************************/
(0014) 
(0015) 
(0016) 
(0017) void main(void)
(0018) {
(0019) 	Twi_Init();
    088D 940E0DCC  CALL	_Twi_Init
(0020) 	sta_IoIni();
    088F 940E0E03  CALL	_sta_IoIni
(0021) 	Spi_Init();
    0891 940E0A27  CALL	_Spi_Init
(0022) 	sta_Reset();
    0893 940E0E0C  CALL	_sta_Reset
(0023) 	SEI();
    0895 9478      BSET	7
(0024) 	sta_Init();
    0896 940E0F21  CALL	_sta_Init
(0025) 	sta_SetVolume(90,1);
    0898 E021      LDI	R18,1
    0899 E50A      LDI	R16,0x5A
    089A 940E0F96  CALL	_sta_SetVolume
(0026) 	MMC_Init();
    089C 940E102D  CALL	_MMC_Init
(0027)     FAT_Init();
    089E 940E1450  CALL	_FAT_Init
    08A0 C05A      RJMP	0x08FB
(0028) while(1){
(0029) 	FAT_FileOpen("GUOGE   MP3", 0);
    08A1 E040      LDI	R20,0
    08A2 E050      LDI	R21,0
    08A3 E060      LDI	R22,0
    08A4 E070      LDI	R23,0
    08A5 8368      STD	Y+0,R22
    08A6 8379      STD	Y+1,R23
    08A7 019A      MOVW	R18,R20
    08A8 EA01      LDI	R16,0xA1
    08A9 E010      LDI	R17,0
    08AA 940E15AE  CALL	_FAT_FileOpen
(0030) 	sta_SendToDecoder(0);
    08AC 2700      CLR	R16
    08AD 2711      CLR	R17
    08AE 940E0FDC  CALL	_sta_SendToDecoder
(0031) 	FAT_FileOpen("A01      MP3", 0);
    08B0 E040      LDI	R20,0
    08B1 E050      LDI	R21,0
    08B2 E060      LDI	R22,0
    08B3 E070      LDI	R23,0
    08B4 8368      STD	Y+0,R22
    08B5 8379      STD	Y+1,R23
    08B6 019A      MOVW	R18,R20
    08B7 E904      LDI	R16,0x94
    08B8 E010      LDI	R17,0
    08B9 940E15AE  CALL	_FAT_FileOpen
(0032) 	sta_SendToDecoder(0);
    08BB 2700      CLR	R16
    08BC 2711      CLR	R17
    08BD 940E0FDC  CALL	_sta_SendToDecoder
(0033) 	FAT_FileOpen("A02      MP3", 0);
    08BF E040      LDI	R20,0
    08C0 E050      LDI	R21,0
    08C1 E060      LDI	R22,0
    08C2 E070      LDI	R23,0
    08C3 8368      STD	Y+0,R22
    08C4 8379      STD	Y+1,R23
    08C5 019A      MOVW	R18,R20
    08C6 E807      LDI	R16,0x87
    08C7 E010      LDI	R17,0
    08C8 940E15AE  CALL	_FAT_FileOpen
(0034) 	sta_SendToDecoder(0);
    08CA 2700      CLR	R16
    08CB 2711      CLR	R17
    08CC 940E0FDC  CALL	_sta_SendToDecoder
(0035) 	FAT_FileOpen("A03      MP3", 0);
    08CE E040      LDI	R20,0
    08CF E050      LDI	R21,0
    08D0 E060      LDI	R22,0
    08D1 E070      LDI	R23,0
    08D2 8368      STD	Y+0,R22
    08D3 8379      STD	Y+1,R23
    08D4 019A      MOVW	R18,R20
    08D5 E70A      LDI	R16,0x7A
    08D6 E010      LDI	R17,0
    08D7 940E15AE  CALL	_FAT_FileOpen
(0036) 	sta_SendToDecoder(0);
    08D9 2700      CLR	R16
    08DA 2711      CLR	R17
    08DB 940E0FDC  CALL	_sta_SendToDecoder
(0037) 	FAT_FileOpen("A04      MP3", 0);
    08DD E040      LDI	R20,0
    08DE E050      LDI	R21,0
    08DF E060      LDI	R22,0
    08E0 E070      LDI	R23,0
    08E1 8368      STD	Y+0,R22
    08E2 8379      STD	Y+1,R23
    08E3 019A      MOVW	R18,R20
    08E4 E60D      LDI	R16,0x6D
    08E5 E010      LDI	R17,0
    08E6 940E15AE  CALL	_FAT_FileOpen
(0038) 	sta_SendToDecoder(0);
    08E8 2700      CLR	R16
    08E9 2711      CLR	R17
    08EA 940E0FDC  CALL	_sta_SendToDecoder
(0039) 	FAT_FileOpen("A05      MP3", 0);
    08EC E040      LDI	R20,0
    08ED E050      LDI	R21,0
    08EE E060      LDI	R22,0
    08EF E070      LDI	R23,0
    08F0 8368      STD	Y+0,R22
    08F1 8379      STD	Y+1,R23
    08F2 019A      MOVW	R18,R20
    08F3 E600      LDI	R16,0x60
    08F4 E010      LDI	R17,0
    08F5 940E15AE  CALL	_FAT_FileOpen
(0040) 	sta_SendToDecoder(0);
    08F7 2700      CLR	R16
    08F8 2711      CLR	R17
    08F9 940E0FDC  CALL	_sta_SendToDecoder
    08FB CFA5      RJMP	0x08A1
    08FC 9622      ADIW	R28,2
    08FD 9508      RET
FILE: D:\桌面\mp3\queue\queue.c
(0001) /*********************************************************************************************************
(0002) **				          			QUEUE队列头文件 
(0003) **                                  (c) Copyright 2006-2008, limaokui
(0004) **                                           All Rights Reserved
(0005) **
(0006) **                                             V1.0.0
(0007) **
(0008) **
(0009) **--------------文件信息--------------------------------------------------------------------------------
(0010) **文   件   名:queue.h
(0011) **创   建   人: 李茂奎
(0012) **最后修改日期:  2006年8月29日
(0013) **描        述:  
(0014) **
(0015) **--------------历史版本信息----------------------------------------------------------------------------
(0016) ** 创建人: 李茂奎
(0017) ** 版  本: V1.00
(0018) ** 日 期: 2006年8月29日
(0019) ** 描 述: 原始版本
(0020) **
(0021) **------------------------------------------------------------------------------------------------------
(0022) ** 修改人: 李茂奎
(0023) ** 版  本:
(0024) ** 日 期:
(0025) ** 描 述: 
(0026) **
(0027) **--------------当前版本修订------------------------------------------------------------------------------
(0028) ** 修改人:    李茂奎																					  
(0029) ** 日 期:	 2006年8月29日
(0030) ** 描 述:   
(0031) **
(0032) **------------------------------------------------------------------------------------------------------
(0033) *********************************************************************************************************
(0034) **使用说明:在定义队列时请定义一个静态数组,并将此数组传递给队列的data,并将数据长度传递给queuesize
(0035)   #define TWI_SEND_DATA_BUFFER_SIZE 100
(0036)   static uint8 Twi_SendData[TWI_SEND_DATA_BUFFER_SIZE];
(0037)   CirQueue Twi_SendBuffer={0,0,0,Twi_SendData,TWI_SEND_DATA_BUFFER_SIZE,QUEUE_OK};
(0038) 
(0039) *********************************************************************************************************/
(0040) #include "config.h"
(0041) /*********************************************************************************************************
(0042) ** 函数名称:InitQueue
(0043) ** 功能描述:初始化队列
(0044) ** 输 入:  
(0045) ** 输  出:             
(0046) ** 全局变量: 
(0047) ** 调用模块: 
(0048) ** 说明:
(0049) ** 注意:    
(0050) ** 日 期:   2006年8月29日
(0051) ********************************************************************************************************/
(0052) void InitQueue(CirQueue * Q)
(0053) {
(0054) //CLI();
(0055) Q->front=Q->rear=0;
_InitQueue:
  Q                    --> R16
    08FE 2422      CLR	R2
    08FF 01F8      MOVW	R30,R16
    0900 8221      STD	Z+1,R2
    0901 01F8      MOVW	R30,R16
    0902 8220      STD	Z+0,R2
(0056) Q->count=0;
    0903 8222      STD	Z+2,R2
(0057) Q->errorcode= QUEUE_OK;
    0904 01F8      MOVW	R30,R16
    0905 8226      STD	Z+6,R2
(0058) Q->memo=0;
    0906 01F8      MOVW	R30,R16
    0907 8620      STD	Z+8,R2
(0059) Q->status=TWI_DATA_FREE;
    0908 01F8      MOVW	R30,R16
    0909 8227      STD	Z+7,R2
    090A 9508      RET
_EnQueue:
  x                    --> R22
  Q                    --> R20
    090B 940E1921  CALL	push_gset2
    090D 2F62      MOV	R22,R18
    090E 01A8      MOVW	R20,R16
(0060) //SEI();
(0061) }
(0062) /*********************************************************************************************************
(0063) ** 函数名称:EmptyQueue(CirQueue *Q)
(0064) ** 功能描述:判断队列是否为空
(0065) ** 输 入:  
(0066) ** 输  出:             
(0067) ** 全局变量: 
(0068) ** 调用模块: 
(0069) ** 说明:
(0070) ** 注意:    
(0071) ** 日 期:   2006年8月29日
(0072) ********************************************************************************************************
(0073) uint8 EmptyQueue(CirQueue * Q)
(0074) {
(0075) return Q->count==0;
(0076) }
(0077) /*********************************************************************************************************
(0078) ** 函数名称:FullQueue(CirQueue *Q)
(0079) ** 功能描述:判断队列是否为满
(0080) ** 输 入:  
(0081) ** 输  出:             
(0082) ** 全局变量: 
(0083) ** 调用模块: 
(0084) ** 说明:
(0085) ** 注意:    
(0086) ** 日 期:   2006年8月29日
(0087) ********************************************************************************************************
(0088) 
(0089) uint8 FullQueue(CirQueue * Q)
(0090) {
(0091) return (Q->count == Q->queuesize);
(0092) }
(0093) /*********************************************************************************************************
(0094) ** 函数名称:EnQueue
(0095) ** 功能描述:入队
(0096) ** 输 入:  
(0097) ** 输  出:             
(0098) ** 全局变量: 
(0099) ** 调用模块: 
(0100) ** 说明:
(0101) ** 注意:    
(0102) ** 日 期:   2006年8月29日
(0103) ********************************************************************************************************/
(0104) void EnQueue(CirQueue * Q,uint8 x)
(0105) {
(0106) if(FullQueue(Q))
    090F 01FA      MOVW	R30,R20
    0910 8025      LDD	R2,Z+5
    0911 01FA      MOVW	R30,R20
    0912 8032      LDD	R3,Z+2
    0913 1432      CP	R3,R2
    0914 F441      BNE	0x091D
(0107)    {
(0108)    Q->errorcode=QUEUE_OVERFLOW;
    0915 E081      LDI	R24,1
    0916 01FA      MOVW	R30,R20
    0917 8386      STD	Z+6,R24
(0109)    Q->count=Q->queuesize;
    0918 01FA      MOVW	R30,R20
    0919 8025      LDD	R2,Z+5
    091A 01FA      MOVW	R30,R20
    091B 8222      STD	Z+2,R2
(0110)    return;
    091C C01E      RJMP	0x093B
(0111)    }
(0112) //CLI();
(0113) Q->count++;
    091D 01CA      MOVW	R24,R20
    091E 9602      ADIW	R24,2
    091F 01FC      MOVW	R30,R24
    0920 8180      LDD	R24,Z+0
    0921 5F8F      SUBI	R24,0xFF
    0922 8380      STD	Z+0,R24
(0114) Q->data[Q->rear]=x;
    0923 01FA      MOVW	R30,R20
    0924 8023      LDD	R2,Z+3
    0925 8034      LDD	R3,Z+4
    0926 01FA      MOVW	R30,R20
    0927 81E1      LDD	R30,Z+1
    0928 27FF      CLR	R31
    0929 0DE2      ADD	R30,R2
    092A 1DF3      ADC	R31,R3
    092B 8360      STD	Z+0,R22
(0115) Q->rear=(Q->rear+1)%Q->queuesize;
    092C 01CA      MOVW	R24,R20
    092D 9601      ADIW	R24,1
    092E 011C      MOVW	R2,R24
    092F 01FA      MOVW	R30,R20
    0930 8115      LDD	R17,Z+5
    0931 01FC      MOVW	R30,R24
    0932 8100      LDD	R16,Z+0
    0933 5F0F      SUBI	R16,0xFF
    0934 940E18B7  CALL	mod8u
    0936 01F1      MOVW	R30,R2
    0937 8300      STD	Z+0,R16
(0116) Q->errorcode=QUEUE_OK;
    0938 2422      CLR	R2
    0939 01FA      MOVW	R30,R20
    093A 8226      STD	Z+6,R2
    093B 940E190F  CALL	pop_gset2
    093D 9508      RET
_DeQueue:
  temp                 --> R20
  Q                    --> R22
    093E 940E1921  CALL	push_gset2
    0940 01B8      MOVW	R22,R16
(0117) //SEI();
(0118) }
(0119) /*********************************************************************************************************
(0120) ** 函数名称:DeQueue
(0121) ** 功能描述:出队
(0122) ** 输 入:  
(0123) ** 输  出:             
(0124) ** 全局变量: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -