简版51声音播放。

2020-01-25 15:13发布

51播放声音,原理:产生对应声音频率的方波(定时器),然后延时。依次循环就可以播放声音。
网上看了好多历程,难点在于乐谱的编辑,什么高音,低音,中音。连音,普通音。什么高八度,低八度,完全不懂。最后决定搞一个简版的,糊弄下大家。
定义一个音1BYTE,1-7这几个音符占用BIT0-BIT2,剩余一个用来表示符号'-'.BIT3表示有无附点,BIT4表示是否升半音,BIT5-BIT6表示音长。
去掉了数字上面一个点的,数字下面点的都没有。连音也没有。反正就是乱搞就是了。但不管怎么说,可以糊弄过去了貌似。
那就先上图
曲谱:
截图00.jpg (96.76 KB, 下载次数: 1) 下载附件 2014-1-9 17:16 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
ypm
1楼-- · 2020-01-26 20:52
xou822 发表于 2014-1-10 08:19
额 这尼玛也太简单了哈   谢谢分享

一切为了节省资源哈,被迫的。要是所有音高,音长参数都算上的话,要么用2个BYTE表示一个音,要么就要想办法把这些参数压缩到一个BYTE里面去。相比之下,一个BYTE比2个BYTE节省的资源可是很大的。放出来的声音也还好。
wkman
2楼-- · 2020-01-27 01:40
看样子是 直流蜂鸣器,如果用 交流喇叭,需要个电容隔直,
minier
3楼-- · 2020-01-27 06:32
 精彩回答 2  元偷偷看……
xwkm
4楼-- · 2020-01-27 08:53
可以试试存一段sine数据然后变速播放什么的。
记的有人用AVR写了个复音music box
elm-chan
xou822
5楼-- · 2020-01-27 10:40
ypm 发表于 2014-1-10 09:35
一切为了节省资源哈,被迫的。要是所有音高,音长参数都算上的话,要么用2个BYTE表示一个音,要么就要想 ...

恩  这个方案更像是数码音乐  而不是放MP3那种的声音
LZ19992005
6楼-- · 2020-01-27 15:30

这是简易的乐音,标准的要出正弦波

一周热门 更多>