简版51声音播放。
51播放声音,原理:产生对应声音频率的方波(定时器),然后延时。依次循环就可以播放声音。网上看了好多历程,难点在于乐谱的编辑,什么高音,低音,中音。连音,普通音。什么高八度,低八度,完全不懂。最后决定搞一个简版的,糊弄下大家。
定义一个音1BYTE,1-7这几个音符占用BIT0-BIT2,剩余一个用来表示符号'-'.BIT3表示有无附点,BIT4表示是否升半音,BIT5-BIT6表示音长。
去掉了数字上面一个点的,数字下面点的都没有。连音也没有。反正就是乱搞就是了。但不管怎么说,可以糊弄过去了貌似。
那就先上图
曲谱:
用于测试。大概还行。
仿真:
源文件 大学的时候课本上就有这么个例子。 为了多刷几层楼,我再贴一个声音code转换软件,配使用。 copy了。。。。。。。。。。。。。。。。 {:victory:}{:victory:}{:victory:}{:victory:} 额 这尼玛也太简单了哈 谢谢分享 xou822 发表于 2014-1-10 08:19
额 这尼玛也太简单了哈 谢谢分享
一切为了节省资源哈,被迫的。要是所有音高,音长参数都算上的话,要么用2个BYTE表示一个音,要么就要想办法把这些参数压缩到一个BYTE里面去。相比之下,一个BYTE比2个BYTE节省的资源可是很大的。放出来的声音也还好。 看样子是 直流蜂鸣器,如果用 交流喇叭,需要个电容隔直,{:victory:} 这是简易的乐音,标准的要出正弦波 可以试试存一段sine数据然后变速播放什么的。
记的有人用AVR写了个复音music box
elm-chan ypm 发表于 2014-1-10 09:35
一切为了节省资源哈,被迫的。要是所有音高,音长参数都算上的话,要么用2个BYTE表示一个音,要么就要想 ...
恩这个方案更像是数码音乐而不是放MP3那种的声音
这是简易的乐音,标准的要出正弦波
页:
[1]