ytphrx 发表于 2013-11-6 10:59:05

大神帮忙看看这个ps2键盘码获得程序为什么不成功?

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY driver_ps2_keyboard IS
PORT(ps2clk:IN STD_LOGIC;
   ps2data:IN STD_LOGIC;
   reset:IN STD_LOGIC;
   key_code:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END ENTITY;
ARCHITECTURE behavioral OF driver_ps2_keyboard IS
SIGNAL temp:STD_LOGIC_VECTOR(10 DOWNTO 0);
SIGNAL counter:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
   PROCESS(reset,ps2clk,ps2data)
   BEGIN
         IF(reset='0') THEN
            counter<=(others=>'0');
            temp<=(others=>'0');
            key_code<=(others=>'0');
         ELSIF(FALLING_EDGE(ps2clk)) THEN
            temp<=ps2data&temp(10 DOWNTO 1);
            counter<=counter+1;
            IF(counter="1011") THEN
            key_code<=temp(8 DOWNTO 1);
            counter<=(OTHERS=>'0');
            temp<=(others=>'0');
            END IF;
         END IF;
   END PROCESS;
END ARCHITECTURE behavioral;
测试方法是使用八个指示灯代替输出数据键盘二进制8位码,但是连续按个键人时候出现8次一个轮回,而且每次数据都不一样。高手指教,谢谢。
页: [1]
查看完整版本: 大神帮忙看看这个ps2键盘码获得程序为什么不成功?