微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于矩阵式键盘 行列扫描

关于矩阵式键盘 行列扫描

时间:10-02 整理:3721RD 点击:



  1. library ieee;
  2. use ieee.std_logic_1164.all;

  3. entity key is
  4. port(
  5.                 led_com :out std_logic;---数码管电源
  6.                 led_sig: out std_logic_vector(2 downto 0);
  7.                 led_out : out std_logic_vector(7 downto 0);----数码管显示
  8.                 key_in:in std_logic_vector(7 downto 0);----按键输入
  9. );
  10. end key;

  11. architecture a of key is
  12. signal key_ck : std_logic_vector(2 downto 0);
  13. begin
  14. ----检测按下哪一个按键
  15. process(key_in)
  16. begin
  17. case key_in is
  18. when "01110111"=>
  19. key_ck<="001";
  20. when "01111011"=>
  21. key_ck<="010";
  22. when "01111101"=>
  23. key_ck<="011";
  24. when "01111110"=>
  25. key_ck<="100";
  26. when others=>
  27.   key_ck<="000";
  28. end case;
  29. end process;
  30. --数码管数字选择
  31. with key_ck select
  32.         led_out<="11111100" when "000",
  33.                                 "01100000" when "001",
  34.                                 "11011010" when "010",
  35.                                 "11110010" when "011",
  36.                                 "01100110" when "100",
  37.                                 "00000000" when others;
  38. led_sig<="111";
  39. led_com<='1';

复制代码



请问各位我的电路这样接当我按下左上第一个按键,数码管应该是输出1第二个是输出2.... 但是为什么按了都没有反应呢?谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top