- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《EDA技术及应用》课程设计
系 别 2010 级 通信工程 专业 1013073 班
题 目 基于CPLD的乐曲自动演奏机的设计
姓 名 ******* 学号 **********
同组成员 *******************
指导教师 ********************
2012年6月18日
目录
课程设计要求
设计方案
设计原理
设计步骤
设计程序
图形文件
修改后适应电路板的源程序
课程设计总结
参考文献
基于CPLD的乐曲自动演奏机的设计
基于CPLD的乐曲自动演奏机用途广泛,在日常生活中很常见,特别是在一些儿童玩具和小饰品上经常使用。
1.设计要求
(1)可以在电路上能自动演奏《友谊地久天长》乐曲,也可自行选择其他乐曲。
(2)有相应的LED灯指示高低音。
其他要求:
(1)晶振为12 MHz
(2)采用CPLD 器件,为ALTERA 的EPM7064SL-44
2.设计原理
乐曲演奏的原理是:由于组成乐曲的每个音符的频率值(音调)及其持续时间(音长)是乐曲演奏的2个基本数据,因此需要控制输出到扬声器的激励信号的频率高低和该频率信号持续的时间。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。所有不同频率的信号都是从一基准频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在48MHz 时钟下,中音1(对应的频率值是523.3Hz)的分频系数应该为(2*523.3)=45863,这样只需对系统时钟进行45863次分频即可得到所要的中音M1(分频系数计算公式为D=F/2K,由于F/2K之后,会使分频系数D变小,所以功能模块中语句:beep_r=!beep_r,使得输出取反,K=F/2count_end,消除了前面除以2K的影响) 。 至于其他音符,同样可有一式求出对应的分频系数。在程序中设置一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。只要让状态机的状态按顺序转换,就可以自动演奏播放音乐了。《卖报歌》乐曲的简谱如表二所示,(注:N一拍;N两拍;N·四拍;N·八拍;N为音谱)
3.设计方案
根据乐曲自动演奏的基本原理设计出适合eda多功能试验箱的源程序,通过分频模块得到12MHZ的晶振;源程序编写完成,编译调试后,在实验,箱上验证其功能;
验证得到模块能完成实践要求的所有功能;然后去掉分频模块,将功能模块做适当的修改后,编译调试成功后,将其下载到CPLD实验板上,完成设计;
设计原理图如下;
《卖报歌》简谱
4.设计步骤
在Quartus Ⅱ中建立一个工程项目文件song.qpf,并在该项目下新建Verilog HDL源程序文件song.v输入程序代码并保存。完整的Verilog HDL程序参考程序清单。
然后在该工程选择一目标器件并对相应的引脚进行锁定,在这里所选择器件为Alter公司的EPM7064SL-44芯片,引脚锁定方式如表三所示。
对该工程文件进行全程编译处理,若在编译中发现错误,则找出错误并更正,直到编译成功为止。
最后拿出下载电缆,将此电缆的两端分别接到PC机的打印机并口和核心板上的JTAG 接口上,打开电源执行下载命令,把程序下载到CPLD器件中。此时可以到《卖报歌》乐曲的演奏以及LED灯的明灭指示其高低音。
5.设计程序
程序清单_48MTO12M.v
module _48mto12m(clk,clkout);
input clk;
output clkout;//输出频率12MHZ
reg[1:0] q;
always@(posedge clk)
begin
q=q+1b1;
end
assign clkout=(q2)?1b1:1b0;//每四个周期变成一个周期,占空比1/2
endmodule
程序清单 song.v
//*****************************************************************//
// 《祝你生日快乐》乐曲
// 时钟:12MHz
//*****************************************************************//
//音高与频率的对应关系
//-------------------------------
您可能关注的文档
- (基于MATLAB的信号波形与频谱分析).doc
- 《EDA技术实用教程(第五版)》习题答案(第1~10章).doc
- [毕业论文]基于单片机的建筑蓄电池监控系统设计.doc
- 32位双重快速跳跃进位链六级流水线加法器Verilog的实现.doc
- 51单片机实现RS485.doc
- 30路电话(EBAA2805)E1复用-台式台式EM 磁石电话 (RS232异步同步)RS485通用【20120905更新】-中文.doc
- AVR GCC 基于NT7506初始化代码(IO驱动方式.doc
- AVR学习笔记基于AT90S8535.doc
- 2061224134-梁文君-基于STC89C52的智能锂电池充电器设计.doc
- AVR学习笔记七、基于DS18B20的温度测量实验.doc
文档评论(0)