虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

2272

  • 单片机音乐中音调和节拍的确定方法

    单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有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

  • 遥控芯片2262与2272

    遥控发射与接收芯片

    标签: 2262 2272 遥控芯片

    上传时间: 2013-11-18

    上传用户:spman

  • 无线识别装置

      本装置采用凌阳61单片机作为主控器,配合常用编码解码芯片PT2262/2272实现阅读器对应答器的识别,编码数据的收发控制,以及信息的存储读写功能。使用ASK调制方式的收发模块很好的实现了应答器和阅读器之间的数据传输和能量交换。应答器采用干电池供电时,具有较高的正确率,较短的识别时间和较大的耦合线圈间距。在间距D等于线圈半径R (6.8cm)时,正确率达95%,识别时间小于3秒。当应答器采用耦合线圈获得能量时,正确率不低于86%,响应时间大约3.686秒,间距在9.2cm时还能够很好的工作。并能够完成对应答器存储芯片的读写功能。另外可以显示存储器内的信息,接收信息可以语音提示。

    标签: 无线识别 装置

    上传时间: 2013-12-10

    上传用户:xiaodu1124

  • 无线pt2262

    无线pt2262,2272解码。已经试验成功

    标签: 2262 pt 无线

    上传时间: 2014-01-13

    上传用户:wqxstar

  • 在无线遥控领域

    在无线遥控领域,PT2262/2272 是目前最常用的芯片之一,但由于芯片要求配对使用,在很大程度上影响了该芯片的使用,笔者从PT2262 波形特征入手,结合应用实际,提出软件解码的方法和具体措施。

    标签: 无线遥控

    上传时间: 2017-08-12

    上传用户:sqq

  • pt2262和pt2272震荡电阻对照表

    PT2262/2272是一对带地址、数据编码功能的红外遥控发射/接收芯片。其中发射芯片PT2262-IR将载波振荡器、编码器和发射单元集成于一身,使发射电路变得非常简洁。 接收芯片PT2272的数据输出位根据其后缀不同而不同,数据输出具有“暂存”和“锁存”两种方式,方便用户使用。后缀为“M”为“暂存型”,后缀为“L”为“锁存型”,其数据输出又分为0、2、4、6不同的输出,例如:PT2272-M4则表示数据输出为4位的暂存型红外遥控接收芯片。

    标签: pt 2262 2272 电阻 对照表

    上传时间: 2021-06-26

    上传用户:xiangshuai

  • pt2262

    PT2262/2272是一对带地址、数据编码功能的红外遥控发射/接收芯片。其中发射芯片PT2262-IR将载波振荡器、编码器和发射单元集成于一身,使发射电路变得非常简洁。

    标签: 2262 pt

    上传时间: 2021-06-26

    上传用户:xiangshuai

  • VIP专区-嵌入式/单片机编程源码精选合集系列(48)

    VIP专区-嵌入式/单片机编程源码精选合集系列(48)资源包含以下内容:1. 51单片机上移植UCOSII,通过调试.2. dspgetway源代码.3. 针对三星ARM处理器的flash烧写程序.4. 优龙S3C2410平台的用ADS1.2进行编译的程序.5. 红外解码程序.6. at91sam7s64的一个应用.使用ads1.2编译器,实现usb口的通讯功能..7. at91sam7s63,ads1.2编译器 本程序为为一个简单的跑马灯演示: 1.8. 本程序为完成各种中断的演示.at91sam7s64芯片,ads1.2编译器.代码说明: 1)完成基本的初始化 2)初始化PIO,IRQ,FIQ,software_interrupt等 3).9. 是介绍ISE的非常好的教程.10. ucGUI上的汉字子模提取工具.11. ucGUI的一些使用例子.12. 基于EasyArm2200和ucOS2的SD卡文件系统的实现.13. 芯片.14. 芯片.15. 包含vxWorks的许多底层API源码.16. 用汇编写的一个键盘 程序 纯属练习 没价值 用的是矩阵扫瞄法.17. 参加今年的比赛肯定要用的。谢谢支持。祝大家好运!.18. 文件包括了S3C2410基础试验源代码中的DA转换.19. 文件中包括了S3C2410基础试验源代码的触摸屏源代码.20. ucos 移植实验成功把ucos移植到2410上建立十个任务.21. s3c2410ucos 移植实验成功把ucos移植到2410上建立十个任务.22. 文档中包括S3C2410基础试验中VGA显示(ADS)中调试通过的源代码.23. PIC网卡控制器ENC28J60的PIC单片机程序源代码(c).24. 操作系统为wince,开发环境为EVC,有关窗口的应用程序.25. 在keil平台下用c语言开发的基于89c2051的小程序.26. 操作系统为wince,开发环境为EVC,有关串口的应用程序.27. 操作系统为wince,开发环境为EVC,有关网络的应用程序.28. 操作系统为wince,开发环境为EVC,有关数据库的应用程序.29. 操作系统为wince,开发环境为EVC,有关PING的应用程序.30. uC/OS移植到x86上的范例1.31. pdf文件,是用来控制液晶屏输入输出的的器件.32. ATMEL AT91SAM USB Mass Storage Module.33. 自己修改的U-boot1.1.4For AT91RM9200DK. 请用armgcc3.3.2编译。.34. ZLG的Smartarm2200上uClinux boot代码.35. AT91RM9200的USB host测试代码.36. AT91RM9200的网口测试代码.37. AT91RM9200的DS1307 RTC 测试代码.38. 利用该源代码可以实现在DE2的板子上进行USB画笔的实验.39. Pic18F458的Can通信模块代码.40. 51单片机模拟2272解码,采用中断方法.

    标签: 机械制造 工艺基础

    上传时间: 2013-04-15

    上传用户:eeworm