欢迎来到天天文库
浏览记录
ID:31735945
大小:347.87 KB
页数:22页
时间:2019-01-17
《fpga智能抢答器实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、现代电子技术综合实验实验报告2011059010015王健摘要智力抢答器是各种竞赛中很常用的一种抢答工具。木项目主要研究6人智力抢答器的设计。关键词:VHDL.FPGA、抢答器。第1章引言1.1项目研究现状智力抢答器由于其应用极广,所以各种技术已经趋于成熟。已有的设计包括四人到16人乃至更多人数同时带有计分功能的抢答器等。木项目设计智力抢答器为六人智力抢答器,主要是为了深入了解VHDL语言和FPGA器件的应用。1.2本文研究的主要内容及关键技术木项目设计的抢答器为六人智力抢答器。编号为1-6的选手在规定的时间(10s)内按键抢答,抢中时锁定选手编号并显示,其他无效,当选手抢中时,开始30s
2、答题倒计时。主持人控制开始和清零。当抢答开始、有人抢答、抢答或答题时间到时有报警功能,报警延时500ms后停止。第2章实验项目方案设计2.1项目系统设计原理主持人按下开始键后系统开始工作。当有抢答信号输入系统后,系统对最先抢到的选手号码进行编码锁存,并将这个号码显示输出,所以需耍编码器锁存器和译码显示电路。选手的抢答有效时间为10s,答题时间为30s,所以需耍定时器,当系统在主持人按键开始、有人抢中、定时时间到三种情况下要发岀报警信号,于是需要一个报警模块。我们用的实验板上LED数码管的段信号是连到一起的,所以要显示两位或多位数则需要扫描电路,在lkhz左右的频率下扫描位电极,在不同周期分
3、时显示十位和个位,从而实现两位或多位显示。主持人按键有清零和开始功能,当第一次按下时为开始。系统报警提示并进入10s倒计时阶段。选手开始按键抢答。如果没有选手抢答,则系统倒计时到0时报警。如果有选手抢答,则系统报警,并且显示选手编号,时间变为30s倒计时。答题时间到时系统报警。支持人按键清零准备下一轮抢答。2.2项目系统设计方案及模块组成系统的总输入有选手按键和主持人按键以及时钟信号。输出显示到LED七段数码管上,所以输入需要进行消抖后进行编码锁存,倒计时需要一个定时器来实现,报警器需要一个单独的模块,因为本项目采用的硬件比较特殊,需耍一个扫面电路才能实现多位显示,所以需要一个扫描电路。最
4、后的LED段电极需耍一个译码电路才能正常显示。所以总的模块主要有:按键消抖模块、编码锁存模块、定时模块、扫描电路模块、报警电路模块、译码器模块。第3章实验项目单元模块电路设计3.1按键消抖模块设计3.1.1模块描述消抖模块主要对按键进行消抖功能,防止误按。主要原理是当外部输入信号来时,内部计数器开始计时,如果在规定的时间内按键一育保持按下状态,则判断为按下状态,否则为误按。模块输入为主持人按键信号(star_t),吋钟信号(elk),输出信号为处理后的主持人按键信号(start)o模块符号为“xd”,模块程序如下:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL
5、;useIEEE.STD_LOGIC_arith.ALL;useIEEE.STD_LOGIC_unsigned.ALL;entityxdisport(elk,star_t:inSTD_L0GIC;start:outSTD_LOGIC);endxd;architectureBehavioralofxdissignalent:integer:=0;signalq:integer;beginxd:process(clk,star_t)beginq<=24000;ifckeventandclk=tllthen讦star_t='l'thenifcnt=qthencnt<=cnt;elsecnt<=c
6、nt+1;endif;讦ent=q-10thenstart<='1';elsestart<=*0';endif;elseent<=0;endif;endif;endprocess;endBehavioral;3.1.2模块仿真仿真程序:LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYtest_xdISENDtest_xd;ARCHITECTUREbehaviorOFtest_xdISCOMPONENTxdPORT(elk:INstdjogic;star_t:INstdjogic;start:OUTstd」ogic);ENDCOMPONENT;-In
7、putssignalelk:std_logic:='O1;signalstar_t:stdjogic:=O;-Outputssignalstart:stdjogic;一Clockperioddefinitionsconstantclk_period:time:=10ns;BEGIN-InstantiatetheUnitUnderTest(UUT)uut:xdPORTMAP(elk=>elk,start=>start,st
此文档下载收益归作者所有