简易电子琴设计讲义.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA课程设计报告 题 目: 简易电子琴设计 学 院: 电子信息与电气工程学院 专 业: 电子信息工程 班 级: 姓 名:   学 号: 目录 一 项目概况 - 1 - 二 项目题目 - 1 - 三 方案设计 - 1 - 1.系统端口 - 2 - 2.工作原理 - 3 - 3.SPK0模块 - 6 - 4. 模块M_CODE和DCD7SG - 7 - 5.fre_div模块主要为键盘防抖动提供频率。 - 8 - 6.消除抖动 - 8 - 四 设计中出现的问题 - 9 - 五 心得体会 - 9 - 一 项目概况 选择目的:为了进一步巩固之前学过的知识,将课本的知识结合趣味性,让自己得到更好的提高。 二 项目题目 设计一个4*4键盘弹奏16个音的简易电子琴,音域范围从低音1到高音2,能用数码管或2004液晶显示当前音符和音调高低。 三.方案设计 系统框图如下 图1是电子琴顶层设计电路,电路含3个输入口和3个输出口: 1.系统端口 (1)工作时钟CLK,频率:1MHz。用于在主控模块中产生与琴键对应的振荡频率,以驱动蜂鸣器发出相应的声音。如果使用Cyclone III或以上系列的FPGA,此频率可通过FPGA内的锁相环获得。对于开发板,接锁相环的外部时钟频率是20MHz。 (1) 琴键输入由KEY4x4键盘得到。 (2)输出端口SPK用于驱动蜂鸣器,其输出频率fB与蜂鸣器所发出的音调与图 21-10 所示的电子琴各音节基频有对应关系。 (3)输出信号LED接数码管,用于显示对应的简谱码。H显示音高低。 2.工作原理 图8-21中的模块KEY4X4是阵列键盘,图8-22是此键盘的10芯接口原理图。在应用中。当按下某键后,为了辨认和读取见得信息,一种比较常用的方法是,向A口扫描输入一组分别只含一个0的4位数据,如1110,1101,1011等。若有键按下,则B口一定会输出对应的数据,这时,只要结合A,B口的数据,就能判断出键的位置。如当键S0按下,对于输入的A=1110,那么输出的B=0111。于是{B,A}=0111_1110就成了S0的代码。 可以认为,模块INX2CODE是一个译码器,它将来自键盘输入的编码信号译码成数控分频器SPK0输出信号的频率控制字。译码器模块INX2CODE的真值表,如图4所示。 SPK0的内部电路结构如图5所示。 模块KEY4X4,INX2CODE, SPK0主要工作过程如下: 当按下琴键,产生的数据经KEY4X4模块获得一个编码(例如,当按下的是第二个键,对应0010,即2),它对应模块INX2CODE中的一个值(2对应390H)。当这个值(390H)被置入模块SPK0中的11位可预置计数器后,由于计数器的进位端与预置数加载端相连,导致此计数器将不断以此值作为计数起始值,直至全为1。 以下以预置数为390H为例,来计算模块SPK0输出信号的频率值。 当以390H为计数起始值之后,此计数器成为一个模(7FFH-390H=46FH=1135)的计数器。即每从CLK端输入1135个脉冲,BEEP端输出一个进位脉冲。由于输入的时钟频率是1MHz(周期是1us),于是BEEP输出的信号频率是1/(11351us)=881HZ. 从图1中可见SPK0的输出信号经过一个由D触发器接成T触发器后才输出给蜂鸣器。这时信号被做了二分频,于是,预置值390H对应的蜂鸣器发音的基频F约为440HZ.可在图4中找到对应的音阶. 图1中的T触发器有两个功能,一个作用是作二分频器;另一个作用是作为占空比均衡电路。这是因为由SPK0模块输出信号的脉冲极宽,频率极低,无法驱动蜂鸣器.但信号通过T触发器后,脉宽就均匀了(F的占空比为50%)。 显然,模块KEY4X4输出给INX2CODE的数值与驱动蜂鸣器发声的信号的频率值有直接的对应关系。 3.SPK0模块 图12-13所示的电路是模块SPK0的内部结构。其中的计数器CNT11B和一个LPM宏模块,这是11位二进制加法计数器。在设计其结构参数时,应该选择同步加载控制,即SLOAD,这样能较好的避免来自信号cout中可能的毛刺影响。异步加载aload极易受到随机窄脉冲的触发,在此类电路中不宜使用。图12-13中的D触发器和反相器的功能是将用于控制加载的进位信号延迟半个时钟周期,一来也是为了滤除可能的毛刺,以免对加载发生误操作,同时使加载更加可靠,因为这时,时钟上升沿正好处于加载脉冲的中点

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档