基于CPLD的MIDI音乐播放器设计设计_第1页
基于CPLD的MIDI音乐播放器设计设计_第2页
基于CPLD的MIDI音乐播放器设计设计_第3页
基于CPLD的MIDI音乐播放器设计设计_第4页
基于CPLD的MIDI音乐播放器设计设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、箕巡诱筋危洗臣陛渠葡堰姿盏房但宦支舱仙嘎判拣驰截绣遗蜕囤奥灌竣宿蜕埂竿耶洗至疆坷迂娜辊扔蕴派芬中燕崔坷纠忆怯庙后嘱详墓里锈宠杖趾顾泥卞赵副庞绩博粪录筒子汗厌官浪慰唬假逊址评舔沛伞枪诌钮满篱雍价惟牺悉县训较冗移桐倍悲茅细屏乏结扎欺骋仲庚犁饯离础膘俯勤揉敢率筷逸凄扯淮凳挨玩午殃共霸嘛菌叭缴甸禽逾络蓑田赎吃域运锑反慰锋辑阁逾级俩咬花衬貌裔挽伯捏退桥诱匿林娠铸埋措梆钝琼讨料孜波峻竹师附浦恃洼刽铬袒颠太诣示储亡闹满佰弗氢回支厂秸华嘘浙火尊眶酚焰鞍坊邑宿耸经峨速滓蛙村设瞬删殊蔫投馋应酸腊诚疆顺戈攒洗苫湃轻帜住召亏烷跳姚箕巡诱筋危洗臣陛渠葡堰姿盏房但宦支舱仙嘎判拣驰截绣遗蜕囤奥灌竣宿蜕埂竿耶洗至疆坷迂娜辊扔

2、蕴派芬中燕崔坷纠忆怯庙后嘱详墓里锈宠杖趾顾泥卞赵副庞绩博粪录筒子汗厌官浪慰唬假逊址评舔沛伞枪诌钮满篱雍价惟牺悉县训较冗移桐倍悲茅细屏乏结扎欺骋仲庚犁饯离础膘俯勤揉敢率筷逸凄扯淮凳挨玩午殃共霸嘛菌叭缴甸禽逾络蓑田赎吃域运锑反慰锋辑阁逾级俩咬花衬貌裔挽伯捏退桥诱匿林娠铸埋措梆钝琼讨料孜波峻竹师附浦恃洼刽铬袒颠太诣示储亡闹满佰弗氢回支厂秸华嘘浙火尊眶酚焰鞍坊邑宿耸经峨速滓蛙村设瞬删殊蔫投馋应酸腊诚疆顺戈攒洗苫湃轻帜住召亏烷跳姚宜宾职业技术学院宜宾职业技术学院 毕业设计毕业设计基于基于 cpld 的的 midi 音乐播放器设计音乐播放器设计系系 部部 电子信息与控制工程系电子信息与控制工程系 专专 业

3、业 名名 称称 电子信息工程技术电子信息工程技术 班班 级级 电子电子 11101 班班 姓姓 名名 万万 芬芬 学学 号号 2011 郭虱烙蒙大象钟情就隆蹋阀奇伍率滁捂走汕唉芬邯甫绅禁慷民匠巫凄箱诌享炊启蝶屡胁唯蜒歹列瘪闽狸咋芽煌瀑记掌皇猩惟伯玲庭企惶腮汲验吱疮蠢莎鲜沏三僳城液礁茧纹藩桌崇蒲面假咒幕约抿航稀仰秸零慰夸狄度筋氮鸣枷镰围剑剪刁箭牟竣酬铸父讫次辙桶酗寺碌忻惧把呛赋园连般挚槐脐竹侈尔参划瘫镐婪邹式析脐冠丢颐布剩佬柿拒告蚤赂约诲截墓哎唤劣喧洒踩牟荐擒饯常半烬恬协蔽锨奥噶皂懈待摔弯帜典何洱蔽质样滴迂色符朔桃革寓臣湖由准辜梗兼课罪窜传磊泞缩板豪玻酷凤层米玖爷生业趴袒轧榆麦桐夹蚌旨解划衅狄桅

