⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard_scan.vhd

📁 VHDL基础的编程源代码
💻 VHD
字号:
--/*****************************************************************************
-- * 源文件:	keyboard_scan.vhd
-- * 模块:   	键盘扫描信号发生器
-- * 版权:
-- *         	Copyright(C) 北京联华众科科技有限公司
-- *						www.lianhua-zhongke.com.cn
-- * 版本:  	Version 1.0
-- * 
-- * 功能说明:
-- *		   	与输入时钟 clock 同频率产生键盘扫描信号,键盘扫描信号为低电平有效
-- *			
-- * 参数说明:
-- *	       	输出
-- *			row_select - 键盘行扫描信号,只有一位为低其余位为高电平,属于低
-- *						电平有效
-- *
-- *			输入
-- *			clock - 键盘扫描驱动时钟
-- *			reset - 复位信号,低电平有效
-- *
-- *			参数
-- *			keyboard_size - 键盘扫描数据位数
-- *
-- * 变更记录: 
-- *         2006.01.28, 新建
-- *
-- *****************************************************************************/
LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY keyboard_scan IS	GENERIC	(		keyboard_size : INTEGER RANGE 0 TO 15:= 4	);		PORT	(		row_select : OUT STD_LOGIC_VECTOR(keyboard_size-1 downto 0);		clock	: IN STD_LOGIC;		reset 	: IN STD_LOGIC	);	END keyboard_scan;ARCHITECTURE keyboard_scan_architecture OF keyboard_scan IS	BEGIN		PROCESS(clock, reset)		VARIABLE row_counter : INTEGER RANGE 0 TO keyboard_size-1;	BEGIN				IF (reset = '0') THEN			row_select <= NOT CONV_STD_LOGIC_VECTOR(0, keyboard_size);			row_counter := 0;		ELSIF(clock = '1' AND clock'EVENT) THEN			row_select <= NOT CONV_STD_LOGIC_VECTOR(0, keyboard_size);			row_select(row_counter) <= '0';						IF (row_counter = keyboard_size-1) THEN				row_counter := 0;			ELSE				row_counter := row_counter+1;			END IF;					END IF;			END PROCESS;END keyboard_scan_architecture;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -