本科毕业设计(基于单片机的音乐盒的设计)_第1页
本科毕业设计(基于单片机的音乐盒的设计)_第2页
本科毕业设计(基于单片机的音乐盒的设计)_第3页
本科毕业设计(基于单片机的音乐盒的设计)_第4页
本科毕业设计(基于单片机的音乐盒的设计)_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的音乐盒的设计基于单片机的音乐盒的设计 学院名称 专 业 班 级 学 号 姓 名 指导教师姓名 指导教师职称 二 一四 年 六 月 本 科 毕 业 设 计 论 文 精品文档 I I欢迎下载 基于单片机的音乐盒的设计 摘 要 本次设计根据单片机技术原理 通过硬件电路制作以及软件编程 制作 出一个基于 AT89C52 单片机的简易音乐播放器 该系统以单片机作为电路的主控核心 硬件电路主要由按键电路 复位电路 显示电路等模块组成 系统软件采用 C 语言进 行编写 采用了模块化编程 其移植性较好 系统程序主要包括主程序 播放子程序 按键子程序 延时子程序等 该系统有歌曲播放 电子琴两种模式 可通过按键进行 模式选择 本论文包括系统方案的建立 硬件电路的具体设计及软件的程序实现等过程 并 通过软硬件的联合调试 验证了设计方案的可行性 该系统最终实现了模式的选择 歌曲的选择及播放等功能 实验证明 该系统具有一定的实用性 关键词 AT89C52 单片机 软件编程 音乐盒 精品文档 II II欢迎下载 The Design of Music Box of the Single Chip Microcomputer Abstract Abstract This design according to principle of single chip microcomputer technology through the hardware circuits and software programming make a simple music player based on AT89C52 single chip microcomputer the system with single chip microcomputer as control core of the circuit the hardware circuit is mainly composed of keypad circuit reset circuit display circuit module System software using C language to write using the modular programming the portablility is good System program mainly includes the main program subroutine played subroutines buttons delay subroutine The system has a song play keyboard two modes can through the button to choose This paper includes the establishment of the system detailed design of hardware circuit and software program implementation process And through the software and hardware joint debugging verify the feasibility of design scheme The system finally realize the pattern selection selection of songs and play function such as experiments show that the system has a certain practicality Keywords Keywords AT89C52 microcontroller Software programming the music box 精品文档 III III欢迎下载 精品文档 IV欢迎下载 目录 第 1 章 绪论 1 1 1 课题背景及研究意义 1 1 2 课题设计目的及主要工作 2 第 2 章 课题任务分析与方案选择 3 2 1 课题任务分析 3 2 2 硬件电路的组成 3 2 3 设计功能要求 3 2 4 总体设计原理 4 2 5 总体设计框图 4 2 6 选用的方案 5 第 3 章 系统硬件设计 6 3 1 单片机最小系统 6 3 1 1 AT89C52 单片机介绍 6 3 2 2 复位电路介绍 8 3 2 3 晶振电路介绍 9 3 3 显示电路 10 3 4 4 4 矩阵键盘识别电路 11 3 5 声音电路 12 第 4 章 软件设计 14 4 1 Proteus 仿真软件与 Keil 编译介绍 14 4 2 音调与节拍 15 4 2 1 发声原理 15 4 2 2 音调的确定 16 精品文档 V欢迎下载 4 2 3 节拍的确定 17 4 2 4 音乐编码 18 4 3 系统软件总体设计流程图 18 4 3 1 主程序流程图 18 4 3 2 歌曲播放流程图 20 4 3 3 按键扫描流程图 20 4 3 4 延时子程序流程图 21 第 5 章 总结 23 致谢 24 精品文档 VI欢迎下载 参考文献 25 附录 1 电路原理图 27 附录 2 元器件清单 28 附录 3 源程序 29 精品文档 第 1 页 共 56 页 1欢迎下载 第 1 章 绪论 1 1 课题背景及研究意义 单片机应用到当前社会的各个领域中 既提高了社会的信息化水平又大力的发展 了社会的生产力 同时也使目前电子产品的性能有了更高的提升 从而使产品更新换 代的周期也逐渐变短 如今 单片机不仅有着高性能与多品种性能的发展趋势 并且 还向着其他优良方向发展 比如向着 CMOS 化 低耗能 小巧 大容量 高性能 廉价 和外围电路内装化等 单片机从本质上转变了传统控制系统中的设计思想与设计方式 这在其应用中具有很重要的价值 1 以前的状态是 只能通过模拟电路或者是数字电 路的应用 才可以将大部分的功能实现 而目前的状态可以直接使用软件编程的方式 来实现单片机的功能 这种被称为微控制技术的方法是对传统控制技术的一次革命 就是使用软件的方式取代使用硬件的方式来实现功能的控制技术 2 单片机可以很成 功的应用到嵌入式系统当中 因此它获得了更多应用的机会 相比与专用处理器来说 这是超越其应用的优势 换个方式讲单片机是世界上个数最多的计算机 集成单片机 已经应用到到的大部分电子和机械产品中 是目前人类的生产生活的主流 大多数电 子产品中都会配有1到2部单片机 比如正常生活中人们通讯时用到的手机 电话 生 产生活中用到的计算器 家用电器 以及娱乐项目中的电子玩具 掌上电脑 另外还 包括一些电脑配件键盘鼠标之类的 而台式机 笔记本电脑等个人电脑中也都有许多 单片机在工作 其他的一些大一点的产品中通常会配有40部以上的单片机 比如汽车 等 而特殊的一些大型机械上的单片机会有更多 甚至能达到上百台 并且可以同时 工作 在庞大的工业控制系统上就是如此 由此可见就算 PC 机和其他控制系统的合在 一起 他们的总数也远远不及单片机的数目 甚至比人的数量还要多 3 因此单片机 地研究前景有非常广阔的空间 所以现实生活中单片机的影响已经融入到大多数的研 究领域 例如军事中装配的导弹导航系统 装在飞机上的各种仪器的控制系统 计算机 之间的网络通讯和数据传输 包括运用在工业自动化过程的实时控制和数据处理 还 有人们在生活中用到的各类智能 IC 卡 在民用轿车中应用到的安全保障系统 包括一 些普通生活的一些控制系统中也有应用 比如录像机 摄像机 全自动洗衣机 包括 其他的一些电子玩具 电子宠物等娱乐产品 这些都离不开单片机的应用 4 我们所 接触的信息在随着科学技术的提高和人类社会的进步发展中会不断扩大并且越来越复 精品文档 第 2 页 共 56 页 2欢迎下载 杂 面对如此多如牛毛的信息 人们已经可以利用计算机等工具准确高效地对其进行 处理 但是想要将处理成功的信息能及时 清晰地传递给别人 还必须利用更加高效 的显示技术来实现相应的功能 其中能成熟的结合单片机技术和液晶显示技术 使得 智能可视化技术成为信息传输交流技术发展的主流方向 5 说到音乐盒的历史发展 可以上溯到欧洲文艺复兴的年代 也就是中世纪时期 那个时候其主要的作用只是为 教会的钟塔提供时间提醒用的 这种装置构成单一 就是把各种不一样的钟表装在一 个机器上 所以也叫做 可发出声音的组钟 所以音乐盒的成长历史有将近300多年 同时也见证了人类历史文化的发展 6 机械音乐盒在最初的音乐盒中是占据主流的 他是利用齿轮来让铁桶滚动 铁桶上装有铁棒 通过铁棒与铁片相互碰撞从而制成琴键 从而发出声音的原理 但是 机械音乐盒的缺点很多 比如外形大 个体沉重 且发 声单一 而且有着一些容易让内部铁条变形的外在因素在影响 比如水 粉尘等 都 会造成音准失调 时间一长就会让音乐盒的发音跑调 另外 机械音乐盒放音时必须 放平不可动摇 才能发出好的音质 而且机械音乐盒价格昂贵 不允许大批量生产 商业价值不高 7 而如今随着科技的进步 人们能将现代电子科技和音乐相结合 并 产生一个新的产物 被称为电子琴 这种全新的乐器通过键盘来实现弹奏 俨然已成 为现代音乐发展中的不可或缺的角色 由此可见单片机也凭借着其控制功能的强大与 软件编程的灵便的特征 成功渗透到当今人们生活的各个领域 是人类正常生产生活 中必须要用到的存在 1 2 课题设计目的及主要工作 本文的主要设计内容中 电路的核心控制元件就是 AT89C52单片机 即主控核心为 单片机 硬件电路设计中还包括键盘 扬声器 4 4矩阵键盘 液晶显示器等模块 通 常来讲一部好听的音乐由不少各不一样的音阶所构成的 但是许多音符又是由各不相 同的频率相互对照 这样在使用该系统时就能够通过操纵不一样的频率的相连 就能 变为所需的音乐 在单片机工作中发出不一样的频率是十分容易的 它能够通过单片 机的定时 计数器 T0来发出不同方波频率的信号 所以 只需直接将一部歌曲的音符与 频率之间的对应关系根据音符与频率关系对照表弄清楚就行了 本系统中电子音乐盒 有着外形小巧 播放的音质优美 另外其演奏的音乐也有非常方便的优势 而这些都 是传统的机械式音乐盒无法达到的 通过电池来供电使得电子音乐盒更加方便 并且 它的制作过程也非常简单 而且非常廉价 厂商能成批的进行制造 基于单片机制作 精品文档 第 3 页 共 56 页 3欢迎下载 的音乐盒 控制功能强大 可根据不同需求进行选歌 且使用方便 第 2 章 课题任务分析与方案选择 2 1 课题任务分析 本次设计中硬件电路的主要核心就是 AT89C52芯片 用扬声器作为外部放音电路 这样就能够实现音乐播放控制器的功能 设计中运用软件程序通过在单片机内部控制 定时器 从而达到能够实现演奏出幽美悦耳的音乐的功能 本次设计中对运用单片机 设计音乐盒与电子琴时 分析其原理 发现其本质就是利用单片机来生成不同的频率 以便在系统中可以得到自己所需的音符 最终可以弹奏各种不同的音乐 此次论文主 要论述各个模块的功能 芯片等元器件和电路的原理图 以及软件程序流程图等 在 此次设计的内容中 利用计算机当做控制终端 方便在软件仿真和调试过程可以顺利 进行 用1602显示器显示发音值和扬声器的发音状态 使用4X4矩阵键盘 作为电子琴 的琴键 系统整体设计简洁 精练 用户能够根据自身的兴趣演奏乐曲 也能够播放 不同的音乐 而对于不同型号的单片机来讲直接改变一下地址就可以继续使用该音乐 盒放音了 由此可看出它的硬件系统和软件系统都拥有较优的通用性 而且它的实用 价值和参考价值也是相当高的 2 2 硬件电路的组成 本次硬件电路设计可以分为以下几个部分 1 单片机部分以 AT89C52 单片机为 核心控制整个系统 2 液晶显示部分是用 1602 液晶显示器 通过单片机 P1 口控制 以实现开机画面 音乐盒与电子琴功能的显示 以及电子琴不同音调的显示 3 功 能键盘部分是用 4 4 矩阵键盘作为按键开关 通过单片机 P3 口控制 实现电路复位 歌曲的播放 功能的选择 以及电子琴音调的播放的功能 4 发声部分是用蜂鸣器 通过单片机 P2 口实现歌曲的播放以及电子琴音调的发声 2 3 设计功能要求 1 汇编或 C 语言程序设计 2 程序调试 在 Proteus 上进行仿真 3 使用 I O 处口生成相应 频率的方波 信号 并驱动喇叭 以此来放 出不一样的音调 从而 进行乐曲的播放 精品文档 第 4 页 共 56 页 4欢迎下载 4 采用1602液晶显示歌曲 此次设计的电路共分为两种工作模式 音乐盒模式与电子琴模式 1 音乐盒模式下演奏完整的一首歌 2 电子琴模式下通过4 4键盘演奏不同的音乐 按下复位键进入开机画面 按下选择键进入音乐盒模式播放音乐 再按选择键进 入电子琴模式 可以进行演奏 2 4 总体设计原理 基本发声原理是通过单片机的定时器产生一定长度的方波 方波脉冲驱动扬声器 发出声音 只需直接算出一个音频的周期 1 音频 然后直接取半个周期的时间进行 定时 就可以生成音频脉冲了 利用定时器计使用这个半周期的时间 然后在重复计时 此半周期时间 在计时结束后再将 I O 口进行反相 直接就能在 I O 脚上获得这个频率 的脉冲信号 如中音 D0 频率为523HZ 其周期 T 1 523 1912微秒 要想获得中音 D0 523HZ 就将令计数器直接定时为1912 2 956 这样每当计数956次后 就将 I O 口反相就可以了 8 想要播放音乐时 直接按下按键 然后判断键值 并启动计数器 T0 这样生成相应频率的脉冲 通过单片机来驱动喇叭 就能放出乐曲了 同时启动 定时器 T1 在液晶显示器上显示模块 显示相应的功能必须要使用显示器 本次设计 采用的是1602显示器 通过单片机 P1口控制 实现功能切换的显示 如果要进行相应 的操作时 就使用按键开关来作为按键模块的功能按键 在单片机的 P3口上实施控制 来实现歌曲的播放与模块切换的功能 扬声器则是通过单片机的 P2口进行控制的 主 要是能实现播放乐曲和演奏的功能 同时有液晶显示器显示电子琴琴键的键值 扬声 器播放出音乐 2 5 总体设计框图 电源供电是单片机工作的动力来源 单片机工作中用到的时钟信号是由晶振电路 提供的 外部中断由功能按键来实施控制 以此来控制选择音乐盒模块与电子琴模块 扬声器发声是通过 I O 口向外输出的 液晶显示器则是进行功能的显示 而复位电路 的作用就是建造程序的初始状态 在发生意外或者程序报错时 就能将单片机重新启 动 保证电路的安全 系统总体设计框图如图2 1所示 精品文档 第 5 页 共 56 页 5欢迎下载 图 2 1 总体设计框图 2 6 选用的方案 1 硬件设计 系统把 AT89C52当做整个电路主控制核心 而外部的程序存储器 需要扩展则是利用74LS373与27512 对播放器的控制是采用按键来实现的 4 4键盘矩 阵控制电子琴的发音 显示电路采用1602液晶显示器来显示 晶振部分用的频率大小 是12MHz 从 P3 0口输出的音乐信号由扬声器传出并放出动听的音乐 2 软件设计 软件编程的程序中选取了 C 调中一个8度内的一共7个音阶的音 符来作为音调 按照十二平均律 就是把八度定义为1200音分 其中全因音符占用 200音分 半音占100音分 共十二个半音 每个音符所对应的频率由定时器 T0产生 我们在表中放入定时器初值 一共十二个半音 这样我们在加载计数初值是就可以直 接在程序中以查表的方式来进行 而在放音时就可以不用再计算定时器的初值了 每个 编码都会有一个音符所对应着 占用一个字节 这样可以更方便的将程序进行调用 鉴于人耳有限的分辨力 所以曲谱中的节拍码直接可以用延时来替换 每个音符发音 30MS 这样就使编程更加的简单了 矩阵式键盘在设计中得到较好的应用 目的是让 按键能够及时的响应 程序的编写中的主线编写是其中的扫描键盘的程序 就是在主 程序中循环的扫描按键 并在扫描按键模块时在调用其他的功能模块 每当按下一次 按键 利用扫描按键的功能计算出键盘的键值 并将键值存储起来 跳转到相应的标 号执行程序 并将键值调用液晶显示器子程序显示在制定的位置上 在检测到复位键 按下时 就会恢复带开机画面 此方案中选用1602液晶显示器的优点是其在编写程序时方便 显示的也稳定 而 且占用的 CPU 时序少 另外它和矩阵键盘一样在其外围电路中可以有不少的扩展功能 AT89C52 显示电路 4 4 矩阵键盘 晶振电路 声音电路 复位电路 精品文档 第 6 页 共 56 页 6欢迎下载 第 3 章 系统硬件设计 3 1 单片机最小系统 3 1 1 AT89C52 单片机介绍 单片机事实上是一种集成的电路芯片 实际上就是一块硅片 也被称为微型计算 机系统 它的主要技术是超大规模集成电路技术 主要的组成部分有中央处理器 CPU 具有数据处理能力 随机存储器 RAM 只读存储器 ROM 多种 I O 口和中断系统 和定时器 计数器等 其他的还包括显示驱动电路 脉宽调制电路 模拟多路转换器 A D 转换器等电路模块 这种集成电路不仅体积小 而且功能完善 所以在工业控制 领域得到广泛应用 10 从 80 年代开始 最初只有 4 位 8 位的单片机 到现在的高速 单片机已经达到了 300M 本次设计中用的是 AT89C52 单片机 AT89C52 的主要功能是 控制会聚调整时的功能 它用的内核是工业上标准的 C51 内核 是一种 8 位的通用微 处理器 所以它的内部功能和管脚排布和正常使用的 8xc52 没什么差别 11 AT89C52 有许多功能 主要包括初始化一些功能部件 比如把主 IC 的内部寄存器与数据 RAM 和 外部接口等进行汇聚 还有可以把调整控制汇聚 将测试图控制汇聚以及接受并解码 红外遥控信号 IR 和对主板 CPU 进行通信等 12 AT89C52 单片机中的 XTAL1 19 脚 在振荡器中是被当做输入脚 而 XTAL2 18 脚 在振荡器中是当做输出脚 另外它的 外借晶振可以接到 12MHz 单片机中的复位电路是由电阻和电容组成的 其中电阻和电 容都是从外部接入的 复位电路的输出端口是 RST Vpd 9 脚 单片机的工作需要电源 供电 而在 52 单片机中的供电端口有 VCC 40 脚 接 5V 电源的正极 VSS 20 脚 接电 源的负极 运行单片机需要软件编程来实现 依靠软件来定义单片机的功能用途 可 以通过 P0 P3 口的通用 I O 脚来实现软件程序的导入 此次设计过程中 我们把 P0 端 的 32 39 脚分别和 N1 的对应的功能管脚相连 如此就可以将 N1 功能控制端口用 P0 端的 32 39 脚来定义 其他的连接在 N1 的 SDAS 18 脚 与 SCLS 19 脚 端口上的 10 脚 与 11 脚 就可以将这两个引脚定义成 I2C 总线上的控制端口 另外一些相应的功能端 是连接主板 CPU 上的 主要功能是把目前制式的检测和汇聚进行状态调整 并进入控 精品文档 第 7 页 共 56 页 7欢迎下载 制功能 而这些连接到主板 CPU 的引脚就定义为握手信号功能端口 而 52 单片机中的 12 脚 27 脚以及 28 脚都可以实现此功能 13 现如今 尽管单片机的品种繁多 各具特色 但是 80C51 单片机由于兼容其他类 型单片机产品的结构和指令系统 所以 80C51 依然是主流 可以说占据了该领域的半 壁江山 而随着 Microchip 公司的 PIC 精简指令集合 RISC 发展势头强劲 中国台 湾的 HOLTEX 公司单片机的产量也日渐增加 而且其质量高 价格廉 所以占据一定的 市场份额 此外还有 MOTOROLA 公司的产品 日本几大公司的专用单片机 在一定的时 期内 这种情形将得以延续 将不存在某个单片机一统天下的垄断局面 走的是依存 互补 相辅相成 共同发展的道路 九十年代以后 单片机在结构上采用双 CPU 或内部流水线 CPU 位数有 8 位 16 位 32 位 时钟频率高达 20MHZ 片内带有 PWM 输出 监视定时器 WDT 可编程计数器 阵列 PCA DMA 传输 调制解调器等 芯片向高度集成化 低功耗方向的发展 使得单 片机在大量数据的实时处理 高级通信系统 数字信号处理 复杂工业过程控制 高 级机器人以及局域网等方面得到大量应用 8 这类单片机有 NEC 公司的 MPD7800 MITSUBISHI 公司的 M337700 REVKWELL 公司的 R6500 9 此次设计之所以选用52单片机是因为 AT89C52比 AT89C51多个定时器 而 RAM 大小 也不一样 51的大小只有128 52的却有256 根据这些信息可以看出52其实是51的增 强型 在定时器方面52也比51的定时器多了一个 T2 在串行通信中可以设置更高的波 特率 由此可见 T2的功能实现上与其他的两个定时器也不同样 在 ROM 上52比51要多 4K 中断也多2个 意味着看门狗也比51多出一个来 另外52在掉电与数据指针等方面 也有一些改善 14 而在外接晶振上 C52可以拥有最高能达到33MHz 而 C51的极限也只 能达到24MHz 单片机有个最小应用系统 也就是单片机最小系统 这种系统是可以正常工作的 但由于构成此系统只用了最少的元器件 所以功能也相应的比较单一 我们考虑52单 片机中的结构 可以看出最小系统正常是由单片机芯片 晶振电路 复位电路构成的 基于52单片机的最小系统的电路原理图 如图3 1所示 精品文档 第 8 页 共 56 页 8欢迎下载 VCC VCC U1 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 MOSI P1 6 MISO P1 7 SCK RST VDD P3 0 RXD P3 1 TXD P3 2 INT0 P3 3 INT1 P3 4 T0 P3 5 T1 P3 6 WR P3 7 RD XTAL2 XTAL1 VSS GND VCC P0 1 AD1 P0 2 AD2 P0 3 AD3 P0 4 AD4 P0 5 AD5 P0 6 AD6 P0 7 AD7 EA VPP ALE PROG PSEN P2 7 A15 P2 6 A14 P2 5 A13 P2 4 A12 P2 3 A11 P2 2 A10 P2 1 A9 P2 0 A8 P0 0 AD0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 AT89C52 GND 1 2 C5 Cap 30pF C6 Cap 30pF 22uf REST VCC S17 C1 R8 RES2 10k SW PB 图3 1 单片机最小系统 3 2 2 复位电路介绍 复位电路是由电容串联电阻构成的 复位电路原理图如图 3 2 所示 精品文档 第 9 页 共 56 页 9欢迎下载 VCC REST S17 C1 R8 RES2 10k SW PB 22uf 图3 2 复位电路原理图 电源通电后 就会在 RST 引脚上显示出高电平 而高电平的可持续时间是由电路 的 RC 值来决定的 在设计实现功能时要适当组合 RC 的取值就可以保证复位的可靠性 因为单片机一般会在 RST 脚上持续两个机器周期以上的高电平时就会复位 本次设计 中 C 取用的是22uf R 取10K 要想在 RST 脚上能生成的高电平多于2个机器周期 就直 接将 RC 按照这个数值进行组合 在复位电路中复位信号是在系统供电时就会提供 而 想要撤消复位信号 只需等到系统中的电源稳定了即可 为了在实现功能时电路的安 全 在系统中电源稳定以后 等待撤消的复位信号必须要经过一个延时 这样的目的 是为了防止在电源开关启动或关闭过程中引发的抖动而影响复位 复位电路复位的过 程中有两种 一种是通电自动复位 另一种是按键手动复位 根据电路原理图可知 复位电路的复位信号的输入端是 RST 引脚 而且复位必须在高电平的情况下才有效 想要实现复位电路的功能 就是通过外接电容 C1与外接电阻 R8来实现 3 2 3 晶振电路介绍 52 单片机中的引脚 XTAL1 和的引脚 XTAL2 都是在片内一个反相放大器 高增益 中 的 它的作用是用来组成稳定的自激振荡器 组成自激振荡器的电路是由有石英晶体 的振荡器和微调电容进行外接 而能直接进入系统内部时钟电路的信号就是这个振荡 器发出的脉冲信号 本次设计晶振电路中使用的是固定电容 C5 与 C6 两个电容都是 30pF 晶体振荡频率范围是 1 2M z 12MHz 一般情况下 选用振荡频率为 12MHz 的 石英晶体 而要将信号变成单片机的时钟信号 只有在内部时钟发生器上将振荡脉冲 精品文档 第 10 页 共 56 页 10欢迎下载 信号通过二分频的操作才能实现 单片机工作状态下要想从先取指令 再进行译码 最后再微操做的过程能有序的进行 就必须通过时钟信号来控制 由此可知单片机在 工作状态下提供基本时钟的电路就是时钟电路 生成时钟信号的方式可以分为两种 一种是内部时钟的方式 另一种是外部时钟的方式 本课题采用就是内部时钟方式 晶振电路就是在单片机内组成一个自激振荡器 而这个稳定的自激振荡器是将一个晶 振和两个稳频电容外接到单片机的 XALT1 与 XLAT2 两个引脚上构成的 晶振频率选择 12MHz 晶振电路原理图如图 3 3 所示 1 2 C5 Cap 30pF C6 Cap 30pF XTAL1 XTAL2 图 3 3 晶振电路原理图 3 3 显示电路 本设计显示部分是采用液晶显示器1602 单片机的 P0口是一个地址 数据复用的双 向 I O 口 当使用 P0口访问外部存储器和数据存储器时 P0口内部已有上拉电阻 当 P0口作程序检验 输出指令字节时 必须外接上拉电阻 1602的控制信号 RS RW E 分别接到单片机的 P2 0 P2 1 P2 2 本设计中1602液晶显示器可以实现多种显示功 能 比如在开机过程中能够显示开机画面 提示开机 在功能选择上可以显示当前所 选择的功能模块画面以及电子琴模式中可以显示在琴键上按下的键值 显示电路原理 图如图3 4所示 精品文档 第 11 页 共 56 页 11欢迎下载 P0 3 VCC VCC U1 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 MOSI P1 6 MISO P1 7 SCK RST VDD P3 0 RXD P3 1 TXD P3 2 INT0 P3 3 INT1 P3 4 T0 P3 5 T1 P3 6 WR P3 7 RD XTAL2 XTAL1 VSS GND VCC P0 1 AD1 P0 2 AD2 P0 3 AD3 P0 4 AD4 P0 5 AD5 P0 6 AD6 P0 7 AD7 EA VPP ALE PROG PSEN P2 7 A15 P2 6 A14 P2 5 A13 P2 4 A12 P2 3 A11 P2 2 A10 P2 1 A9 P2 0 A8 P0 0 AD0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 AT89C52 P0 1 1602P1 1 3 4 2 5 6 7 8 9 10 11 12 13 14 15 16 GND VCC P2 6 P2 7 GND P0 0 P0 4 P0 5 P0 6 P0 7 VCC GND VCC VCC VCC P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 8 10K 图3 4 显示电路原理图 3 4 4 4 矩阵键盘识别电路 设计中经常使用的键盘按键分为好多种 比如有电容式 有导电式 还有机械式 和薄膜式等 而将电路接通与断开就是这些键盘按键的基本功能 所以不管是什么种 类的按键 都有这些基本的功能 而现今使用的键盘在功能应用方面主要有两种基本 类型 一种是编码键盘 另一种是非编码键盘 编码键盘的键盘本身就有一个硬件电 路 而这些硬件电路就能够实现接口处在按键被自动检测到时 实现一些比如去抖动 和防串键等功能 而且这些与按键功能相对应的键码也会被送往 CPU 中 但是由于编 码键盘的硬件电路复杂 所以其价格也相应的昂贵 就算其接口简单 用起来也挺方 便 但是一般简单的设计中不会应用编码键盘 只有一些厂商生产的商品才会用到 而非编码键盘虽然仅提供简单的行列矩阵式的按键开关 但在实现功能过程中可以通 过软件编程来实现识别按键 确定与输入键码 以及去抖动等一些功能 所以在设计 中选用非编码键盘可以节省许多的成本 无论选什么按键 在键盘的接口处的四个基 本功能是必不可少的 分别是 去抖动 防串键识别按键以及生成键码 本次设计中 键盘用的是4 4矩阵键盘 它是将16个按键依据4行4列的方式进行排版 键盘在单片机 中是通过 JP50端口进行信号传输的 输出端是由行线连接到单片机的 I O 口上 而输 精品文档 第 12 页 共 56 页 12欢迎下载 入端是由列线连接到 I O 口上 若输出端都是高电平的话 就表示按键没有被按下 我们判断按键是否被按下 可以根据读取当前输入线的状态 因为当按键按下时 表 示有低电平从行线输出来 而且会把输入线电平拉低 而这个状态就能判断按键按下 了没 本次设计选用的键盘耗能低 并且由于它的外围电路元件少 扩充起来会更灵 活 键盘电路原理图如图3 5所示 VCC VCC U1 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 MOSI P1 6 MISO P1 7 SCK RST VDD P3 0 RXD P3 1 TXD P3 2 INT0 P3 3 INT1 P3 4 T0 P3 5 T1 P3 6 WR P3 7 RD XTAL2 XTAL1 VSS GND VCC P0 1 AD1 P0 2 AD2 P0 3 AD3 P0 4 AD4 P0 5 AD5 P0 6 AD6 P0 7 AD7 EA VPP ALE PROG PSEN P2 7 A15 P2 6 A14 P2 5 A13 P2 4 A12 P2 3 A11 P2 2 A10 P2 1 A9 P2 0 A8 P0 0 AD0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 AT89C52 GND VCC SW PB SW PBSW PBSW PB SW PBSW PBSW PBSW PB SW PBSW PBSW PBSW PB SW PBSW PBSW PBSW PB R2 Res1 10k R3 Res1 10k R4 Res1 10k R5 Res1 10k S1S2S3S4 S5 S6 S7S8 S9 S10S11S12 S13S14S15 S16 图3 5 键盘电路原理图 键盘扫描的时候 会先对其横坐标 x 进行操作 也就是扫描 行 再对其纵坐 标 y 进行操作 也就是扫描 列 获取 y 的方法与获取 x 的方法相似 具体的操作可以参考附录的相关总程序 这 样 按键的功能就可以根据获取的坐标 也就是 x y 中 x 与 y 的值来实现 3 5 声音电路 本次设计使用的发声元件是扬声器 图3 6是的扬声器原理图 精品文档 第 13 页 共 56 页 13欢迎下载 VCC LS1 Speaker P2 0R3 0 330 Q1 2N3904 GND 图3 6 扬声器原理图 声音电路是由 2N3904 NPN 三极管和喇叭组成 实现功能时 直接从 AT89C52 中获取 的高电平控制信号 然后再通过这个三极管把这个控制信号放大 再驱动扬声器放出声音 但因为扬声器所需驱动功率较小 驱动器件要求也较低 所以选用 2N3904 型号的 NPN 型 三极管就可驱动扬声器发出声音 这样在设计中所用的成本也会相应的减少 在单片机中 的 P2 口就是实现音乐的播放功能的接口 此声音电路实现的功能就是播放音乐 在电子 琴模式下 按键弹奏出的声音也是由喇叭播放出来的 精品文档 第 14 页 共 56 页 14欢迎下载 第 4 章 软件设计 一个系统想要正常运行不仅仅依靠硬件系统的支持 而且要依靠软件系统的支持 若是把这个系统比作人 那么人的躯体就是硬件系统 而人的灵魂则是软件系统 只 有将硬件系统和软件系统之间相互完美的配合才能组成一个能够 思考 和 判断 的整体系统 16 在设计中依靠软件的可编程性 能精简硬件系统的组成 同时依靠着 软件编程的灵活性 可以省略通过对硬件系统进行修改而实现对整个系统功能的修改 软件系统与硬件系统之间是密切相联的 软件系统的成立是建立在硬件系统完成的前 提上 离开了硬件系统 软件将无法实现任何功能 软件设计的重要特性是具有一定 的针对性 针对硬件系统的不同 就要编写不同的软件程序 要想系统拥有较快的工 作效率 以及较高的可靠性 除了硬件系统的影响外 软件系统同样起到决定性的作 用 4 1 Proteus 仿真软件与 Keil 编译介绍 软件的编程需要依靠优良的平台 此次设计用的 EDA 操作系统就是一款由英国 LCE 公司所刊行的 而此操作系统中的 Proteus 操作平台就是一个优良的软件 这款操作 系统不仅涵盖了别的 EDA 操作系统进行仿真的功效 对于单片机和它的外围电路同样 可以仿真 15 目前在国内 Proteus 软件推广刚起步 就已经受到单片机爱好者 从事 单片机教学的教师 致力于研究单片机开发应用的科技工作者的青睐 18 Proteus 是 世界上著名的 EDA 工具 从原理图的布图 代码的调试到单片机与外围电路协同仿真 以及一键切换到 PCB 的设计 真正实现了从概念到产品的完整设计 18 这款系统的处 理器模型功能强大 它支持8051 HC11和 PIC 系列中的10 12 16 18 24 30以及 DsPIC33 另外还支持 AVR ARM 8086以及 MSP430等 后来还支持 Cortex 与 DSP 等处 理器 不仅如此 该设计平台还在不断增加其他的处理器模型 16 该平台同样支持许 多的编译器 比如 IAR 和 Keil 以及 MATLAB 等 以便用户只用同一个平台来进行各项 操作 在软件编程的过程中 我们用汇编软件把源程序该成机器码 这样 CPU 才能对其 执行命令 过去在 MCS 51 单片机上进行汇编 所使用的软件是 A51 而现在单片机发 展迅速 开发所用的语言大多是高级语言 现如今大多研究人员在单片机上用的是最 流行的 Keil 软件 所用最近一段时间的厂商在制作仿真机的过程中都表示会对 Keil 精品文档 第 15 页 共 56 页 15欢迎下载 软件给予全面的支持 如今使用的开发语言大部分是 C 语言 美国 Keil 公司出品一款 开发系统就支持在单片机上运用 C 语言来开发 是 51 系列的 KeilC51 软件 C 语言比 汇编语言的优势要大的多 不管从功能上 结构上 还是可读性 可维护性上都明显 而且简单易懂 Keil 软件具有完整性 拥有完整的开发方案 我们可以将一些功能和 方案集中到一个集成开发环境 Vision 中 其中的功能方案有 C 编译器 有宏汇编 有连接器与库管理 还有一个功能强大的仿真调试器 在 WINDOWS7 和 WINXP 等一些操 作系统中就可以使用 Keil 软件 不管你用的开发语言是 C 语言还是汇编语言 它集成 环境方便 软件仿真调试效率高 能使你的工作也会事半功倍 目前差不多有超出 10 万名微控制器开发人员在使用这种获得业界认同的解决方案 17 4 2 音调与节拍 4 2 1 发声原理 物理学中声波的频谱范围一般在几十赫兹到几千赫兹 单片机发声是通过扬声器 发出的声音 其原理是在接口线处生成 高电平 或 低电平 这样就可以制造一定 频率的方波信号 而发出的声音不可能是单一的 所以要对 高低 电平的持续时间 进行控制 这些都是通过一个延时程序来控制的 这样就可以改变音调 放出不同的 声响 16 音调和音符就是音乐能顺利播放的必要元素 先了解一下音调 对于音调 声音 的频率与声音播放的强度就是其确定因素 纯音达到一定的强度时 频率的升降也直 接会决定音调的升降 而纯音的频率中 低频纯音的音调会随着声音强度的增高而有 所下降 相对的高频纯音的音调却会随着声音强度的增高而上升 17 另外 音符的频 率有所不同 现在来了解节拍 设计软件时想要控制音符的节拍 只需用定时器 T0 就可以了 而不同定时时间的产生只要有不同的初值输入就行了 但是初值是不能直接去改变的 所以想要控制节拍时间的长短 可以通过判断中断计数器的值来实现 并产生不同的 节拍 这是因为 T0 的定时时间最多只有 131ms 不过可以利用 T0 生成 10ms 的时间基 准 再设置一个中断计数器就行了 19 在播放音乐时产生的音符和控制节奏 都是通 过查表的程序依次读取的 而这个表是由曲谱中全部的常数构成的 一组常数又是由 一个音符中时间常数与相对应的节拍常数组成 这样就可以实现发声效果 特别的 音乐的结束由结束符 00H 表示 音乐的停顿效果则是由休止符 FFH 表示 还可以在 精品文档 第 16 页 共 56 页 16欢迎下载 相同的两个音符间或其他音符间插入时间单位频率不一样的音符 这样可以增强节奏 感 20 单片机播放出的音乐没有电子琴可以演奏不同音调声音的功能 因为放出的音乐 基本是单音频率 没有一定幅度的谐波频率 这样 对单片机放音只要知道音调和节 拍的知识就可以了 音符频率对照表如表 4 1 所示 表 4 1 音符频率对照表 4 2 2 音调的确定 唱歌时会正常有 DO RE MI FA SO LA SI 这 7 个音调 音调名就是大写的英 文字母 C D E F G A B 来表示的 唱成简谱的 1 2 3 4 5 6 7 相当于汉 字 哆唻咪发唆啦西 的读音 这是唱曲时声乐的发音 所以叫 音调 即 Tone 19 而 C D E F G A B 这组音调名可以被我们拆为 12 个等份 可以用一个 半音 来描述一个等份 用 全音 来描述相邻两个音间隔的两个 半音 我们通常唱成 1 2 3 4 5 6 7 的音叫自然音 那些在它们的左上角加上 号或者 b 号的叫变化 音 这些变化音中 的作用是在基于原来的音上再升高半音 叫做升记号 b 的作用是 在基于原来的音再降低半音 叫做降记号 例如 高频率 1046hz 做 只是中间做频 率 523hz 翻了一番 阿尔托做频率 523hz 只是低音频率 266 赫兹 的两倍 同 精品文档 第 17 页 共 56 页 17欢迎下载 样 高重复频率 1175hz 只是中间再频率 587hz 翻了一番 阿尔托重新频率 587hz 只是低音重复频率 294 赫兹 的两倍 1 以生成音频脉冲 以解决只是一个音频周期 1 频率 那么这段除以 2 其中 一半是周期时间 利用定时器计使用这个半周期的时间 我们可以重复计时此半周期时 间 在计时结束后再将 I O 口进行反相 直接就能在 I O 脚上获得这个频率的脉冲信号 2 在计数器模式下工作 只要采用 AT89C52 单片机内部的定时器就能实现 然后通 过获取 TH0 和 TL0 的数值的方法来产生不同频率 特别的 音乐的结束由结束符 00H 表示 音乐的停顿效果则是由休止符 FFH 表示 通过查表可查到 OOH 与 FFH 以此来实现功能 3 如中音 D0 频率为 523HZ 其周期 T 1 523 1912 微秒 要想获得中音 D0 523HZ 就将令计数器直接定时为 1912 2 956 这样每当计数 956 次后 就将 I O 口反相就可 以了 C 调各音符频率与计数值 T 的对照表如表 4 2 所示 表 4 2 C 调各音符频率与计数值 T 的对照表 4 2 3 节拍的确定 音乐是要有旋律的 所以音乐不仅仅只靠音调 节拍也是必不可少的 这样音乐 才有旋律 音乐的快慢也可以控制 节拍的英文叫做 Beat 通俗点来讲就是打拍子 比如在听音乐的时候会情不自禁的随其拍手 实际上 1 拍是多少秒 并无严格的规定 就和人的心跳差不多 人的心跳大多是每分钟 72 左右 但有些人会快一些 而有些人 会慢一些 只要音乐听的动听就好 这样我们就可以用节拍来描述一首音乐可以持续 精品文档 第 18 页 共 56 页 18欢迎下载 多长时间 当遇到休止符时 发音会暂停 形成音乐的过程是将不同频率相互结合 再通过与节拍数相对应的延时过程就行 了 通过理解音乐的一些基本常识 可以知道将很多不一样的音符结合可以产生音乐 而不同的音符还对应不一样的频率 这样生成不同频率的音频脉冲就可以形成音乐 单片机内可以很容易的就得到不一样频率的脉冲 形成有方波频率的信号通过定时器 与计数器就能直接实现 所以 能播放出如此悦耳动听的声音 只要能搞明白音符和 相对应的频率就行了 4 2 4 音乐编码 一个音符中要有两个音节 其中音调占用一个字节 而另一个字节被节拍占用 在音调字节中 高四位意味着低中高音 0 表示低音 1 表示中音 2 表示高音 音调就是其中的低四位 就像中音 do 就表示成 0 x11 节拍字节中 数值 i 的意思是延迟 i 个十六分音符 一首歌曲如果是 4 分音符组 成 那一拍就是 0 x04 而 0 x04 还可以来代表其的延时 就是在下边无横线 右边无横 线和数字的情况 若底面有个横线就是用 0 x02 表示 右边有个横则用 0 x08 表示 右边 有两横就用 0 x0c 表示 而右边有三横则是用 0 x10 表示 右下角有一点 加上当前延时 的一半 因为每个歌曲的播放速率各不相同 单位就可以用曲速 单位 拍每分钟 表 示 所以在音乐编码表中的第 0 和第 1 元素用来表示曲速 这样就能根据以上的规律在不同歌曲的简谱图上编写出单片机辨别的简谱表 4 3 系统软件总体设计流程图 4 3 1 主程序流程图 精品文档 第 19 页 共 56 页 19欢迎下载 开始 扫描键盘 读取歌曲 是 否 播放键按下 有矩阵键按下 否 识别按键 算出定时器初值 开启定时器 并 赋初值 扬声器 发声 按键是否释放 关闭定时器 P0 口置 0 是 否 算出音符的 音调 节拍 根据音调给 T0 赋初值 开启 T0 T1 按节拍延迟 关闭 T0 T1 是否结束符 否 读下一个音符 是 是否停止播放 否 是 是 精品文档 第 20 页 共 56 页 20欢迎下载 图4 1主程序流程图 4 3 2 歌曲播放流程图 图4 2 歌曲播放流程图 4 3 3 按键扫描流程图 由于定时器的初始值设置不一样 所以不同按键对应不同的功能 在设计过

温馨提示

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

评论

0/150

提交评论