欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

FPGA培训资料矩阵键盘驱动数码管

  • 资源ID:137512214       资源大小:115KB        全文页数:8页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

FPGA培训资料矩阵键盘驱动数码管

矩阵键盘驱动数码管1. 矩阵键盘的结构和驱动原理2. 扫描法获得矩阵键盘扫描码的原理和方法3. 扫描码驱动数码管矩阵键盘的结构和驱动原理Row0Row1Row2Row3Col3Col2Col1Col0扫描法获得矩阵键盘扫描码的原理和方法无按键按下时,col0col3输出分别为“1111”当输入扫描时,扫描第一行,即IN1<=0,当按下Button 1,那么输出col输出信号将发生变化,Out1变为0,则col0col3输出分别为“1110”,取反,则为“0001”,代表BT1被按下。因此,可通过行扫描码和列输出码来获得分时扫描的键盘按压信号。只要扫描时间适当,就可得到按键的按压情况。因有四行,因此,扫描后存储的扫描码为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 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 downto 0);signal count_clk : std_logic_vector(22 downto 0);-主程序begin-process(clk) -时钟计数分频begin if(clk'event and clk='1')then count_clk<=count_clk+1; end if;end process;-process(clk)begin if(clk'event and clk='1')then -逐行扫描 case count_clk(19 downto 16) is -数码管动态扫描,扫描频率为(40*106)/(220)=38.15Hz(扫描周期为0.026s) when "0000"=> key_row_reg<="1110" -第一行 when "0001"=> key_code(3 downto 0) <= not key_col; when "0010"=> key_row_reg<="1101" -第二行 when "0011"=> key_code(7 downto 4) <= not key_col; when "0100"=> key_row_reg<="1011" -第三行 when "0101"=> key_code(11 downto 8) <= not key_col; when "0110"=> key_row_reg<="0111" -第四行 when "0111"=> key_code(15 downto 12)<= not key_col; when others => end case; end if;end process;-key_row<=key_row_reg;-process(key_code)begincase key_code iswhen "00001"=>seg_d<="00111111" -0when "00010"=>seg_d<="00000110" -1 when "00100"=>seg_d<="01011011" -2when "01000"=>seg_d<="01001111" -3when "10000"=>seg_d<="01100110" -4when "00000"=>seg_d<="01101101" -5when "00000"=>seg_d<="01111101" -6when "00000"=>seg_d<="00000111" -7when "00000"=>seg_d<="01111111" -8when "00000"=>seg_d<="01101111" -9when "00000"=>seg_d<="01110111" -Awhen "00000"=>seg_d<="01111100" -Bwhen "00000"=>seg_d<="00111001" -Cwhen "00000"=>seg_d<="01011110" -Dwhen "00000"=>seg_d<="01111001" -Ewhen "10000"=>seg_d<="01110001" -Fwhen others => seg_d<="00000000"end case;end process;-seg_sel<="1111" -4位数码管全部输出有效,共阳123456789×*0#÷-end topdesign_arch;思考题1. 通过4X4键盘驱动原理,改变程序定义,实现计算器键盘输入8 / 8文档可自由编辑打印

注意事项

本文(FPGA培训资料矩阵键盘驱动数码管)为本站会员(无***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!