|
|||||||||||
| 技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
键盘去抖的问题 |
| 作者:whoselight 栏目:EDA技术 |
entity keyb is PORT ( LINE : in std_logic_vector(15 downto 0); LINEout : out std_logic_vector(15 downto 0); res : in std_logic; clk0: in std_logic; clk2:in std_logic ); end keyb; architecture Behavioral of keyb is signal bcdmin,bcdmo:std_logic_vector(15 downto 0); begin p1:PROCESS(clk0,res) begin if (res='1')then bcdmin<=(others=>'0'); bcdmo<=(others=>'0'); elsif (clk0'event and clk0 ='1') then bcdmin<=LINE; end if; end PROCESS p1; p2:PROCESS(clk2) begin if (clk2'event and clk2='1' ) then if(LINE(0)or LINE(1)or LINE(2)or LINE(3)or LINE(4)or LINE(5) or LINE(6)or LINE(7)or LINE(8)or LINE(9)or LINE(10)or LINE(11)or LINE(12)or LINE(13)or LINE(14)or LINE(15))='1' then bcdmo<=bcdmin; else bcdmo<=bcdmo; end if; end if; end PROCESS p2; p3: PROCESS(bcdmo) begin LINEout<=bcdmo; end PROCESS p3 ; end Behavioral; 这是带去抖功能的程序 键盘是1*16的 可是仿真时LINEOUT上怎么读不出数据啊 |
| 2楼: | >>参与讨论 |
| 作者: whoselight 于 2005/5/11 11:49:00 发布:
自己作好了 entity keyb is PORT ( LINE : in std_logic_vector(15 downto 0); LINEout : out std_logic_vector(15 downto 0); res : in std_logic; clk0: in std_logic; clk2:in std_logic ); end keyb; architecture Behavioral of keyb is signal bcdmin:std_logic_vector(15 downto 0); begin p1:PROCESS(clk0,res) begin if (res='1')then bcdmin<=(others=>'0'); elsif (clk0'event and clk0 ='1') then bcdmin<=LINE; end if; end PROCESS p1; p2:PROCESS(clk2) begin if (clk2'event and clk2='1' ) then if(LINE(0)or LINE(1)or LINE(2)or LINE(3)or LINE(4)or LINE(5) or LINE(6)or LINE(7)or LINE(8)or LINE(9)or LINE(10)or LINE(11)or LINE(12)or LINE(13)or LINE(14)or LINE(15))='1' then LINEout<=bcdmin; end if; end if; end PROCESS p2; 自己作好了已经下板检测 希望大家提提建议:) 多交流 |
|
|
|
Copyright © 1998-2006 www.j71x6.cn 浙ICP证030469号 |