标题: STC8A8K64S4A12单片机播放badapple(带声音) [打印本页]

作者: 没有你    时间: 2020-2-19 20:31
标题: STC8A8K64S4A12单片机播放badapple(带声音)
    “有屏幕的地方,就有坏苹果”,足以说明坏苹果的流行。坏苹果搭配的视频是黑白风格的,特别适合单色屏来显示。单片机有不少好玩的东东,坏苹果就是其中一个。下面我简单介绍一下自己用STC8A8K64S4A12单片机演示坏苹果的过程。
    这次用到的硬件有:STC8A8K64S4A12单片机、0.96寸 OLED、SD卡槽和VS1053音频解码IC。首先,我们需要下载一个坏苹果的视频文件,这个视频文件网上很容易找到,就不贴链接了。STC8A8K64S4A12单片机的性能不高,不能用于软解视频文件。不过,STC8A8K64S4A12单片机驱动OLED显示图片还是绰绰有余的。需要把视频画面截取成多个画面,我用PotPlayer软件,选择视频-连续截取画面,在尺寸设置栏目,设置截取为自定义尺寸128×64,在格式设置栏目,设置BMP,在截图设置栏目,设置采集数量9999,设置按帧间隔 每帧1。
    截取完成后,能截取处多张BMP格式的图片。此时的BMP图片不是纯粹的单色灰度,带有不少其他信息,为了把这部分信息剔除,用Image2Lcd软件,将BMP图片批量转换成单色的BMP图片。

    这样,每张图片大小为1084个字节,前面60个字节是BMP的文件大小、分辨率等信息,后面1024个字节是像素信息,对应128×64分辨率。PC端的BMP图片显示顺序是列:左→右,行:下→上。以根据这个特点,写BMP图片显示的处理函数时,要最先填充第七页的128个数据,然后是第六页···直到第零页的128个数据。为了方便单片机读取图片数据,我将所有的BMP文件复制合并为一个bin文件。合并的方法也很简单,将所有的BMP文件复制到SD中,利用开源fatfs文件系统,让单片机每次加载BMP内的数据,再写入到一个合并bin文件的末尾。经过多轮操作后,就可以完成所有的BMP文件的合并。
   坏苹果的音频也是用PotPlayer软件获取,选择声音-音轨-声音录制,格式设置栏目,选择格式:MP3,质量:128kbps。这样就能得到MP3格式坏苹果音频文件了。音频数据的解码是用VS1053,单片机将音频数据流传输给VS1053,VS1053就能自动识别和解码,非常方便。

    经过上面的步骤,现在已经有了一个合并的bin图像文件和一个mp3音频文件,把这两个文件放在SD卡的根目录下面。接下来就是数据的显示处理了。要实现同时带动画和声音的坏苹果,需要在每轮依次读取图像数据和音频数据,然后驱动OLED显示和VS1053。程序实现方面我就不细讲了,代码有注释。
    下面是演示视频的链接地址:https://v.youku.com/v_show/id_XN ... 42.soresults.dtitle
    下面badapple工程图

    下面是硬件实物图


    相关工程和文件会传到附录中,需要的可以下载。

badapple.rar

4.92 MB, 下载次数: 89, 下载积分: 黑币 -5

工程相关文件


作者: kongchengEC    时间: 2020-5-4 22:16
蛤,刚刚拿了个8A8K,想学习一下放个坏苹果,上网搜搜看看有没有蜂鸣器的代码,结果连屏幕的播放都做好了。感谢楼主,拿走学习!!!
作者: 没有你    时间: 2020-5-7 00:06
kongchengEC 发表于 2020-5-4 22:16
蛤,刚刚拿了个8A8K,想学习一下放个坏苹果,上网搜搜看看有没有蜂鸣器的代码,结果连屏幕的播放都做好了。 ...

多谢支持
作者: 13487086265    时间: 2020-11-28 11:37
iar版本低了 打不开 能发一份低版本的吗
作者: 13487086265    时间: 2021-4-2 17:41
电路图能发一份吗
作者: mmlyy2001    时间: 2023-3-16 15:30
看看能不能移植到其它STC上




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1