fpga智能抢答器实验报告.docVIP

  • 86
  • 0
  • 约2.41万字
  • 约 24页
  • 2017-06-27 发布于浙江
  • 举报
fpga智能抢答器实验报告

现代电子技术综合实验实验报告 2011059010015 王健 摘要 智力抢答器是各种竞赛中很常用的一种抢答工具。本项目主要研究6人智力抢答器的设计。 关键词:VHDL、FPGA、抢答器。 第1章 引言 1.1 项目研究现状 智力抢答器由于其应用极广,所以各种技术已经趋于成熟。已有的设计包括四人到16人乃至更多人数同时带有计分功能的抢答器等。本项目设计智力抢答器为六人智力抢答器,主要是为了深入了解VHDL语言和FPGA器件的应用。 1.2 本文研究的主要内容及关键技术 本项目设计的抢答器为六人智力抢答器。编号为1-6的选手在规定的时间(10s)内按键抢答,抢中时锁定选手编号并显示,其他无效,当选手抢中时,开始30s答题倒计时。主持人控制开始和清零。当抢答开始、有人抢答、抢答或答题时间到时有报警功能,报警延时500ms后停止。 第2章 实验项目方案设计 2.1 项目系统设计原理 主持人按下开始键后系统开始工作。当有抢答信号输入系统后,系统对最先抢到的选手号码进行编码锁存,并将这个号码显示输出,所以需要编码器锁存器和译码显示电路。选手的抢答有效时间为10s,答题时间为30s,所以需要定时器,当系统在主持人按键开始、有人抢中、定时时间到三种情况下要发出报警信号,于是需要一个报警模块。我们用的实验板上LED数码管的段信号是连到一起的,所以要显示两位或多位数则需要扫描电路,在1khz左右的频率下扫描位电极,在不同周期分时显示十位和个位,从而实现两位或多位显示。 主持人按键有清零和开始功能,当第一次按下时为开始。系统报警提示并进入10s倒计时阶段。选手开始按键抢答。如果没有选手抢答,则系统倒计时到0时报警。如果有选手抢答,则系统报警,并且显示选手编号,时间变为30s倒计时。答题时间到时系统报警。支持人按键清零准备下一轮抢答。 2.2 项目系统设计方案及模块组成 系统的总输入有选手按键和主持人按键以及时钟信号。输出显示到LED七段数码管上,所以输入需要进行消抖后进行编码锁存,倒计时需要一个定时器来实现,报警器需要一个单独的模块,因为本项目采用的硬件比较特殊,需要一个扫面电路才能实现多位显示,所以需要一个扫描电路。最后的LED段电极需要一个译码电路才能正常显示。所以总的模块主要有:按键消抖模块、编码锁存模块、定时模块、扫描电路模块、报警电路模块、译码器模块。 第3章 实验项目单元模块电路设计 3.1 按键消抖模块设计 3.1.1 模块描述 消抖模块主要对按键进行消抖功能,防止误按。主要原理是当外部输入信号来时,内部计数器开始计时,如果在规定的时间内按键一直保持按下状态,则判断为按下状态,否则为误按。模块输入为主持人按键信号(star_t),时钟信号(clk),输出信号为处理后的主持人按键信号(start)。 模块符号为“xd”,模块程序如下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_arith.ALL; use IEEE.STD_LOGIC_unsigned.ALL; entity xd is port( clk, star_t : in STD_LOGIC; start: out STD_LOGIC); end xd; architecture Behavioral of xd is signal cnt : integer :=0; signal q : integer ; begin xd : process (clk,star_t) begin q=24000; if clkevent and clk=1 then if star_t=1 then if cnt=q then cnt=cnt; else cnt=cnt+1; end if; if cnt = q-10 then start = 1; else start = 0; end if; else cnt = 0; end if; end if; end process; end Behavioral; 3.1.2 模块仿真 仿真程序: LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY test_xd IS END test_xd; ARCHITECTURE behavior OF test_xd IS COMPONENT xd PORT( clk : IN std_logic;

文档评论(0)

1亿VIP精品文档

相关文档