eda乐曲演奏电路的设计.doc

上传人:星星 文档编号:1038629 上传时间:2024-03-28 格式:DOC 页数:21 大小:390KB
下载 相关 举报
eda乐曲演奏电路的设计.doc_第1页
第1页 / 共21页
eda乐曲演奏电路的设计.doc_第2页
第2页 / 共21页
eda乐曲演奏电路的设计.doc_第3页
第3页 / 共21页
eda乐曲演奏电路的设计.doc_第4页
第4页 / 共21页
eda乐曲演奏电路的设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、北 华 航 天 工 业 学 院课程设计报告(论文)设计课题: 乐曲演奏电路的设计 专业班级: 学生姓名: 指导教师: 设计时间 北华航天工业学院电子工程系 乐曲演奏电路的设计 课程设计任务书姓 名:专 业:班 级:指导教师:职 称:课程设计题目:乐曲演奏电路的设计已知技术参数和设计要求:通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。设计一个乐曲演奏电路,由键盘输入控制音响,同时可自动演奏乐曲,演奏时可通过键盘选择已存入的乐曲(3种),扬声器利用试验箱上的。利用1位LED

2、显示器显示已存入的乐曲的种类。扩展功能:利用发光二极管显示高低音及音节的长短所需仪器设备:电脑 ,Quarters II 软件,实验硬件试验箱。成果验收形式:结果演示,老师提问的形式。参考文献:EDA技术与实验 EDA技术综合应用实例与分析 VHDL实用教程等时间安排在课设之前:第一天在图书馆查阅相关书籍,对设计的整体思路弄明白。第二天分析各个模块的作用及连接形式。第三天对各个模块运用VHDL语言进行编程。课设开始时:第四天将各个模块连接起来运行调试,结果演示、验收。指导教师:胡辉 内 容 摘 要在EDA开发工具Quartus II 6.0平台上,采用VHDL语言层次化和模块化的设计方法,通过

3、音符编码的设计思想,预先定制乐曲,实现动态显示乐曲演奏电路的设计,并在此基础上,基于同一原理,使此电路同时具备了简易电子琴的功能,使基于CPLD/FPGA芯片的乐曲播放数字电路得到了更好的优化,提高了设计的灵活性和可扩展性。关键字:EDA;Quartus II;VHDL;CPLD/FPGA;乐曲演奏电路;简易电子琴目 录一 概 述 1二 方案设计与论证2三 单元电路设计与参数计算2 四 总原理图14五 安装与调试14六 性能测试与分析14七 结论15八 心得体会15九 参考文献15 一、概述 (一)本实验的设计原理是不同的音名对应不同的频率,设计的难点是准确的产生各音名对应的频率。简谱音名与频

4、率的关系音名频率/Hz音名频率/Hz音名频率/Hz低音1261.63中音1523.25高音11046.5低音2293.67低音2587.33高音21174.66低音3329.63低音3659.25高音31318.51低音4349.23低音4698.46高音41396.92低音5391.99低音5783.99高音51567.98低音6440低音6880高音61760低音7493.88低音7987.76高音71975.52各音名所对应的频率可由一频率较高的基准频率进行整数分频得到,所以实际中产生各音名频率为近似的整数值。基准频率越高,近似程度越好,音准也越好,但同时分频系数会很大,耗费芯片资源也越

5、多。本实验选取fo=1MHZ的信号作为基准频率。分频系数A及n的公式如下:分频系数A=fo音名频率分频系数n=分频系数A2分频系数n=fo音名频率2以中音1为例来说明:由fo=1MHZ产生中音1的523.25Hz,其中分频系数A=1000000523.251911.13,取整数值为A=1911,此分频系数可由计数器实现。但若不加处理语句,其分频后的523Hz信号不是对称方波,而占空比很小的方波将很难使扬声器有效的发出声音。为了得到对称方波,可将分频系数A分解为:分频系数A=分频系数n2。即先进行分频系数n的分频,得到不对称方波,再2分频得到对称方波。以A=1911分解为例,A=19119562

6、。即先对fo=1MHZ进行956分频,得到9562Hz的不对称方波,然后再2分频得到523Hz的对称方波,送至扬声器可听到中音1的声音。(二)公用二进制计数器计数容量N的选取。 复位法:计数器由0加法计数至n-1,再复位为0。共n个状态。 置位法:由初值d计数记至最大值N-1,再置入初值d,(三)初值d的计算公共:初值d=N-分频系数例如:中音1的初始值d的计算公式: 中音1的初始值d=N-中音1的分频系数=2048-956=1092.二、方案设计与论证1 :将各个音名的频率准确的分频得到;2 :通过一个选择器,选通手动按音,或者自动乐曲发生;3 :通过编码器,对各个音名编码;4 :通过可编程

7、的分频器,得到各个音名的2倍的音名频率;5 :再2分频,得到对称的方波,即各个音名的频率;6 :通过驱动电路送至扬声器,播放乐曲。三、单元电路设计与参数计算根据(一)概述,可算得各个音名的分频系数和初始值。音名分频系数n初试值d音名分频系数n初试值d音名分频系数n初试值d中音11911137中音19561092高音14781570中音21703345中音28511197高音24261622中音31520528中音37581290高音33791669中音41432616中音47161332高音43581690中音51276781中音56381410高音53191729中音61136912中音65

