通信工程系电子线路实现训练报告单片机音乐播放器设计报告

上传人:桔**** 文档编号:431689628 上传时间:2023-01-19 格式:DOC 页数:19 大小:392.50KB
返回 下载 相关 举报
通信工程系电子线路实现训练报告单片机音乐播放器设计报告_第1页
第1页 / 共19页
通信工程系电子线路实现训练报告单片机音乐播放器设计报告_第2页
第2页 / 共19页
通信工程系电子线路实现训练报告单片机音乐播放器设计报告_第3页
第3页 / 共19页
通信工程系电子线路实现训练报告单片机音乐播放器设计报告_第4页
第4页 / 共19页
通信工程系电子线路实现训练报告单片机音乐播放器设计报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《通信工程系电子线路实现训练报告单片机音乐播放器设计报告》由会员分享,可在线阅读,更多相关《通信工程系电子线路实现训练报告单片机音乐播放器设计报告(19页珍藏版)》请在金锄头文库上搜索。

1、通信工程系电子线路实现训练报告目 录1.方案与论证11.1 显示电路11.2 时钟电路12.电子音乐产生原理12.1音调12.2节拍33.系统硬件设计63.1系统总框图63.2 电路设计73.2.1 单片机时钟电路73.2.2. 复位电路83.2.3电源电路83.2.4. USB程序下载电路93.2.5. 蜂鸣器驱动电路103.2.6 显示电路113.2.8 矩阵电路114.系统软件设计125.总结与展望146.参考文献14附 录15附录1系统总电路15附录2源代码161.方案与论证1.1 显示电路方案.1:采用LED数码管来显示(电路简单,成本低);方案.2:采用LCD液晶显示器来显示(电路

2、简单,成本高);方案3:采用TFT真彩液晶显示(电路复杂,成本高,但显示的分辨率高);综上所述,选择方案一进行设计。1.2 时钟电路方案.1:选择DS1302实时时钟芯片来实现音乐播放器(时间准确,但要增加额外开销);方案.2:选择单片机的软件实时来实现音乐播放器(灵活性高,时间不准确);方案.3:选择单片机内部可编程定时器来实现音乐播放器(在不增加额外的开销前提下,时间可以做到准确)。综上所述,选择方案三进行设计。2.电子音乐产生原理单片机发音原理:单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音,但一定要弄清楚两个概念即可,也就是“音调

3、”和“节拍” 。音调 表示一个音符唱多高的频率。节拍 表示一个音符唱多长的时间。下面,就此两点,阐述说明:2.1音调在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz,其余与其比较。f1和f2为两个音符,当这两个音符的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程。在音乐中1与,2与,正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1i八音区为例,12个半音是:11、12、22、23、34、44,45、5一5、56、66、67、7i 。这12个音阶的分度基本上是以对数关系来划分的。如

4、果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。确定一个频率所对应的定时器的定时初值的方法:以标准音高A为例:标准音高A的频率f = 440 Hz,其对应的周期为: T = 1/ f = 1/440 =2272s因此,需要在单片机I/O端口输出周期为T =2272s的方波脉冲,如下图所示。图1 方波脉冲由上图可知,单片机上对应喇叭的I/O口来回取反的时间应为: t = T/2 = 2272/2 = 1136s此处分两种方式叙述,请比较选用,其实结果相同:.这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,

5、其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定: t = 12 (TALL THL)/ f0式中,TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL t f0/12) / 256TL = THL % 256 = ( TALL t f0/12) %256将t=1136s代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的预置初值为 : TH