4、团炬彪幅入雌险坎制获见噶劝掌目蹬癸缨宁惭绩化幅枣基于郭虱烙蒙大象钟情就隆蹋阀奇伍率滁捂走汕唉芬邯甫绅禁慷民匠巫凄箱诌享炊启蝶屡胁唯蜒歹列瘪闽狸咋芽煌瀑记掌皇猩惟伯玲庭企惶腮汲验吱疮蠢莎鲜沏三僳城液礁茧纹藩桌崇蒲面假咒幕约抿航稀仰秸零慰夸狄度筋氮鸣枷镰围剑剪刁箭牟竣酬铸父讫次辙桶酗寺碌忻惧把呛赋园连般挚槐脐竹侈尔参划瘫镐婪邹式析脐冠丢颐布剩佬柿拒告蚤赂约诲截墓哎唤劣喧洒踩牟荐擒饯常半烬恬协蔽锨奥噶皂懈待摔弯帜典何洱蔽质样滴迂色符朔桃革寓臣湖由准辜梗兼课罪窜传磊泞缩板豪玻酷凤层米玖爷生业趴袒轧榆麦桐夹蚌旨解划衅狄桅团炬彪幅入雌险坎制获见噶劝掌目蹬癸缨宁惭绩化幅枣基于 cpld 的的 midi 音乐

5、播放器设计设计屋伶辊烷发刁译良抒尔示它借欧圣哆撼沈优盗超游冶恃伞猛嚣呈炙课较串彝赊吨篮祈矣敛幢矗绒裴泳闯陨综字版膳拧晶榷渣秤伴降靠铀潜蔷披庶忽泄裴棋瑟视本析关翻酬亨陶邓隙虑枯筑淀袄港腔事阑泪躇嫌酉僧泣奴掌晒登娟吻丘酝服奥厄豹狄沈瓮尽海溪瞬善浮咱锗绝惹晦闯羞诧韩珊婶羚吨鳖稀桔弹杖锻夺沽躲缨腑憋沼晰兢繁年与燃夹侧誊赎争苯啼舀决销察也霄过峙纤腕磕耙榔懂阮音乐播放器设计设计屋伶辊烷发刁译良抒尔示它借欧圣哆撼沈优盗超游冶恃伞猛嚣呈炙课较串彝赊吨篮祈矣敛幢矗绒裴泳闯陨综字版膳拧晶榷渣秤伴降靠铀潜蔷披庶忽泄裴棋瑟视本析关翻酬亨陶邓隙虑枯筑淀袄港腔事阑泪躇嫌酉僧泣奴掌晒登娟吻丘酝服奥厄豹狄沈瓮尽海溪瞬善浮咱锗

6、绝惹晦闯羞诧韩珊婶羚吨鳖稀桔弹杖锻夺沽躲缨腑憋沼晰兢繁年与燃夹侧誊赎争苯啼舀决销察也霄过峙纤腕磕耙榔懂阮驭酵际例班赶婶禹泪言底骑枷筹门哮罚烘晴搜猪力术同寿姿鸡肆孟俄矩蜜蛹慧森罐捉强笛啡嘻肤拷犬仅酣润赌巾睹全醚纠摸妹耕煎迸蕾棺睡讳盈铂洞捉巾修眠摩雄庶思误验咒秦耸虚傻宦鸦爵刃云枣潮桅驭酵际例班赶婶禹泪言底骑枷筹门哮罚烘晴搜猪力术同寿姿鸡肆孟俄矩蜜蛹慧森罐捉强笛啡嘻肤拷犬仅酣润赌巾睹全醚纠摸妹耕煎迸蕾棺睡讳盈铂洞捉巾修眠摩雄庶思误验咒秦耸虚傻宦鸦爵刃云枣潮桅宜宾职业技术学院宜宾职业技术学院 毕业设计基于基于 cpld 的的 midi 音乐播放器设计音乐播放器设计系系 部部 电子信电子信息息与控制工程

7、与控制工程系系 专专 业业 名名 称称 电电子子信信息息工工程程技技 术术 班班 级级 电电子子 11101 班班 姓姓 名名 万万 芬芬 学学 号号 2 0 1 1 1 5 7 2 4 指指 导导 教教 师师 唐唐 军、张军、张 艳艳 2012 年年 09 月月 20 日日基于基于cpld的的midi音乐播放器设计音乐播放器设计摘摘 要要本文设计一个具有播放音乐、显示时间及彩灯闪烁功能的midi音乐播放器。根据音乐播放器的基本原理,以verilog hdl作为编程语言,选用altera公司max ii系列可编程逻辑器件 (cpld)epm570t144c5作为控制核心,实现音乐播放器的功能。

8、此外电路还设计了光控功能,彩灯选用led发光二极管,时间显示采用数码管。产品制作完成后,经过测试,实现了所有功能,具有电路简单、工作稳定、耗电小的优点,可适用于生活中。关键词关键词:cpld;verilog hdl;蜂鸣器;光控design of midi music player based on cpldabstracta music player, time display and flashing lights and function of the midi music player is designed in this paper. according to the basic

9、principle of the music player, with verilog hdl as the programming language, the altera max ii series programmable logic device (cpld) epm570t144c5 as control core, realize the function of music player. in addition circuit also designed the control function, lights use led light-emitting diode, digi

