单片机控制蜂鸣器唱歌的原理

单片机控制蜂鸣器唱歌的原理

ID:39118902

大小:109.50 KB

页数:3页

时间:2019-06-25

单片机控制蜂鸣器唱歌的原理_第1页
单片机控制蜂鸣器唱歌的原理_第2页
单片机控制蜂鸣器唱歌的原理_第3页
资源描述:

《单片机控制蜂鸣器唱歌的原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。1)音调的确定音调就是我们常说的音高。它是由频率来确定的!我们可以查出各个音符所对应的相应的频率,那么现在就需要我们来用51来发出相应频率的声音!我们常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音

2、,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:A的频率f=440Hz,其对应的周期为:T=1/f=1/440=2272μs那么,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t=T/2=2272/2=1136μs,也就是清零、置位在一个周期内完成.这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:t=12*(TALL–THL)/f0式中TALL=

3、216=65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为:TH=THL/256=(TALL–t*f0/12)/256TL=THL%256=(TALL–t*f0/12)%256将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致)即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的时器高低计数器的予置初值为:TH440Hz=(65536–1136*12/12)/256=FBHTL440Hz=(65536–1136*12/12)%256=90H就这样,我们通过延时,发出了我们所需

4、要的频率以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示:2)节拍的确定在一张乐谱中,我们经常会看到这样的表达式,如1=C(4/4)、1=G(3/4)……等等,这里1=C(4/4),1=G(3/4)表示乐谱的曲调,和我们前面所谈的音调有很大的关联,4/4、3/4就是用来表示节拍的。以3/4为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。其中1、2为一拍,3、4、5为一拍,6为一拍共三拍。1、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的

5、一半,即为八分音符长,6的时长为四分音符长。一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。