集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 951|回复: 0

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

[复制链接]
ytphrx 发表于 2013-11-6 10:59:05 | 显示全部楼层 |阅读模式
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 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-8 04:42 , Processed in 0.103508 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表