用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波, 从常见的电子琴的键盘谈起。
在下表中,可以看到一列黑白相间的琴键(示意)。主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。
2.频率
注意看一下几个6(拉)的频率,它们是整数,容易看出规律――是成2倍的关系。其它的音符,也有同样的规律。这些频率,如220、440等,它们在琴键上的位置是世界统一的,无论是钢琴、手风琴,还是电子琴,都是一样的。
包括黑键和白键在内的全部音符的频率数值,是成“等比数列”的关系,它们之间有个公比,可以按照“2倍”的规律推算出来。
已知最低音的6(拉)的频率是220,设公比为q,那么:7的频率就是220*q*q 。
乘了两个q,是因为6、7之间隔了个黑键。以此类推,两个6之间,共有12个琴键,所以:
低音区的6(拉)的频率 就是:220*q*q*q*q*q*q*q*q*q*q*q*q = 440。
马上就可以看出,12个q相乘,等于: 440 / 220 = 2。
那么就可以求出公比:q = 2的12次方根 = 1.059463094。
用这个公比,和已知的220进行计算,可以得出全部琴键所对应的频率,如下表中所示。
3.定时初值
频率的倒数是周期,用单片机输出方波,应该在半个周期的时刻,将输出取反。
设单片机的晶振为12MHz,那么定时器将在1us进行一次加一,加到65536就会出现中断。据此,就可计算出定时器定时半个周期所需的初值,如下表中所示。
4.音调数据表
单片机发出不同频率的方波,人听起来,就是不同的音调。
上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。把下面这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。
定义音调数据表的程序如下:
DW 63625, 63833, 64019, 64104, 64260, 64400, 64524 ;低音区:1 2 3 4 5 6 7
DW 64580, 64685, 64778, 64820, 64898, 64968, 65030 ;中音区:1 2 3 4 5 6 7
DW 65058, 65110, 65157, 65178, 65217, 65252, 65283 ;高音区:1 2 3 4 5 6 7
DW 65297 ;超高音:1
引用地址:单片机播放音乐解析
在下表中,可以看到一列黑白相间的琴键(示意)。主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。
2.频率
注意看一下几个6(拉)的频率,它们是整数,容易看出规律――是成2倍的关系。其它的音符,也有同样的规律。这些频率,如220、440等,它们在琴键上的位置是世界统一的,无论是钢琴、手风琴,还是电子琴,都是一样的。
包括黑键和白键在内的全部音符的频率数值,是成“等比数列”的关系,它们之间有个公比,可以按照“2倍”的规律推算出来。
已知最低音的6(拉)的频率是220,设公比为q,那么:7的频率就是220*q*q 。
乘了两个q,是因为6、7之间隔了个黑键。以此类推,两个6之间,共有12个琴键,所以:
低音区的6(拉)的频率 就是:220*q*q*q*q*q*q*q*q*q*q*q*q = 440。
马上就可以看出,12个q相乘,等于: 440 / 220 = 2。
那么就可以求出公比:q = 2的12次方根 = 1.059463094。
用这个公比,和已知的220进行计算,可以得出全部琴键所对应的频率,如下表中所示。
3.定时初值
频率的倒数是周期,用单片机输出方波,应该在半个周期的时刻,将输出取反。
设单片机的晶振为12MHz,那么定时器将在1us进行一次加一,加到65536就会出现中断。据此,就可计算出定时器定时半个周期所需的初值,如下表中所示。
4.音调数据表
单片机发出不同频率的方波,人听起来,就是不同的音调。
上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。把下面这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。
定义音调数据表的程序如下:
DW 63625, 63833, 64019, 64104, 64260, 64400, 64524 ;低音区:1 2 3 4 5 6 7
DW 64580, 64685, 64778, 64820, 64898, 64968, 65030 ;中音区:1 2 3 4 5 6 7
DW 65058, 65110, 65157, 65178, 65217, 65252, 65283 ;高音区:1 2 3 4 5 6 7
DW 65297 ;超高音:1
上一篇:单片机设计LCD数字钟(万年历)
下一篇:单片机模拟信息家电设计方案
小广播
热门活动
换一批
更多
最新工业控制文章
- 凝心聚力推动创新转型,清洁能源时代下特高压领域谱写更多可能性
- 英飞凌推出全球首款非接触式支付卡技术SECORA™ Pay Green,最多减少100%的塑料垃圾
- 当AI遇上边缘计算,研华以Edge AI推进嵌入式产业变革
- 罗克韦尔自动化亮相第七届进博会,三大引擎链动可持续未来
- 构建“绿色工厂”矩阵 美芝、威灵打造家电“绿色竞争力”
- e络盟扩展工具和生产用品产品线,进一步支持工业运营需求
- 【广濑Hirose Electric连接器】板对板/基板对FPC连接器 DF40系列/DF40T系列
- BlackBerry QNX与英特尔合作推出软件定义功能安全平台,助力工业自动化
- 【Amphenol】安费诺解锁自主机器人潜力 | 电池管理系统的关键作用
502 Bad Gateway
更多热门文章
更多每日新闻
更多往期活动
11月11日历史上的今天
厂商技术中心