电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数字系统设计音乐播放器

18页
  • 卖家[上传人]:hs****ma
  • 文档编号:473459388
  • 上传时间:2024-01-29
  • 文档格式:DOCX
  • 文档大小:150.67KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得、实验目的和要求:实验目的:(1)掌握音符产生的方法,了解 DD诚术的应用。(2) 了解AC97音频接口电路的应用。(3)掌握系统“自顶而下”的设计方法。实验任务:设计一个音乐播放器。(1)可以播放四首乐曲,设置 play、next、reset三个按键。按play键播放当前乐曲,按next键播放下一首乐曲。小当前乐曲序号(2) LED0指示播放情况(播放时点亮)、LED2和LED3指二、实验内容和原理(1)音乐播放器的设计原理根据实验任务可将系统分为主控制器(mg、乐曲读取(song_reader )、音next button按键处理模块song donenote loneplay_button|elk主控制器play乐Illi读取;PILLED SongLED 2reset nx Inotc. duration音符播放sample-ncxisamplccodcc_ conditionervalidsamplcnew nameac

      2、97 if符播放(note_player )、AC9宿频接 口( codec_conditioner )和 ac97_if 五个子 模块,系统的总体框图如下:各个模块的功能如下:1 .mcu模块接收按键信息,通知song_reader模块是否要播放(play)及播放哪 首乐曲(song),若一曲播放结束则进入播放结束ENDt态。2 .song_reader模块根据mcU块的要求,逐个取出音符 note , duration 送给 note_player模块播放,当一首乐曲播放完毕,回复mcU莫块乐曲播放结束信号(song_done)。3 .note_player模块接收到需播放的音符,在音符的持续时间内,以48kHz速率送出该音符的正弦波样品给 AC9宿频接口模块。当一个音符播放结束,向 song_reader模块发送一个note_done脉冲索取新的音符。4 .codec_conditiner 、ac97_if模块负责与AC9宿频系统接口工作,本实验已 提供了这两个模块的代码。另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。1、主控制模块mcu的设计mcu模块是主控制模块,

      3、有响应按键信息、控制系统播放两大任务,工作流程 如下面的流程图所示。要求系统复位后经RESET犬态初始化后进入 WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXTgPLAY ,若一曲播放结束则进入结束播放END犬态。mcu的控制器算法流程图如下图:以下为mcu的端口含义引脚名称I/O引脚说明clkInput100MHz寸钟信号resetInput复位信号,高电平有效play_buttonInput“播放”按键,低电平有效next_buttonInput“下一曲”按键,一个时钟周期宽 度的局电平脉冲playOutput高电平表示播放song_doneOutput当播放下,曲时,输出,个时钟周 期宽度的高电平复位脉冲reset_play ,并复位 note_player模块song_doneInputnote_player 模块的应答彳个时钟周期宽度的高电平脉冲表示 一曲播放结束song1:0Output当前乐曲的序号结合以上算法流程图和端口定义,mcU莫块代码如下:module mcu(clk, reset, play_button, next,

      4、play, reset_play, song,song_done );parameter RESET=0, WAIT=1, END=2, NEXT=3, PLAY=4;input reset, play_button,song_done,clk,next;output reg 1:0 song;output reg play, reset_play;reg state;always ( posedge clk )beginif (reset)begin play=0; song=2b00;reset_play=1; state=RESET; end elsecase (state)RESET:WAIT:if (song_done)begin state =END; play=0; reset_play=1; endelse if (next)begin state =NEXT; play=1; reset_play=1; song=song+1; endelse if (play_button)begin state =PLAY; play=1; reset_play=0; endel

      5、sebegin state =WAIT; reset_play=0; endEND, NEXT, PLAY:begin state =WAIT; reset_play=0; endendcaseendendmodule2、 乐曲读取模块song_reader 的设计乐曲读取模块song_reader 的功能有:(1)根据mcU奠块的要求,选择播放乐曲;(2)相应note_player模块请求,从song_rom中逐个取出音符note,duration送给 note_player 模块播放;(3)判断乐曲是否播放完毕,若播放完毕,则回复mcug块应答信号。根据设计要求,以下是song_reader 模块的结构框图地址计数器addrelkresetnole dones ong_r匕自加r控制器song_ron结束判断playdoutnotej duraticin)new_note根据设计要求,以下是song_reader模块的端口含义引脚名称I/O引脚说明clkInput100MH时钟信号resetInput复位信号,高电平有效playInput来自mcu的控制信号,局电平播放song1:

      6、0Input来自mcu的控制信号,当前播放乐曲的序号note_doneInput来自模块note_player应答佶号,一个时钟周期宽度的高电平脉冲表个音符 播放结束song_done0utput给mcu的应答信号,当乐曲播放结束,输出一个时钟周期宽度的高电平脉冲note5:0Output音符标记duration5:0Output音符的持续时间new_noteOutput给note_player的控制信号,一个时钟周期宽度的高电平脉冲表示新的音符需播 放以下是song_reader的算法流程图地址计数器为5位二进制计数器,其中note_done为计数允许输入,状态q为song_rom的低5位地址,song1:0为song_rom高两位地址。当地址计数器出现进位或duration为0时,表示乐曲结束,应输出一个时钟周期 宽度的高电平脉冲信号 song_done。结束判断模块应调用提供的模块 one_pulse ,使输出为一个时钟周期宽度的高电 平脉冲。结合上图以及模块要求,编写 song_reader 代码如下:modulesong_reader(clk,reset,play,song,

      7、note_done,song_done,note,duration, new_note );input clk,reset,play,note_done;input 1:0 song;output song_done, new_note;output 5:0 note, duration;parameter RESET=0, NEW_NOTE=1, WAIT=2, NEXT_NOTE=4;reg 1:0 STATE;reg new_note;always ( posedge clk )beginif (reset=1) begin new_note=0; STATE=RESET; endelsecase (STATE)RESET:if (play=1)begin new_note=1; STATE=NEW_NOTE; endelsebegin new_note=0; STATE=RESET; endNEW_NOTE:begin new_note=0; STATE=WAIT; endWAIT:if (play=1)if (note_done=1)begin new_note=0; STA

      8、TE=NEXT_NOTE; endelsebegin new_note=0; STATE=WAIT; endelse begin new_note=0; STATE=RESET; endNEXT_NOTE:begin new_note=1; STATE=NEW_NOTE; endendcaseendwire 4:0 q;wire co;song_romsong_rom1(.clk(clk),.dout(note,duration),.addr(song,q);addr_counteraddr_counter1(.clk(clk),.reset(reset),.note_done(note_done),.q(q),.co(co);end_judgingend_judging1(.co(co),.duration(duration),.clk(clk),.song_done(song_done);(返回给主控制器一个应答信号,即框图中的结束判断模块)endmodule其中模块 end_judging 的代码如下:module end_judging(co, duration, clk, song_done);parameter N=6;input co;input N-1:0 duration;input clk;output song_done;wire N-1:0 dd;wire qq;assign song_done = qq & dd;assign dd = co | (duration=6b00000);D_FF dff1(.d(dd), .clk(clk), .q(qq);endmodule其中模块 counter 的代码如下:module addr_counter(clk,q,co,reset,note_done);input clk,reset,note_done;output reg 4:0 q;output co;assign co=note_done&(&q);always (posedge clk)begin if(

      《数字系统设计音乐播放器》由会员hs****ma分享,可在线阅读,更多相关《数字系统设计音乐播放器》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.