那位专家可以告诉我下面这些单片机音乐代码是怎样得出的? song1_tone[]={212,212,190,212,159,169,} ;
答案:1 悬赏:30 手机版
解决时间 2021-01-25 01:39
- 提问者网友:謫仙
- 2021-01-24 19:44
那位专家可以告诉我下面这些单片机音乐代码是怎样得出的? song1_tone[]={212,212,190,212,159,169,} ;
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-01-24 20:18
那些码实际就是数值。定时器的数值
音乐按音阶对应着信号的频率比如标准音:A 440HZ,哦,你搜440HZ就能找到很多信息,包括其它音阶的频率。
所以你按照简谱,根据音阶——频率的对照,写出频率和时长。再把频率用你所使用的单片机和参数写成定时器数值。
然后用程序按数组键的顺序不断替换定时器设置值,就能播放出来了。
话说用二维数组最好,能存储定时器设置值和时长。。。然后存储在EEPROM里,这样播放的音乐就可以是不固定的了。
当然,还有其它的做法。追问我用的是AT89C51单片机,能给我举一个例子吗,例如里面的212具体是怎么得出的,麻烦大神了追答不记得51的定时器了~~~
比如标准音:A 440HZ,为了输出谐波少一些,只好用50%的方波。440Hz频率的信号,周期是2.273mS,其中包含一半高电平、一半低电平,换句话说,一个周期你要对端口的引脚输出设置两次,也就是 1.136mS。这个值就是你的定时器需要设置产生的时间长度——1.136mS中断一次。
要是定时器不会设置,看书吧。。
音乐按音阶对应着信号的频率比如标准音:A 440HZ,哦,你搜440HZ就能找到很多信息,包括其它音阶的频率。
所以你按照简谱,根据音阶——频率的对照,写出频率和时长。再把频率用你所使用的单片机和参数写成定时器数值。
然后用程序按数组键的顺序不断替换定时器设置值,就能播放出来了。
话说用二维数组最好,能存储定时器设置值和时长。。。然后存储在EEPROM里,这样播放的音乐就可以是不固定的了。
当然,还有其它的做法。追问我用的是AT89C51单片机,能给我举一个例子吗,例如里面的212具体是怎么得出的,麻烦大神了追答不记得51的定时器了~~~
比如标准音:A 440HZ,为了输出谐波少一些,只好用50%的方波。440Hz频率的信号,周期是2.273mS,其中包含一半高电平、一半低电平,换句话说,一个周期你要对端口的引脚输出设置两次,也就是 1.136mS。这个值就是你的定时器需要设置产生的时间长度——1.136mS中断一次。
要是定时器不会设置,看书吧。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