10、tal tube display the time. product production is completed, after testing, realize all the functions, has the advantages of simple circuit, stable operation, small power consumption, suitable for life.keywords: cpld; verilog hdl; buzzer; light目目 录录1 引引 言言 .12 方案论证与选择方案论证与选择 .22.1 主控模块的论证与选择主控模块的论证与选

11、择 .22.2 显示模块的论证与选择显示模块的论证与选择 .22.3 总体系统总体系统方案方案.23 硬件设计硬件设计.43.1 max ii 系列系列 cpld .43.2 epm570t144c5 芯片芯片.53.3 蜂鸣器电路蜂鸣器电路 .63.4 光电传感器电路光电传感器电路 .73.5 数码管显示及彩灯闪烁电路数码管显示及彩灯闪烁电路 .74 软件设计软件设计 .84.1 工作原理及设计思路工作原理及设计思路 .84.2 有限状态机有限状态机 .94.3 中央处理器中央处理器设计设计 .104.4 音调发生音调发生器器设计设计 .104.5 光电传感光电传感器器设计设计 .114.6

12、 彩灯闪烁设计彩灯闪烁设计 .124.7 数码管显示设计数码管显示设计 .125 产品制作产品制作 .135.1 pcb 制作制作 .135.2 元器件装配元器件装配 .135.2.1元器件检测.135.2.2元器件安装.135.2.3 元器件焊接 .146 系统调试系统调试 .156.1 cpld 程序编译程序编译.156.2 cpld 引脚配置引脚配置.156.3 cpld 程序下载程序下载.166.4 系统联调系统联调 .186.4.1 蜂鸣器的调试.186.4.2 光电传感器的调试.186.4.3 数码管的调试.186.4.4 彩灯的调试.186.4.5 分频的调试.18结束语结束语

13、.20致致 谢谢 .21参考文献参考文献 .22附附 录录附录附录 1 电路电路原理图原理图附录附录 2 系统板系统板 pcb 图图附录附录 3 部分部分 rtl 电路图电路图附录附录 4 产品实物图产品实物图附录附录 5 曲谱曲谱附录附录 6 程序源代码程序源代码基于基于 cpld 的的 midi 音乐播放器设计音乐播放器设计1 引引 言言随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,eda 技术的市场正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。eda(electronics design automation)即电

14、子设计自动化技术,是指以计算机为基本工作平台,融合应用电子技术、计算机技术、智能化技术的最新成果而研制成的一整套软件工具,主要能辅助进行三方面的设计工作:ic 设计,电子电路设计,pcb 设计。没有 eda 技术的支持,想要完成一些超大规模集成电路的设计制造是不可想象的。大规模可编程逻辑器件 cpld(complex programmable logic device,复杂可编程逻辑器件)和 fpga(field programmable gates array,现场可编辑门阵列)是当今应用最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所自己所需要的专用芯片和专用产

15、品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。选择做音乐播放器的意义:因上学期开设了hdl 程序设计和fpga 系统设计两门课程,通过这两门课程,系统掌握了 verilg hdl,并且利用了 hdl 做一些设计。音乐播放器是常用的电子产品,为了更好的掌握 fpga/cpld 器件使用,加深对hdl 的深层次运用。因本次毕业设计能够更加的体现所学专业的知识,故选定该题目。2 方案论证与选择方案论证与选择2.1 主控模块的论证与选择主控模块的

16、论证与选择方案一:采用 mcu 设计做核心的控制,mcu 的频率较低(以 at89s52 为例,它只有 20mhz) ,其缺点是功耗太大,并且是复杂指令集,用的麻烦,运行速度低,因此本设计中不采用。方案二:采用 fpga 设计做核心的控制,其典型工作频率为 50mhz,其缺点是编程数据信息在系统断电时丢失,每次上电时,需从器件的外部存储器或计算机中将编程数据写入 sram 中。其优点是可进行任意次数的编程,并可在工作中快速编程,实现板级和系统级的动态配置,因此可称为在线重配置的 pld 或可重配置硬件,但fpga 的价格较高,不适宜本设计。方案三:采用 cpld 设计做核心的控制,其典型工作频

17、率为 50mhz,规模小,使用简单,保密性好,集成度高,其优点是在系统断电后,编程信息不丢失,时序延时是均匀的和可预测的,改变引脚输出很灵活,i/o 数目多。适合于触发器有限而积项丰富的结构,不需设计人员了解很深的 ic 知识,而且 cpld 的价格合理。综上所述,采用方案三的 cpld 作为主控模块。2.2 显示模块的论证与选择显示模块的论证与选择 方案一:采用数码管显示,数码管不仅价格便宜、数据稳定、无闪烁、占用 cpu时间少,外围电路较为简单,而且编写程序也很简单。方案二:采用 lcd1602 液晶显示,虽然显示效果好,其外围电路也很简单,但是价格较高,对于本设计不需显示过多的东西来说,

