关于单片机--蜂鸣器输出音调设置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34724366/article/details/80642207

    根据查找资料,现做以总结和说明。  

    1.  首先要明确音调问题:

    音调在简谱中的发音为:1 2 3 4 5 6 7 。读作多来米发梭拉西。重低音区的音调“拉”(6)。在各乐器中(电子琴、手风琴)的发声频率都是220Hz,低音区的“拉”为440Hz,中音区的“拉”为 880Hz,高音区为1760Hz。 世界范围内统一标准。以电子琴举例: 重低音“拉”与低音“拉”之间,间隔12个按键(白健加黑键)。相邻两个音调之间的频率成等比数列。 

    2.音调频率的计算: 

    如果设等比数列中的公比为q,则: 220*q*q*...*q (12个q) = 440,由此可得:q = 1.059463.  由此可计算每个按键的频率值。 所以: 中音“多”的频率值为: 440*q*q*q = 523.(低音 6 与 中音 1 之间相隔一个白健一个黑键)。

    3. 单片机定时器的设置: 

    频率的倒数是周期,用单片机输出方波,应该在半个周期的时刻,将输出取反。 设单片机的晶振为12MHz,那么定时器将在1us进行一次加 1 . 加到65536就会出现中断。 据此,就可计算出定时器定时半个周期所需的初值,如下表中所示:

单片机播放音乐的基本知识 - 非著名博主 - 电子信息角落

    4. 定时器初值: 

       将以上计算所得的值,作为定时器初值,如果需要某个音调的声音,将对应的初值赋值给定时器即可。 当定时器值满溢出时,产生中断,切换电平值。据此,可以产生不同频率的方波,我们就会听到不同音调的声音了。 


展开阅读全文

没有更多推荐了,返回首页