电子琴的微机原理设计方案_第1页
电子琴的微机原理设计方案_第2页
电子琴的微机原理设计方案_第3页
电子琴的微机原理设计方案_第4页
电子琴的微机原理设计方案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

0 电子琴的微机原理 设计方案 第一章 方案论证 设计规模和总体框架 统的基本功能 弹奏: 用键盘输入对应的七个音阶, 用户每按一个 键盘 琴键就弹奏相应的音符 ,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶; 扩展功能: 演奏: 电子琴设有 8 个按键,其中 7 个作为音符输入,另外一个作为模式转换按键,实现用户存放的自动播放歌曲。 按下键 盘上某一个指定的建 后自动弹奏预存琴谱功能; 要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测 出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 统的主要功能模块 控制模块:选择 片机来控制整个系统,其中 1口为信号输出口, 接音响驱动电路。 用户编程模块: 由键盘矩阵、 示管、扬声器这几个部分组成 存储器模块: 8088 有 1储空间,系统提供用户使用的空间为 00000 用于存放、调试实验程序。 键盘输入模块:用来操作者对机器的控制操作, 在 个按键开关加 8 个拉电阻,它们一端接 5 伏电源,一端接地。只要有一个按键被按下,并被单片机扫描到,则会播放发出音符。 ( 示管显示当前按键,扬声器发出对应音符。) 输出驱动模块: 利用 片机的 口的 接到一 个七段 数码管的 a 码管的公共端接 电源; 声音的播放模块,它接到 上,当有按键按下时,它通过 心控制芯片的识别后发出相应的音符。 1 统的组成框图 根据系统的功能要求,我们可以得到系统的组成框图: 图 1 系统框图 作流程 何使用 系统安装及配置 说明 系统运行环境 矩阵键盘 扬声器 单片机 功能选择 2 P 统安装及配置 安装 系统操作说明 ( 1) 编译,产生目标 , 择产生的 ,点击运行开始模拟。 ( 2) 开启本系统,数码管显示“ -”。 ( 3) 按任意键盘,数码管显示所按下的键盘数,扬声器发出相应的音符。 用流程 主程序 通电 选择“编程 /运行” 进入“编程”状态 转换“编程 /运行” 按 1 键 按“确定” 相应的显示 1 进入下一步 发出 音 按 2 键 相应的显示 2 发出 进入运行状 态 按“启动 /停止”键 启动运行 按“启动 /停止”键 停止运行 按“暂停 /恢复”键 暂停运行 按“暂停 /恢复”键 恢复运行 3 图 2 使用流程 第二章 硬件系统的设计 制模块的选择: 本次设计中 中心控制模块 是 选择 片机来控制整个系统。 户编程模块: 本系统由键盘矩阵、 示管、扬声器这几个部分组成, 示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下: 图 3 储器模块 : 8088 有 1储空间,系统提供用户使用的空间为 00000 用于存放、调试实验程序。具体分 配如下: 贮器地址分配 表 2存贮器地址分配 4 (一 ) 表 2(二 ) 监控占用 00004为单步( T)、断点( 无条件暂停( 断矢量区, 用户也可以更改这些矢量, 指向用户的处理, 但失去了相应的单步、断点、暂停等监控功能。 控程序区系统占用。 盘输 入模块: 在 个按键并加有 8个拉电阻 伏电源 ,一端接地 只要有一个键被按下 ,并被单片机扫描到 ,则会使播放器发出声音 . 5 图 4 出驱动模块: 系统(模块)一 示模块如图 2示,利用 片机的 段 数 码管的 a 码管的公共端接 电源 。 矩阵扫描显示当前按键模块如下: 图 5 系统(模块)二 矩阵扫描扬声器发出对应音符模块如下: 6 图 6 7 第三章 应用软件的设计 应用系统中任务的实现,最终是靠程序的执行来完成的。应用软件设计的好坏,将决定系统的效率和它的优劣。 应用软件的设计依据是使用流 程。根据使用流程可以确定系统的控制流程和软件模块。根据顺序控制器的操作流程可以确定,本系统软件主要由 4 个模块构成:主程序,编程控制模块,运行控制模块和定时器中断服务模块。 程序 主程序的任务首先是进行初始化,然后根据“编程 /运行”开关的状态判别,进入“编程状态”或“运行状态”。 根据主程序的操作流程,可以确定主程序的控制流程如图 主程序流程图 N N Y Y 图 7 主要程序: P,#60H ;初始化堆栈指针 0H,#00 ;定时器初值清零 1H,#00 1,#0;设置 #01H ;设置定时器 0为工作模式 1 开始 初始化 是否自动播放 是否手动弹奏 调用发音和延时程序 结束 8 ;开定时器 0中断 A ;开总中断 ;关闭定时器 0 程控制模块 根据编程状态的操作流程,可以确定编程操作的控制流程如图图 8 电子琴程序流程图 N 0h 1h 2h 调显示子程序 是数字键 17? 用键值查表得到音频相关数据 按音频数据设置计数器初 值 启动定时器,开始发声 延时 关闭定时,停止发声 是 否 开始 9 000 02008E 000000B 00D 00F 85518C 012 85528A 015 017 c, 019 9290 c 001B 01D 1550 01F 021 32 0022 0024 0026 0028 002A 002C 002E 64578, 64686, 64778, 64821, 64898, 64968, 65029 0030 90 #033 7400 a, #0 0035 a 0036 90 #039 a, 03A a 003B 540F a, #003D 22 003E 161514 0041 16h, 15h, 14h, 010 0042 131211 0045 10 13h, 12h, 11h, 10h 0046 00049 0A 000004A 0004D 09 003h, 06h, 09h 004E 00051 08 002h, 05h, 08h 0052 000104 0055 07 00h, 01h, 04h, 07h 0056 90 #059 8583 05C 7800 #N) 005E 7920 #00100000b 0060 7 #6 0062 a, 063 a 0064 a 0065 a 0066 03 a 0067 a 0068 a, 069 a 006A 540F a, #006C 7006 06E 070 7 #0072 800F 0074 a 0075 a, 076 14 a 0077 23 a 0078 23 a 0079 a ; (4 007A a, 11 007B 7904 #4 007D 13 a 007E 4003 080 0A 081 0083 90 #086 a 0087 a 0088 a, 089 90003E #08C 93 a, a+08D 22 008E 758170 #70h 0091 758901 #01 ; 094 75 #82h ; , 1 0097 1130 099 60 09B 1156 09D b, a 009F 60 ; = 0, 7 005 b 005 a, b 003 a ; a = a*2 005 b, a 0000022 #03 a, a+0551 a 0058C a 005 a, b 004 a 003 a, a+12 00552 a 0058A a 0028C 055064 #100 00550 a,00 028C 020097 行控制模块 根据运行状态的操作流程,可以确定运行操作的控制流程如图 Y N N N Y N Y 60 个正弦波 完了吗? 一个正弦波 完了吗? 求出音阶值保存 正弦波个数计数器赋值 60 每个正弦波数据个数计数器赋初值 取 正 弦 波 数 据 送始 键盘读入一个字符 是 吗? 是数字 18 键吗? 返回 亮点阵 点亮 是机内吗? 求出音阶值保存 赋 相 应 频率 值 延时 N Y Y 13 图 9 程序: 80h;8253 通道 0 地址 83h;8253 控制字寄存器地址 88h ;8255A 口地址 89h ;8255B 口地址 8255 控制字寄存器地址 90h 点阵行选的地址 点阵列选的地址 0h,96h,06h 0h,66h,48h,25h,15h,09h,04h 0h,04h,09h,15h,25h,38h,46h ;正弦波数据 20,106,94,89,79,70,63,59 ;发不同音时 8253 的计数器初值 0ah *,0ah * *,0ah * O *,0ah * S Y *,0AH * 61007204 *,0AH * *,0ah 延时 14 *,0ah ,2,3,4,5,6,7,8,0$ ; 8253 计数器初值的序号 62,294,330,349,392,440,494,523 ;扬声器发声各频率值 00 56 ) cs:ds:ax,ds,ax dx, ; 版权显示 1h ;显示提示信息 1h ;等待从键盘接收字符 ,不回显 al= bh ;若为 ,则转 出 1h ;小于 31h 8h ;大于 38h ;不在 1-8之间转 1h ;出相应的时间常数的序号 ;点阵板的列全部选通 dx,dx,al 0000001 :点阵的行赋初值 al, ;根据输入的数字,左移相应位数,即点阵亮相应行 ;如输入 3,则 2,左 移两位,第三行亮 dx,dx,al dx, 9h ;设置 8255A 口入 B 口出 dx,dx, ;根据移位后的 亮相应 dx, ;判断机内机外 al, ;从 8255B 口读一字节 0b ;判断 是否为 10(二进制) 15 jz ;是的话转实验仪 ;否则转机内 ;0 ;取 60 次 32 个正弦波数据 al, ;取正弦波数据 dx,dx, ;放音 ;调延时子程序 si 2 ;是否取完 32 个数据 jl ;若没有 ,则继续 ;总循环次数 60 是否完 ,没有 ,则继续 ch 1h ;延时子程序 bx,dx, ;置 8253 通道 0 为方式 0 工作 0h dx,al al, ;取相应的时间常数 dx,dx, ;向 8253 通道 0 输出 dx,al, ;从 8255A 口读一字节 1 ;判 是否为 1 ;若不为 1,则转 ;子程序返回 al,al,al 0h si,ax di,bx, ;设置 8253 通道 2 方式 3 二进制计数 3h,al 2h 16 2928 ; X=896*533h=18*65536+12928=di 2h, ;8253 通道 2 口设置初值 al,ah 2h, in 1h ;读 8255 ah,al or 1h,al h 0 ;延时子程序 ax bx al,ah 1h,al 时器中断服务模块 定时器子程序图如图 示。 保护现场 停止计时 定时中断 输出音频脉冲电平 (高或低 ) 17 图 10 件调试与软件调试 件调试 1)断电调试: 为了安全,首先进行断电调试,用万用表检测系统是否有 短路现象,再检查严接线是否正确。经检测,接线正确也没有短路现象。 2)通电调试: 第一,检查系统是否正常。第二,检查数码显示是否乱码。 在通电调试过程中,经检查系统正常;数码管显示乱码,查明原因为 8255 输出端口与数码管输入端口接线时接反了,经改正后检查没有出现新的问题。 输入程序并检查无误,经汇编、连接后加载装入系统运行,观察现象。发现倒计时器只能运行一次而不能循环(即程序倒计时到 0后无法继续循环倒计时),经检查发现程 序结束前掉了一条跳转指令。 经修改后,再进行编译并加载,运行程序,结果显示正常并实现了循环功能,经调试三个开关发现开关实现功能正常。 试过程 让 8255 的口工作在方式一输入状态下, 拨码开关的电平信号传送到 8255 的输出口, 走的 8255 输出口的信号送到 8253, 8253 工作在工作方式 3,方波放生气。这样通过送不同的数据时 8253发出不同频率的方波信号,不同频率的方波信号就会驱动发生器发出不同频率的声响。 试方案和测试结果 测试方案 测试结果 启动程序,出现按键提示,按下 1 8键 机内 /实验仪发出相应的音阶 音频脉冲电平反转 脉冲个数减 1 恢复现场 中断返回 18 同时 改变开关状态(可随时任意改变),按 1 8键 对应发出相应的音阶 “ 弹琴 ” 发出优美旋律 按下 退出程序 表 3 19 小结 通过这次课程设计,我学到了不少课本上没有的知识 ,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。原本微型计算机接口技术就是计算机科学与技术专业的一门核心课程,是突出计算机应用的一门课程。 根据自己所学的知识,来完成本次微型计算机课程设计的内容。本次课程设计主要是设计一个电子琴,要求用键盘输入 1、 2、 3、 4、 5、 6、 7 按键,产生不同频率的声音,来模拟电子琴发出音阶乐谱。要发出声音,要用芯片实现,首先想到的是课堂上学过的 8253定时 /计数器它可以发出一定频率的声音。有七音阶个频率,就对应有七个计数初值,通过调用不同的程序,来完成每一次按键所 对应频率的计数初值,进而实现不同的声音。要产生频率,就用到脉冲发生器、分频器;产生音质好、播放出来声音,就用到音频功效模块。各个模块进行相应的连接,来实现电子琴的功能。 这次微机实验课程设计,使我对微机软硬件结合有了进一步的了解。原来并不太清楚是什么意思,一直都很模糊,听课本也是很迷茫;而之前的那些单元实验,也没有都做好。之前做的实验,由于大部分是验证性的,所以就很被动地去做,甚至并没有想为什么要那样连电路,内部的代码更没有认真看。这次课程设计,因为要自己去设计整个过程,所以就不得不去了解学习自己原 来并没有真正弄懂的东西。比如一些程序的代码的意思,汇编语言的逻辑,比如一些芯片的用途。使我对前面所做的实验有了原理性的了解,回头看一些实验,也知其然其所以然了。同时对课本上讲的一些内容,不再像以前那样觉得抽象,通过这次设计,有了具体的理解。 经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本设计音频效果不是很好。不足之处有: 能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其 复杂度 在这为期一周的课程设计中,我深刻明白了理论知识与社会实践相结合的道理,从中得到了以前书本知识所不曾得到的知识,更加明白了如今信息时代电子技能知识的重要性。同时我对自己的动手能力有了信心,这次的课程设计我感觉很完美,我会利用这次机会再努力的提高自己。 编写程序的过程中,我遇到了很多的问题。在此我特别要感谢帮助我的老师们,特别是老师,没有他们,我就不能完成这个课程设计,是他们不厌其烦地帮我讲解。 经过这个课程设计,虽然时间比较短,完成任务的 效果不是很理想,但是既然自己尝试过,就肯定学到了不少东西。这次课程设计对我综合运用所学知识的能力的提高有不小的帮助,之前做的实验都是很简单的编程,跟硬件结合也没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较综合。 经过短短一周的课程设计,我认识到,课程设计能真正让人学到实际应用的东西的一门课程。收获比上几星期课还多。 虽然这是我大学期间第一次以这种方式做设计,可以说是困难重重,但是这是一种全新的实验方法一种新的经历,使我对课程设计有了新的认识,同时增强了我 对本课程各种标准的认识,强化了我独立处事的能力使我受益良多。 20 参考文献 1 杨素行微型计算机系统原理及应用,北京,清华大学出版社, 2004 年 2 刘树中,孙书膺,王春平 J007 3 李广弟。单片机基础 M。北京:北京航天航空大学出版社, 2001 4 杨振江。智能仪器与数据采集系统的新器件及应用 M。西安:西安电子科技大学出版社, 2001 5 彭介华 J高等教育出 版社 ,1997. 6 张毅刚,彭喜元。单片机原理与应用 M(十)北京:高等教育出版

温馨提示

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

评论

0/150

提交评论