6、440Hz = (65536 1136 * 12/12) /256 = FBH TL440Hz = (65536 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。.假设单片机晶振频率f0=12Mhz,定时器在工作方式1计数脉冲值与频率的关系为:N=FI 2FR其中N计数值; FI内部计时一次为1us,故其频率为1MHz; FR要产生的频率。其计数值的求法为: T=65536N=65536FI 2FR 则标准音高A(频率f = 440 Hz)的计数值为: T=65536N=65536FI 2FR=6553610000002 FR =6

7、5536500000/440=655361136=64400=0FB90H下面给出C调各音符频率值和定时器定时初值:(晶振频率f0=12Mhz,定时器在工作方式1)表1 C调各音符频率值和定时初值对照表C调音符11#22#344#55#66#7频率Hz262277293311329349370392415440466494TH/TLF88BF8F2F9B7FA14FA66FAB9FB03FB4AFB8FFBCFFBCFFC0BC调音符11#2#4#5#6#频率Hz 523553586621658697739783830879931987TH/TLFC43FC78FCABFCDBFD08FD33

8、FD5BFD81FDA5FDC7FDE7FE05C调音符11#22#344#55#66#7频率Hz104511061171124113161393147615631658175518601791TH/TLFB21FE3CFE55FE6DFE84FE99FEADFEC0FE02FEE3FEF3FF02对于非C调的歌曲,要对各音符的频率做相应的变化 调号音乐上指用以确定乐曲主音高度的符号。升C调:1#C,也就是降D调:1bD;277(频率)升D调:1#D,也就是降E调:1bE;311升F调:1#F,也就是降G调:1bG;369升G调:1#G,也就是降A调:1bA;415升A调:1#A,也就是降B调

9、:1bB。4所谓1A,就是说,这首歌曲的“导” (即作为基调的中音DO)要唱得同A音符一样高,其它各音符依次向后递推,通常把这首歌曲叫做A调歌曲,或叫“唱A调”。1C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。在递推的时候要严格按各音符间音程关系进行(全音还是半音,只有34和7i 之间是半音关系,其它音之间都是全音关系),下面以1=D调进行说明。参照上面的钢琴键盘图和表1,确定出D调各音符对应的频率值为:(到后来制表时就以各音符对应的新频率值确定定时初值)2.2节拍音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这

10、样的表达式,如1=C 、1=G 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联,、就是用来表示节拍的。以为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如:其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符

11、的时长就为200ms,十六分音符的时长就为100ms。若乐谱有特别说明则另行对待。如有乐谱中注明每分钟86拍,则一拍时间为60/86s=698ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。具体来说,. 每个音符使用一个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,节拍与节拍码的对照,如下表所示。表2 节拍与节拍码的对照表节拍码节拍

12、数节拍码节拍数1 (十六分音符)1/4拍 为1DELAY11/8拍2 (八分音符)2/4拍21/4拍33/4 拍33/8拍4 (四分音符)1 拍41/2拍51又1/4拍55/8拍6 1又1/2拍63/4拍8 (二分音符)2 拍81拍10 A2 又1/2 拍A1又1/4拍12 C3 拍C1又1/2拍15 F3又3/4 拍16(全音符)4拍. 以1/4拍(十六分音符)为一个基准定时单位(1DELAY),则2/4拍(八分音符)为2DELAY, 1 拍(四分音符)为4DELAY, 2 拍(二分音符)为8DELAY, 4拍(全音符)为16DELAY。1/4和1/8节拍的时间设定,如下表所示。表3 各调节

13、拍时间设定表1/4节拍的时间设定1/8节拍的时间设定曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms通过上面介绍的音符音调和节拍的相关知识,以及它们在单片机系统中的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。请注意,用单片机上实现音乐演奏关键

14、在于,根据乐谱制作出数据表格,编程在其次,这个过程很耗费时间和精力。另外,对于乐曲中的休止符,一般将其音调参数设为FFH或00H,其节拍参数与其它音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。实例说明建立音乐的方法(1)建立简谱对应的简谱码、T值及节拍数表,画在草稿纸上。先对照歌曲的简谱把其中所有出现的音符找出,从低音到高音依次排序,确定各音的数值(编写查表程序时将此值减1,即得对应音符相对于TABL1表头的偏移量)。对于不是C调的歌曲,要对各音符的频率做相应的变化。 对照歌曲的简谱确定各音符的节拍数相对于基准定时单位的倍数,从小到大排列。各音符时值的倍数关系是确定不变的,关键要正确确定其值。这需要懂一点简谱知识才能准确的确定出乐谱中音符节拍数。以歌曲兰花草为例,如下表:表4简谱发音(这一列知道就行不必写出)简谱码T值节拍码节拍数低3低音MI16402111/4拍低4低音FA2641

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号