欢迎来到天天文库
浏览记录
ID:43058535
大小:229.51 KB
页数:9页
时间:2019-09-25
《8路抢答器的VHDL语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、八路抢答器由抢答启动电路、抢答定时器及定时译码显示电路、抢中报警电路、选手编号译码显示电路、答题时间限制电路,答题时间剩余显示电路和答题结束报警电路组成。优先编码电路、锁存器、译码电路将抢中选手的编号译码显示输出;主持人开关启动和选手抢中报警电路;答题限时时间显示电路,答题时间结束和答题完成报警电路。基于FPGA,经过程序设计、调试、仿真、下载和软硬件联合调试等工作,实现了抢答功能(另设计提供限时答题功能)。1.设计一个八路智力抢答器,同时供8个选手参赛,编号分别为1到8。每位选手用一个答题按钮。2.给主持人一个控制开关,实现系统的清零和抢答的开始。3.具有数据锁存和显示功能。抢答
2、开始后,如果有选手按下了抢答按钮,其编号立即锁存并显示在LED数码管上,同是扬声器报警。此外,禁止其他选手再次抢答。选手的编号一直保存直到主持人清除。扩展功能:1.具有定时抢答功能,可由主持人设定抢答时间。当抢答开始后。定时其开始倒计时,并显示在LED上,同时扬声器发声提醒、2.选手在规定时间内抢答有效,停止倒计时,并讲倒计时时间显示在LED上,同时报警3.在规定时间内,无人抢答时,电路报警提醒主持人,此后的抢答按键无效。4.选手抢中后,开始答题。规定答题时间为:10s,在规定的时间内,选手答完题,手动报警。若在规定时间内,未完成答题,报警提示。答题时,显示答题剩余时间。5.报警时
3、间定为:100ms1.2.系统顶层文件顶层文件原理图:VHDL程序:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;--Uncommentthefollowinglinestousethedeclarationsthatare--providedforinstantiatingXilinxprimitivecomponents.--libraryUNISIM;--useUNISIM.VComponents.all;entitymypro
4、jectisport(clk:instd_logic;--时钟信号clear:instd_logic;--清零信号player:instd_logic_vector(7downto0);--八个抢答选手输入settime1:instd_logic_vector(3downto0);--答题时间设置led_10s:outstd_logic_vector(6downto0);--10s抢答计时已进行的时间显示selector:outstd_logic_vector(6downto0);--抢中选手编码输出audio:outstd_logic;--喇叭响,低有效.endanswer:in
5、std_logic;--答题完成led_left1:outstd_logic_vector(6downto0));endmyproject;architectureBehavioralofmyprojectiscomponentqiangdaport(set_start:instd_logic;a:instd_logic_vector(7downto0);clk:instd_logic;led:outstd_logic_vector(6downto0);selector:outstd_logic_vector(6downto0);selected:outstd_logic;alar
6、m:outstd_logic);endcomponent;componentdingshiqiport(selected:instd_logic;clk:instd_logic;settime1:instd_logic_vector(3downto0);endanswer:instd_logic;alarm:outstd_logic;led:outstd_logic_vector(6downto0));endcomponent;componentbaojingport(clk:instd_logic;alarm1:instd_logic;alarm2:instd_logic;ala
7、rm3:instd_logic;audioer:outstd_logic);endcomponent;signalselected1:std_logic;signalstart:std_logic:='0';signalalarm1:std_logic:='0';signalalarm2:std_logic;beginstartall:process(clear)beginifclear'eventandclear='1'thenstart<=notstart;end
此文档下载收益归作者所有