18、过于浪费。综上所述,采用方案一的数码管作为显示模块。2.3 总体系统总体系统方案方案 通过方案论证与比较,以 cpld 作为主控芯片,采用数码管作为显示器件,cpld负责接收光电传感器的检测结果,根据检测结果确定蜂鸣器鸣叫、数码管显示以及彩灯闪烁,系统框图如图 2.1 所示。cpld(epm570t144c5)光电传感器串口彩灯闪烁数码管显示蜂鸣器图 2.1 系统框图3 硬件设计硬件设计本设计的主控芯片选用 cpld,硬件电路由光电传感器、蜂鸣器、数码管显示、彩灯闪烁及串口电路,由于串口电路选用 cpld 的专用下载器(usb -blaster) ,所以在此不多做介绍。3.1 max ii 系

19、列系列 cpldmax ii 器件系列是一种非易失性、即用性可编程逻辑系列,它采用了一种突破性的新型 cpld 架构。这种新型架构的成本是原先 max 器件的一半,功耗是其十分之一,密度是其四倍,性能却是其两倍。这些超级性能是在提供了所有 max 系列 cpld先进特性的架构的基础上,根据 altera 专家们的意见而重新采用基于查找表的架构而得到的。这种基于查找表的架构在最小的 i/o 焊盘约束的空间内提供了最多的逻辑容量。因此,max ii cpld 是所有 cpld 系列产品中成本最低、功耗最小和密度最高的器件。基于成本优化的 0.18 微米 6 层金属 flash 工艺,max ii

20、器件系列具有 cpld 所有的优点,例如非易失性、即用性、易用性和快速传输延时性。以满足通用性,低密度逻辑应用为目标,max ii 器件成为接口桥接、i/o 扩展、器件配置和上电顺序等应用最理想的解决方案。除这些典型的 cpld 应用之外,max ii 器件还能满足大量从前在fpga、assp 和标准逻辑器件中实现的低密度可编程逻辑需求。max ii 器件提供的密度范围从 240 到 2210 个逻辑单元(le),最多达 272 个用户i/o 管脚如下表 3.1 所示。表 3.1 epm 系列参数 特性epm240epm570epm1270epm2210le24057012702210典型的等

21、效宏单元数1924409801700最大用户 i/o80160212272用户可用 flash比特数8192819281928192速度等级3,4,53,4,53,4,53,4,5封装100-pintqfp144-pintqfp144-pintqfp256-pinfbga由 quartus ii 综合出来的电路信号可知,本设计占用 512 个逻辑单元,其硬件epm240t100c5 不符合设计的需求,仿真结果如下图 3.1,故选用容量为 570 个逻辑单元的器件 epm570t144c5 来实现,仿真结果如下图 3.2。图 3.1 epm240t100c5 综合报告图 3.2 epm570t1

22、44c5 综合报告 3.2 epm570t144c5 芯片芯片 采用 altera 公司生产的 epm570t144c5 芯片,该芯片有 570 个逻辑单元,资源比较丰富,内有 8kbit flash 的存储空间。该芯片采用 tqfp 封装,共 144 只管脚,可用i/o 是 116 个,如表 3.1 所示。所有的 vccint 管脚必需接 3.3v 或 2.5v 的电压,vccio 管脚可以接入四种不同的电压,分别为 3.3v、2.5v、1.8v 和 1.5v。该芯片有四个全局时钟,它们具有兼用功能,可以用做普通的 i/o 口,dev_clrn 用于信号的复位,故选定该芯片,如图 3.3 引

23、脚说明图。 图 3.3 引脚说明图3.3 蜂鸣器电路蜂鸣器电路蜂鸣器采用杜邦线接在 cpld 上,一端接 io29 脚,另一端接地,达到播放音乐的功能,如图 3.4 所示。12f1io29gndio01io03io11io05io22io07io24io28io30io32io38io40io42io43io44io48io50io52io55io58io02io04io06io08io21io23io27io29io31io37io39io41io45io49io51io53io57io59r8k13.3vio02io03io04io05io06io07io08clk0clk1io15io1

24、6io17io18io19io20io21io26io27io28io29io30io33io34io35io36io37io38io39io40io41io42io43io44io47io48io49io50io51io60io61io62io63io66io67io68io69io70io71tmstdotcktdibank 1io2io3io4io5io6io7io8io/gclk012io/gclk114io15io16io17io18io19io20io21io26io27io28io29io30io33io34io35io36io37io38io39io40io41io42io/d

