收藏 分销(赏)

北邮数字电路实验报告-简易电子琴制作.doc

上传人:快乐****生活 文档编号:4292430 上传时间:2024-09-04 格式:DOC 页数:12 大小:373.05KB
下载 相关 举报
北邮数字电路实验报告-简易电子琴制作.doc_第1页
第1页 / 共12页
北邮数字电路实验报告-简易电子琴制作.doc_第2页
第2页 / 共12页
北邮数字电路实验报告-简易电子琴制作.doc_第3页
第3页 / 共12页
北邮数字电路实验报告-简易电子琴制作.doc_第4页
第4页 / 共12页
北邮数字电路实验报告-简易电子琴制作.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、数字电路实验报告简易电子琴设计与实现 班级:2010211204 学号:10210992 姓名:许鹏2012年11月11号目录一实验介绍21.实验目的22.实验所用仪器及元器件23.实验内容2基本内容2提高要求34.实验原理3二实验设计与实现41.实验思路42.程序设计53仿真波形及分析9三故障及问题分析10四实验总结10一实验介绍1.实验目的(1)进一步掌握VHDL和Quartus II软件的使用;(2)理解状态机的工作原理和设计方法;(3)掌握利用EDA工具进行自顶向下的电子系统设计方法。2.实验所用仪器及元器件(1)计算机;(2)EDA开发板及相应元器件。3.实验内容基本内容1.用88点

2、阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示:2. 用BTN1BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。下图所示为按下BTN3按键时点阵的显示情况:3. 由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。4.通过按键BTN0进行复位,控制点阵显示图1的初始状态。提

3、高要求1.可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。2.增加手动演奏的音符存储、播放功能。4.实验原理因为音阶的频率我们是知道的,设为f,而max2板上的clk信号是50MHz,所以要得到需要的f,只需要n=50M/f 就可以得到分频的倍数了。以下是已知的所需频率f。音名频率(Hz)音名频率(Hz)音名频率(Hz)低音1261.63中音1523.25高音11046.50低音2293.67中音2587.33高音21174.66低音3329.63中音3659.25高音31381.51低音4349.23中音4698.46高音41396.92低音5391.99

4、中音5783.99高音51567.98低音6440中音6880高音61760低音7439.88中音7987.76高音71975.52二实验设计与实现1.实验思路逻辑实验图如下: 开始 档位选择 高音档位低音档位中音档位蜂鸣器不同档位不同分频Btn按钮简要设计思路及实现过程:通过按下BTN1-BTN7七个按钮,结合拨码开关状态(高中低),将实验板上的原始时钟信号50MHZ进行21种不同的分频,分频系数M=50M/f。得到的clk_out直接给beep对应的管脚就行了。2.程序设计首先从点阵模块和数码管显示档位开始写:以上是in,out信号和signal信号的定义(ps包括我的自动播放)点阵模块的

5、分频器,其显示原理和去年的数码管一样,就是让点阵不停的闪动,其频率超过人眼识别的能力,于是就能看到一直亮着的点阵了。这个是数码管显示音阶档位,三档分别对应数字1,2,3 因为点阵的显示要与btn的按钮有关,所以case里面嵌套了一个判断,如果btn有输入,就让对应的列点阵全部熄灭,已达到要求的效果。这个就是三个音阶的分频了,switch控制音阶,然后num和num_2是分频系数。得到的分频系数,经过分频器,就能得到所需要的clk信号,输出到beep对应的管脚就能行了。至此,已实现了点阵显示,数码管显示档位,按键出音,其实这前面的基本任务完成起来很快,只是后面的自动播放一直没有实现,虽然和同学讨

6、论了很多次,但是最终还是以失败告终。感觉自己的想法和被人是一样的,却总是不能达到想要的结果哎 3仿真波形及分析因为分频器不好做仿真,我也只能做一个点阵的仿真了可以看到,当a周期变化的时候,总有一个时刻是全零的状态,这是因为这个时刻受btn0的影响,使a=”00000000”,于是对应的点阵是熄灭状态(ps.a是row)三故障及问题分析1. 关于基本功能的实现,刚开始编译的时候,没按键的情况下蜂鸣器也会不停的想,后面经过和同学的讨论,发现当没有btn按键的时候,即case为when others的时候,会让先进行clk_out=1的赋值,所以把它改成clk_out=0,问题就解决了。至于其他的基

7、本功能基本上没费什么力气就解决了。2.但是关于自动播放,我真是下了好大的力气,还是没能解决,.自动播放的速度不是我按我想要的频率响的.我放进去的曲子也不是按我所规定的响.总是乱响各种问题都不能解决四实验总结因为暑假的时候自己有摸过VHDL,所以这次实验课的时候上手特别快,很快就把基本功能实现了,就剩下一个自动播放一直让我纠结。也许确实是投入了很多时间在这个自动播放上,却没有一个好的结果,但是其过程很让我充实,通过和同学的讨论,自己了解到了他们的想法,虽然他们大多都是参考了一个模板来构造自己的程序的。其实自己也做得挺好的了,因为所有的代码都是我自己一个一个的敲的,完全源于自己,已经把我所有的想法都放到代码里了,我觉得这也就足够了,“尽吾志者二部能至也,可以无悔矣”总的来说,这次试验还是蛮好玩的,而我也选了一个最好玩的电子琴来玩希望以后还有机会接触到类似的一些试验吧。12

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服