单片机课程设计之音乐播放器.doc_第1页
单片机课程设计之音乐播放器.doc_第2页
单片机课程设计之音乐播放器.doc_第3页
单片机课程设计之音乐播放器.doc_第4页
单片机课程设计之音乐播放器.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计之音乐播放器 学生姓名学 号所在学院专业名称班 级指导教师成 绩 目录一、设计功能1(一)基本功能1(二)扩展功能1二、设计原理1(一)单片机产生不同频率脉冲信号的原理:1三、方案与论证6四、设计内容7(一)系统框图和设计原理图7(二)软件设计流程图9五、总结12附录:131一、设计功能(一)基本功能1. 利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,演奏乐2. 采用LED显示信息3. 播放时显示歌曲序号(或名称)(二)扩展功能1. 可通过功能键选择乐曲,暂停,播放。2显示乐曲播放时间或剩余时间。二、设计原理(一)单片机产生不同频率脉冲信号的原理:(1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。计数脉冲值与频率的关系公式如下:N=Fi/2/Fr (N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 ) (3) 其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=65059(4)C调个音符频率与计数值T的对照表如下表所示: 表3-1 C调各音符频率与计数值T的对照表音 符 频率(Hz) 简谱码(T值) 音 符 频率(Hz) 简谱码(T值)低1DO 262 63628 #4FA# 740 64860#1DO# 277 63731 中5SO 784 64898低2RE 294 63835 #5SO# 831 64923#2RE# 311 63928 中6LA 880 64968低3M 330 64103 #6 932 64994低4FA 349 64103 中7SI 988 65030#4FA# 370 64260 高1DO 1046 65058低5SO 392 64260 #1DO# 1109 65085#5SO# 415 64331 高2RE 1175 65110低6LA 440 64400 #2RE# 1245 65124#6 466 64463 高3M 1318 65157低7SI 494 64524 高4FA 1397 65178中1DO 523 64580 #4FA# 1480 65198(5)节拍:每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。表3-2 节拍码对照表1/4节拍 1/8节拍节拍码 节拍数 节拍码 节拍数1 1/4拍 1 1/8拍2 2/4拍 2 1/4拍3 3/4拍 3 3/8拍4 1拍 4 1/2拍5 1又1/4拍 5 5/8拍6 1又1/2拍 6 3/4拍7 1又3/4拍 7 7/8拍8 2拍 8 1拍9 2又1/4拍 9 1又1/8拍A 2又1/2拍 A 1又1/4拍B 2又3/4拍 B 1又3/8拍C 3拍 C 1又1/2拍D 3又1/4拍 D 1又5/8拍E 3又1/2拍 E 1又3/4拍F 3又3/4拍 F 1又7/8拍表3-3 各调节拍的时间设定表1/4节拍1/8节拍曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒1/4拍的延迟时间=187毫秒DELAY: MOV R7,#2D2: MOV R4,#187D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2RET(6)移调一般的歌曲,有3/8、2/4、3/4、4/4等节拍类型,但不管有几拍,基本上是在C调下演奏的。如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。D调是将C调各音符上升一个频率实现的,即C调下的音名D在D调下唱Do,C调下的音名E在D调下唱Re,C大调的音名F在D调下上升高半音符F#唱Mi,C调下的音名G在D调下唱Fa,C调下的音名C在D调下上升高伴音C#符唱Ti。这种唱法称为移调。表3-4 C调在各调中的音名 音名 调DoReMiFaSoLaTiC调CDEFGABD调DEF#GABCE调EF#G#ABCDF调FGABCDEG调GABCDEF#A调ABC#DEF#G#B调BCDEFGA三、方案与论证1.单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。 MCS-51系列单片机主要包括8031、8051和8751等通用产品。DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。2.基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括Do、Re、Me-等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,我设计了一款特殊的音乐播放器,本播放器可实现播放、暂停、复位等功能。为了体现乐曲播放过程中的动态效果,增加了1只LED,作随机闪烁以指示旋律的节奏。由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。在此基础上,可以添加按键,LED显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能。四、设计内容(一)系统框图和设计原理图1电路原理图图中,S1为复位键,S2-S17为键盘电路,可以进行选择曲目。扬声器在每个操作后把程序中存储的信号进行放大还原成音乐播放出来,S1可以在死机等情况下进行系统复位。2. 矩阵键盘电路设计由于设计要求使用键盘的按键数目较多,所以本设计采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图2所示。每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵式键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常用逐行扫描查询法。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字F0H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根列线电平被拉至低电平,从而使列线不全为1。判断键盘中哪一个键被按下使通过将行线逐列置低电平后,检查行输入状态来实现的。方法是:依次给行线送低电平,然后查所有列线状态,如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平行线相交的交点上的那个键。图2 矩阵键盘原理图3.程序流程框图3.1总体程序流程图根据硬件设计结果,为满足要求,程序应有主程序、按键处理程序、中断服务程序和发声程序等部分构成。主程序中主要是程序各部分的初始化;按键处理程序处理五个按键的操作,包括各个按键的响应程序以及发声输出等;(二)软件设计流程图1. 音乐软件的设计1.1音乐代码库的建立方法(1)先找出乐曲的最低音和最高音范围,然后确定音符表T的顺序。(2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。(3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。(4)音符节拍码00H为音乐结束标记。1.2选曲在一个程序中,需要演奏两首或两首以上的歌曲时,音乐代码库的建立有两种方法:(1)将每首歌曲建立相互独立的音符表T和发音符计数值TABLE。(2)在建立公用音符表T后,再写每首歌的发音计数值TABLE中的代码不管采用那种方法,每首歌曲结束时,在TABLE中均需加上音乐结束符00H。1.3歌曲的设计下面以歌曲送别和三个和尚的设计为例,讲述歌曲在单片机中的实现。曲谱如下图所示从两首歌中可看出,最低音为低7Si,最高音为高1Do。根据音乐软件的设计方法,简谱对应的简谱码、T值、节拍数如表所示。表3-5 简谱对应的简谱码、T值、节拍数简谱发音简谱码T值节拍码节拍数低7低音Si16452411/41中音Do26458022/42中音Re36468433/43中音Mi464777414中音Fa56482051+1/45中音So66489861+1/26中音La764968827中音Ti865030A2+1/2高1高音Do965058C3低6低音LaA64400F3+3/4低5低音SoB64260五、总结AT89C51芯片有多组引脚,可实现多种拓展功能,由于知识,能力,时间,条件所限,我只实现了播放自编歌曲的功能,其实,还可以同时拓展LED点阵屏幕,按键选歌,以及多组灯光闪亮等功能,换用更高档的芯片后,甚至可以实现MP3的丰富功能,在补充了相应知识后我将尝试实现更多的功能。附录:程序源代码如下:ORG 0000H LJMP START ORG 001BH LJMP TIME1START:MOV TMOD,#10H ;T1工作在方式1 MOV IE,#88H ;中断使能MAIN: MOV 40H,#00H ;设简谱码指针初始值NEXT: MOV A,40H ;简谱码指针暂存累加器A MOV DPTR,#TABLE ;设简谱码 MOVC A,A+DPTR CJNE A,#00H,PLAY ;取到的简谱码不是结束码,传PLAY取节拍码 LJMP STOP ;是结束码,退出PLAY: MOV R1,A ;R1暂存简谱码 ANL A,#0FH ;取节拍码 MOV R2,A 节拍码暂存R2 MOV A,R1 ANL A,#0F0H ;取音符码 CJNE A,#00H,MUSIC ;音符码不为0,调发音子程序 CLR TR1 ;音符码为0,不发音 LJMP DELMUSIC:SWAP A DEC A MOV 22H,A ADD A,22H MOV R3,A MOV DPTR,#TABLE1 ;取相应计数值 MOVC A,A+DPTR MOV TH1,A ;暂存高位字节 MOV 21H,A MOV A,R3 INC A MOVC A,A+DPTR ;取相应计数值的低位字节 MOV TL1,A ;暂存低位字节 MOV 20H,A SETB TR1 ;启动定时器DEL: LCALL DELAY INC 40H ;指向下一个简谱码 LJMP NEXTSTOP: CLR TR1 ;停止计时器 LJMP MAINTIME1:PUSH ACC ;现场保护 PUSH PSW CPL P1.7 ;P1.7反相输出,演奏音乐 MOV TL1,20H ;重设计数值 MOV TH1,21H POP PSW POP ACC RETIDELAY:MOV R7,#02H ;4/4曲调,演示125ms子程序DELA1:MOV R6,#125DELA2:MOV R5,#248 DJNZ R5,$ DJNZ R6,DELA2 DJNZ R7,DELA1 DJNZ R2,DELAY RETTABLE1:DW 64524,64580,64684,64777 ;简码值 DW 64820,64898,64968,65030,65058 DW 64400,64260TABLE:DB 14H,42H,62H,98H ;歌曲送别 DB 74H,92H,72H,68H DB 64H,22H,32H,44H,32H,22H DB 3CH DB 64H,42H,62H,94H,04H,82H DB 74H,94H,68H DB 64H,32H,42H,54H,04H,12H DB 2CH DB 74H,94H,98H DB 84H,72H,82H,98H DB 72H,82H,92H,72H,72

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论