FPGA培训资料矩阵键盘驱动数码管
《FPGA培训资料矩阵键盘驱动数码管》由会员分享,可在线阅读,更多相关《FPGA培训资料矩阵键盘驱动数码管(8页珍藏版)》请在装配图网上搜索。
1、矩阵键盘驱动数码管1. 矩阵键盘的结构和驱动原理2. 扫描法获得矩阵键盘扫描码的原理和方法3. 扫描码驱动数码管矩阵键盘的结构和驱动原理Row0Row1Row2Row3Col3Col2Col1Col0扫描法获得矩阵键盘扫描码的原理和方法无按键按下时,col0col3输出分别为“1111”当输入扫描时,扫描第一行,即IN1=0,当按下Button 1,那么输出col输出信号将发生变化,Out1变为0,则col0col3输出分别为“1110”,取反,则为“0001”,代表BT1被按下。因此,可通过行扫描码和列输出码来获得分时扫描的键盘按压信号。只要扫描时间适当,就可得到按键的按压情况。因有四行,因
2、此,扫描后存储的扫描码为16位,扫描行列输出也分4位4位地存放。library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-实体entity key_seg_test is Port ( clk : in std_logic; -系统时钟,40MHz - key_row : out std_logic_vector(3 downto 0); -FPGA输出到键盘的行扫描信号 key_col : in std_logic_vector(3 downto
3、 0); -键盘输入到FPGA的列响应信号 - seg_d : out std_logic_vector(7 downto 0); -7段数码管数据线 seg_sel : out std_logic_vector(3 downto 0) -7段数码管位数选择,1表示对应位数的数码管有效 );end key_seg_test;-构造体architecture topdesign_arch of key_seg_test issignal key_row_reg : std_logic_vector(3 downto 0);signal key_code : std_logic_vector(15
4、 downto 0);signal count_clk : std_logic_vector(22 downto 0);-主程序begin-process(clk) -时钟计数分频begin if(clkevent and clk=1)then count_clk key_row_reg key_code(3 downto 0) key_row_reg key_code(7 downto 4) key_row_reg key_code(11 downto 8) key_row_reg key_code(15 downto 12) end case; end if;end process;-key_rowseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_dseg_d seg_d=00000000;end case;end process;-seg_sel=1111; -4位数码管全部输出有效,共阳123456789*0#-end topdesign_arch;思考题1. 通过4X4键盘驱动原理,改变程序定义,实现计算器键盘输入8 / 8文档可自由编辑打印
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。