VHDL四人抢答器.doc_第1页
VHDL四人抢答器.doc_第2页
VHDL四人抢答器.doc_第3页
VHDL四人抢答器.doc_第4页
VHDL四人抢答器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

四人抢答器设计 一、设计任务及要求:(1)设计用于竞赛抢答的四人抢答器;有多路抢答,抢答台数为8;具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;能显示超前抢答台号并显示犯规警报;(2) 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声想起,直至该路按键松开,显示牌显示该路抢答台号;(3) 用VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路; (4) 完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。二、设计思路设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4,低电平表示抢答有效;设置主持人控制键K,用于控制整个系统清0 和抢答有效控制,按下复位键时, K=0,系统清零;抬起复位键时,K=1,抢答开始;系统具有第一抢答信号鉴别和锁存功能。在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮,对应的输入引脚接低电位0,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:其一是通过译码程序显示其组别号;其二是在第一抢答者产生时,蜂鸣器警示;设置违规电路单元,当抢答者在主持人按下复位清零按钮之前就已经按下抢答按钮时,则给出违规信号为高电平。对应组别的红色信号灯亮;当20秒倒计时后无人抢答显示超时,并报警。系统设计框图如图1所示。 图1 整体设计框图三、VHDL程序实现1、正常抢答程序及仿真此模块包括正常抢答第一信号鉴别和显示抢答台号,并发生声音提示。其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;K为主持人按钮,按下复位键K时, K=0,系统清零;抬起复位键时,K=1,抢答开始;G为报警信号。其VHDL源程序如下: library ieee;use ieee.std_logic_1164.all;use ieee. std_logic_arith.all;use ieee. std_logic_unsigned.all;-entity qiangda is port( S1,S2,S3,S4 : in std_logic; -输入:表示4个人,为0表示有抢答 K : in std_logic; -主持人抢答开始键 G : out std_logic; -报警信号 ledag : out std_logic_vector (6 downto 0); Dout : out std_logic_vector(3 downto 0) ); -抢答结果显示 end qiangda;-architecture behave of qiangda is signal Enable_Flag : std_logic;-允许抢答控制变量,为1表示允许抢答 signal S : std_logic_vector(3 downto 0); signal D : std_logic_vector(3 downto 0); begin process(S1,S2,S3,S4,K) -允许抢答控制 begin S=S1&S2&S3&S4; If (K=1) then Enable_Flag=1; elsif(S/=1111) then Enable_Flag=0; end if; end process; process(S1,S2,S3,S4,K) -抢答结果显示 begin if(K=0) then D=0000; Elsif (Enable_Flag=1) then if(S1=0) then D(0)=1; G=0; elsif(S2=0) then D(1)=1; G=0; elsif(S3=0) then D(2)=1; G=0; elsif(S4=0) then D(3)=1; G=0; end if; doutledagledagledagledagledagledag=0000000; end case; end process; end behave;以上VHDL程序的系统框图如图2所示。图2 抢答部分框图通过MAX+PLUS软件仿真结果如图3所示。从图中可看出S1和S2选手抢答情况,在K为高电平时,S1选手为低电平,抢答成功,报警信号G为低电平,给出报警信号,同时七段数码管译码为06H,显示1。 图3 抢答部分仿真图2、抢答倒计时程序此模块为抢答20s倒计时程序,在主持人按下按钮K后此模块即开始工作,在20s倒计时完后会有声音提示,G为声音报警信号。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT ISPORT (CLK, Enable_Flag: IN STD_LOGIC; H,L: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); G:OUT STD_LOGIC); -声音报警END COUNT;ARCHITECTURE COUNT_ARC OF COUNT ISBEGINPROCESS (CLK, Enable_Flag)VARIABLE HH, LL: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1THENIF Enable_Flag=1THENIF LL=0 AND HH=0 THEN G=1;ELSIF LL=0 THEN LL: =1001; HH: =HH-1; ELSE LL: =LL-1;END IF;ELSE G=0; HH: =1001; LL: =1001;END IF;END IF;H=HH;L=LL;END PROCESS;END COUNT_ARC;其模块结构图如图4所示: 图4 倒计时结构图3、超前犯规抢答程序及仿真此模块为违规电路。当抢答者在主持人复位系统之前就已按下抢答按钮,即当RESET=0时,有抢答信号出现,则Y=11表示某组违规,当RESET = 1时,显示违规组别。其中K为主持人按钮,S1,S2,S3,S4为抢答按钮,R1,R2,R3,R4为对应组别犯规红色显示灯。其VHDL源程序如下: LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY wg ISPORT(K: IN std_logic;S1, S2, S3, S4: IN std_logic;R1, R2, R3, R4: OUT std_logic; -红色灯指示超前抢答台号y: OUT std_logic_VECTOR (1 DOWNTO 0) );END wg;ARCHITECTURE a OF wg ISSIGNAL TEMP1: STD_LOGIC;SIGNAL TEMP2: STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINTEMP1=S1 OR S2 OR S3 OR S4 ;TEMP2YYYY=00; end case;if(K=0) thenif(S1=0) then R1=0; elsif(S2=0) then R2=0; elsif(S3=0) then R3=0; elsif(S4=0) then R4=0; end if; end if; end process; END a;通过VHDL程序可生成其对应的框图如图5所示:图5犯规部分框图同样在MAX+PLUS环境下可得到其对应的仿真分析图如图6所示。从仿真分析可看出在为高电平前,S1按钮有超前抢答低电平出现,故Y=11表示有超前抢答产生,同时R1为低电平,对应S1选手的红灯亮,指示其违规抢答。 图6 犯规模块仿真图四、总结由以上描述及仿真结果可知,本次抢答器的设计在理论上基本上满足了设计任务的要求。通过这次课程设计的实践,弥补了平时仅

温馨提示

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

评论

0/150

提交评论