基于单片机的电子琴及音乐播放器的设计内容摘要:

声器发出的声音就会乱七八糟,不成音乐。 按下键盘的一支键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。 这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。 电源的任务是给各部分供电。 下面进一步介绍振荡器和分频器的工作原理。 振荡器一般用 LC 电感三点振荡电路。 如果忽略晶体管、电阻等因素的影响,则它的振荡频率 f 可由下式决定 : 振荡频率 f 公式只要适 当选择电感 L 和电容 C 的数值,就可以得到所需要的信号频率。 分频器是一个双稳态电路,即晶体管 BG1导通、 BG2截止和 BG1截止、 BG2导通两种稳定状态。 如果在它的输入端输入一个信号脉冲,它就翻转一次,即由一种稳态迅速变成另一种稳态,再输入一个信号脉冲,它又会翻转一次,还原成起始的稳态。 这样,在它的输入端输入两个信号脉冲时,在它的输出端就得到一个信号脉冲。 就是说,输出信号频率比输入信号频率低一半,好像用 2除过一样,所以叫二分频。 电子琴使用二分频电路是音阶规律的需要。 音乐中的基本音阶的频率是按照一定规律排列的,以 C 调为例,音阶中各音之间的频率(单位为赫兹)关系是 : 音阶中各音之间的频率关系说明一个音的频率刚好是比它低八度音的频率的两倍。 所以,只要把一个音的频率除以 2就得到比它低八度的一个音的频率。 实现这一点就需要使用二分频电路。 这样,只要振荡器产生一个标准音的频率信号,如高音 “1”的信号,通过二分频就产生中音 “2”的频率,再一次二分频就产生低音 “1”的频率了。 如果按照键盘上最高音组的频率制作七个振荡器,并将得到的七个音阶信号分别二分频,便可得到低八度的一组音阶信号;再次二分频,就可得到再低八度的一组音阶信号。 依此类推, 最后,就能得到键盘上所有的音阶信号了。 不过,实际上需要制作 12个振荡器和更多的分频器,因为一组键盘中还有五支黑键 [12]。 毕业设计(论文) 5 振 荡 器电 源分 频 器键盘放 大 器扬 声 器 图 2 1 电子琴的原理框图 音乐播放器的原理 音乐 播放器是利用数字信号处理器 DSP( Digital Sign Processer)来完成处理传输和解码 音乐 文件的任务的。 DSP 掌管随身听的数据传输,设备接口控制,文件解码回放等活动。 DSP 能够在非常短的时间里完成多种处理任务,而且此过程所消耗的能量极 少 (这也是它适 合于便携式播放器的一个显著特点)。 首先将歌曲文件从内存中取出并读取存储器上的信号 → 到解码芯片对信号进行解码 → 通过数模转换器将解出来的数字信号转换成模拟信号 → 再把转换后的模拟音频放大 → 低通滤波后到耳机输出口,输出后就是我们所听到的音乐了 [14]。 基于单片机的电子琴及音乐播放器的设计 6 主 控 芯 片L C D 显示L C D 显示 控 制器功 能 键矩 阵U S B 接 口耳 机 放大 器D / A 转换解 码 器内 置F L A S HS M C 外置 接 口1 M F L A S H1 . 5 V 电源3 V 电 源电 源 供给 电 路电 源 管理 图 2 2 音乐播放器的原理框图 电子琴及音乐播放器 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,而音乐播放器也深深的融入人们的平常生活中,它们在现 代音乐扮演者重要的角色。 但略感遗憾的是电子琴只可以弹奏却不能随意的播放喜欢的歌曲,而音乐播放器 除了选择歌曲和显示歌名外,绝大部分播放器没有诸如随意弹奏乐曲、乐曲节奏跳动显示等功能。 正是基于 向多功能 方向 出发,提出 这种电子琴和 音乐播放器的设计方案。 设计方案选择 设计电子琴音乐播放器有很多种设计方法,方案也是多种多样的。 由于大规模集成电路数字芯片的高速发展,各种数字芯片品种多样,导致对模拟数据的采集部分的不一致性,进而又使对数据的处理和显示的方式的多样性。 而同时单片机技术也在同时发展,在不同领域应用广泛。 所以在设计前应比较两种方案的优劣,做到最佳选择。 1. 由可控硅制作电子琴 这种设计方案是将 220V 的交流电经变压器降压,再经过整流、滤波,获得 +的直流电压。 将单向可控硅 SCR 和电阻电容组成驰张振荡器电路。 从而制作出电子琴。 2.由单片机做主控芯片 这种方案是 基于 AT89S52 单片机的电子琴和音乐播放器的设计。 它是以AT89S52 单片机为核心 , 并辅有一些外围器件 , 采用汇编语言编写程序 , 实现多功能音乐播放 , 歌曲自动循环播放和使用琴键自编曲目功能。 此外 , 彩灯显示歌曲节奏 , 按键跳转到喜爱曲目 , 液晶 显示当前播英文曲目。 系统初始化后,进入默认播放功能。 开始从第一首曲目开始循环播放。 如果启动中断,判断是否为模式切换。 如果是,则进入自编曲电子琴功能,实现自弹自编。 如果不是,则继续循环播放内设音乐。 播放过程中如果出现跳选曲目,则进入相应的曲目程序。 采用可控硅制作电子琴的制作成本高且复杂。 采用 AT89S52 单片机进行控制,由毕业设计(论文) 7 于其性价比高,完全满足了本次设计智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间,使用方便,抗干扰性能提高。 基于上述比较,该设计中采用单片机作为 主控芯片来完成设计。 基于单片机的电子琴及音乐播放器的设计 8 第 3 章 系统硬件设计 系统总体框图 本次设计的 整个硬件电路是由中心控制、播放、选曲、显示、电子琴和彩灯等模块组成。 该硬件系统框图如图 31 所示。 中 心 控 制 模 块A T 8 9 S 5 2播 放 模 块彩 灯 模 块8 按 键 电 子 琴模 块液 晶 显 示模 块5 首 音 乐 的 选择 按 钮自 弹 音 乐 和 歌 曲 自动 播 放 转 换 按 钮 图 3 1 硬件系统设计框图 一个稍复杂的系统不可能只有硬件电路,软件设计在单片机系统设计中也占有很重要的位置。 软件部分的设计在很大程度上受限于硬件电路的设计,两者只有 相辅相成才能完成一个系统应有的功能,各个模块之间必须有适当的连接才能达到软件部分所需实现的功能。 中心控制模块 单片机在该设计中主要起主控作用,处理数据,后驱动显示电路显示,有着不可替代的功用。 单片机的选择 在这一设计中,我们涉及到了一个关键系统模块 : 单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的 8 位单片机和高性能的 32 位单片机,结合本设计各方面因素, 8 位单片机对于本设计已经是绰绰有余了,但将用哪一种类 8 的单片机呢。 单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机所需要的大部分部件: CPU,内存,总线系统等。 而目前常用的单片机的 8 位有 51 系列单片机、AVR 单片机、 PIC 单片机。 AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K在系统可编程 Flash 存储器。 在设计中选择单片机 AT89S52 作为系统的核心控制部件,原因是因为 AT89S52 的功能全部兼容 MCS51。 完全 满足设计需要,实现整个 系 统控 制。 毕业设计(论文) 9 AT89S52 引脚说明 一、 AT89S52 主要 功能列举如下: 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 内部程序存储器( ROM)为 8KB 内部数据存储器( RAM)为 256 字节 32 个可编程 I/O 口线 8 个中断向量源 三个 16 位定时器 /计数器 三级加密程序存储器 全双工 UART 串行通道 二、 AT89S52 各引脚功能介绍: E A / V P31X119X218R E S E T9RD17WR16I N T 012I N T 113T014T115P 10/ T1P 11/ T2P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11R X D10 A T 8 9S 5 2 图 3 2 AT89S52 引脚排列图 VCC: AT89S52 电源正端输入,接 +5V。 VSS:电源地端。 XTAL1:单芯片系统时钟的反相放大器输入端。 XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: AT89S52 的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间, AT89S51 便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000H 处开始读入程序代码而执行程序。 EA/Vpp: EA为英文 External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部 EPROM中)来执行程序。 因此在 8031 及 8032 中, EA 引脚必须接低电平,因为其内部无程序基于单片机的电子琴及音乐播放器的设计 10 存储器空间。 如果是使用 8751 内部程序空间时,此引脚要 接成高电平。 此外,在将程序代码烧录至 8751 内部 EPROM 时,可以利用此引脚来输入 21V 的烧录高压( Vpp)。 ALE/PROG: ALE 是英文 Address Latch Enable的缩写,表示地址锁存器启用信号。 AT89S52 可以利用这支引脚来触发外部的 8 位锁存器(如 74LS373),将端口 0 的地址总线( A0~ A7)锁进锁存器中,因为 AT89S52 是以多工的方式送出地址及数据。 平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1/6,因此可以用来驱动其他周边晶片的时基输入。 此外在烧录 8751 程序代码时,此引脚会被当成程序规划的特殊功能来使用。 PSEN:此为 Program Store Enable的缩写,其意为程序储存启用,当 8051 被设成为读取外部程序代码工作模式时( EA=0),会送出此信号以便取得程序代码,通常这支脚是接到 EPROM 的 OE脚。 AT89S52 可以利用 PSEN 及 RD 引脚分别启用存在外部的 RAM 与 EPROM,使得数据存储器与程序存储器可以合并在一起而共用 64K 的定址范围。 PORT0( ~ ):端口 0 是一个 8 位宽的开路汲极( Open Drain) 双向输出入端口,共有 8 个位, 表示位 0, 表示位 1,依此类推。 其他三个 I/O 端口( PP P3)则不具有此电路组态,而是内部有一提升电路, P0 在当做 I/O 用时可以推动 8个 LS 的 TTL 负载。 如果当 EA 引脚为低电平时(即取用外部程序代码或数据存储器),P0 就以多工方式提供地址总线( A0~ A7)及数据总线( D0~ D7)。 设计者必须外加一锁存器将端口 0 送出的地址栓锁住成为 A0~ A7,再配合端口 2 所送出的 A8~ A15 合成一完整的 16 位地址总线,而定址到 64K 的外部存储器空间。 PORT2( ~ ):端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使用。 P2 除了当做一般 I/O 端口使用外,若是在 AT89S52 扩充外接程序存储器或数据存储器时,也提供地址总线的高字节 A8~ A15,这个时候 P2 便不能当做 I/O 来使用了。 PORT1( ~ ):端口 1 也是具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个 LS TTL 负载,同样地若将端口 1 的输出设为高电平,便是由。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。