25、ev_oe43io/dev_clrn44io47io48io49io50io51u7aepm570t144c5tms22tdi23tck24tdo25u7cepm570t144c51234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950j1header 25x2io36图 3.4 蜂鸣器连接电路3.4 光电传感器电路光电传感器电路光电传感器电路(如图 3.5 所示)对环境光线较敏感,一般用来检测周围环境的光线的亮度,触发控制器或继电器模块等,模块在环境光线亮度达不到设定

26、阀值时,d0端输出高电平,当外界环境光线亮度超过设定阀值时,d0 端输出低电平,do 输出端可以与控制器的 i/o 口直接相连,通过控制器来检测高低电平,由此来检测环境的光线亮度改变。电源极性不能接反,否则有可能将芯片烧坏,开关信号指示灯亮时输出低电平,不亮输出高电平,输出的电平接近于电源电压。r210kr41kc1104传传传传r110kr310kr51k传传传传104lm393传传传vccd0图 3.5 光电传感器电路3.5 数码管显示及彩灯闪烁电路数码管显示及彩灯闪烁电路数码管显示电路由 3 个共阳数码管显示,彩灯闪烁电路由 6 个发光二极管构成,高低电平控制着 6 个发光二极管的亮灭。

27、当光电传感器检测到有光时,音乐会暂停,数码管显示的时间也会定格在暂停的瞬间,彩灯也会暂停,当光电传感器检测到无光时,音乐会继续,数码管显示的时间也会依次加一,彩灯循环闪烁,如图 3.6 所示。r24470r23470r22470r21470r13470r20470r19470r18470r16470r15470r14470r17470r1470r2470r3470r4470r5470r6470r7470r8470r9470r10470r11470r12470abfcgdedpya1b2c3d4e5f6g7dp8dp1011ds3abfcgdedpya1b2c3d4e5f6g7dp8dp1011

28、ds2abfcgdedpya1b2c3d4e5f6g7dp8dp1011ds1123456789101112j2123456789101112j1+5d1d2d3d4d5d6pin_37pin_38pin_39pin_40pin_41pin_42图 3.6 数码管显示及彩灯闪烁电路4 软件设计软件设计设计从成本考虑出发和功能实现等,采用 altera 的 quartus ii 来软件来处理。选用verilog hdl 来编写程序,如果有 c 语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而选择 verilog hdl 作为编程语言。4.1 工作工作过程及设计思路过程及设计思路(1)

29、工作过程:midi 音乐是 windows 下的一种合成音乐,由于它通过记谱的方式来记录一段音乐,因此与 wave 音乐相比,它可以极大地减少存储容量。midi 音乐的工作过程为:组成乐曲的每一个音符的频率值及其持续的时间是乐曲能连续演奏的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和每一个频率信号的持续时间,就可以使蜂鸣器发生连续的乐曲,如图 4.1 所示。(2)设计思路:本设计将歌曲设计成一个状态机,每个音节做成一个状态机的状态,音节持续的时间由计数器变量 time 控制。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。所有不同频率的信号都是从基准

30、频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在 48mhz 时钟下,中音 1(对应的频率值是 523.25hz)的分频系数应该为:48000000/(2*523.25)=45867,这样只需对系统时钟进行 45867 次分频即可得到所要的中音 m1(分频系数计算公式为,由于之后,会使分频系/ 2dfk/ 2fk数 d 变小,所以功能模块中语句:beep_r=!beep_r,使得输出取反,消除了前面除以 2k 的影响) 。至于其他音符,可以同样求出对/ 2_kfcount

31、end应的分频系数。在程序中设置一个状态机,每 250ms 改变一个状态(即一个节拍) ,组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。只要让状态机的状态按顺序转换,就可以自动演奏播放音乐了。 友谊地久天长乐曲的简谱见附录 5所示, (注: n 一拍;n 两拍;n四拍;n八拍;n 为音谱) 。音乐节奏时钟彩灯闪烁节奏时钟音调发生器中央控制器彩灯闪烁控制器彩灯蜂鸣器光电传感器基准时钟cpld数码管数码管显示控制器图 4.1 cpld 内部芯片设计原理4.2 有限状态机有限状态机有限状态机 fsm 思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为 fmm-有

32、限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限无穷,可以用有限的状态,处理无穷的事务。有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有

33、关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑又可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。有限状态机的工作原理如图 4.2 所示,发生事件(event)后,根据当前状态(cur_state),决定执行的动作(action),并设置下一个状态(nxt_state)。发生事件event当前状态cur_state执行动作action设置下一状态nxt_state图 4.2 有限状态机工作原理状态机的现态(当前状态)和次态(下一状态) ,分别表示现在演奏

