功能扩展用单片机实现电子音乐曲调

功能扩展用单片机实现电子音乐曲调

ID:35119359

大小:68.00 KB

页数:5页

时间:2019-03-18

功能扩展用单片机实现电子音乐曲调_第1页
功能扩展用单片机实现电子音乐曲调_第2页
功能扩展用单片机实现电子音乐曲调_第3页
功能扩展用单片机实现电子音乐曲调_第4页
功能扩展用单片机实现电子音乐曲调_第5页
资源描述:

《功能扩展用单片机实现电子音乐曲调》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、功能扩展:用单片机实现电子音乐曲调一、程序功能用keil编制c程序,利用P0输出不同频率的脉冲,产生方波,通过扬声器发出不同频率音调。二、音调、节拍以及编码的确定方法一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。1、音调的确定1)要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I

2、/O脚上得到此频率的脉冲。2)利用AT89C51的内部定时器使其工作在计数器模式下,改变计数值TH0及TL0以产生不同频率的方法。此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。3)计数脉冲值与频率的关系公式如下:N=Fi2FrN:计算值;Fi:内部计时一次为1us,故其频率为1MHz;4)其计数值的求法如下:T=65536-N=65536-Fi2Fr例如:设K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的计算值T=65

3、536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=650595)C调各音符频率与计数值T的对照表如表4.1所示。表4.1C调各音符频率与计数值T的对照表低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do﹟2771805217Do﹟554903108Do﹟11095454Re2941701204Re5878521

4、02Re11755151Re﹟3111608193Re﹟62280497Re﹟12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa﹟3701351162Fa﹟74067681Fa﹟14804141So3921276153So78463877So15683838So﹟4151205145So﹟83160272So﹟16613636La4401136136La88056868La17603434La﹟4641078129La﹟93253664La﹟18653232Si4941012121Si9

5、8850661Si197630302、节拍的确定对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。表4.2节拍与节拍码对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,图5.2为节拍码的对照。如果1拍为0.4秒,1/4拍实0.

6、1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。表4.31/4和1/8节拍的时间设定曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒三、程序清单1、主程序#include"reg51.h"sbitP00=P0^0;//扬声器控制引脚#defineClk0x070000unsignedchardataval_H;//计数器高字节unsignedchardataval_L;//计数器低

7、字节//频率表unsignedintcodefreq_list[]={783,523,586,658,697,783,523,523,879,697,783,879,987,1045,523,523,697,783,697,658,586,658,697,658,586,523,586,494,523,586,658,586,783,523,586,658,697,783,523,523,879,697,783,879,987,1045,523,523,6

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

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

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