AI8051U播放下载在Flash中的立体声32K采样的ADPCM音乐
本帖最后由 梁工 于 2024-9-13 14:32 编辑AI8051U播放下载在Flash中的, 立体声32K采样的ADPCM音乐
本程序使用AI8051U实验箱V1.2验证。用户先别修改程序,直接下载HEX文件到AI8051U实验箱V1.2来验证,下载时选择主频40.96MHz。
使用AI8051U系列MCU播放下载存储于FLASH中的ADPCM音乐,支持立体声或单声道,采样率固定为32KHz,用户可以自行修改采样率。音乐文件由下载工具下载。使用ADPCM是为了减少容量,16MByte的FLASH可以播放8分30秒的立体声音乐,2首歌的容量。
实验箱如下图,相关的硬件已用红框标记:
下载完成后,连接电脑USB,打开串口助手,如下图所示:
在发送缓冲区输入文本“DownLoad”,MCU开始擦除FLASH,并串口打印提示“正在擦除\xfdFLASH,请稍后...”,同时数码管也提示-EA-:
擦除完成后,串口打印提示“FLASH擦除\xfd完成! 请发送ADPCM音乐文件!”,同时数码管也提示-DL-:
点击“发送文件”,进入下面的界面,打开要下载的ADPCM文件,选择“自动连续发送”,数据包之间的延时选择1ms,点击“发送数据”,直到发送完成。
此后,就可以播放音乐了。数码管左边P表示播放,00.07表示时间分秒。
程序源代码:
两首歌曲,ADPCM 32K立体声:
AI8051U 当 8-BIT用,就是 8H8K64U的改进版;
AI8051U 当 32-BIT用,就是 32G12K128的改进版
{:4_165:} {:4_250:}{:4_250:}{:4_250:} 能用STC8051U-34K64-PDIP40来做吗?
南风2013 发表于 2024-11-17 14:11
能用STC8051U-34K64-PDIP40来做吗?
可以的,根据学习板语音相关的电路改到40脚上,如果IO跟例子不同,程序切换下IO即可。 往flash里导歌,其实可以用一下USB MSC。把模拟优盘程序(不到10k)加到代码里。
播放了话
不想搞文件系统,就用16进制查看器二进制写盘把歌写进去直接从偏移量开始播放,速度也比较快。
想上文件系统了话,不依赖任何第三方软件直接把歌拖进优盘,解析fat12进行播放。方便快捷,就跟真正的随身听导入歌曲一模一样
原本这样完整的随身听功能在8k64u上搞过,8M磁盘空间,插电脑显示优盘直接拷歌,拷完就能选择播放。
主要现在没空搞了,性能更高的8051u做这个肯定更容易
梁版主你好,最新的AI8051试验箱V1.2版,
下载一楼的程序时IRC无法输入选择40.96M,
我选择了40MIRC,下载后播放音频只有噪声.
2首歌都是一样的状况.
115200波特率下载一首歌曲大约30分钟左右.
East Wind 41 发表于 2024-12-12 20:47
梁版主你好,最新的AI8051试验箱V1.2版,下载一楼的程序时IRC无法输入选择40.96M,我选择了40MIRC,下载后播 ...明显的你的数据错误了。请再详细看一下使用说明。
我的程序使用的是USB-CDC通讯,不是普通的串口,波特率没有意义,擦除16M FLASH要40秒左右,下载10M的《加州旅馆》耗时2分零8秒。
主频使用40MHz没有任何问题,只是音调稍低一点点。你下载文件的设置不对,请看详细看说明,特别留意下面的设置:
点击“发送文件”,进入下面的界面,打开要下载的ADPCM文件,选择“自动连续发送”,数据包之间的延时选择1ms,点击“发送数据”,直到发送完成。
页:
[1]
2