找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9855|回复: 6
收起左侧

51单片机做音乐播放器的问题

[复制链接]
ID:69838 发表于 2015-5-12 18:48 | 显示全部楼层 |阅读模式
10黑币
我最近做一个wav音乐播放器,借鉴了一些帖子,但是貌似都出自一人之手,然后我看了振南的sd卡教程,用51驱动了sd卡,然后问题来了,sd卡是驱动起来了,但从sd卡读出来的数据不知道怎么处理,读取的bmp图片也不好用。。。。希望各位高手能给点启发~

回复

使用道具 举报

ID:73711 发表于 2015-8-1 11:29 | 显示全部楼层
播放器做成功了   我也想做一个
回复

使用道具 举报

ID:60379 发表于 2015-8-1 17:11 | 显示全部楼层
从sd卡读出来的数据直接发VS1003芯片即可,VS1003会自动解码的。
《51单片机轻松入门—基于STC15W4K系列》对这部分讲得很清楚,确实需要可联系QQ群:324284310。验证:STC15单片机。


未命名.JPG 未命名2.JPG
回复

使用道具 举报

ID:60379 发表于 2015-8-1 17:13 | 显示全部楼层
主程序代码如下:
#include "ZNFAT.H"
#include "sd.h"
#include "uart.h"
#include "vs1003.h"
struct znFAT_Init_Args idata Init_Args; // 初始化参数集合
struct FileInfo idata fileinfo;         // 文件信息集合
void port_mode()                        // 端口模式
{
        P0M1=0xff; P0M0=0xff;P1M1=0x0C;P1M0=0x0C;P4M1=0x80;P4M0=0x80;
}
int main()
{
        unsigned int res=0,n=0;
        port_mode();                           // 所有IO口设为准双向弱上拉方式。
        UART_Init();                                            // 波特率:9600 /22.1184MHZ
        UART_Send_Str("串口设置完毕\r\n");
        znFAT_Device_Init();                     // 存储设备初始化
        UART_Send_Str("SD卡初始化完毕\r\n");
        znFAT_Select_Device(0,&Init_Args);       // 选择设备
        res=znFAT_Init();      // 文件系统初始化         
        if(!res)               // 文件系统初始化成功
        {
                UART_Send_Str("文件系统初始化成功\r\n");
                UART_Send_StrNum("DBR扇区地址:",Init_Args.BPB_Sector_No);   
                UART_Send_StrNum("总存储容量(K字节):",Init_Args.Total_SizeKB);
                UART_Send_StrNum("每扇区字节(个):",Init_Args.BytesPerSector);
                UART_Send_StrNum("FAT扇区数:",Init_Args.FATsectors);  
                UART_Send_StrNum("每簇扇区(个):",Init_Args.SectorsPerClust);
                UART_Send_StrNum("第一FAT扇区:",Init_Args.FirstFATSector);
                UART_Send_StrNum("根目录开始扇区:",Init_Args.FirstDirSector);
                UART_Send_StrNum("FSINFO扇区地址:",Init_Args.FSINFO_Sec);
                UART_Send_StrNum("下一空闲簇:",Init_Args.Next_Free_Cluster);
                UART_Send_StrNum("剩余空闲簇:",Init_Args.Free_nCluster);
        }
        else                  // 文件系统初始化失败
        {
                UART_Send_StrNum("文件系统初始化失败 , 错误码:",res);
        }       
        VS_Reset();          // VS1003复位初始化
        while(!znFAT_Open_File(&fileinfo,"/*.mp3",n,1))        //打开SD卡根目录下所有MP3文件中的第n个
        {  
                UART_Send_Str("===========================================================\n");
                UART_Send_Str("打开文件成功\n");     // 从串口输出文件参数信息
                UART_Send_Str("文件名为:");
                UART_Send_Str(fileinfo.File_Name);
                UART_Send_Enter();
                UART_Send_StrNum("文件大小(字节):",fileinfo.File_Size);
                UART_Send_StrNum("文件当前偏移量(字节):",fileinfo.File_CurOffset);
               
                UART_Send_Str("文件创建时间:\n");
                UART_Send_Num(fileinfo.File_CDate.year); UART_Send_Str("年");
                UART_Send_Num(fileinfo.File_CDate.month);UART_Send_Str("月");
                UART_Send_Num(fileinfo.File_CDate.day);  UART_Send_Str("日");
                UART_Send_Num(fileinfo.File_CTime.hour); UART_Send_Str("时");
                UART_Send_Num(fileinfo.File_CTime.min);  UART_Send_Str("分");
                UART_Send_Num(fileinfo.File_CTime.sec);  UART_Send_Str("秒\r\n");
                UART_Send_Enter();
               
                VS_sin_test(200);                 // 正弦测试,可以听到一声滴
               
                znFAT_ReadDataX(&fileinfo,0,fileinfo.File_Size); //调用读取文件函数(重定向),将数据送至VS1003
       
                VS_Reset();
               
                n++;
        }
        UART_Send_Str("===========================================================\n");
        UART_Send_StrNum("文件列举完毕,共有文件(个):",n);
        while(1);
        return 0;
}
回复

使用道具 举报

ID:85435 发表于 2015-8-1 20:28 | 显示全部楼层
还没有学习,先提前自己学一下
回复

使用道具 举报

ID:111339 发表于 2016-6-23 22:00 | 显示全部楼层
。。。
回复

使用道具 举报

ID:298008 发表于 2019-12-31 20:06 | 显示全部楼层
谢谢楼主分享!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表