收藏 分销(赏)

四路抢答器课程设计 实习.doc

上传人:s4****5z 文档编号:8800191 上传时间:2025-03-02 格式:DOC 页数:17 大小:556.29KB
下载 相关 举报
四路抢答器课程设计 实习.doc_第1页
第1页 / 共17页
四路抢答器课程设计 实习.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述
淮阴师范学院物理与电子电气工程学院 EDA课程设计报告 学生姓名 学 号 班 级 专 业 电气工程及其自动化 题 目 四路抢答器 指导教师 2011 年 12 月 目 录 一 设计指标 ………………………………………………………………… 1 二 总体设计方案……………………………………………………………… 1 2.1.设计思路 2.2设计流程图,设计方框图 三 设计原理分析……………………………………………………………… 4 3.1. 各功能模块电路的设计 3.2 整体电路设计 3.3电路安装与调试过程 3.4电路测试与使用说明 四 总结…………………………………………………………………………… 15 一、 设计指标 抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者可以分为若干组,抢答时各组对主持人提出的问题要在最短的时间内做出判断,并按下抢答按键回答问题。当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。若抢答时间内无人抢答,警报器发出警报。回答完问题后,由主持人将所有按键恢复,重新开始下一轮抢答。 要完成抢答器的逻辑功能,该电路至少应包括抢答鉴别模块、分频器、计时模块 选择控制和报警器组成。 1.抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~ S3表示。 2.设置一个系统清除和抢答控制开关S,该开关由主持人控制。 3.抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。 4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。 5. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 二、 总体设计方案 2.1 设计思路 设计的此四人抢答器,它主要由抢答鉴别模块、分频器、计时模块、选择控制和报警器组成。在整个抢答器中最关键的是如何实现抢答封锁,在控制键按下的同时计数器倒计时显示有效剩余时间。除此之外,整个抢答器还需有一个使能信号和一个归零信号,以便抢答器能实现公平抢答和停止。抢答器共有3个输出显示,选手代号、计数器的个位和十位,他们输出全都为BCD码输出,这样便于和显示译码器连接。抢答器具有四路抢答输入,主持人按下复位键后,系统复位进入抢答状态,计时显示初始值;当某组首先按下抢答键时,该路抢答信号,抢答器能够设别最先抢答的信号,锁定该信号,同时扬声器响起,参赛小组的序号在数码管上显示;主持人对抢答结果进行确认,给出倒计时计数允许信号,开始回答问题,计时显示器从初始值30开始以秒为单位倒计时,计数至0时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;当主持人给出倒计时计数禁止信号时,扬声器停止鸣叫;参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号,以免扬声器鸣叫,按下复位键,又可开始新一轮的抢答。 1、 抢答器鉴别模块: 在这个模块中主要实现抢答过程中的抢答功能,并能对超前抢答进行警告,还能记录无论是正常抢答还是朝前抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。 2、 抢答器计时模块: 在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30秒的倒计时,并且在30秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2;系统复位信号rst;抢答使能信号s;抢答状态显示信号states;无人抢答警报信号warn;计时中止信号stop;计时十位和个位信号tb,ta。 3、 数据选择模块: 在这个模块中主要实现抢答过程中的数据输入功能,输入信号a[3..0]、b[3..0]、c[3..0];计数输出信号s;数据输出信号y;计数脉冲clk2,实现a、b、c按脉冲轮流选通,在数码管上显示。 4、 报警模块: 在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有限时间内一人抢答或是计数到时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。 5、 译码模块: 在这个模块中主要实现抢答过程中将BCD码转换成7段的功能。 6、 顶层文件: 在这个模块中是对前五个模块的综合编写的顶层文件。 2.2.1 设计流程图 层次化设计 图形输入 文本输入 建立项目文件 设计器件 增益 逻辑正确 仿真分析 引脚分配 重新调整 设计正确 生成下载文件 下载并验证 NO NO YES YES 设计输入 设计生成 设计实现 硬件下载 设计方框图 数码管片选信号 锁存器模块LOCKB 同步信号 D1 二进制转换 倒计时模块 倒计时模块 七段数码管译码电路 蜂鸣器 七段数码管 D1 D1 D1 按 键2 按 键1 显示模块 三、设计原理分析 3.1各功能模块电路的设计 3.1.1 抢答鉴别模块 1.VHDL源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qdjb is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0); tmp:out std_logic); end qdjb; architecture one of qdjb is signal st:std_logic_vector(3 downto 0); begin p1:process(s0,rst,s1,s2,s3,clk2) begin if rst='0' then tmp<='0';st<="0000"; elsif clk2'event and clk2='1' then if (s0='1' or st(0)='1')and not( st(1)='1' or st(2)='1' or st(3)='1' ) then st(0)<='1'; end if ; if (s1='1' or st(1)='1')and not( st(0)='1' or st(2)='1' or st(3)='1' ) then st(1)<='1'; end if ; if (s2='1' or st(2)='1')and not( st(0)='1' or st(1)='1' or st(3)='1' ) then st(2)<='1'; end if ; if (s3='1' or st(3)='1')and not( st(0)='1' or st(1)='1' or st(2)='1' ) then st(3)<='1'; end if ; tmp<=s0 or s1 or s2 or s3; end if ;end process p1; p2:process(states(0),states(1),states(2),states(3)) begin if (st="0000") then states<="0000"; elsif (st<="0001") then states<="0001"; elsif (st<="0010") then states<="0010"; elsif (st<="0100") then states<="0011"; elsif (st<="1000") then states<="0100"; end if; end process p2; end one; 2.设计的元器件图 3.仿真图 3.1.2计时模块 1、VHDL源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity js is port(clk,rst,s,stop:in std_logic; warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0)); end js; architecture one of js is signal co:std_logic; begin p1:process(clk,rst,s,stop,ta) begin if rst='0' or stop='1' then ta<="0000"; elsif clk'event and clk='1' then co<='0'; if s='1' then if ta="0000" then ta<="1001";co<='1'; else ta<=ta-1; end if; end if; end if; end process p1; p2:process(co,rst,s,stop,tb) begin if rst='0' or stop='1' then tb<="0010"; elsif co'event and co='1' then if s='1' then if tb="0000" then tb<="0011"; else tb<=tb-1; end if; end if; end if; end process p2; 2.设计的元器件图 3.仿真图 3.1.3数据选择模块 1、VHDL源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity sjxz is port (a,b,c: in std_logic_vector(3 downto 0); clk2,rst: in std_logic; s: out std_logic_vector(1 downto 0); y: out std_logic_vector(3 downto 0) ); end sjxz; architecture body_chooser of sjxz is signal count: std_logic_vector (1 downto 0); begin s<=count; process(clk2,rst) begin if(rst='0')then count<="00"; elsif(clk2'event and clk2='1')then if(count>="10")then count<="00"; else count<=count+1; end if; end if; case count is when "00"=>y<=a; when "01"=>y<=b; when "10"=>y<=c; when others=>null; end case; end PROCESS; end body_chooser; 2.设计的元器件 3、仿真图 3.1.4报警模块 1、VHDL源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALARM IS PORT(CLK,I:IN STD_LOGIC; Q:OUT STD_LOGIC); END ALARM; ARCHITECTURE BEHAVE OF ALARM IS SIGNAL WARN:STD_LOGIC; SIGNAL N:INTEGER RANGE 0 TO 20; BEGIN Q<= WARN; PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN IF I='0' THEN WARN <='0'; ELSIF(I='1'AND N<=19)THEN WARN <=NOT WARN; N<=N+1; ELSE WARN <='0'; END IF; END IF; END PROCESS; END BEHAVE; 2.设计的元器件 3、仿真图 3.1.5译码模块 1、VHDL源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END YMQ; ARCHITECTURE ART OF YMQ IS BEGIN PROCESS(AIN4) BEGIN CASE AIN4 IS WHEN "0000"=>DOUT7<="1111110"; --0 WHEN "0001"=>DOUT7<="0110000"; --1 WHEN "0010"=>DOUT7<="1101101"; --2 WHEN "0011"=>DOUT7<="1111001"; --3 WHEN "0100"=>DOUT7<="0110011"; --4 WHEN "0101"=>DOUT7<="1011011"; --5 WHEN "0110"=>DOUT7<="1011111"; --6 WHEN "0111"=>DOUT7<="1110000"; --7 WHEN "1000"=>DOUT7<="1111111"; --8 WHEN "1001"=>DOUT7<="1111011"; --9 WHEN OTHERS=>DOUT7<="0000000"; END CASE; END PROCESS; END ARCHITECTURE ART; 2.设计的元器件 3、仿真图 3.2整体电路设计 3.2.1 … 3.2.2 仿真图 3.3电路安装与调试过程 整体电路设计好,仿真无误后,将实验箱连接好,再进行引脚锁定,然后将编译好的模块程序下载到实验箱中,做硬件实验,观察调试结果。 3.4电路测试与使用说明 按下rst键清零,按下s键,观察数码管是否开始倒计时,扬声器是否发出报警声,按下s0,观察数码管是否显示1和抢答的时间,再按s1,s2.s3均不改变显示,按下rst键,观察是否清零,再按s键,不按别的,直到计时时间到,观察是否显示00,扬声器是否发出报警。 四、总结 坐而言不如立而行,通过对抢答器的设计与实践,进一步加深了对EDA的了解,让我了解了程序的设计,也让我了解了关于抢答器的基本原理与设计理念,也让我对VHDL语言有了大概的了解,懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟是自己做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 总之,这次设计的抢答器还是比较成功的,在设计中遇到了很多问题,而这些问题终于迎刃而解时,还是觉得有点小小的成就感,平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,每个人都需要不断地充实自己,不断地学习。 参考文献 [1]  杨静. 电子设计自动化[M].高等教育出版社,1994 [2]  陈赜. 电子设计自动化技术实践教程[M].科学出版社,1990 15
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服