基于单片机的音乐播放器设计毕业论文(附带程序与原理图)(编辑修改稿)内容摘要:
在 20Hz~20KHz 范围内,如果利用程序来控制单片机 I/O 口进行高低电平的变化,在 I/O 口 上就能产生 出较高 频率 的 脉冲波,将这脉冲波输出给外 接 的一个发声器件, 就能发出一定频率的声音 了。 此时 再利用 编程来 使高低电平在一定的时间内变 化一定的次数 ,就能 使输出频率发生改变 , 音调也随之改变。 所以,为了得到一定的频率方波 , 就要算出此频率的周期(即频率的倒数),然后将此周期 折半 ,即为半周期的时 长。 这里我们 启用定时 计数 器, 先定时 半个周期的时间,然后改变电平,使其反相 ,然后 再 重复 定 时 二分之一个 周期时间 ,最后 再 将电*****大学本科生毕业设计(论文) 10 平取反 , 则 在 相应的 I/O 口 上 就能得到相应 频率的脉冲 频率波。 具体操作是 利用 8051的自带的内部定时器,并使其工作在工作方式一上,然后往定时计数器装入初值 THO及 TLO,便能产生不同频率的矩形波了。 那么如何确定定时器的初值呢。 我们所使用的单片 机震荡频率为 12MHzfosc ,通过 对 定时器 T1 溢出后 在 I/O 口 口取反产生 脉冲频率 ,则定时器时间为 1/2fn。 由( 216Xn) *( 12/fosc) =1/2fn ,可知:定时初值 Xn=216fosc/24fn 以音调 2 为例, fn=587Hz,则 T=1/fn ,定时初值Xn=216( 12*106) /(24*587)=64684=FCAC。 我们同样利用这个方法来算出每个音调对应频率的简谱码和初值代码 : 表 频率对应初值表 音符 频率 ( 赫兹 ) 简谱码 (定时器值 ) 代码 音符 频率 ( 赫兹 ) 简谱码 ( 定时器值 ) 代码 低 1 DO 262 63628 F88C 4 FA 740 64860 FD5C 1 DO 277 63731 F8F3 中 5 SO 784 64898 FD82 低 2 RE 294 63835 F95B 5 SO 831 64934 FDA6 2 RE 311 63928 F9B8 中 6 LA 880 64968 FDC8 低 3 M 330 64021 FA15 6 932 64994 FDE2 低 4 FA 349 64103 FA67 中 7 SI 988 65030 FE06 4 FA 370 64185 FAB9 高 1 DO 1046 65058 FE22 低 5 SO 392 64260 FB04 1 DO 1109 65085 FE3D 5 SO 415 64331 FB4B 高 2 RE 1175 65110 FE56 低 6 LA 440 64400 FB90 2 RE 1245 65134 FE6E 6 466 64463 FBCF 高 3 M 1318 65157 FE85 低 7 SI 494 64524 FC0C 高 4 FA 1397 65178 FE9A 中 1 DO 523 64580 FC44 4 FA 1480 65198 FEAE 1 DO 554 64633 FC79 高 5 SO 1568 65217 FEC1 中 2 RE 587 64684 FCAC 5 SO 1661 65235 FED3 2 RE 622 64732 FCDC 高 6 LA 1760 65252 FEE4 中 3 M 659 64777 FD09 6 1865 65268 FEF4 中 4 FA 698 64820 FD34 高 7 SI 1976 65283 FF03 有了音调,接下来需要做的便是确认每个音调所需要演奏的时间,也就是我们所说的节拍。 这里我们 同样利用定时器 来产生节拍 延时 , 用定时器〇产生 一次中断 并设置时间为 50 毫秒,以 秒 为 一个节拍, 通过 控制一个音 调 所对应 多久 的节拍, 即 设置 定时器 产生 多少 次中断,便可以控制每个音 调 的发声时间。 而乐曲的 简谱的节拍对照如下: *****大学本科生毕业设计(论文) 11 表 节拍数对应的节拍码 所以整个 音乐播放过程 设计就是:先将 音乐的音调 进行编码, 存储到 一个数组中。 然后 程序从数组中取出 该编码 , 再 分离 成 高 低各 4 位 代码,先处理高四位 音调 代码 ,找 到对 应的 初 值赋给定时器 0,使 定时器保持一定频率振动 , 从而 得出相应的音调; 再处理 低 4位,得到 节拍 延时时间 对节拍 延时。 如此重复,一首曲子便可以演奏完成了。 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 拍 *****大学本科生毕业设计(论文) 12 软件程序大致流程图: 再一次按。 开始 程序初始化 判断键值并储存 有无红外信号。 显示对应键值 的歌曲信息 播放时间初始化 取乐谱进行演奏 有无功能键。 全部播放完。 结束 暂停。 上一曲。 下一曲。 等待 音乐首地址减一 音乐首地址加一 图 4 程序流程图 *****大学本科生毕业设计(论文) 13 第 五 章 系统调试与仿真 程序调试与下载软件 Keil C51 是 如今最便捷 的单片机开发与调试软件。 Keil 提供了包括 C语言编译 管理连接器、仿真调试软件等在内的开发 套件 , 并 通过集成开发环境 uVision 将这些 功能集结 在一起 [11]。 此外, Keil 软件对硬件的要求也不高,奔腾以上的处理器便可,这也是Keil 软件得以流行的主要原因之一。 所谓软件调试,就是通过对软件编程、链接、执行程序 代码 来 检查 程序中存在的语法 和 逻辑错误, 然后根据定位到的错误或警告对程序进行修改的过程。 在调试过程中,会遇到许多种问题。 这时就需 要重新检查程序是否有错误并重新编程。 Keil 软件能大体识别程序的语法错误或逻辑错误,但有些错误是无法查出来的,只有通过程序下载到硬件中去才能发现问题,这里我们通过 Keil 软件结合程序下载软件 STCISP 来进行程序的综合调试与运行。 Keil 编译程序与 STCISP 程序图见图 与图。 图 Keil uVision4 软件 *****大学本科生毕业设计(论文) 14 原理图设计与 PCB 制作 AD 是 Altium Designer 的 简称。 是 Altium公司 推出的 一款在大家非常熟悉的 Protel软件 基础上升级而成的功能非常强大 的电子产品开发 软件 系统。 这 个 软 件把原理图设计、电路仿真、 PCB绘制 与 自动布线、 信号分析 和 FPGA系统设计、基于 FPGA和分立处理器的 嵌入式 软件开发 系统等技术 完美 融合在一起 [12], AD 的出现给了电子产品设计者一个很大的惊喜。 Altium Designer 交互界面 如图。 图 STCISP 程序下载软件 图 Altium Designer 软件 *****大学本科生毕业设计(论文) 15 第 六 章 结论 本设计以 51 系列单片机为核心, 巧妙的 利用了 STC89C51 芯片的引脚 接口 ,实现了多种拓展功能 —— LED 灯做伴奏、 LCD 液晶屏显示歌曲信息以及使用了红外遥控作为歌曲播放控制的控制器。 论文从理论上分析了设计方案的可行性,设计者也通过实际硬件进行了设计研究,在经历若干曲折后终于实现了预期的设计目的。 在拿到毕设题目之初,我便开始查阅网络资源,看看前人对 类似研究内容都有做过哪些方面的研究。 在经过一番思考后,我决定从 LED 灯、 LCD 显示及播放控制三个方面下手。 显示我采用的是 LCD 液晶,比起数码管仅显示数字,本设计的 LCD 能显示歌曲的更多信息,如歌曲的拼音或英文;而 LED 作为伴奏模块,它并不是简单的重复着一定的花样变化,而是根据音乐节奏的变化而变化,这便使得音乐更具节奏感和视觉冲击感;对于歌曲控制部分,本设计则创新性的引入红外遥控作为控制器,不像矩阵键盘,它只用到单片机的一个 I/O 口,利用遥控来控制音乐播放,操作起来也变得十分方便。 因为做了如此改变,所以技术 要求也随之变高。 在设计过程中遇到了诸多困难,例如在研究发声原理时就查阅了很多资料,请教老师和同学,花费了不少时间 和精力 ;其次便是在将调试好的程序下载到单片机里面去之后,发现并不能实现预期功能,于是只能通过一次又一次的修改来解决问题。 本设计引入的红外控制也有着不小的难度,但因为我之前有对单片机红外遥控做过研究,所以在这里应用起来也变得简单而方便。 由于时间原因,本设计也并没有达到我最理想的状态。 笔者觉得伴奏模块可以设计成三维 LED 彩灯甚至舞台灯作为伴奏;利用 TFT 彩屏显示歌曲中文信息,比如歌名和歌词;然后使用 单片机结合 MP3 解码芯片 STA013 芯片,将蜂鸣器换成扬声器,就可以播放 MP3 高品质音乐了。 这时再配合使用红外遥控,整个系统便可利用到舞台设计或者智能家居设计。 虽说困难重重,但也让我受益匪浅,我深知自己所学还很不够,所以平时应该多请教老师和同学,多用知识充实自己的头脑,为自己进入社会做准备。 同时, 这将 势必鞭策 我在 今 后的工作和生活中更 为发愤图强 ,斗志昂扬。 *****大学本科生毕业设计(论文) 16 参 考 文 献 [1] 陈卫兵 .单片机技术与应用基础[ M] .北京:人民邮电出版社, 2020 [2] 郭天祥 .51 单片机 C 语言教程 [ M] .北京:电子工业出版社, 2020: 56 [3] 谭浩强 . C 程序设计 .第三版[ M] .北京:清华大学出版社, 2020: 105 [4] 宋跃 . 单片机原理与接口技术[ M] .北京:电子工业出版社, 2020 [5] 贾伯年 . 传感器技术[ M] .南京 : 东南大学出版社 , 2020 [6] 肖运虹.显示技术[ M] .西安:西安电子科技大学出版社, 2020: 86122. [7] 赵亮.液晶显示模块 LCD1602 应用[ J] .电子制作, 2020( 3): 5859. [8] 康华光 . 数字电子技术基础[ M] .北京 : 高等教育出版社 , 1998 [9] 李军 . 单片机高级实例开发指南[ M] .北京:北京航空航天大学出版社, 2020:2050. [10] 东方 .卓越 .简谱入门基础教程[ M] .北京:同心出版社出版, 2020 [11] 徐爱均 . 徐阳 .Keil C51 单片机高级语言应用编程与实践[ M] .北京: 电子工业出版社 , 2020 [12] 王渊峰 . Altium Designer 10 电路设计标准教程 [ M] .上海: 科学出 版社 , 2020。基于单片机的音乐播放器设计毕业论文(附带程序与原理图)(编辑修改稿)
相关推荐
3 STC89C52 单片机简介 随着单片机产品的出现及研发,经过逐步研究探索,我们 了解 单片机实验 体系 有 充足 的电路和机动 的组 合 方法 [56]。 单片机不仅仅是一个可以完成某项具体功能的芯片,而是一个计算机的微型缩影。 总而言之,单片机就是 由 一个 芯片组成的具有计算机通用功能的 微型计算机。 从单片机的出现到普及,单片机的性能得到了广泛的提高。
种高效微控制器, AT89C51 是它的一种精简版本。 AT89C51 单片机为很多 嵌入式控制 系统提供了一种灵活性高且价廉的方案。 外形及引脚排列如图 所示。 图 AT89C51 原理图 LED 显示电路 本次课程设计的显示电路采用 LED 数码管显示, LED有单个 LED 和八段 LED之分,也有共阴和共阳两种。 本次设计采用共阳极。 由于 LED 是属于电流控制器件
论文 第 9 页 共 32 页 概率为 ,小于 (显著性水平),我们可以确定其适合使用因子分析进行分析。 表 :4 KMO 和 Bartlett 的检验 KMO and Bartlett39。 s Test KaiserMeyerOlkin Measure of Sampling Adequacy. Bartlett39。 s Test of Sphericity Approx.
单片机的定时 \计数 定时器 /计数器是单片机的重要功能模块之一。 在检测、控制及智能仪器等应用中,常用定时器作实时时钟,实现定时检测、定时控制。 还可用定时器产生毫秒宽的脉冲,驱动步进电机一类的电气机械。 计数器主 要用于外部事件的计数。 MCS51 单片机内部有两个 16 位可编程定时器 /计数器,即定时器 T0 和定时器 T1,它们既可以用作定时器方式,又可用作计数器方式,可编程设定 4
行输入和输出的。 每收到一组 8 位的数据后, EEPROM 都会在第 9 个时钟周期时返回应答信号。 每当主控器件接收 到一组 8位的数据后,应当在第 9 个时钟周期向 EEPROM 返回一个应答信号。 收到该应答信号后, EEPROM 会继续输出下一组 8 位的数据。 若此时没有得到主控器件的应答信号, EEPROM 会停止读出数据,直到主控器件返回一个停止命令来结束读周期。 等待模式
嵌入式知识背景。 它的应用范围包括网络设备、 个性化产品 、智能 设备 等 , 所以 嵌入式系统 具有较好的开发 和发展 前景。 本文主要研究的内容和任务 本文 提出的若干问题主要是 基于单片机的 银行排队 系统, 本文对 整个 的 设计 过程 进行了 规划,确定 了 系统 设计 中所 要设计 的主要模块及其实现方案, 对不同模块的硬件和软件的设计进行了详细的描述。