logo资料库

硬件课程设计——存储式电子琴设计(C语言).doc

第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
资料共34页,剩余部分请下载后查看
1.绪论
1.1 问题提出
1.2 设计任务与要求
2.系统设计需求分析
2.1 开发环境及开发平台
2.2 设计的主要算法及分析
2.2.1 程序的主要算法
2.2.2 识别4*4键盘所按下的按键部分的算法
2.2.3 显示预存歌曲名部分的算法
2.3 系统的组成及工作原理
2.3.1 系统组成
2.3.2 工作原理
可编程计数器/定时器8253
可编程外围接口芯片8255
128X64LCD液晶显示屏
3.系统的总体设计
3.1 系统功能层次图
3.2 系统功能描述
4.系统的详细设计
4.1 主程序设计
4.1.1 程序流程图
4.1.2 系统功能描述
4.2 LCD屏显示模块设计
4.2.1 程序流程图
4.2.2 系统功能描述
4.3 键盘识别模块设计
4.3.1 程序流程图
4.3.2 系统功能描述
4.4 弹奏模块设计
4.4.1 程序流程图
4.4.2 系统功能描述
4.5 播放预存歌曲模块设计
4.5.1 程序流程图
4.5.2 系统功能描述
4.6 高中低音转换模块设计
4.6.1 程序流程图
4.6.2 系统功能描述
4.7 录音模块设计
4.7.1 程序流程图
4.7.2 系统功能描述
4.8 播放录音模块设计
4.8.1 程序流程图
4.8.2 系统功能描述
4.9 运行界面截图
5.系统测试
5.1 项目创建过程
5.2 遇到的问题与解决办法
6.系统设计结果分析及结论
7.设计体会
参考文献
附录
中国矿业大学 计算机科学与技术学院 2017 级本科生课程报告 课程名称 硬件课程设计 设计题目 存储式电子琴设计(C 语言) 开课学期 2019-2020 第一学期 报告时间 2019 年 12 月 26 日 学生姓名 王斌 学 班 专 号 08173040 级 计科 6 班 业 计算机科学与技术 任课教师 王凯
《硬件课程设计》课程报告评分表 开课学期:2019-2020 第一学期 姓名:王斌 序 号 毕业 要求 学号:08173040 课程教学目标 专业班级:计科 6 班 考查方式与考查点 占比 得分 1 1.3 2 4.3 3 9.1 目标 1:了解微机应用系统解决复杂 工程问题的基本方法。掌握微机应 用系统硬件电路设计及软件功能需 求分析方法和模型。能够针对微机 系 统 应 用 领 域 工 程 需 求 的 系 统 要 求,进行分析与设计。 目标 2:能够针对硬件电路组成需求 描述进行系统硬件设计,能够分析 系统功能的软件需求,根据模块设 计原则,综合考虑系统的算法模型 和软硬件开发,进行合理的方案设 计、编程实现、系统测试及对设计 方案进行优化。 目标 3:具备多学科背景知识,并制 定项目计划,能够按照标准规范进 行设计。能够在多学科背景下具备 独立分析问题解决问题的能力。 4 10.3 目标 4:掌握设计报告撰写,通过成 果演示、陈述发言的清晰表达、回 答问题准确性等。 5 12.1 目标 5:对选题主动通过各种途径寻 求解决方法(主动查阅资料、请教 老师、同学讨论等)。通过各种资 源平台的使用及教师意见的反馈, 完成高质量的设计任务,有无创新 意识。 中期检查与设计文档 掌握解决复杂工程问题的 基本方法。微机应用系统 10% 软硬件设计相关的理论知 识。 中期检查与设计文档 考核题目需求分析和功能 分析;综合知识应用能力 及设计方案的完整性; 考核软件编程及系统调试 测试,设计方案进行优化。 30% 中期检查与设计文档 考核独立分析问题解决问 题的能力 10% 现场验收与答辩 考核编程实现的代码难度 和复杂性、设计工作量等; 考核设计成果、所涉及的 问题答辩。验收设计报告 的结构合理性、内容和图 表的正确性。验收设计报 告排版的规范性。 40% 现场验收与答辩 考核设计成果完整性;所 涉 及 的 设 计 课 题 的 创 新 性。 10% 总成绩 100% 任课教师: 年 月 日
目 录 1. 绪论...................................................................................................................................... 1 1.1 问题提出..................................................................................................................... 1 1.2 设计任务与要求......................................................................................................... 1 2.系统设计需求分析................................................................................................................ 2 2.1 开发环境及开发平台................................................................................................. 2 2.2 设计的主要算法及分析............................................................................................. 2 2.2.1 程序的主要算法.............................................................................................. 2 2.2.2 识别 4*4 键盘所按下的按键部分的算法...................................................... 2 2.2.3 显示预存歌曲名部分的算法.......................................................................... 3 2.3 系统的组成及工作原理............................................................................................. 3 2.3.1 系统组成.......................................................................................................... 3 2.3.2 工作原理.......................................................................................................... 4 3.系统的总体设计.................................................................................................................... 7 3.1 系统功能层次图......................................................................................................... 7 3.2 系统功能描述............................................................................................................. 7 4.系统的详细设计.................................................................................................................... 9 4.1 主程序设计................................................................................................................. 9 4.1.1 程序流程图...................................................................................................... 9 4.1.2 系统功能描述.................................................................................................. 9 4.2 LCD 屏显示模块设计................................................................................................ 10 4.2.1 程序流程图.................................................................................................... 10 4.2.2 系统功能描述................................................................................................ 10 4.3 键盘识别模块设计................................................................................................... 11 4.3.1 程序流程图.................................................................................................... 11 4.3.2 系统功能描述................................................................................................ 11 4.4 弹奏模块设计........................................................................................................... 12 4.4.1 程序流程图.................................................................................................... 12 4.4.2 系统功能描述................................................................................................ 13 4.5 播放预存歌曲模块设计........................................................................................... 14 4.5.1 程序流程图.................................................................................................... 14 4.5.2 系统功能描述................................................................................................ 14 4.6 高中低音转换模块设计........................................................................................... 15 4.6.1 程序流程图.................................................................................................... 15 4.6.2 系统功能描述................................................................................................ 15 4.7 录音模块设计........................................................................................................... 16 4.7.1 程序流程图.................................................................................................... 16 4.7.2 系统功能描述................................................................................................ 16 4.8 播放录音模块设计................................................................................................... 17 4.8.1 程序流程图.................................................................................................... 17 4.8.2 系统功能描述................................................................................................ 17 4.9 运行界面截图........................................................................................................... 18 5.系统测试.............................................................................................................................. 19
5.1 项目创建过程........................................................................................................... 19 5.2 遇到的问题与解决办法........................................................................................... 19 6.系统设计结果分析及结论.................................................................................................. 20 7.设计体会.............................................................................................................................. 20 参考文献.................................................................................................................................. 21 附录.......................................................................................................................................... 22
1.绪论 1.1 问题提出 作为新时代的产物,电子琴具有便携、体积小、重量轻、音色多等其他乐器无法比 拟的优势。目前我国接触电子琴文化的人有数亿人,正在学习电子琴的人数也在逐年上 长。我国已成为全世界电子琴拥有量最大、普及率最高的国家。通过本次硬件课程设计, 我可以在实验室中研究简单的可存储式电子琴,了解其中基础的理论与原理。针对可存 储式电子琴,所提出的首要问题如下: 问题一:设计的电子琴具有哪些功能? 问题二:应该选用哪些硬件来实现? 问题三:如何发出不同频率的声音? 问题四:如何实现录音和播放录音的功能? 问题五:使用 C 语言编程需要哪些动态库和静态库,有哪些接口函数 1.2 设计任务与要求 本次硬件课程选题为存储式电子琴。设计任务为利用实验平台的 8255 芯片、8254 芯片、键盘部分以及扬声器等硬件,通过编程,使其分工协作,紧密联系在一起,来模 拟一台电子琴,并使其具有弹奏乐曲、切换高中低音、播放预存音乐、录音、播放录音 的功能。要求利用 8255 控制键盘模拟电子琴键盘,由 8253 产生音节频率输出,完成弹 奏乐曲。设定存储键完成所弹奏乐曲的存储,并设计回放键播放所存储的乐曲。使用 C 语言,并添加 12864LCD,用来显示预存的歌曲。 1
2.系统设计需求分析 2.1 开发环境及开发平台 开发环境: 操作系统:Windows 7 64 位 集成开发环境:VC6.0 开发平台: TPC-ZK-II 综合开放式微机原理及接口技术实验系统 2.2 设计的主要算法及分析 2.2.1 程序的主要算法 1.启动设备; 2.显示预存歌曲名; 3.若电脑键盘没有键按下,转 4,否则转 10; 4.等待并识别 4*4 键盘按下的按键,若按下的按键为 1-7,转 5;若按下的按键为 8 或 9, 转 6;若按下的按键为 A-C,转 7;若按下的按键为 D,转 8;若按下的按键为 E,转 9。 若上述条件均不满足,则继续识别按键。 5.发出相应的音调,延时一段时间后停止发声,转 4; 6.播放预存音乐,转 4; 7.按键 A-C 分别对应设置电子琴发音为高、中、低音,转 4; 8.设置当前模式为录音模式,存储接下来弹奏的乐曲,转 4; 9.取消录音模式,播放存储的音乐,转 4; 10.关闭设备,退出程序。 2.2.2 识别 4*4 键盘所按下的按键部分的算法 1.设置 8255 芯片 C 端口高四位输出,低四位输入; 2
2.向 C 口高四位送 0; 3.读 C 口值存放到变量 i 中,若低四位值全为 1,转 1,否则转 4; 4.设置 8255 芯片 C 端口高四位输入,低四位输出; 5.向 C 口低四位送 0; 6.读 C 口值并与 i 进行按位或,得到按键编码; 7.查表,得到 6 中编码对应的按键。 2.2.3 显示预存歌曲名部分的算法 1.初始化 LCD,将其整体显示设置为“ON”,并初始化 8255; 2.设置要显示汉字的起始行端口地址; 3.将歌曲名各个汉字的编码依次写入 LCD。 2.3 系统的组成及工作原理 2.3.1 系统组成 硬件选择:8255 芯片和 8254 芯片,4*4 键盘,喇叭单元,12864LCD。 系统的接线如下图所示: 图 2-1 系统接线图 3
2.3.2 工作原理 系统通过 8255 芯片向 4*4 键盘的行线和列线分别送 0,再分别读取键盘的列线和行 线状态,从而得到按键编码,通过查编码表即可得到所按下的按键。通过向 8254 写入 不同的计数初值,8254 可以输出不同频率的方波,如果用 8255 的输出口连接 8254 输出 一同连接到与门的输入,再将与门的输出连接到喇叭单元,则可以控制喇叭的发声与停 止发声,从而实现发出不同频率的声音,并可以控制发声时长。通过向 LCD 写入不同指 令以及字符编码,可以使 LCD 显示不同字符。各个硬件的组成以及工作原理如下: 可编程计数器/定时器 8253 在本次课程设计中 8253 的功能为:产生与各音符频率一致的方波。通道 0 工作在 方式 3 下,先低后高写入计数初值,并采用二进制计数。每个音阶都有一个确定的频率, 计数初值 N=时钟频率/音阶频率。C 调各音符对应的频率如下表所示: 表 2-1 音符频率表 音符 频率(低) 频率(中) 1 262 523 2 294 587 3 330 659 4 349 698 5 392 784 6 440 880 7 494 988 频率(高) 1046 1175 1318 1397 1568 1760 1976 可编程外围接口芯片 8255 在本次课程设计中 8255 的功能为: (1)识别键盘所按下的按键:先向行线送 0,读取并保存列线的值;再向列线送 0, 读取并保存行线的值,将两个值按位相与,得到能唯一确定所按下按键的编码值。从而 确定所按下的按键。各按键对应编码值如表 2.2 所示。 表 2-2 键盘按键对应的键值 按键 0 1 2 3 4 5 6 7 键值 0x77 0x7b 0x7d 0x7e 0xb7 0xbb 0xbd 0xbe 按键 8 9 A B C D E F 键值 0xd7 0xdb 0xdd 0xde 0xe7 0xeb 0xed 0xee 4
分享到:
收藏