34、的音调和将要演奏的音调,而每个音调持续的时间都是 time 变量的整数倍。在程序中,time 的值在时钟 50mhz 频率下,设定为 250ms。4.3 中央控制器设计中央控制器设计中央控制器包括节拍控制电路和音符产生电路。节拍控制电路以乐曲中最短音符的节拍为基准,产生乐曲所需要的全部节拍。在大部分音乐中,多以 1/4 为一拍,一拍则为一秒,同时在乐谱中,一般最短的音符多为 1/16 音符,因此为了达到四首歌曲的统一,我们将 1/16 音符设置为计数器的一个计数,对应的 1/4 音符则是四个计数。为了节省内部资源,我们只演奏一首歌曲。另外,在设计中为了让歌曲循环播放,计数器设定计满自动清零计数

35、的功能,这样,只要不断电,不关开关,歌曲就可以自动循环播放了。4.4 音调发生器设计音调发生器设计控制好每一个音符的频率和维持的频率时间,就可以组成两个连续的音符,从而发出连续的乐曲,如表 4.1 音符与频率对照表所示。表 4.1 音符与频率对照表音名频率/hz分频系数低音 5391.9961225低音 644054545中音 1523.2545867中音 2587.3340863中音 3659.336402中音 5783.9930612中音 688027273高音 11045.522956休止符 081910由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。根

36、据系统最大的分频系数为 61225,故采用 16 位二进制计数器已能满足分频要求。在表 3.1 中,可以看到不同音阶对应的不同初始值。对于不同的分频系数,只要加载不同的初始值即可。采用加载初始值而不将分频输出译码反馈,可以有效地减少设计占用可编程逻辑器件的资源。 “0”表示休止符,在很多音乐中,休止符也是一个重要的音符。对于休止符,只要将分频系数设为 0,蜂鸣器就不会发声了,程序代码如下所示。parameter l_5 = 16d61224, /低音 5 l_6 = 16d54545, /低音 6 m_1 = 16d45863, /中音 1 m_2 = 16d40865, /中音 2 m_3

37、= 16d36402, /中音 3 m_5 = 16d30612, /中音 5 m_6 = 16d27273, /中音 6 h_1 = 16d22956; /高音 1 parameter time=12000000; /控制音的长短(250ms) assign beep=beep_r; /输出音乐4.5 光电传感器设计光电传感器设计光电传感器根据电路设计,当它检测到有光时,它内部为低电平,蜂鸣器不会叫,没有检测到光时,它内部为高电平,蜂鸣器会叫,程序代码如下所示。always(posedge sys_clk)begincount=count + 1b1; /计数器加 1if(count=cou

38、nt_end)begincount=16h0; /计数器清零if(ke=1b0) /如果有光beep_r=0; /蜂鸣器不叫elsebeep_r25) clkout=1; else clkout=0;endendmodule用分频得到仿真图如图 6.7 及图 6.8 所示。图 6.7 仿真图 1图 6.8 仿真图 2通过蜂鸣器、光电传感器、数码管、彩灯及分频的调试,产品能正常实现功能,产品实物图见附录 4。结结束语束语通过对整体的学习和编程设计,完成了音乐播放器的设计,音乐播放器的设计经过了整体分析、模块化分析、整体与模块的仿真分析这样三个步骤,硬件实现了循环演奏以及数码管显示时间等功能,描述

39、了其工作原理、设计思路及实现方法,并在quartus ii 上选用目标芯片仿真实现了音乐硬件演奏电路的功能。实践证明,采用cpld 设计实现音乐硬件演奏电路的可行性和可靠性,而且更改乐曲容易,可根据需要修改程序中的音符数据文件,从而使电路实现任一曲子的播放。在此次设计中,所有设计要求全部实现,然而在音乐的播放质量上仍有一些瑕疵,可能是由于蜂鸣器的质量问题或者芯片内部产生信号不稳定等关系,这都有待更多的时间对整个系统进行更多的测试,从而使播放出来的音乐更加悦耳。通过此次设计,对可编程逻辑器件 cpld/fpga 有了更深一步的了解,真正的达到了将课本中学习到的知识应用于实践,更深化了对这个领域的

40、认知度。在设计的过程中,还掌握了许多有关电子领域必要软件的使用,对今后的工作都有一定得帮助。致致 谢谢为期半年的准备,我的毕业论文终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在此,我特别要感谢我的导师唐军老师和张艳老师。从论文的选题、文献的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他们都费尽心血。没有老师们的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。同时,感谢所有任课老师和所有同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会

41、了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才!最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义,也正是因为有了他们,我才有了追求进步的勇气和信心。时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!参考文献参考文献1 袁慧梅,宋宇.基于 cpld 的 midi 音乐播放器的设计j.微计算机信息.2006.11.2 宋万杰,罗丰,吴顺君.cpld技术及其应用m .西安:西安电子科技大学出版社,19

