音乐播放器课程设计报告.docx
- 文档编号:29713709
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:19
- 大小:505.63KB
音乐播放器课程设计报告.docx
《音乐播放器课程设计报告.docx》由会员分享,可在线阅读,更多相关《音乐播放器课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
音乐播放器课程设计报告
课程设计报告
课程名称PLD原理与应用
设计题目 音乐播放器
专业通信工程
课程设计任务书
设计题目:
音乐播放器
设计内容与要求:
1.设计内容
本次设计的是一个四位抢答器,该抢答器有四个不同组别的抢答输入信号,并能识别最先抢答的信号,对回答问题所用的时间进行计时,同时该系统还应有复位功能。
2.设计要求
1、设计制作一个可容纳四组参赛者的抢答器,每组设置一个抢答按钮供抢答者使用。
2、要设计的系统划分为三个功能模块:
抢答信号鉴别模块、计时模块和计分模块。
3、主持键按下,4个抢答键才有效,时间从60s开始计时。
4、在规定时间内抢答并作答,显示先按下的组别号,与此同时其他抢答键无效;当主持键再次按下开始键才有效。
5、在规定时间内答对一题加10分,答错不扣分。
每组初始分都为100分。
指导教师:
邹红文
2013年12月12日
课程设计评语
成绩:
指导教师:
______________
年月日
四位抢答器
摘要
随着我国经济和文化事业的发展,在这个竞争激烈的社会中,知识竞赛、评选优胜,选拔人才之类的活动愈加频繁。
在很多竞争场要求有快速公正的竞争裁决,例如:
证劵、股票交易及各种智力竞赛等。
在现代社会生活中,智力竞赛更是作为一种生动活泼的教育形式和方法能够引起观众极大的兴趣。
但是、在竞赛中往往是多个选手一起,分为几个小组参加比赛,针对主持人提出的问题各竞赛小组进行抢答,而抢答环节就要有一种逻辑电路抢答器作为裁判员功能、实现其比赛公平、公正的规则。
智能抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它都能客观、迅速地判别出最先获得发言权的选手。
新增了许多功能,如选手号码显示,抢按后的计时,选手得分显示等功能。
随着科技的发展,现在的抢答器向着数字化、智能化的方向发展.
本设计借助于QuartusⅡ软件仿真制作了四人抢答器。
通过选手按动按键的先后,判定由哪位选手回答问题,并且实现倒计时和对选手加分的功能。
本设计分为三个模块:
控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
关键词:
QuartusⅡ,仿真,抢答器,控制模块,计时模块,计分模块
Four-wayresponder
ABSTRACT
WiththedevelopmentofChina'seconomicandculturalundertakings,inthiscompetitivesociety,knowledgecontests,selectionofsuperior,talentssuchasactivitiesmoreandmorefrequent.Inmanycompetitivegamesrequirefastfaircompetitionaward.Inthemodernsocietylife,quizisasakindoflivelyeducationformandthemethodcancausetheaudienceinterest.But,inthecompetitionisoftenseveralplayerstogether,dividedintoseveralgroupstoparticipateinthegame,againstthehostquestioncarriesonthecompetitionteamviestoanswerfirst,viestoanswerfirstlinkwillhavealogiccircuitbuzzerasrefereefunction,achievethegamerulesoffairnessandjustice.
Smartresponderisakindofequipment,theyarewidelyusedinvariouscompetitions,viestoanswerfirst,itcanbeobjective,quicklywonthevoicediscriminantoutfirst.Addedmanyfeatures,suchasthecontestantnumberdisplay,robafterpressingtime,playersscoreshows,andotherfunctions.Withthedevelopmentofscienceandtechnology,nowtherespondertowarddigital,intelligentdirection.
ThisdesignwiththeaidofQuartusⅡsoftwaresimulationproducedfourresponder.Throughtheplayerhastopressabutton,decidewhichplayerstoanswerthequestion,andcanrealizethefunctionofthecountdownandtheplayerpoints.Thisdesignisdividedintothreemodules:
controlmodule,timingmodule,scoringmodule,eachmodulecombination,toachievetheoverallfunctionofthewholedesign.
KEYWORDS:
QuartusⅡ,Simulation,Answerfourdevice,Control,Timing,Scoring
前 言
关于这次设计的用于多人竞赛抢答的器件,在现实生活中很常见,尤其是在随着各种智益电视节目的不断发展,越来越多的竞赛抢答器被用在了其中,这种抢答器的好处是不仅能够锻炼参赛选手的反应能力,而且能增加节目现场的紧张、活跃气氛,让观众看得更有情趣。
可见抢答器在现实生活中确实很实用,运用前景非常广泛。
在知识竞赛中,特别是做抢答题时,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要有一个系统来完成这个任务。
对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。
选手们都站在同一个起跑线上,体现了公平公正的原则。
本文介绍了一种纯粹用VHDL代码编写设计的高分辨率的4路抢答器。
该抢答器为VHDL代码编写生成各个模块,完成电路设计,具有分组数多、分辨率高等优点。
该抢答器除具有基本的抢答功能外,还具有优先能力、定时功能及复位功能。
主持人通过控制开关使抢答器达到定时、复位的功能。
第1章绪论
1.1抢答器系统图
图1-1抢答器系统图
本设计分为三个模块:
控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
四人抢答器,当裁判员宣布开始抢答时,谁先按下他前面的控制开关,他的灯就会亮,而且这时其他人再怎么按,也就不会亮了。
当有一个指示灯亮了,就开始倒计时,到0时结束,这样计数器开始工作就是在指示灯的指示下工作。
设四个人分别为输入端A,B,C,D;因为四个输入端在VHDL中,要求四个输入端应该是相等优先级别。
其次就是计时器部分,当有人开始进入回答部分,指示灯亮,同时计时器开始工作,并要求是倒计时方式显示出。
计时器采用倒计时方式,只要给他们最初赋值,而后在每个上升沿来到减一。
计数器的主要功能是管理选手分数,并且在不加分不扣分的情况下,具有锁存选手的分数的功能,实现分数的累加。
1.2抢答器设计要求
实现4人抢答时每人的分数累加,倒计时显示答题时间:
(1)1个主持键,4个抢答键
(2)每人设置一个抢答按钮。
(3)抢答的键号用一个数码管显示
(4)主持键按下,4个抢答键才有效。
(5)显示最快抢答选手的编号。
(6)当时间到达设置的时间极限还没人按抢答键,抢答停止,抢答键无效,当主持键再次按下才有效。
(7)在规定的时间内抢答键按下时,显示先按下的键号,时间停止,抢答键无效;当主持键再次按下才有效。
(8)选手分数预置为100分,主持人控制加分数,每次加的都是10分。
(9)必须先进行前仿真,并打印出仿真波形,按要求写好设计报告。
1.3基本功能
(1)编号分别为A、B、C、D的四个,各用一个抢答按钮,选手A、B、C、D相对应的按钮编号分别为1000、0100、0010、0001。
(2)主持人控制一个主持键,用来控制系统的清零和抢答。
(3)数字抢答器的具有倒计时功能。
主持键按下后,如果有选手在规定的时间内抢先按下了抢答按钮,则该选手将有一分钟的时间作答。
选手分数预置为100分,主持人控制加分数,每次加的都是10分。
当定时抢答时间已到,还没人抢答,本次抢答无效,均不加分,同时答错不扣分。
第2章模块设计
2.1主控制模块
2.1.1主要功能
主控制模块的主要功能:
在主持键(清零键)按下后,选手按键才可以应用,分辨出选手按键的先后,并锁存优先抢答者的编号;而且使其他选手的按键操作无效,且主持键具有按下的瞬间可以清除上次锁存的选手编号。
2.1.2代码编写
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYQDJBIS
PORT(CLR:
INSTD_LOGIC;--1个预值数
A,B,C,D:
INSTD_LOGIC;--1个预值数
BH:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));--定义一个4位的代号
ENDENTITYQDJB;
ARCHITECTUREARTOFQDJBIS
SIGNALCLK1,CLK2,CLK3,CLK4,T:
STD_LOGIC;--定义4个信号
BEGIN
--初始状态CLR=1,A1,B1,C1,D1全为0,T=1
T<=CLRAND(NOTBH(3))AND(NOTBH
(2))AND(NOTBH
(1))AND(NOTBH(0));--当CLR为0时T为0;当在CLR由0变为1的瞬间,BH为0000,此时时间T为1.实现了主持键按下后,四个选手按键才有效.
CLK1<=AANDT;--CLK1<=A=0--A和T同时为高电平时,CLK1为1
CLK2<=BANDT;--CLK2<=B=0--B和T同时为高电平时,CLK2为1
CLK3<=CANDT;--CLK3<=C=0--C和T同时为高电平时,CLK3为1
CLK4<=DANDT;--CLK4<=D=0--D和T同时为高电平时,CLK4为1
PROCESS(CLK1,A,CLR)IS
--选手按下键后,CLK产生上升沿,输出al<=’1’;
--使得T变为0,所有的CLK变为0,不能接受其他选手的按键
BEGIN
IFCLR='0'THENBH(3)<='0';--当CLR清零时,BH(3)赋值为0.实现CLR清零时BH变为0000.
ELSIFCLK1'EVENTANDCLK1='1'THEN--CLR与CLK1同时为1时
IF(A='1')THENBH(3)<='1';--当A='1'时,BH(3)被赋值为'1',证明锁存住选手A的编码
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK2,B,CLR)IS
BEGIN
IFCLR='0'THENBH
(2)<='0';
ELSIFCLK2'EVENTANDCLK2='1'THEN
IF(B='1')THENBH
(2)<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK3,C,CLR)IS
BEGIN
IFCLR='0'THENBH
(1)<='0';
ELSIFCLK3'EVENTANDCLK3='1'THEN
IF(C='1')THENBH
(1)<='1';
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK4,D,CLR)IS
BEGIN
IFCLR='0'THENBH(0)<='0';
ELSIFCLK4'EVENTANDCLK4='1'THEN
IF(D='1')THENBH(0)<='1';
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
图2-1主控制部分电路图的封装图
2.1.3仿真波形及其分析
图2-2主控制部分仿真波形
该电路有四个输入和一个输出:
CLR为清零端(主持键),在新一轮抢答之前给它一段时间高电平,只有当CLR为0(按下时为0)时,该端发挥清零功能,而为1时输出值只和A、B、C、D四位选手的按键情况有关;当清零以后,根据A、B、C、D四位选手的抢答情况,BH为四个选手的抢答端口的现实端.当有选手抢先按下按键时,BH端口输出该选手的号码,由波形图和编写的程序可知A、B、C、D抢到时BH输出值分别是1000、0100、0010、0001。
例如图2-2所示,当主持键CLR第一次按下后,A、B、C、D四位选手中A选手抢在其他选手前按键,摒弃了其他三位的操作,BH显示A选手的编号,在主持键CLR再次按下时,BH变为初值0000,为下次选手按键作准备。
2.2计时模块
2.2.1主要功能
当有主持键按下时,60s抢答倒计时开始,当显示00s时表示60s答题时间已到。
当下次抢答时计时器重置为60。
2.2.2代码编写
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityJSQis
port(CLR,CLK:
instd_logic;--2个预值数
QA,QB:
outstd_logic_vector(3downto0));--定义个位,十位为4位二进制数的数值输出
endentityJSQ;
architectureARTofJSQis
signalDA,DB:
std_logic_vector(3downto0);
begin
process(CLR,CLK)
variableTMPA,TMPB:
std_logic_vector(3downto0);
begin
if(CLR='0')thenTMPA:
="0000";TMPB:
="0110";--当主持键按下,时间数的个位置0,十位置6
elsifCLK'EVENTandCLK='1'then—测试是中时钟上升沿
ifTMPA="0000"thenTMPA:
="1001";--当个位为0时,借位,重设个位值为9
ifTMPB="0000"thenTMPB:
="0110";--当十位为0时,重设十位值为6
elseTMPB:
=TMPB-1;--否则QB在上升沿处开始计数
endif;
elseTMPA:
=TMPA-1;--否则QA在上升沿处开始计数
endif;
endif;
QA<=TMPA;QB<=TMPB;--TMPA赋值给QA;TMPB赋值给QB
endprocess;
endarchitectureART;
图2-3计时部分封装电路图
2.2.3仿真波形及其分析
图2-4计时部分波形图
该部分主要是由vhdl编写模60计数器,由一个系统时钟信号clk,一个系统清零信号clr来控制倒计时个位QA,十位QB的显示。
且清零信号低电平有效。
清零键按下瞬间(clr由0变为1),倒计时个位QA,十位QB开始计数。
例如图2-4所示,在清零键按下后,倒计时的个位QA赋值为0,十位QB赋值为6,随着时间的流逝,计数值递减。
2.3计分模块
2.3.1主要功能
该部分的主要功能是管理选手分数,并且在不加分不扣分的情况下,具有锁存选手的分数的功能,实现分数的累加。
使四位选手在开始时的分数预置成100分,答对一次加10分,最高累加到990分。
2.3.2代码编写
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityJFQis
port(RST,ADD:
instd_logic;
BH:
instd_logic_vector(3downto0);
AA2,AA1,AA0,BB2,BB1,BB0:
outstd_logic_vector(3downto0);
CC2,CC1,CC0,DD2,DD1,DD0:
outstd_logic_vector(3downto0));
endentityJFQ;
architectureARTofJFQis
begin
process(ADD,RST,BH)
variableA2,A1:
std_logic_vector(3downto0);
variableB2,B1:
std_logic_vector(3downto0);
variableC2,C1:
std_logic_vector(3downto0);
variableD2,D1:
std_logic_vector(3downto0);
begin
ifRST='0'then
A2:
="0001";A1:
="0000";
B2:
="0001";B1:
="0000";
C2:
="0001";C1:
="0000";
D2:
="0001";D1:
="0000";
elsif(ADD'EVENTandADD='1')then—当计分复位端RST为1且加分按钮端ADD为1时
if(BH="1000")then
ifA1="1001"thenA1:
="0000";--当A1为9时,进位,A1变为0
ifA2="1001"thenA2:
="0000";--当A2为9时,A2变为0
elseA2:
=A2+'1';endif;--其它情况下A2逐次加1
elseA1:
=A1+'1';--其它情况下A1逐次加1
endif;
elsif(BH="0100")then
ifB1="1001"thenB1:
="0000";
ifB2="1001"thenB2:
="0000";
elseB2:
=B2+'1';endif;
elseB1:
=B1+'1';
endif;
elsif(BH="0010")then
ifC1="1001"thenC1:
="0000";
ifC2="1001"thenC2:
="0000";
elseC2:
=C2+'1';endif;
elseC1:
=C1+'1';
endif;
elsif(BH="0001")then
ifD1="1001"thenD1:
="0000";
ifD2="1001"thenD2:
="0000";
elseD2:
=D2+'1';endif;
elseD1:
=D1+'1';
endif;
endif;
endif;
AA2<=A2;AA1<=A1;AA0<="0000";
BB2<=B2;BB1<=B1;BB0<="0000";
CC2<=C2;CC1<=C1;CC0<="0000";
DD2<=D2;DD1<=D1;DD0<="0000";
endprocess;
endarchitectureART;
图2-5计分部分封装电路图
2.3.3仿真波形及其分析
图2-6计分部分波形图
该部分主要实现对相应选手加分。
运用VHDL代码编写程序,实现了所需求的功能。
其中,RST是计分复位端,ADD是加分按钮端,实现选手的加分。
BH是选手选择键,显示率先抢答到的选手的编号。
比赛开始时,计分复位端RST低电平复位,使四位选手的分数置为100。
当ADD由0变为1时,而且某位选手抢到该机会,实现对该选手的加分。
某位选手抢到机会后并加分时,其他选手分数保持不变。
仿真波形图如上。
例如图2-6计分部分波形图,计分复位端RST复位后,当选手选择键BH为1000,证明选中了A选手,而当加分按钮端ADD来一个高电平时,即实现给A选手加10分,而其他选手的分数保持不变。
第3章顶层电路
3.1电路图
图3-1抢答器总体设计图
图3-2抢答器总体设计封装图
通过选手按动按键的先后,判定由哪位选手回答问题,并且实现倒计时和对选手加分的功能。
本设计分为三个模块:
控制模块、计时模块、计分模块,各个模块共同作用,以实现整个设计的总体功能。
3.2抢答器工作原理
3.2.1各个端口的含义
RST是计分复位端;ADD是加分按钮端,高电平时实现选手的加分;BH是选手选择键,显示某个选手抢答到;A、B、C、D是四人抢答端口,高电平有效;START表示抢答开始;SH是60s倒计时;AH、AM、AL是选手A得分输出;BH、BM、BL是B选手得分输出;CH、CM、CL是C选手得分输出;DH、DM、DL是D选手得分输出。
3.2.2操作流程及相应波形图
首先,开始时钟端clk、复位端rst,其中四位选手初始分数均为0分,start此时一直为高电平,当开始抢答时start变为低电平,标志抢答开始,abcd四位选手开始抢答,当某位选手抢到后,60s倒计时开始,在这段时间内若选手答对,addk变为高电平,该选手加10分,达到90分后若继续累加,向高位进位。
倘若start变为0开始抢答,但在60秒倒计时内无人抢答,各位选手分数不变。
若某位选手抢到机会,但是在60秒倒计时内不能回答正确,此时addk始终为0,不加分。
其工作波形图如下:
图3-3抢答加分波形图
对于四人抢答器,四个选手在电路中的起始控制作用是一样的。
当裁判员宣布开始抢答时,谁先按下控制开关,他的灯就亮,而且其他人再怎么按,也不会亮了。
说明每个人对其他人都有先发制人的作用,即每个人都在时间控制下,能锁存住其他选手的功能。
当有一个指示灯亮,就开始从60开始倒计时,到0时结束,这样计数器开始工作就是在指示灯的指示下工作。
设四个人为输入端A,B,C,D;因为四个输入端在VHDL中,要求四个输入端应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个反馈,使得他们的输入无效,及他们对应的指示灯不亮;所以我们可以也并行语句,让它们
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 播放 课程设计 报告