已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易电子琴制作应电101班组员: 指导老师: 分工: 目 录绪论 31. 本论文设计的任务42. 总体方案设计与论证43. 硬件系统选择与设计53.1 FPGA 开发板 53.2 时钟电路 53.3 矩阵键盘设计 73.4 键盘编码电路 83.5 译码与显示电路 113.6 预置数存储电路 153.7 预置数控分频电路 173.8 蜂鸣器 194. 开发环境介绍 195. 系统功能的软件设计 215.1 按键消抖处理215.2 键盘扫描 215.3 发声延时模块236. 顶层模块设计 24 6.1顶层模块连接图如下 24 6.2管脚分配,不用的管脚置三态 24总结 25 参考文献 26 基于FPGA的电子琴设计前 言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色, 电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。电子琴的外形很像普通键盘乐器,只是某些种类多一排脚踏键盘,而且手触键盘也往往分为两层。键盘式电子琴声音丰富、优美,有变音装置,能发出多种不同的音色,可以作为独特的乐器进行演奏,还能代替传统的风琴、钢琴供音乐课教学。传统乐器的声音是通过机械的方法产生的,电子琴的声音是用“电”产生的。振荡器是根据需要产生一定频率的振荡信号,振荡信号通过分频器分解成不同频率的信号输送到放大器,放大器将信号放大,推动扬声器发出声音。键盘实际是一些开关,如果没有键盘,许多种频率的信号一齐进到放大器里,通过扬声器发出的声音就会乱七八糟,不成音乐。按下键盘的一支键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。摘要: 电子琴的设计原理是通过3*8矩阵键盘读入键值,由分频器得到所需的频率,从而驱动蜂鸣器的发声,并在数码管上显示相应的音节。设计的关键之处在于矩阵键盘的扫描式读取、按键消抖处理、等占空比任意分频、蜂鸣器发声延时这四个方面的问题。本论文对上述问题作了详细的阐述,设计出了完整的原理图,并自行焊接了3*8矩阵键盘,与A-CV84开发板结合制作成功。关键词: 电子琴;矩阵键盘;任意分频;1、本论文设计的任务本论文所设计的是一种简单的基于FPGA语言的电子琴。琴键为3*8矩阵键盘,使用蜂鸣器输出声音,并在数码管上显示相应的音阶。电子琴具有延时发声200ms的功能。2、总体方案设计与论证本方案可分为键盘扫描模块、按键消抖模块、输出控制模块、发声延时模块、分频模块。首先,由3*7矩阵键盘读入键值(行)经过消抖处理后,对键值进行编码,并输出不同分频比,再由分频器得到不同的频率,通过输出控制模块发出使能指令,从而驱动蜂鸣器发出响声,再发声由延时模块对音乐作简要优化。方案原理图如下: 图1 设计原理图3、硬件系统选择与设计3.1 FPGA开发板 设计中的核心控制器件FPGA选用Ahrea公司的EP2C8Q208C8。EP2C8Q208C8是Ahera Cyclone II系列器件中的一种,Cyclone II FPGA是基于Stratix II的90 nm工艺生产的低成本FPGA。Cyclone II FPGA的应用主要定位在终端市场,如消费类电子、计算机、工业和汽车等领域。EP2C8Q208C8内部有2个锁相环(PLL)和8个全局时钟网络,8 256个逻辑单元(LE)个,36个M4K RAM,18个乘法器模块,可用IO数138个。EP2C8Q208C8具有低成本、高性能、低功耗和对IP-PBX系统的可扩展性(足够多的IO接口)的优点,因此这里选择该器件作为系统的控制器件。3.2 时钟电路时钟电路将有源晶振的20MHZ的频率分别进行2、4、8、16、32、64、128、256分频。74LS393高速双四位二进制计数器:引出端符号:1A、2A- 时钟输入端(下降沿有效)1clear,2clear -异步清零端(MR)1Qa-1Qd、2Qa-2Qb-输出端74393为两个4 位二进制计数器,也称为异步清零器,异步清零端(1clear,2clear)为高电平时,不管时钟端1A,2A 状态如何,即可以完成清除功能。当 1clear,2clear 为低电平时,在1A,2A 脉冲下降沿作用下进行计数操作3.3 矩阵键盘由于设计需要24个按键,为了减少使用I/O接口,故采用矩阵键盘读取键值。设计所用的矩阵键盘为手工焊接的3*8轻触式矩阵键盘。其关键部分是:1、键值扫描式读取;2、按键编码。 图3 3*8矩阵键盘原理图3.4键盘编码电路由图可知使用八线三线优先编码器74LS148可完成24键键盘编码。74LS148为8线-3线优先编码器,将八条数据线(0-7)进行3线二进制优先编码,即对最高位数据线进行编码。利用选通端(EI)和输出选通端(EO)可进行八进制拓展。引出端符号:07编码输入端(低电平效) EI选通输入端(低电平效)A0、A1、A2编码输出端(低电平有效) GS宽展端(低电平有效) EO选通输出端真值表将键盘电路与编码电路相连实现了3片74148的相连26表1-2 24键键盘编码表编码24线输入编码输出即ROM地址十六进制011111111111111111111111000000H1011111111111111111111110000101H1101111111111111111111110001002H1110111111111111111111110001103H1111011111111111111111110010004H1111101111111111111111110010105H1111110111111111111111110011006H1111111011111111111111110011107H1111111101111111111111110100008H1111111110111111111111110100109H111111111101111111111111010100AH111111111110111111111111010110BH111111111111011111111111011000CH111111111111101111111111011010DH111111111111110111111111011100EH111111111111111011111111011110FH1111111111111111011111111000010H1111111111111111101111111000111H1111111111111111110111111001012H1111111111111111111011111001113H1111111111111111111101111010014H1111111111111111111110111010115H1111111111111111111111011011016H1111111111111111111101011117H1111111111111111111111110111118H3.5译码与显示电路电路主要对编码之后的数据通过门电路再用74139数据分配器选择高、中、低对应的D1、D2、D3三盏LED灯点亮。用全加器74LS83对译码的数与S0、S1计数,通过7448译码器进行译码,最后用7位共阴数码管显示。电路图如下: 所需要的芯片资料: 74LS83:74LS83逻辑器件的功能是一个四位全加器 ,在此电路中将S1、S0与Q2、Q1、Q0相加,再将所得数据送到译码器进行译码显示。引脚图 74LS139:G1、G2 选通端(低电平有效)Y0Y3 译码输出端(低电平有效)74LS48:该芯片在译码显示电路中,主要将09的BCD码进行译码显示,常与共阴极数码管搭配使用。逻辑功能图真值表 显示测试。当LTN=0时,数码管的七段全亮,以此来测试数码管的好坏。 正常译码显示。当LTN=1,BIN/RBON=1,RBIN=1时,对输入的十进制数09的BCD码进行正常译码显示。 共阴极数码管:共阴极数码管,其公共端接低电平,当在某一段发光二极管上施加正向电压是,该段二极管即被点亮;不加电压则为暗。为保护各段LED不因电流过大而损坏,需在各个段上外加限流电阻保护,阻值大约为200510。 共阴极数码管段选码表74LS245:它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数3.6 预置数存储电路预置数存储电路,图如下:该电路最主要的内容就是HT27C512芯片,它有A0A15作为地址码,D0D7端口在存储预置数时作为数据输入端口,在读取预置数时作为输出端口。引脚图真值表从数据开关输入预置数存储地址,在预置数输出到数控分频器端口进行测试,观察测试结果是否与表格填写相符。预置数(H)ROM地址码(H)预置数输出D7d0预置数(H)ROM地址码(H)预置数输出D7d0380000111000C7OD110001114E0101001110CD0E11001101610201100001D30F11010011690301101001D710110101117A0401111010DA1111011010880510001000DE12110111108F0610001111E113111000019B0710011011E31411100011A60810100110E61511100110B00910110000E91611101001B40A10110100EB1711101011BC0B10111100FFHFFH11111111C40C110001003.7 预置数控分频电路预置数控分频电路是用预置数控制时钟电路中分频所得到的78125HZ信号,对其进行所需相应的分频。电路图如下:通过预置数输入,通过8位计数器74191进行全加计数,当有进位溢出时,通过与非门到PL端口进行置数;再通过二分频D触发器获得各种乐音的频率。需要用到的芯片资料:74LS74双D触发器引脚图每个触发器有数据输入(D)置位输入(SD)复位输入(RD)时钟输入(CK)和数据输出(Q)。RD、SD的低电平使输出预置或清除,而与其它输入端的电平无关。当RD、SD 均无效(高电平式)时,符合建立时间要求的D数据在CP上升沿作用下传送到输出端。真值表72LS191四位二进制计数器:在此电路中,计数器主要作用是把预置数进行累加,加到256时进位溢出,重新置数。引脚图真值表3.8 蜂鸣器4、开发环境介绍本设计所使用的电路绘制软件是Multisim 9,VHDL程序设计软件是Quartus II 9.0。这里主要对Quartus II 9.0的开发环境作简要的介绍。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Altera的上一代PLD设计软件Maxplus II 友好的图形界面及简便的使用方法。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。5、系统功能的软件设计电平高低关系: 按键按下时输出低电平;蜂鸣器为低电平时发声;使能信号“en”为低电平时分频输出有效;数码管为低电平时发光。5.1、按键消抖处理由于本设计采用的是接触式按键,故不可避免存在机械抖动。这种抖动会使系统处于不稳定状态。故需要进行消抖处理。本设计是用状态机方法编写一个消抖程序。当按键按下去后,首先对其进行连续三次取样,如果三次都为低电平,则输出低电平;如果其中有一次高电平,则输出高电平。分析: 如果检测到低电平时,则进入S1态,如果在下一时钟周期检测到的还是低电平,则进入S2态,同理,如果下一时钟周期检测到的还是低电平,则进入S3态,此时将输出置为低电平。在期间有任一时刻出现高电平,则进入S0 态,输出置为高电平仿真图:由仿真图可以看出,当连续三个时钟周期内为低电平时,dout才输出低电平,而前后不稳定信号则被过滤掉了。5.2 键盘扫描键盘的每一行通过一个上拉电阻接高电平当按键按下时,按键处的行与列就建立了连接。故将扫描输出列线依次置0,当检测到一个行线被下拉至0时,则其行线与列线的编码信息是唯一的。行列键值编码关系:行线输入列线输出按键值(十进制)按键值(二进制)011111111022935010110011001011101111111012042801001111110011000111111011182030100011100011011011111011117181010000110001110101111011111530500111011110010010111011111136350011010101000011011011111112147001011110111001110111111101146500101100110010011011111101102150010011111100111101111101191000010001110001100101111011185890010000110001101101110111176520001110111100100101101111168170001101010100001101011111160730001011110111001110111111057320001011001100100110111110151060001001111110010110111101145500001000111000110110111011142940001000011000110110110111138270000111011110011110101111134080000110101010000110011111130360000101111011100表3 矩阵键盘对应编码关系用这种方法的缺点是,由于当某个按键按下时,就开始输出扫描信号而由于按键输入信号keyin是与输出信号相关联的,即只有当输出的扫描信号为低电平时,才能检测出是否有按键按下。而扫描信号是以100/7 HZ的频率发出的,即扫描信号是动态输出的,这就会使输入的信号为不连续的信号,经过寻址编码后,蜂鸣器使能信号“en_out”受到了扫描信号的干扰,这样就会使分频进程间断地运行。因此蜂鸣器信号中会有两种信号,分别是正常分频后的信号和扫面干扰信号。事实也正是如此,蜂鸣器的音质中含有“杂音”。经过改进后,使扫描信号先输出,如果有按键按下,则暂停扫描计数,此时输出的扫描信号为静态的,蜂鸣器使能信号“en_out”不再受到干扰了。由此蜂鸣器能发出纯净的声音。仿真图:图6 按键扫描仿真由仿真图可见,按键按下时输出恒定的值。 5.3 发声延时模块 由于设计所用的按键并非专业的琴键,而是6*6*9的轻触式按键,在演奏时难免会松下按键,此时声音的陡然消失不太合理,故在此加入一个发声延时模块,是当松开按键时。蜂鸣器持续发声200ms后才停止。仿真图如下:图9 发声延时仿真为了便于观察,仿真中将计数最大值改为5.由仿真图可见,当sig电平由低到高时,en_out过5个时钟周期后才置为高电平。由此可见设计达到了预期目的。 6、 顶层模块设计6.1 顶层模块连接图如下图10 顶层模块连接图6.2 管脚分配,不用的管脚置三态:图11 管脚分配下载进开发板中测试,能够正常发声。总结经过了一段时间的学习,初步掌握了一些Quartus II的基础知识.原以为已经对它有所了解,但是在正打算着手做的时候,不禁有些茫然,不知从何着手.结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024届广西柳州市融水苗族自治县中学高三第一次适应性考试数学试题试卷
- 餐饮学徒工合同模板
- 采购部门合同管理的会议纪要
- 补牙退款申请书
- 保研支持服务合同
- 预防艾滋病知识宣传讲座
- 面神经麻痹治疗新进展
- 山东省威海市文登区实验中学(五四制)2024-2025学年六年级上学期期中考试生物试题
- 颈椎病引起的头晕护理
- 海南省澄迈县2024-2025学年八年级上学期期中考试语文试题
- 江苏省南师附中2023-2024高一上学期期中数学试卷及答案
- 无缝线路完整
- 识别危险源-远离危险-公开课课件
- 南平市建阳区发电有限责任公司宸前水力发电厂增效扩容改造工程环境影响报告
- 压力容器及压力管道课件
- HTML5 CSS3网页设计与制作 课件全套 吕麦丝 第1-11章 网页设计基础- CSS 中的动画与特效
- PBL教学法在临床护理教学中的应用
- 23秋国家开放大学《法律咨询与调解》形考任务1-4参考答案
- 法律保护我们健康成长 单元作业设计
- 危化品仓库安全风险点告知牌
- 责任心的力量PPT模板:共建美好世界
评论
0/150
提交评论