8、681480高音62841764中音710121036中音75061542高音725317951、编码器。library ieee;use ieee.std_logic_1164.all;entity bianma is port(din:in std_logic_vector(3 downto 0);view:out std_logic_vector(2 downto 0);dout:out std_logic_vector(10 downto 0);end bianma;architecture made_bianma of bianma isbeginprocess(din)beginc

9、ase din is-gao_yin-when =doutdoutdoutdout=11010011010;viewdout=11010000101;viewdout=11001010110;viewdout=11000100010;viewdoutdoutdoutdout=10100110100;viewdout=10100001010;viewdout=10010101101;viewdout=10001000100;viewdoutdoutdoutdout=01001101000;viewdout=01000010000;viewdout=00101011001;viewdout=000

10、10001001;view doutdoutdoutdoutdoutdout=din1;end case;end process;end made_change; 3、分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin is port(din: in std_logic_vector(10 downto 0);clk: in std_logic;dout: out std_logic);end fenpin;architecture made of fenpin is

11、signal temp:std_logic_vector(10 downto 0);beginprocess(din,clk)beginif(clkevent and clk=1)thenif(temp=2047)thentemp=din;elsetemp=temp+1;end if;end if;end process;dout=1 when temp=2046 else 0;end made;4、音乐模块1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity made_music is

12、port(clk_2hz:in std_logic;dout:out std_logic_vector(3 downto 0);end made_music;architecture make_music of made_music issignal temp:std_logic_vector(5 downto 0);beginprocess(clk_2hz)beginif(clk_2hzevent and clk_2hz=1) thenif(temp=48) then temp=000000;else tempdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutd

13、outdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=0000; -0end case;end process;end make_music;音乐模块2library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity made_music1 isport(clk_2hz:in s

14、td_logic;dout:out std_logic_vector(3 downto 0);end made_music1;architecture make_music of made_music1 issignal temp:std_logic_vector(6 downto 0);beginprocess(clk_2hz)beginif(clk_2hzevent and clk_2hz=1) thenif(temp=72) then temp=0000000;else tempdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdou

15、tdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=0000; -0end case;end process;end make_music;音乐模块3library ieee;

16、use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity made_music2 isport(clk_2hz:in std_logic;dout:out std_logic_vector(3 downto 0);end made_music2;architecture make_music of made_music2 issignal temp:std_logic_vector(6 downto 0);beginprocess(clk_2hz)beginif(clk_2hzevent and clk_2hz=1)

17、thenif(temp=45) then temp=0000000;else tempdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdout=0000; -0end case;end process;end make_music;四、总原理图及元器件清单1总原理图五、安装与调试

18、将电路各个模块连接起来,编译通过以后,分配引脚,按引脚分配的结果在试验箱上用导线将电路连接好,然后下载程序,调试。如果调试不成功,可能是导线连接不佳,虚接。也可能试验箱没加电源或者引脚连接错误,要仔细检查。六、性能测试与分析调试成功以后电路就会播放音乐了,这是主要看音准与音长,即,播放的音乐是否为悦耳动听的音乐,每个音唱的时间长度是否准确等,如果不是,可能是编程的各个音名的频率不是对称方波,亦或者试验箱的信号发生器本身不稳定,要仔细检查,排除故障。七、结论通过一周的努力,终于将这个课设做出来了,达到了预期的目的,很有收获。八、 心得体会 通过本次EDA课设,我学会了语言的一些基本用法,应用了原

19、来不会或者不熟练的句型,如if句,也学会了一些基本功能的实现方法,如分频,状态控制等等,从另外一个角度重新审视了这个学期完全从硬件角度出发的电路设计,明白了软硬件之间的交互。通过这次实验,对系统框图的设计有了一定的了解。懂得了系统的前期设计对于后续的编程和调试的重要性。本次实验采用了自下而上的设计方法,根据系统对硬件的要求,分化模块,利用模块实现功能,最后进行仿真和调试。虽然这次实验遇到的问题不少,但是在胡辉老师以及同学的帮助下,我都顺利地解决了,并为将来的实践积累了宝贵的经验和教训。具体的经验和教训有:1模块化设计有利于提高硬件设计的效率。2逻辑正确和仿真真确并不代表着实际实验的正确,通常情

20、况下,要适当地调整逻辑以适应硬件。要特别注意仿真时出现的毛刺和偏差,到底是由于仿真设置不合理还是仿真结果确实有问题。3从简到难,逐步深入,先打出程序的框架,实现基本功能,然后再逐步细化。4学会经常和老师、同学交流,以便及时发现自己在实验中的纰漏和不足,促进进步。这次实验本人态度认真,积极向其他同学求教并在此过程中得到很多收获,能够进一步了解和使用一门与硬件直接打交道的基本语言对我们将来的学习和工作都会十分有益。实验的顺利完成,与老师的热心指导是分不开的,最后十分感谢胡辉老师的认真负责的工作,让我受益匪浅!九、参考文献1 胡宴如.高频电子线路M.高教出版社. 2001.9:12-19 2 卢屹 数字锁相环的参数设计及其应用J 通信技术2001,(9):12-15电子工程系乐曲演奏电路的设计课程设计成绩评定表专业: 电子信息工程 班级: 学号:姓名: 课题名称乐曲演奏电路的设计设计任务与要求通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。设计一个乐曲演奏电路,由键盘输入控制音响,同时可自动演奏乐曲,演奏时可通过键盘选择已存入的乐曲(3种),扬声器利用试验箱上的。利用1位LED显示器显示已存入的乐曲的种类。扩展功能:利用发光二极管显示高低音及音节的长短指导教师评语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922