单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有12个半音。A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。各调的对应的标准频率为: 单片机演奏音乐时音调和节拍的确定方法 经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与 ,2(来)与 ……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有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。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例: A的频率f = 440 Hz,其对应的周期为: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 = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G …… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值 : C调音符 频率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC调音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7频率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C调音符 频率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上传时间: 2013-10-20
上传用户:哈哈haha
着直接转矩控制等高性能控制技术研究的深入与成熟,交流电气调速系统正在逐步扩大其应用领域。交流调速系统往往要求对转速实施闭环控制,这是通过转速PI调节器实现的;但是,转速调节器中的比例常数与积分常数基本上仍通过试凑法确定的,这无疑浪费了大量的时间和精力。文章基于理论推导和工程化设计方法研究了两种参数设计方法,给出了MATLAB中的仿真结果,仿真结果表明工程化设计方法更为有效。关毽词:直接转矩控制速度调节器仿真工程化设计
上传时间: 2013-12-14
上传用户:BOBOniu
剖析Intel IA32 架构下C 语言及CPU 浮点数机制 Version 0.01 哈尔滨工业大学 谢煜波 (email: xieyubo@126.com 网址:http://purec.binghua.com) (QQ:13916830 哈工大紫丁香BBSID:iamxiaohan) 前言 这两天翻看一本C 语言书的时候,发现上面有一段这样写到 例:将同一实型数分别赋值给单精度实型和双精度实型,然后打印输出。 #include <stdio.h> main() { float a double b a = 123456.789e4 b = 123456.789e4 printf(“%f\n%f\n”,a,b) } 运行结果如下:
标签: Version xieyubo Intel email
上传时间: 2013-12-25
上传用户:徐孺
问题描述 序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子序列,相应的递增下标序列为<2,3,5,7>。 一般地,给定一个序列X=<x1,x2,…,xm>,则另一个序列Z=<z1,z2,…,zk>是X的子序列,是指存在一个严格递增的下标序列〈i1,i2,…,ik〉使得对于所有j=1,2,…,k使Z中第j个元素zj与X中第ij个元素相同。 给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。 你的任务是:给定2个序列X、Y,求X和Y的最长公共子序列Z。
上传时间: 2014-01-25
上传用户:netwolf
1.推动教育学发展的内在动力是( D)的发展。A.教育规律 B.教育价值 C.教育现象 D.教育问题 2.提出“泛智”教育思想,探讨“把一切事物教给一切人类的全部艺术”的教育家是( B)A.培根 B.夸美纽斯 C.赫尔巴特 D.赞可夫
上传时间: 2017-01-06
上传用户:1427796291
交直流调速系统与MATLAB仿真 书籍,PDF格式的,将交直流调速技术和MATLAB仿真技术有机结合在一起,主要内容包括直流调速系统及其仿真、直流调速系统的动态设计及其仿真、直流脉宽调速系统及其仿真、交流调压调速系统和串级调速系统及其仿真、交流异步电动机变频调速系统及其仿真、交流异步电动机矢量控制变频调速系统及其仿真、同步电动机调速系统及其仿真。
上传时间: 2014-01-24
上传用户:qb1993225
pcf project dds sdfsd sdcsc sdcsc sdxcs gh fgb dfv fdgbvfg b fg fb fgbv gbfbf s bgtb fgbfv b fbvf v fbg b v fgg ffg fggfv.
标签: sdcsc fdgbvfg project fgbfv
上传时间: 2014-12-19
上传用户:xwd2010
台达变频器说明书,此说明书主要用于台达B型变频器调试参数
标签: 台达变频器
上传时间: 2017-12-31
上传用户:wshaoheng
1.优点 取消了离合器,能够根据发动机负荷和车速等情况自动变换传动比,使汽车获得良好的动力 性和燃料经济性,并减少发动机排放污染. 换档平滑、无冲击、振动,噪音小.在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 操纵轻便,在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 传动效率高,能防止发动机过载.第一章2.分类 1.按齿轮变速系统的控制方式分为:a.液控液动自动变速器:在手控制阀选定位置后, 由反映节气门开度的节气门阀和反映车速的调 速器阀把节气门开度和车速转变为液压信号.在 换档点,这些液压信号直接控制换挡阀进行换 b.电控液动自动变速器:在手控制阀选定位置后,由反映节气门开度的节气 门位置传感器和反映车速的车速传感器把节气门开度和 车速3.自动变速器操纵手柄的使用 操纵手柄只改变自动变速器
标签: 汽车变速器
上传时间: 2021-10-17
上传用户:XuVshu
针对当前电网需要能输出高质量的交流电,且需具备较好的负载适应性及调压、调频等问题。设计了基于STM32F103C8T6单片机控制的DC-AC三相正弦波逆变器。文章详细分析了三相逆变器硬件电路各个模块的工作原理及相关参数的设计,分析了用于控制三相逆变器的SPWM调制技术、基于数字PI控制的功率变换技术,同时进行了硬件电路设计、软件设计,制作了三相逆变器实物。通过对逆变器调压、调频测试,结果表明所制作的三相逆变器调压、调频控制方案的可行性与有效性。
上传时间: 2022-03-28
上传用户:aben