单片机演奏简单的音乐.doc

单片机演奏简单的音乐.doc

ID:55305172

大小:265.50 KB

页数:19页

时间:2020-05-09

单片机演奏简单的音乐.doc_第1页
单片机演奏简单的音乐.doc_第2页
单片机演奏简单的音乐.doc_第3页
单片机演奏简单的音乐.doc_第4页
单片机演奏简单的音乐.doc_第5页
资源描述:

《单片机演奏简单的音乐.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、为了让单片机演奏音乐,看了不少的资料,现在整理了相关的资料,让你一次看懂音调、节拍的确定方法,看懂简谱,懂得编写用来演奏音乐的程序。单片机不能像其他的专业的乐器一样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是点单音频率。因此单片机演奏音乐比较简单,只需弄清楚“音调”和“节拍”两个概念即可。音调表示一个音符唱的多高的频率。节拍表示一个音符唱多长的时间。那么音调、节拍该怎样确定呢?首先来看音调的确定:不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、M

2、I、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。在音乐中常把五线谱中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2*f1时,则称f2比f1高一个倍频程,例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE

3、的频率(587Hz)刚好是低音RE频率(294Hz)的一倍。在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。那些在它们的左上角加上﹟号或者b号的叫变化音。﹟叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其

4、他音符基本音调的频率。基本频率看下表:低音频率中音频率高音频率Do262Do523Do1046Do﹟277Do﹟554Do﹟1109Re294Re587Re1175Re﹟311Re﹟622Re﹟1245Mi330Mi659Mi1318Fa349Fa698Fa1397Fa﹟370Fa﹟740Fa﹟1480So392So784So1568So﹟415So﹟831So﹟1661La440La880La1760La﹟464La﹟932La﹟1865Si494Si988Si1976知道了一个音符的频率后,采用的方法就是通过一个延时程序,延时对

5、应频率周期的二分之一周期(即t=1/2T)后,将单片机上连接蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将不同的延时时间值t赋给延时程序即可实现。一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:A的频率f=440Hz,其对应的周期为:T=1/f

6、=1/440=2272μs由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t=T/2=2272/2=1136μs这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:t=12*(TALL–THL)/f0式中TALL=2^16=65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为:TH=THL/256=(TALL–t*f0/12)/256TL=THL%256=(TALL–

7、t*f0/12)%256将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为:TH440Hz=(65536–1136*12/12)/256=FBHTL440Hz=(65536–1136*12/12)%256=90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。如下表:(12MHz的单片机晶振)音调对应的计数器预置值:低音频率THTL中音频率THTL高音频率THTL1262F88B1523FC

8、4311046FB211﹟277F8F21﹟554FC781﹟1109FE3C2294F95B2587FCAB21175FE552﹟311F9B72﹟622FCDB2﹟1245FE6D3330FA143659FD0831318FE84

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

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

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