单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有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
基于PIC单片机控制的数字视频混合器 介绍了一种利用P IC 单片机中断技术来控制数字视频混合处理芯片, 实现将2 路或多路数字视频信号混合成1 路或多路输出的数字视频混合器的硬件构成和软件设计。通过实际应用表明, 该数字视频混合器操作方式简单灵活、可靠性高, 有较好的市场价值。关键词 P IC 单片机; 数字视频; 视频混合器; 键控本文主要介绍了的基于P IC 单片机控制的数字视频键控混合器, 该混合器具有以下功能: 内含两级串联的键控混合器, 可以在主信号中键入2路附加数字信号, 如各种字幕标识; 可以远程遥控, 也可现场按键控制; 可以随时更新和保存系统配置, 改变系统功能和技术参数; 该系统稳定可靠, 对掉电、死机等异常现象有自复位能力。整个系统主要包括硬件和软件两部分, 硬件包括数字混合部分和单片机控制部分。
上传时间: 2013-10-26
上传用户:haohao
提出了一种在TI公司高性能数字信号处理器TMS320DM3730上进行H.264编码器(即x264编码器)移植与优化的方法,详细描述了在CCS4.2开发平台上进行x264编码器移植工作的基本原理和需要注意的问题。为了提高编码速度,针对DM3730处理器的结构特点,对x264编码器进行了优化,主要方法包括编译器优化、内存优化、C语言代码优化及汇编代码优化。对x264编码器进行的CIF格式编码测试结果表明,在均值信噪比略微降低的前提下,编码速度得到了显著提高,因此获得了更优的编码效率。
上传时间: 2013-10-30
上传用户:evil
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-11-06
上传用户:smallfish
文章分析了雷达高速宽带数字接收与恢复的现状,以及制约其发展的关键因素,提出基于高速串行器/解串器、FPGA和正交数字上变频器的高速宽带数字接收与恢复系统方案。系统以光纤为传输媒介,以FPGA为控制核心,正交调试器为信号调制平台,完成高速数字接收、基带信号预处理与基带信号的上变频等功能。该系统具有误码率低、可靠性高的优点。
上传时间: 2014-12-28
上传用户:czl10052678
摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。
上传时间: 2013-10-13
上传用户:lml1234lml
伺服与变频:伺服与变频的一个重要区别是: 变频可以无编码器,伺服则必须有编码器,作电子换向用. 一、两者的共同点: 交流伺服的技术本身就是借鉴并应用了变频的技术,在直流电机的伺服控制的基础上通过变频的PWM方式模仿直流电机的控制方式来实现的,也就是说交流伺服电 机必然有变频的这一环节:变频就是将工频的50、60HZ的交流电先整流成直流电,然后通过可控制门极的各类晶体管(IGBT,IGCT等)通过载波频率 和PWM调节逆变为频率可调的波形类似于正余弦的脉动电,由于频率可调,所以交流电机的速度就可调了(n=60f/2p ,n转速,f频率, p极对数) 二、谈谈变频器: 简单的变频器只能调节交流电机的速度,这时可以开环也可以闭环要视控制方式和变频器而定,这就是传统意义上的V/F控制方式。现在很多的变频已经通过数学 模型的建立,将交流电机的定子磁场UVW3相转化为可以控制电机转速和转矩的两个电流的分量,现在大多数能进行力矩控制的著名品牌的变频器都是采用这样方 式控制力矩,UVW每相的输出要加摩尔效应的电流检测装置,采样反馈后构成闭环负反馈的电流环的PID调节;ABB的变频又提出和这样方式不同的直接转矩 控制技术,具体请查阅有关资料。这样可以既控制电机的速度也可控制电机的力矩,而且速度的控制精度优于v/f控制,编码器反馈也可加可不加,加的时候控制 精度和响应特性要好很多。 三、谈谈伺服: 驱动器方面:伺服驱动器在发展了变频技术的前提下,在驱动器内部的电流环,速度环和位置 环(变频器没有该环)都进行了比一般变频更精确的控制技术和算法运算,在功能上也比传统的伺服强大很多,主要的一点可以进行精确的位置控制。通过上位控制 器发送的脉冲序列来控制速度和位置(当然也有些伺服内部集成了控制单元或通过总线通讯的方式直接将位置和速度等参数设定在驱动器里),驱动器内部的算法和 更快更精确的计算以及性能更优良的电子器件使之更优越于变频器。 电机方面:伺服电机的材料、结构和加工工艺要远远高于变频器驱动的交流电机 (一般交流电机或恒力矩、恒功率等各类变频电机),也就是说当驱动器输出电流、电压、频率变化很快的电源时,伺服电机就能根据电源变化产生响应的动作变 化,响应特性和抗过载能力远远高于变频器驱动的交流电机,电机方面的严重差异也是两者性能不同的根本。就是说不是变频器输出不了变化那么快的电源信号,而 是电机本身就反应不了,所以在变频的内部算法设定时为了保护电机做了相应的过载设定。当然即使不设定变频器的输出能力还是有限的,有些性能优良的变频器就 可以直接驱动伺服电机!!! 四、谈谈交流电机: 交流电机一般分为同步和异步电机 1、交流同步电机:就是转子是由永磁材料构成,所以转动后,随着电机的定子旋转磁场的变化,转子也做响应频率的速度变化,而且转子速度=定子速度,所以称"同步"。 2、交流异步电机:转子由感应线圈和材料构成。转动后,定子产生旋转磁场,磁场切割定子的感应线圈,转子线圈产生感应电流,进而转子产生感应磁场,感应 磁场追随定子旋转磁场的变化,但转子的磁场变化永远小于定子的变化,一旦等于就没有变化的磁场切割转子的感应线圈,转子线圈中也就没有了感应电流,转子磁 场消失,转子失速又与定子产生速度差又重新获得感应电流。。。所以在交流异步电机里有个关键的参数是转差率就是转子与定子的速度差的比率。 3、对应交流同步和异步电机变频器就有相映的同步变频器和异步变频器,伺服电机也有交流同步伺服和交流异步伺服,当然变频器里交流异步变频常见,伺服则交流同步伺服常见。
标签: 伺服
上传时间: 2013-11-17
上传用户:maqianfeng
MATLAB程序的仿真比较。随后,针对QPsK,详细讨论了其基本原理和具体的实现算法,并进行了仿真验证,然后选用HSP502巧数字上变频芯片和HSP50214B数字下变频芯片,设计了数字调制、解调器的实现方案。最后,作为对整个数字视频图像传输系统的宏观认识,利用M户JLAB中的实时建模仿真Simullnk库对典型的视频图像传输系统一数字视频广播系统(D vB),进行了建模、仿真和初步的分析,结果表明:在高斯白噪声的传输环境下,系统采取的一系列抗干扰措施,包括内、外码级联的信道纠错编码和先进的调制技术(o FDM)等,保证了信源信息传输的有效进行。
上传时间: 2013-12-26
上传用户:songrui
数字运算,判断一个数是否接近素数 A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no
上传时间: 2015-05-21
上传用户:daguda
ADT600-1的基地址0x300,中断为7, 3个定时器采用级连,CLK0的时钟源是模块上的8M震荡器,中断源为71054定时器的输出OUT2。采集电压范围为+/-5V,请按《ADT200/ADT600技术手册 版本B》上的说明对SW1,W5,W6,W9跳线。若你想修改中断号和基地址,请修改config.h相应的常量ADT_IRQ, ADT_BASE定义,然后重新编译安装,即运行make all 注意:不要在其他文件中修改。
上传时间: 2016-02-12
上传用户:evil