已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
八路抢答器设计指导老师:陈学英作者:略单位:EE-UESTC时间:2008-5-30摘 要 八路抢答器由抢答启动电路、抢答定时器及定时译码显示电路、抢中报警电路、选手编号译码显示电路、答题时间限制电路,答题时间剩余显示电路和答题结束报警电路组成。优先编码电路、锁存器、译码电路将抢中选手的编号译码显示输出;主持人开关启动和选手抢中报警电路;答题限时时间显示电路,答题时间结束和答题完成报警电路。基于FPGA,经过程序设计、调试、仿真、下载和软硬件联合调试等工作,实现了抢答功能(另设计提供限时答题功能)。 关键字:抢答电路,定时电路,报警电路,答题电路,译码电路- 16 - 一、实验功能指标要求: 基本功能:1. 设计一个八路智力抢答器,同时供8个选手参赛,编号分别为1到8。每位选手用一个答题按钮。2. 给主持人一个控制开关,实现系统的清零和抢答的开始。3. 具有数据锁存和显示功能。抢答开始后,如果有选手按下了抢答按钮,其编号立即锁存并显示在LED数码管上,同是扬声器报警。此外,禁止其他选手再次抢答。选手的编号一直保存直到主持人清除。 扩展功能:1. 具有定时抢答功能,可由主持人设定抢答时间。当抢答开始后。定时其开始倒计时,并显示在LED上,同时扬声器发声提醒、2. 选手在规定时间内抢答有效,停止倒计时,并讲倒计时时间显示在LED上,同时报警3. 在规定时间内,无人抢答时,电路报警提醒主持人,此后的抢答按键无效。4. 选手抢中后,开始答题。规定答题时间为:10s,在规定的时间内,选手答完题,手动报警。若在规定时间内,未完成答题,报警提示。答题时,显示答题剩余时间。5. 报警时间定为:100ms二、实验原理框图:八路智力抢答器系统的可分为三个大的功能模块,抢答电路,答题电路和报警电路。具体功能包括:抢答部分:抢答鉴别、抢答定时电路和译码显示电路。答题电路:答题定时电路、答题结束电路和译码显示电路。报警电路:报警电路。它们之间的控制关系如图1所示: 选手按键主持人按键抢答鉴别答题答题定时抢答定时报警译码显示译码显示译码显示 图1 抢答器基本原理 当主持人设置答题时间后,启动开始抢答按键时,报警电路发出警报,抢答鉴别模块进入工作状态,选手可以进行抢答,同时抢答定时器开始从10秒递减;当时间未减少到0秒时,有选手抢答,报警电路发出警报,则抢答鉴别模块锁存该选手的号码,其他选手抢答无效,同时,译码显示选手编号,定时器不再递减;当定时器时间减少到0秒时,表示抢答时间到,发出警报,选手抢答无效。抢答选手的号码和抢答时间的倒计时分别通过译码电路显示在数码管上。若有选手选中,则选中后开始答题,并由答题定时电路开始10秒倒计时,剩余答题时间译码显示,规定时间内答完题,选手按键;若规定时间内选手未答完题,答题定时结束输出报警。三、方案设计(系统的模块结构)根据八路抢答器的技术指标及其基本原理,我根据实验提供的条件,采用如下的方案:基于FPGA芯片设计的八路智力抢答器本方案主要使用VHDL语言编写程序,来实现系统的功能。利用XLINX_ISE6.2和ModelSim软件来实现程序设计和仿真,最后下载到FPGA芯片中,完成系统的功能要求。本方案具有的优点是:随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅修改方便、开发周期短、仿真方便、可靠性高,而且具有完全的知识产权。不足之处是:成本比基于基本IC器件开发的多路智力抢答器高,要有较高的软件开发平台,并要求初学者能熟练掌握开发平台的使用。四、系统实现过程此部分将要详细介绍基于FPGA开发的八路智力抢答器的基本原理,设计思路以及程序设计和仿真结果任何一个系统都是有若干个功能模块构成,在此将采用自顶而下的设计方式实现。 基本原理与框图 基本原理本系统共由抢答单元(qiangda.vhdl)、答题单元(dingshiqi.vhdl)和报警单元(baojing.vhdl)等三部分组成。首次进行时,主持人设置答题时间,再按一次清零开关,报警器发出声音提示抢答开始,同时抢答锁存模块开始工作,抢答定时器开始减计数,并将时间通过译码电路显示在数码管上。当在规定的时间内,有选手抢答时,抢答锁存模块就将该选手的号码锁存,其他的选手的抢答无效,同时报警器发出警报,定时器停止工作,抢答时间和该选手的号码分别通过数码管显示出来。当规定的时间到并且没有人抢答,定时器递减到0,并通过译码器显示出00,同时报警器报警。在选手抢题成功后,立即开始答题,同时答题定时器开始倒计时,并将剩余译码显示。在规定时间内,若选手答题完成,则选手按答题完成键,报警器报警,倒计时停止计时;若选手未答完题,倒计时结束,报警器报警。此外,主持人设置下一次答题时间,按两次清零开关,并开始下一次的抢答。1. 系统顶层文件 顶层文件原理图:VHDL程序: library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity myproject is port( clk : in std_logic; -时钟信号 clear : in std_logic; -清零信号 player : in std_logic_vector(7 downto 0);-八个抢答选手输入 settime1 : in std_logic_vector(3 downto 0);-答题时间设置 led_10s : out std_logic_vector(6 downto 0); -10s抢答计时已进行的时间显示 selector : out std_logic_vector(6 downto 0); -抢中选手编码输出 audio : out std_logic; -喇叭响,低有效. endanswer : in std_logic; -答题完成 led_left1 : out std_logic_vector(6 downto 0) ); end myproject;architecture Behavioral of myproject iscomponent qiangdaport(set_start : in std_logic;a : in std_logic_vector(7 downto 0);clk : in std_logic; led : out std_logic_vector(6 downto 0);selector : out std_logic_vector(6 downto 0);selected : out std_logic;alarm : out std_logic);end component;component dingshiqiport(selected : in std_logic;clk : in std_logic;settime1: in std_logic_vector(3 downto 0); endanswer : in std_logic; alarm : out std_logic;led : out std_logic_vector(6 downto 0);end component;component baojing port(clk : in std_logic;alarm1 : in std_logic;alarm2 : in std_logic;alarm3 : in std_logic; audioer : out std_logic);end component;signal selected1 : std_logic;signal start : std_logic:=0;signal alarm1 : std_logic:=0;signal alarm2 : std_logic;begin startall : process(clear) begin if clearevent and clear=1 then start=not start; end if;end process;u1: qiangda port map(start,player,clk,led_10s,selector,selected1,alarm1);u2: dingshiqi port map(selected1,clk,settime1,endanswer,alarm2,led_left1);u3: baojing port map(clk,start,alarm1,alarm2,audio);end Behavioral;系统仿真图:2、 抢答模块VHDL程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity qiangda isport( set_start : in std_logic; -开始抢答信号(主持人按)否则一直有效, a : in std_logic_vector(7 downto 0); -八个抢答选手输入 clk : in std_logic; led : out std_logic_vector(6 downto 0); -10s抢答计时已进行的时间显示 selector : out std_logic_vector(6 downto 0); -抢中选手编码输出 selected : out std_logic; alarm : out std_logic);end qiangda;architecture Behavioral of qiangda is signal deny1 : std_logic:=0; -作为选中后标志 signal deny2 : std_logic:=0; -作为抢答计时结束标志signal timeon : integer range 0 to 15 :=0;signal cnt1 : integer range 0 to 32000000;begin alarm=deny1 or deny2; selected=deny1; select1 : process(set_start,deny2,a) begin if set_start=0 then deny1=0; selector selector=1001111; deny1 selector=0010010; deny1 selector=0000110; deny1 selector=1001100; deny1 selector=0100100; deny1 selector=0100000; deny1 selector=0001111; deny1 selector=0000000; deny1 selector=1111111; -all unlaw states! end case; end if; end process; time10s :process(clk,deny1,set_start) begin if (clkevent and clk=1) then if set_start=0 then deny2=0; timeon=10; cnt1=0; elsif deny1=1 then timeon=timeon; elsif timeon/=0 thenif cnt1/=32 000000 then cnt1=cnt1+1;else timeon=timeon-1; cnt1=0; end if; else deny2 led led led led led led led led led led led=1111111; -未选中的状态,不显示 end case; end process;end Behavioral; 抢答电路仿真图:3. 答题模块VHDL程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity dingshiqi is-设置答题时间,并计数,显示剩余时间,并将计数剩余时间转换为LED码输出。 port ( selected : in std_logic; clk : in std_logic; settime1 : in std_logic_vector(3 downto 0); endanswer : in std_logic; alarm : out std_logic; led : out std_logic_vector(6 downto 0); end dingshiqi;architecture Behavioral of dingshiqi issignal cnt1 : integer range 0 to 32000000;signal time1 : std_logic:=0;signal alarm1 : std_logic:=0;signal alarm2 : std_logic:=0;signal num1 : integer range 0 to 15;begin time1s : process(clk,selected) - 一秒定时 begin if selected=1 then if (clkevent and clk=1) then if cnt1=32000000 then time1=not time1; cnt1=0; else cnt1=cnt1+1; end if; end if;end if; end process; settimeNs :process(time1,selected,alarm2) begin if selected=0 then alarm1=0; num1=conv_integer(settime1); else if alarm2/=1 then if (time1event and time1=1) then if num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年乡村全科执业助理医师试题与答案
- 2026年注册测绘师《测绘综合能力》专项练习及答案
- 2026年新乡职业技术学院单招职业技能测试模拟测试卷附答案
- 2026年事业单位招考财会专业知识试题及答案
- 室内体育场馆赛事暴雨积水疏散应急预案
- 2026年湖北省襄阳市部分专业技术职称水平能力测试(测绘)复习题及答案
- 2026年甘肃交安c证考试试题及答案解析
- 2026年放射医学技术考试备考冲刺模拟试卷含答案解析
- 2026年《城运中心面试题及答案》(含解析)
- 农村供水高质量发展工程规划选址论证报告
- 住院患者安全风险评估方案
- 乒乓球课程教案
- 2025年生地会考试卷及答案湘潭
- 河南省西学中考试题目及答案
- 雨课堂在线学堂《长安与中国佛教期末复习题及答案》考核测试答案
- DB3311∕T 164─2023 中华鳖三段式养殖技术规范
- 东南大学成贤学院《大学物理A》2025 - 2026学年第一学期期末试卷(A卷)
- 2024-2025学年安徽省合肥六中高一(下)期末数学试卷(含答案)
- 重庆市护理三基三严考试题库(含答案)
- 郎溪直升班招生数学试卷
- 浙江科技学院《食物营养与健康》2023-2024学年第一学期期末试卷
评论
0/150
提交评论