课程设计报告-抢答器设计.doc_第1页
课程设计报告-抢答器设计.doc_第2页
课程设计报告-抢答器设计.doc_第3页
课程设计报告-抢答器设计.doc_第4页
课程设计报告-抢答器设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

EDA课程设计报告抢答器设计 专 业: 电子信息科学与技术 班 级: 1101班 姓 名: 崔新宽, 张华康 指导教师: 田老师 2013年6月24号2013年6月28号一 设计任务 掌握QUARTUS软件的使用方法;(1) 会使用VHDL语言设计小型数字电路系统;(2) 掌握应用QUARTUS软件设计电路的流程;(3) 掌握抢答器的设计方法。二 设计要求(1)设计一个可以容纳两组参赛队进行比赛的抢答器。(2)具有第一抢答信号的鉴别和锁存功能。在主持人发出抢答指令后,若有参赛者按抢答器按钮,则该组指示灯亮,显示器显示出抢答者的组别。同时,电路处于自锁存状态,使其他组的抢答器按钮不起作用。(3)具有计时功能。在初始状态时,主持人可以设置答题时间的初始值。在主持人对抢答组别进行确认,并给出倒计时记数开始信号以后,抢答者开始回答问题。此时,显示器从初始值开始倒计时,计到0时停止计数,同时扬声器发出超时警报信号。若参赛者在规定的时间内回答完问题,主持人可以给出计时停止信号,以免扬声器鸣叫。(4)具有计分功能。在初始状态时,主持人可以给每组设置初始分值。每组抢答完毕后,由主持人打分,答对一次加10分,答错一次减1分。 设计方案系统的输入信号有:各组的抢答按钮A、B,系统允许抢答信号STA,系统清零信号CLR,系统时钟信号CLK,计分复位端CLR,加分按钮端ADD,计时使能端EN;系统的输出信号有:两个组抢答成功与否的指示灯控制信号输出口可用如LED_A、LED_B、表示,两个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。整个系统至少有三个主要模块:抢答鉴别模块;抢答计时模块;抢答计分模块,其他功能模块(分频模块,输出显示模块)。抢答鉴别分频计数计分器数码管显示数码管显示3、 各模块设计(1)分频模块该模块主要是将频率为40MHz的时钟信号分频成100Hz,1Hz。其模块如下:源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fenpin is port(clk40M:in std_logic; clk1khz,clk1hz,clk100hz,clk2khz:out std_logic);end fenpin;architecture one of fenpin is signal clk1k,clk1:std_logic; begin process(clk40M) variable q:integer range 0 to 1999:=0; begin if rising_edge(clk40M) then if q=19999 then clk1k=not clk1k; q:=0; else q:=q+1; end if; end if;end process;process(clk1k) variable q1:integer range 0 to 499:=0;begin if rising_edge(clk1k)then if q1=499 then clk1=not clk1; q1:=0; else q1:=q1+1; end if; end if;end process;clk1khz=clk1k;clk1hz=clk1;end one; ARCHITECTURE two OF fenpin IS signal clk2k,clk100:std_logic; begin process(clk40M) is variable q:integer range 0 to 9999; begin if rising_edge(clk40M)then if q=9999 then clk2k=not clk2k; q:=0; else q:=q+1; end if; end if; end process; process(clk2k) is variable q1:integer range 0 to 9; begin if rising_edge(clk2k)then if q1=9 then clk100=not clk100; q1:=0; else q1:=q1+1; end if; end if; end process; clk2khz=clk2k;clk100hz=clk100; end two;(2) 抢答鉴别模块: 抢答队伍共分为两组A,B。当主持人按下STA键后,对应的START指示灯亮,两组队伍才可以按抢答键抢答,即抢答信号A,B输入电路中后,通过判断是哪个信号最先为1得出抢答成功的组别1,2组,将组别号输出到相应端A1,B1并将组别序号换算为四位二进制信号输出到STATES3.0端锁存,等待输出到计分和显示单元。其模块如下:抢答鉴别源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xuanze is port(clk,clr,start,player1,player2:in std_logic; playnum:out std_logic_vector(3 downto 0);end xuanze;architecture one of xuanze issignal lock:std_logic:=0;begin process(clr,clk,start,player1,player2)beginif clr=1 then playnum=0000;elsif rising_edge(clk) then if start=1thenif player1=1and lock=0 then playnum=0001;lock=1;elsif player2=1and lock=0 thenplaynum=0010;lock=1;end if;else lock=0;end if;end if;end process;end one;(3)计分模块在计分器电路的设计中,按照一般的设计原则,按一定数进制进行加减即可,但是随着计数数目的增加,但由于实验板上数码管数目的限制在,每组都猜用十进制数计分,这种电路连线简单方便。 clr为复位端,当接加分按钮ADD后,组别加分。每组的分数将在对应的数码管上显示,模块如下:、计分模块源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jifen isport(clr,clk,start,judge:in std_logic; keyval:in integer range 0 to 15; playnum:in std_logic_vector(3 downto 0);player1fen,player2fen:buffer integer range 0 to 99 );end jifen;architecture one of jifen issignal adden:std_logic:=0;beginprocess(clr,clk,start,judge,keyval,playnum)beginif clr=1 thenplayer1fen=0;player2fen=0;elsif rising_edge(clk) then if start=0 then if judge=0 thenif playnum=0001 and adden=1 thenplayer1fen=player1fen+keyval;adden=0; elsif playnum=0010 and adden=1thenplayer2fen=player2fen+keyval;adden=0;end if; if judge=1 thenif playnum=0001 and adden=1 thenplayer1fen=player1fen-keyval;adden=0; elsif playnum=0010 and adden=1thenplayer2fen=player2fen-keyval;adden=0;end if; end if;end if;else addenhanghanghanghang qout qout qout qout qout qout qout qout qout qout qout qout qout qout qout qout null; end case; end if; end process; end one;LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;use ieee.std_logic_unsigned.all; entity debance is Port ( clk2k : in STD_LOGIC; keyvaluein : in STD_LOGIC_VECTOR (3 downto 0); keyvalueout: out STD_LOGIC_VECTOR (3 downto 0); led:out STD_LOGIC_VECTOR (3 downto 0);end debance;architecture Behavioral of debance issignal TempNum:std_logic_vector(3 downto 0);signal Counter:std_logic_vector(3 downto 0);signal Start:std_logic:=0;beginprocess(clk2k)beginif rising_edge(clk2k) then led=keyvaluein; if Start=0 thenTempNum=1111;keyvalueout=1111;Start=1;elseif keyvaluein/=TempNum thenTempNum=Keyvaluein;Counter=0111 thenkeyvalueout=keyvaluein;Counter=0000;elseCounter=Counter+1;end if;end if;end if;end if;end process;end Behavioral;(5)译码显示模块本译码器用于将抢答鉴别模块抢答成功的组别和计时器的时间进行显示,模块如下:译码显示源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decode isport( clk1000hz: in std_logic; ag,as,bg,bs,cg,cs: in std_logic_vector(3 downto 0); atog: out std_logic_vector(6 downto 0); sel: out std_logic_vector(5 downto 0) ); end decode; architecture one of decode is signal q: std_logic_vector(3 downto 0) ; signal count : integer range 0 to 5:=0; begin process(clk1000hz) begin if rising_edge(clk1000hz) then count=count+1; end if; end process; process(count,ag,as,bg,bs,cg,cs) begin if count=0 then q=ag;sel=000001; elsif count=1 then q=as;sel=000010; elsif count=2 then q=bg;sel=000100; elsif count=3 then q=bs;sel=001000; elsif count=4 then q=cg;sel=010000; elsif count=5 then q=cs;sel atog atog atog atog atog atog atog atog atog atog atog=1110001; -0 end case; end process;end one;四 抢答器的顶层原理图设计:五 EDA课程设计总结:通过对Quartus软件仿真,证明了本产品在实际运用中的正确性,完全可以实现预期任务的要求,在有一组信号抢答成功后数码管显示相应的组别,在两组或两组以上信号同时抢答时视抢答无效。且计分器在实现计分功能时能够准确记录每组的成绩并将分数通过对应的数码管呈一位数显示,计时器在按下计时开始按钮后可以通过译码器实时显示计时结果。但是该设计仍有需要改进的地方:1.在抢答鉴别模块中,只有当主持人按下抢答信号时,各小组才能开始抢答,并显示组号及对应的小灯。而当主持人没有按下抢答信号时,各组抢答无效,因此需要完善。2在计分模块中,抢答错误时,没有警示,这是我们在这次设计中很大的不足,因此需要改进。六 课程设计心得与体会:经过一周的EDA课程设计,我们通过不懈努力,成功地设计出了二路电子抢答器。回首这周的课程设计,我们经历了酸甜苦辣,因为对EDA技术及Quar

温馨提示

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

评论

0/150

提交评论