基于FPGA的多人表决器(VHDL)

七人表决器,外加按键,LED灯和数码管显示。
相应外设的功能:
按键:表决通过人数(注意按键一般是按下为0,设计程序是需要注意逻辑)
LED:当4人以上通过即表示通过决议,LED灯亮。
数码管:显示通过的人数


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entity biaojueqi is
  port( 
        k1,K2,K3,K4,K5,K6,K7    :  in   std_logic;   --输入:7个人
        ledag           :  out  std_logic_vector(6 downto 0);   --数码管显示
        m_Result                :  out  std_logic    --表决结果
       );      
end biaojueqi ;
--------------------------------------------------------------------
architecture behave of biaojueqi is
  signal  K_Num        : std_logic_vector(2 downto 0);
  signal  K1_Num,K2_Num: std_logic_vector(2 downto 0);
  signal  K3_Num,K4_Num: std_logic_vector(2 downto 0);
  signal  K5_Num,K6_Num: std_logic_vector(2 downto 0);
  signal  K7_Num       : std_logic_vector(2 downto 0);
  
  begin
    process(K1,K2,K3,K4,K5,K6,K7)      --计算表决同意人数
      begin
        K1_Num<='0'&'0'&K1;
        K2_Num<='0'&'0'&K2;   
        K3_Num<='0'&'0'&K3;
        K4_Num<='0'&'0'&K4;   
        K5_Num<='0'&'0'&K5;
        K6_Num<='0'&'0'&K6;   
        K7_Num<='0'&'0'&K7;
    end process;
    
    process(K1_Num,K2_Num,K3_Num,K4_Num,K5_Num,K6_Num,K7_Num)
      begin
        K_Num<=K1_Num+K2_Num+K3_Num+K4_Num+K5_Num+K6_Num+K7_Num;
    end process;
    
    process(K_Num)   --根据人数输出结果
      begin
        if(K_Num>3) then
           m_Result<='1';
        else
           m_Result<='0';
        end if;
    end process; 
  process(K_Num)   --根据人数数码管显示表决通过人数
      begin
        case  K_Num  is
         when "000"=>ledag<="0111111"; 
         when "001"=>ledag<="0000110";
         when "010"=>ledag<="1011011";
         when "011"=>ledag<="1001111";
         when "100"=>ledag<="1100110";
         when "101"=>ledag<="1101101";
         when "110"=>ledag<="1111101";
         when "111"=>ledag<="0000111";
         when others=>ledag<="0000000";
       end case;
    end process; 
end behave;


设按键同意灯亮为输入高电平(逻辑为1),否则,不按键同意 为输入低电平(逻辑为0)。输出逻辑为1表示赞成;输出逻辑为0表示表示反对。     根据题意和以上设定,列逻辑状态表如表19-1。

小结:用Quarter ii时注意板子的型号,用单个数码管时注意接相应的引脚。开发板上扩展口对应的编号,到时候定义引脚要用。注意数码管是共阴极还是共阳极,可以用万能表的蜂鸣档测试一下便知道了。

  • 13
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值