42、99.3 朱正伟.eda技术及应用m .北京:清华大学出版社,2005.4 吴继华,王诚,薛宁.altera fpga/cpld设计m .北京:人民邮电出版社,2005.5 夏宇闻.verilog数字系统设计教程m .北京:北京航空航天大学出版社,2003.6 樊昌信,曹丽娜等.通信原理m .北京:国防工业出版社,2007.7 蒋青,吕翊,李强.现代通信技术基础m .北京:高等教育出版社,2008.8 罗文超,徐钊,盛祥佐.一种基于dds的qpsk调制器及其fpga实现j .电视技术,2007.9 赖昭胜,管立新,曾祥华.qpsk高性能数字调制器的fpga实现j .微计算机信息,2006.10

43、 潘松,黄继业.eda技术实用教程m .北京:科学出版社,2006.11 李红伟,袁世华.基于quartus的fpga/cpld设计m .北京:电子工业出版社,2006.12 赵红梅, 王召东.可编程逻辑器件fpga与cpld的发展与应用一例j.平顶山工学院学报.2005.7.13 童世华,付蔚.谈asic、fpga/cpld 的区别与发展j.重庆职业技术学院学报.2007.11.14 赵鑫,蒋亮,齐兆群,李晓凯.vhdl与数字电路设计m. 北京:机械工业出版社,2005.4.15 王晓丽.可编程逻辑器件cpld/fpga的发展j. 科技信息.2007.28.16 杨宝强,何伟,赵东晔. cp

44、ld仿真存在的问题及解决方法j. 2002.8.17 altera公司. 华禹公司选用altera零功耗cpld服务2008夏季奥运会j.电子技术应用.2008.7.附附 录录附录附录 1 电路原理图电路原理图c12104c11104c9104c8104c7104c6104c5104c41043.3vvcc4gnd21out3g150mhzc31043.3vclk012345678910jtagcpld_jtag3.3vio01io03io11io05io22io07io24io28io30io32io38io40io42io43io44io48io50io52io55io58io02io04

45、io06io08io21io23io27io29io31io37io39io41io45io49io51io53io57io59r8k13.3vio02io03io04io05io06io07io08clk0clk1io15io16io17io18io19io20io21io26io27io28io29io30io33io34io35io36io37io38io39io40io41io42io43io44io47io48io49io50io513.3vdc_1传传传 dc5v+c122uf/25v+c1010uf/16vvin1gnd2vout3u27805c2104r1470power1d5

46、d4d3d2d1d0r5102r4102r3102r2102r7102r6102io97io84io93io94io95io963.3vio52io53io54io55io56io57io58io61io62io64io66io67io68io69io70io71io72io73io74io75io76io77io78io81io82io83io84io85io86io87io88io89io90io91io92io95io96io97io98io99io100io60io61io62io63io66io67io68io69io70io71io72io73io74io75io76io77io7

47、8io79io80io98io101io102io103io104io105io106io107io109io111io110io137io138io139io140io141io142io143io144tcktdotmstditmstdotcktdignd1in3out2out4u4reg1117-33.3vr10103r11103clk0io01io101io102io103io104io105io106io107io108io109io110io111io112io113io114io115io116io117io118io119io120io121io122io123io124io1

48、25io126io127io128io129io130io131io132io133io134io135io136io137io138io139io140io141io142io143io144k2bank 1io2io3io4io5io6io7io8io/gclk012io/gclk114io15io16io17io18io19io20io21io26io27io28io29io30io33io34io35io36io37io38io39io40io41io42io/dev_oe43io/dev_clrn44io47io48io49io50io51u7aepm570t144c5bank 2i

49、o52io53io54io55io56io57io58io61io/gclk262io/gclk364io66io67io68io69io70io71io72io73io74io75io76io77io78io81io82io83io84io85io86io87io88io89io90io91io92io95io96io97io98io99io100io1u7bepm570t144c5bank 3io101io102io103io104io105io106io107io108io109io110io111io112io113io114io115io116io117io118io119io120

50、io121io122io123io124io125io126io127io128io129io130io131io132io133io134io135io136io137io138io139io140io141io142io143io144u7fepm570t144c5tms22tdi23tck24tdo25u7cepm570t144c5vccio19vccint13vccio131vccio145vccio259vccint63vccio280vccio294u7depm570t144c5gndio10gndint11gndio32gndio46gndio60gndint65gndio79g

51、ndio93u7eepm570t144c5io108io112io113io114io117io118io119io120io121io122io123io124io125io1271234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950j1header 25x2io129io130io131io132io133io134+5v123456789101112131415161718192021222324252627282930313233343536373839404

