VHDL四人抢答器

更新时间:2023-06-10 01:41:06 阅读: 评论:0

四人抢答器设计 
一、设计任务及要求:
1)设计用于竞赛抢答的四人抢答器;
有多路抢答,抢答台数为8
具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;
血型配对能显示超前抢答台号并显示犯规警报;
(2) 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声想起,直至该路按键松开,显示牌显示该路抢答台号;
(3) VHDL语言设计符合上述功能要求的四人抢答器,并用层次化设计方法设计该电路;
(4) 完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。
二、设计思路
设计制作一个竞赛抢答器,每组受控于一个抢答开关,分别为S1, S2, S3, S4,低电平表示抢答有效;设置主持人控制键K,用于控制整个系统清0 和抢答有效控制,按下复位键时, K=0,系统清零;抬起复位键时,K=1,抢答开始;系统具有第一抢答信号鉴别和锁存功能。在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮学汉语拼音,对应的输入引脚接低电位0,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:其一是通过译码程序显示其组别号;其二是在第一抢答者产生时,蜂鸣器警示;设置违规电路单元,当抢答者在主持人按下复位清零按钮之前就已经按下抢答按钮时,则给出违规信号为高电平。对应组别的红色信号灯亮;当20秒倒计时后无人抢答显示超时,并报警。系统设计框图如图1所示。
                            图1  整体设计框图
三、VHDL程序实现
1、正常抢答程序及仿真
此模块包括正常抢答第一信号鉴别和显示抢答台号,并发生声音提示。其中S1,S2,S3,S4为抢答按钮,当对应的按钮信号为0时表示有抢答信号;K叶组词有哪些为主持人按钮,按下复位键K, K=0,系统清零;抬起复位键时,K=1,抢答开始;G为报警信号。其VHDL源程序如下:
library ieee;
u ieee.std_logic_1164.all;
u ieee. std_logic_arith.all;
u ieee. std_logic_unsigned.all;
--------------------------------------------------------------------
entity qiangda is
    port( S1,S2,S3,S4 :  in  std_logic;  --输入:表示4个人,为0表示有抢答
米酒鸡蛋的做法        K :  in  std_logic;  --主持人抢答开始键
        G :  out  std_logic;              --报警信号
        ledag :  out  std_logic_vector (6 downto 0);   
        Dout :  out  std_logic_vector(3 downto 0)  );  --抢答结果显示
    end qiangda;
--------------------------------------------------------------------
architecture behave of qiangda is
  signal Enable_Flag : std_logic;--允许抢答控制变量,为1表示允许抢答
    signal S : std_logic_vector(3 downto 0);
纪律教育学习月
    signal D : std_logic_vector(3 downto 0);
    begin
   
process(S1,S2,S3,S4,K)      --允许抢答控制
      begin
        S<=S1&S2&S3&S4;
        If (K='1') then
          Enable_Flag<='1';
一个美丽的故事        elsif(S/="1111") then
          Enable_Flag<='0';
        end if;
    end process;
轻轻的一个吻
   
process(S1,S2,S3,S4,K)      --抢答结果显示
      begin
        if(K='0') then
            D<="0000";
          Elsif (Enable_Flag='1') then
          if(S1='0') then
            D(0)<='1';
            G<='0';
          elsif(S2='0') then
            D(1)<='1';
            G<='0';
          elsif(S3='0') then
中班健康领域目标
            D(2)<='1';
            G<='0';
          elsif(S4='0') then
            D(3)<='1';
            G<='0';
          end if;
          dout<=d;
        end if;
    end process;
   
process(d)  --显示抢答成功者号码
      begin
        ca d  is
        when "0000"=>ledag<="0111111";
        when "0001"=>ledag<="0000110";
        when "0010"=>ledag<="1011011";
        when "0100"=>ledag<="1001111";

本文发布于:2023-06-10 01:41:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/915743.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:抢答   设计   显示   系统   信号   电路
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图