找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4555|回复: 5
收起左侧

51单片机+znFAT播放SD卡中的mp3文件全套源码

  [复制链接]
ID:265916 发表于 2018-5-18 01:22 | 显示全部楼层 |阅读模式
0.png

单片机源程序如下:
  1. #include "ZNFAT.H"
  2. #include "sd.h"
  3. #include "uart.h"
  4. #include "vs1003.h"
  5. struct znFAT_Init_Args idata Init_Args; // 初始化参数集合
  6. struct FileInfo idata fileinfo;         // 文件信息集合
  7. void port_mode()                        // 端口模式
  8. {
  9.         P0M1=0xff; P0M0=0xff;P1M1=0x0C;P1M0=0x0C;P4M1=0x80;P4M0=0x80;
  10. }
  11. int main()
  12. {
  13.         unsigned int res=0,n=0;
  14.         port_mode();                           // 所有IO口设为准双向弱上拉方式。
  15.         UART_Init();                                            // 波特率:9600 /22.1184MHZ
  16.         UART_Send_Str("串口设置完毕\r\n");
  17.         znFAT_Device_Init();                     // 存储设备初始化
  18.         UART_Send_Str("SD卡初始化完毕\r\n");
  19.         znFAT_Select_Device(0,&Init_Args);       // 选择设备
  20.         res=znFAT_Init();      // 文件系统初始化         
  21.         if(!res)               // 文件系统初始化成功
  22.         {
  23.                 UART_Send_Str("文件系统初始化成功\r\n");
  24.                 UART_Send_StrNum("DBR扇区地址:",Init_Args.BPB_Sector_No);   
  25.                 UART_Send_StrNum("总存储容量(K字节):",Init_Args.Total_SizeKB);
  26.                 UART_Send_StrNum("每扇区字节(个):",Init_Args.BytesPerSector);
  27.                 UART_Send_StrNum("FAT扇区数:",Init_Args.FATsectors);  
  28.                 UART_Send_StrNum("每簇扇区(个):",Init_Args.SectorsPerClust);
  29.                 UART_Send_StrNum("第一FAT扇区:",Init_Args.FirstFATSector);
  30.                 UART_Send_StrNum("根目录开始扇区:",Init_Args.FirstDirSector);
  31.                 UART_Send_StrNum("FSINFO扇区地址:",Init_Args.FSINFO_Sec);
  32.                 UART_Send_StrNum("下一空闲簇:",Init_Args.Next_Free_Cluster);
  33.                 UART_Send_StrNum("剩余空闲簇:",Init_Args.Free_nCluster);
  34.         }
  35.         else                  // 文件系统初始化失败
  36.         {
  37.                 UART_Send_StrNum("文件系统初始化失败 , 错误码:",res);
  38.         }      
  39.         VS_Reset();          // VS1003复位初始化
  40.         while(!znFAT_Open_File(&fileinfo,"/*.mp3",n,1))        //打开SD卡根目录下所有MP3文件中的第n个
  41.         {  
  42.                 UART_Send_Str("===========================================================\n");
  43.                 UART_Send_Str("打开文件成功\n");     // 从串口输出文件参数信息
  44.                 UART_Send_Str("文件名为:");
  45.                 UART_Send_Str(fileinfo.File_Name);
  46.                 UART_Send_Enter();
  47.                 UART_Send_StrNum("文件大小(字节):",fileinfo.File_Size);
  48.                 UART_Send_StrNum("文件当前偏移量(字节):",fileinfo.File_CurOffset);
  49.                
  50.                 UART_Send_Str("文件创建时间:\n");
  51.                 UART_Send_Num(fileinfo.File_CDate.year); UART_Send_Str("年");
  52.                 UART_Send_Num(fileinfo.File_CDate.month);UART_Send_Str("月");
  53.                 UART_Send_Num(fileinfo.File_CDate.day);  UART_Send_Str("日");
  54.                 UART_Send_Num(fileinfo.File_CTime.hour); UART_Send_Str("时");
  55.                 UART_Send_Num(fileinfo.File_CTime.min);  UART_Send_Str("分");
  56.                 UART_Send_Num(fileinfo.File_CTime.sec);  UART_Send_Str("秒\r\n");
  57.                 UART_Send_Enter();
  58.                
  59.                 VS_sin_test(200);                 // 正弦测试,可以听到一声滴
  60.                
  61.                 znFAT_ReadDataX(&fileinfo,0,fileinfo.File_Size); //调用读取文件函数(重定向),将数据送至VS1003
  62.       
  63.                 VS_Reset();
  64.                
  65.                 n++;
  66.         }
  67.         UART_Send_Str("===========================================================\n");
  68.         UART_Send_StrNum("文件列举完毕,共有文件(个):",n);
  69.         while(1);
  70.         return 0;
  71. }

复制代码

所有资料51hei提供下载:
第21章 MP3播放器.zip (19.99 MB, 下载次数: 177)

评分

参与人数 2黑币 +58 收起 理由
ko44 + 8 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:145935 发表于 2018-5-18 16:16 | 显示全部楼层
谢谢分享!下来看看。
回复

使用道具 举报

ID:466525 发表于 2019-12-10 13:56 | 显示全部楼层
楼主通过测试没
回复

使用道具 举报

ID:466525 发表于 2019-12-10 13:56 | 显示全部楼层
楼主通过MP3测试没,我正弦测试可以 ,音乐一直不发声音
回复

使用道具 举报

ID:983266 发表于 2021-11-22 00:42 | 显示全部楼层
这个好东西啊。不错
回复

使用道具 举报

ID:984448 发表于 2021-11-28 12:09 | 显示全部楼层
楼主通过测试了吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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