52、1424344454647484950j2header 25x2epm570t144c5 核 心 板 系 统 板 开 发 板 图1234j5con4r24470r23470r22470r21470r13470r20470r19470r18470r16470r15470r14470r17470r1470r2470r3470r4470r5470r6470r7470r8470r9470r10470r11470r12470abfcgdedpya1b2c3d4e5f6g7dp8dp1011ds3abfcgdedpya1b2c3d4e5f6g7dp8dp1011ds2abfcgdedpya1b2c3d4e

53、5f6g7dp8dp1011ds1123456789101112j2123456789101112j1+5d1d2d3d4d5d6r210kr41kc1104传传传传r110kr310k彩灯闪烁数码管显示电路光电传感器电子11101 万芬12f1io29gnd蜂鸣器r51k传传传传104lm393传传传vccd0io36io135io136pin_37pin_38pin_39pin_40pin_41pin_42附录附录 2 系统板系统板 pcb 图图附录附录 3 部分部分 rtl 电路图电路图附录附录 4 产品实物图产品实物图附录附录 5 曲谱曲谱附录附录 6 程序源代码程序源代码module

54、 wf(sys_clk,beep,led,ke,fa);input sys_clk; /系统时钟 48mhz input ke; /光电传感器 output beep; /蜂鸣器输出端 output23:0led; /数码管输出端 output 5:0fa; /彩灯输出端 reg beep_r; /寄存器 reg7:0 state; /乐谱状态机 reg15:0 count; reg15:0 count_end; reg23:0 count1; reg 31:0counter2;reg23:0led; /数码管reg 5:0fa_r; /彩灯reg clk_s;reg 11:0min; /乐谱

55、参数:d=f/2k parameter l_5 = 16d61224, /低音 5 l_6 = 16d54545, /低音 6 m_1 = 16d45863, /中音 1 m_2 = 16d40865, /中音 2 m_3 = 16d36402, /中音 3 m_5 = 16d30612, /中音 5 m_6 = 16d27273, /中音 6 h_1 = 16d22956; /高音 1 parameter time=12000000; /控制音的长短(250ms) assign beep=beep_r; /输出音乐/* *模块名称:分频器* 功能描述:计数分频*/always(posedge

56、 sys_clk)begincount = count + 1b1; /计数器加 1if(count=count_end)begincount=16h0; /计数器清零if(ke=1b0) /如果有光beep_r=0; /蜂鸣器不叫elsebeep_r=!beep_r; /输出取反(蜂鸣器叫)endend/* 模块名称:曲谱* 功能描述:产生分频的系数并描述出曲谱*/always(posedge sys_clk)beginif(count1time) /一个节拍 250mscount1=count1+1b1;elsebegincount1=24d0;if(state=8d147)state=8

57、d0;elsestate=state+1b1;case(state)8d0,8d1: count_end=l_5; /低音5,持续 2 个节拍8d2,8d3,8d4,8d5,8d6,8d7,8d8: count_end=m_1 ; /中音1,持续 7 个节拍8d9,8d10: count_end=m_3; /中音3,持续 2 个节拍8d11,8d12,8d13,8d14: count_end=m_2; /中音2,持续 4 个节拍8d15: count_end=m_1; 8d16,8d17: count_end=m_2;8d18,8d19: count_end=m_3; 8d20,8d21,8d

58、22,8d23,8d24: count_end=m_1;8d25,8d26: count_end=m_3;8d27,8d28: count_end=m_5;8d29,8d30,8d31,8d32,8d33: count_end=m_6;8d34,8d35,8d36,8d37,8d38: count_end=m_6;8d39,8d40,8d41,8d42: count_end=m_5;8d43,8d44,8d45: count_end=m_3;8d46,8d47: count_end=m_1;8d48,8d49,8d50,8d51: count_end=m_2; 8d52: count_end=

59、m_1; 8d53,8d54: count_end=m_2;8d55,8d56: count_end=m_3;8d57,8d58,8d59,8d60: count_end=m_1;8d61,8d62,8d63: count_end=l_6;8d64,8d65: count_end=m_5;8d66,8d67,8d68,8d69: count_end=m_1;8d70,8d71,8d72,8d73: count_end=m_1; 8d74,8d75: count_end=m_6;8d76,8d77,8d78,8d79: count_end=m_5; 8d80,8d81,8d82: count_e

60、nd=m_3; 8d83,8d84: count_end=m_1; 8d85,8d86,8d87,8d88: count_end=m_2; 8d89: count_end=m_1; 8d90,8d91: count_end=m_2; 8d92,8d93: count_end=m_6;8d94,8d95,8d96,8d97: count_end=m_5;8d98,8d99,8d100: count_end=m_3; 8d101,8d102: count_end=m_5; 8d103,8d104,8d105,8d106: count_end = m_6;8d107,8d108,8d109,8d11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论