多功能电子琴设计报告.doc_第1页
多功能电子琴设计报告.doc_第2页
多功能电子琴设计报告.doc_第3页
多功能电子琴设计报告.doc_第4页
多功能电子琴设计报告.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

中国民航飞行学院中国民航飞行学院 综合课程设计综合课程设计 项目名称 项目名称 多功能电子琴设计多功能电子琴设计 指导老师 指导老师 高丽霞高丽霞 姓姓 名 名 刘琛刘琛 潘龙潘龙 刘繁荣刘繁荣 刘宜武刘宜武 陆韬陆韬 专专 业 业 电子信息工程电子信息工程 2010 年 11 月 19 日 中国民用航空飞行学院课程设计 1 目录 1 系统总体设计系统总体设计 2 1 1 系统设计要求 2 1 2 系统总体设计方案 2 1 2 1 系统设计思路 2 1 2 2 系统总体组成框图 3 2 2 系统硬件设计系统硬件设计 4 2 1 主控制模块 4 2 2 琴键控制模块 4 2 3 播放模块 5 2 4 显示模块 6 2 5 电源模块 7 3 3 系统软件设计系统软件设计 7 3 1 主程序流程说明 7 3 2 琴键扫描程序 8 3 3 显示程序流程说明 9 3 4 播放程序 10 3 5 寻音程序 11 4 系统测试系统测试 13 4 1 显示模块测试 13 4 2 播放模块测试 13 4 3 整体测试 13 5 5 总结总结 15 参考文献参考文献 16 附录附录 17 附录一 元件清单 17 附录二 系统使用说明 18 附录三 系统仿真电路 19 附录四 程序清单 20 中国民用航空飞行学院课程设计 2 1 系统总体设计系统总体设计 1 11 1 系统设计要求系统设计要求 本设计利用单片机的控制程序 4 4 的键盘矩阵 LED 数码显示管设计一 台多功能电子琴 其基本功能如下 1 可以播放两个八度的音阶 2 可以弹奏想要的音乐 3 可以播放预先存储在单片机里的音乐 4 可以在 LED 数码管上显示正在播放和弹奏的音阶 1 21 2 系统总体设计方案系统总体设计方案 本系统采用 AT89C52 为电子琴控制中心 系统主要包括主控制模块 琴键 控制模块 播放模块 显示模块和电源模块 下面对这几个模块的设计进行论 证比较 1 2 1 系统设计思路 本设计采用 AT89C52 单片机作为整个系统的控制中心 控制整个系统的运 行 外加琴键控制模块 播放模块 显示模块和电源模块使制作的电子琴可以 完成上述功能 琴键控制模块由 16 个按键组成 使用者可以通过按不同的琴键 弹奏出不同的音阶 一段音乐是由许多不同的音阶组成 而每个音阶对应着不 同的频率 这样我们就可以根据不同的频率组合得到我们想要的音乐 电源模 块向单片机 LED 数码管等需要供电器件提供电源 播放模块负责播放琴键弹 奏的音阶以及播放预先存放在单片机里的音乐 同时显示模块会显示出相应的 音阶 下表是不同的音阶对应的频率 以 12MHz 为例 音阶频率 Hz 音阶频率 Hz 中音 1523高音 11046 中音 2587高音 21174 中音 3659高音 31318 中国民用航空飞行学院课程设计 3 中音 4698高音 41396 中音 5784高音 51567 中音 6880高音 61760 中音 7988高音 71975 表 1 1 各音阶对应频率表 1 2 2 系统总体组成框图 下图即为根据上述描述所绘制的多功能电子琴系统的总体组成框图 图 1 1 系统总体框图 中国民用航空飞行学院课程设计 4 2 2 系统硬件设计系统硬件设计 2 12 1 主控制模块主控制模块 本系统的主控制模块采用 AT89C52 单片机 AT89C52 单片机是美国 ATMEL 公 司生产的低电压 高性能 CMOS 单片机 片内含 8k bytes 的可反复擦除的 flash 只读程序存储器和 256k bytes 的随机存取数字存储器 RAM 与标准的 MSC 51 指令系统及 8052 引脚兼容 片内置通用 8 位中央处理器 CPU 可以 满足不同控制应用场合的要求 对于本次的多功能电子琴系统 AT89C52 可以 满足其对琴键的控制要求 输出音阶的控制要求 显示输出音阶等各模块的控 制要求 图 2 1 AT89C52 管脚图 2 22 2 琴键控制模块琴键控制模块 电子琴利用 4 4 的键盘矩阵作为电子琴的琴键 共有 16 个琴键 分别弹 奏两个八度的音阶 其中 14 个作为音符输入 一个作为播放键 将键盘矩阵的 中国民用航空飞行学院课程设计 5 接口与 AT89C52 单片机的 P1 口相连接 使键盘矩阵受单片机的控制 这样 当 按下各个音阶所代表的按键时 系统播放该按键代表的音阶 当按下播放键时 可以使系统播放预存在单片机里的音乐 下表为所用 4 4 键盘矩阵每个按键所 代表的音阶或功能 图 2 2 键盘矩阵实物图 代表音阶或功能按键代表音阶或功能按键 中音 1 A 高音 1 中音 2 B 高音 2 2 中音 3 C 高音 3 5 中音 4 D 高音 4 8 中音 5 3 高音 5 0 中音 6 6 高音 6 1 中音 7 9 高音 7 4 播放键 7 表 2 2 4x4 矩阵各按键代表音阶或功能 2 32 3 播放模块播放模块 电子琴的播放模块是由蜂鸣器组成 蜂鸣器与 AT89C52 单片机的 P3 7 口相 连接 使蜂鸣器受单片机的控制 通过软件编程 使蜂鸣器播放音阶的功能受 中国民用航空飞行学院课程设计 6 键盘矩阵的按键控制 这样 当按下某个琴键后 蜂鸣器便会发出的相应的音 若按下的是播放键 蜂鸣器会播放预存在单片机里的音乐 图 2 3 播放模块仿真电路图 2 42 4 显示模块显示模块 电子琴的显示模块由 LED 数码显示管组成 LED 有着显示亮度高 响应 速度快的特点 常用的有七段 LED 显示器 七段 LED 显示器由 7 个条形发光 二极管和一个小圆点发光二极管组成 根据各管的亮暗组成字符 本系统使用 的 LED 数码显示管是共阴极数码显示管 数码显示管与单片机 P0 口相连接 受单片机控制 通过软件编程使数码显示管受键盘矩阵控制 这样 当按下某 个琴键后 LED 数码显示管会显示出所弹奏音符对应的数字 图 2 4 显示模块仿真电路图 中国民用航空飞行学院课程设计 7 2 52 5 电源模块电源模块 电子琴的电源模块有一个手机充电器外加 LM117 5 0 稳压向单片机 LED 数码显示管等元件供电 下图即为 LM1117 5 0 稳压电源模块的原理图 图 2 5 LM117 5 0 电源模块原理图 3 3 系统软件设计系统软件设计 软件是多功能电子琴系统的主要组成部分 在系统的软件部份也采用 了模块化设计 将系统各模块的功能编写成子函数的形式 这样增加了系 统软件的可读性和可移植性 3 13 1 主程序流程说明主程序流程说明 总体思想 本系统软件设计部分分为三个模块 琴键扫描模块 显示模块 播放模块 寻音模块 寻音模块是将显示模块和播放模块集合在一个函数中 再把几个模块的程序结合在一个主程序中 同时实现键盘扫描 LED 数码管显 示音阶 播放音阶功能 下图即为主程序流程图 中国民用航空飞行学院课程设计 8 图 3 1 主程序流程图 3 23 2 琴键扫描程序琴键扫描程序 1 4 4 键盘矩阵的识别处理 每个琴键都有它的行值和列值 行值和列值 的组合就是这个琴键的编码 矩阵的行线和列线分别通过两个并行接口和 CPU 通信 2 琴键处理程序 确定是否有键按下 是哪个键按下 键的功能是什么 还 要消除键按下和断开时的抖动 两个并行口中 一个输出扫描码 使琴键 逐行动态接地 另一个并行口输入按键状态 由行扫描值和回馈信号共同 形成键编码而实现琴键识别 通过软件查表 查出该键的功能 中国民用航空飞行学院课程设计 9 图 3 2 键盘扫描程序流程图 3 33 3 显示程序流程说明显示程序流程说明 利用单片机的 P0 接口连接到共阴极 LED 数码管的 7 个接口上 数码管的公 共端接地 这样数码管就可以根据软件编程中给出的字型显示指令显示相应数 字 下表为 LED 字型显示代码表 中国民用航空飞行学院课程设计 10 显示字符十六进制代码显示字符十六进制代码 106H96FH 25BHA77H 34FHB7CH 466HC39H 56DHD5EH 67DHE79H 707HF71H 87FHH76H 表 3 1 LED 字型显示代码表 下图为显示程序的程序流程图 图 3 3 显示程序流程图 3 43 4 播放程序播放程序 利用单片机的 P3 7 接口连接到蜂鸣器上 根据所按下的琴键 发出相应 中国民用航空飞行学院课程设计 11 的声音 蜂鸣器发出声音是利用单片机的定时 计数器 0 产生不同的频率方波 信号 定时 计数器 0 初值计算方法如下 C 46083 f 10 3 1 其中 f 为对应音阶的频率 TH0 8192 C 32 3 2 TL0 8192 C 32 3 3 利用定时 计数器的定时功能 使 P3 7 口按一定频率输出方波 产生对应 音阶的音频输出 下图为显示模块的程序流程图 图 3 4 播放程序程序流程图 3 53 5 寻音程序寻音程序 寻音程序是将播放程序和显示程序集合在一个程序函数中 使得单片机控 中国民用航空飞行学院课程设计 12 制蜂鸣器播放音阶时 可以同时显示出相同的音阶 下图为寻音程序的程序流 程图 图 3 5 寻音程序流程图 中国民用航空飞行学院课程设计 13 4 系统测试系统测试 4 14 1 显示模块测试显示模块测试 对显示模块的测试 主要是为了验证显示模块是否能在键盘按下某个按键 后显示出相应的数字 测试步骤具体如下 第一步 检查焊接电路板的线路连接是否有错误 是否有虚焊 漏焊的地 方 待确定电路连接 焊接均没有问题后才能进行下一步 第二步 接通系统的电源 此时 LED 数码管应该显示 8 第三步 按下键盘上的任一按键 观察 LED 数码管是否有显示出相应的 数字 若显示出正确的数字 则表明测试成功 若未成功 则应检查在程序中 是否有错误 4 24 2 播放模块测试播放模块测试 对播放模块的测试 主要是为了验证播放模块是否能在键盘按下某个按键 后播放相应的音阶 测试步骤具体如下 第一步 检查焊接电路板的线路连接是否有错误 是否有虚焊 漏焊的地 方 待确定电路连接 焊接均没有问题后才能进行下一步 第二步 接通系统的电源 此时 蜂鸣器应该不发出任何声音 第三步 按下键盘上的任一按键 听蜂鸣器是否有播放出相应的音阶 若 播放出了正确的音阶 则表明测试成功 若未成功 则应检查在程序中是否有 错误 4 34 3 整体测试整体测试 对系统的整体测试 主要是为了验证系统是否能在多模块的组合下完成设 计需要的功能 测试步骤具体如下 第一步 检查焊接电路板的线路连接是否有错误 是否有虚焊 漏焊的地 方 待确定电路连接 焊接均没有问题后才能进行下一步 第二步 接通系统的电源 此时 LED 数码管应该显示 8 蜂鸣器不播 放声音 第三步 根据下表观察测试现象是否正常 按键数码管显示蜂鸣器播放音阶 A1 中音 1 B2 中音 2 C3 中音 3 D4 中音 4 中国民用航空飞行学院课程设计 14 35 中音 5 66 中音 6 97 中音 7 8 高音 1 29 高音 2 5A 高音 3 8B 高音 4 0C 高音 5 1D 高音 6 4E 高音 7 7 显示播放音乐的音阶播放预存音乐 表 4 1 系统测试对照表 中国民用航空飞行学院课程设计 15 5 5 总结总结 本系统以 AT89C52 单片机为核心 结合显示模块 播放模块 琴键控制模 块和电源模块 实现两个八度音阶的弹奏 播放预存音乐 同时显示播放和弹 奏的音阶的功能 本系统的设计和制作是在对设计电路的仿真基础上完成的 通过仿真中发现的问题对系统的电路和程序进行进一步的调试 以达到更好的 效果 再根据仿真的电路制作实际电路 检验仿真的正确性 通过这次课程设计 我们把平时学习到的知识应用到了实际中 加深了对 所学知识的理解 同时 我们从这次课程设计中也意识到自己对所学知识的掌 握不够深入 对单片机系统的了解还不够细致 以及在编程能力上的缺陷 例 如 在对播放模块的编程中 由于仿真中播放模块只能在按键按下松开后才能 放音 这与实际的电子琴的功能有差异 本想通过修改程序使蜂鸣器在按键按 下时放音 松开后立即停止播放 不过经过几次的程序修改和仿真都未能实现 这一功能 从这点上 就可以看出我们在软件编程上的缺陷和不足 在以后的 学习中 应该加强这方面的能力 另外 在本次课程设计的过程中 我们深刻 体会到了团队合作的重要性 只有一个团队齐心协力 每个成员各司其职才可 以把工作做好 最后 感谢在这次课程设计过程中为我们设计能够最后完成提供帮助和协 助的老师和同学们 中国民用航空飞行学院课程设计 16 参考文献参考文献 1 李群芳 张士军 黄建 单片微型计算机与接口技术 第三版 北京 电 子工业出版社 2009 2 刘洁 简易电子琴设计报告 大庆 大庆石油学院 3 杨文蕊 基于单片机的简易电子琴设计报告 内蒙古 内蒙古民族大学 4 中国芯片手册网 5 中国电子网 中国民用航空飞行学院课程设计 17 附录 附录一附录一 元件清单元件清单 序 号名 字数 量备 注 1AT89C52 1 个 2 LED 数码管1 个共阴极数码管 3 4 4 键盘矩阵1 个 4 晶振1 个 12MHz 5 手机充电器1 个作为电源供应 6AMS1117 5 0 1 个将电源稳压至 5V 7 蜂鸣器1 个作为播放模块 导线 电路板 电阻 电容 若干 中国民用航空飞行学院课程设计 18 附录二附录二 系统使用说明系统使用说明 一 接通系统的电源 将电源线的正负极和电路板上正负极相接 此时 LED 数码管会显示 8 蜂鸣器不发出任何声音 二 弹奏和播放功能 上图显示的是按下键盘的 B 键 LED 数码管会显示 2 同时蜂鸣器会播 放出中音 2 如果按下键盘的其他键则会显示和播放出相应的音阶 若按下 7 键 系统会播放预存在系统中的音乐 LED 数码管根据相应的音乐显示相应的 中国民用航空飞行学院课程设计 19 音阶 附录三附录三 系统仿真电路系统仿真电路 附图 1 系统仿真电路图 下图为按下某一按键后的仿真电路图 附图 2 工作时的系统电路图 中国民用航空飞行学院课程设计 20 附录四附录四 程序清单程序清单 include sbit P14 P1 4 将 P14 位定义为 P1 4 引脚 sbit P15 P1 5 将 P15 位定义为 P1 5 引脚 sbit P16 P1 6 将 P16 位定义为 P1 6 引脚 sbit P17 P1 7 将 P17 位定义为 P1 7 引脚 unsigned char keyval 定义变量储存按键值 sbit sound P3 7 将 sound 位定义为 P3 7 unsigned int C 全局变量 储存定时器的定时常数 unsigned int f 全局变量 储存音阶的频率 code char tab 17 0 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 0 x76 code char music 1 2 3 4 5 5 5 4 3 4 4 4 3 2 1 3 5 1 2 3 4 5 5 5 4 3 4 4 4 3 2 1 3 1 int i 以下是 C 调中音的音频宏定义 define dao 523 将 dao 宏定义为中音 1 的频率 523Hz define re 587 将 re 宏定义为中音 2 的频率 587Hz define mi 659 将 mi 宏定义为中音 3 的频率 659Hz define fa 698 将 fa 宏定义为中音 4 的频率 698Hz define sao 784 将 sao 宏定义为中音 5 的频率 784Hz define la 880 将 la 宏定义为中音 6 的频率 880Hz define xi 988 将 xi 宏定义为中音 7 的频率 988Hz 以下是 C 调高音的音频宏定义 define h dao 1046 将 h dao 宏定义为高音 1 的频率 1046Hz define h re 1175 将 h re 宏定义为高音 2 的频率 1174Hz define h mi 1318 将 h mi 宏定义为高音 3 的频率 1318Hz define h fa 1397 将 h fa 宏定义为高音 4 的频率 1396Hz define h sao 1568 将 h sao 宏定义为高音 5 的频率 1567Hz define h la 1760 将 h la 宏定义为高音 6 的频率 1760Hz define h xi 1967 将 h xi 宏定义为高音 7 的频率 1975Hz void display unsigned int m P0 tab m 中国民用航空飞行学院课程设计 21 函数功能 软件延时子程序 void delay20ms void unsigned char i j for i 0 i 100 i for j 0 j 60 j 函数功能 节拍的延时的基本单位 延时 200ms void delay unsigned char i j for i 0 i 250 i for j 0 j 250 j 函数功能 输出音频 入口参数 F void Output Sound void C 46083 f 10 TH0 8192 C 32 TL0 8192 C 32 TR0 1 delay TR0 0 sound 1 keyval 0 xff 函数功能 根据按键播出相应音频 void xunyin keyval switch keyval case 1 f dao Output Sound 中国民用航空飞行学院课程设计 22 display 1 break case 2 f re Output Sound display 2 break case 3 f mi Output Sound display 3 break case 4 f fa Output Sound display 4 break case 5 f sao Output Sound display 5 break case 6 f la Output Sound display 6 break case 7 f xi Output Sound display 7 break case 8 f h dao Output Sound display 8 break case 9 f h re Output Sound display 9 break case 10 f h mi Output Sound display 10 break case 11 f h fa Output Sound display 11 break case 12 f h sao Output Sound 中国民用航空飞行学院课程设计 23 display 12 break case 13 f h la Output Sound display 13 break case 14 f h xi Output Sound display 14 break case 15 for i 0 i 34 i xunyin music i break 函数功能 主函数 void main void EA 1 开总中断 ET0 1

温馨提示

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

评论

0/150

提交评论