电子系统设计键盘.doc

上传人:叶*** 文档编号:35095080 上传时间:2022-08-20 格式:DOC 页数:10 大小:29KB
返回 下载 相关 举报
电子系统设计键盘.doc_第1页
第1页 / 共10页
电子系统设计键盘.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《电子系统设计键盘.doc》由会员分享,可在线阅读,更多相关《电子系统设计键盘.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 电子系统设计实验报告 姓 名 杨熙丞 指导教师 贾立新 专业班级 自动化1201 学 院 信息工程学院 设计一4*4矩阵键盘编码器,其示意图如下图。Y0到Y3为4路列扫描信号输出线,轮流将每一列置为低电平。X0到X3为4根行输入线,当没有键按下时,X0到X3被上拉电阻拉成高电平。当有键按下时,在列扫描信号的作用下,闭合键对应的行输入线变为低电平。当按键有效时,输出4位键值B3到B0,同时键值有效信号DAV产生由高到低的跳变。KEYCLK为键盘接口的时钟信号.二.设计方案 掌握利用可编程逻辑器件设计编码式键盘接口的方法。 1.键盘编码器实验电路由键盘编码器模块与显示模块组成。显示模块主要是对数

2、码管的编译。4*4矩阵键盘编码器应由键盘扫描电路,行值编码器,消抖电路几局部组成。键盘扫描电路由2位二进制计数器CNT4A与2线-4线译码器DECODER构成。行值编码器由ENCODER组成。消抖电路的按键是否稳定闭合是通过一个具有异步清零与保持功能的16进制计数器CNT16A来检测的。消抖按键的原理如图1所示。 2.实验板连接图如图2所示。KEYCLK来自LED模块的CLKIN,用短路块选择频率为2048Hz。 3.FPGA管脚锁定参考图3与4。 图1 消抖电路图2编码式键盘实验连接图 图3 FPGA I/O引脚分配图注意:其中分配使用的是键盘行输入信号以及键盘列扫描信号即X0-X3与Y0-

3、Y3 图4 LED模块管脚锁定图注意:AA0-AA6显示键值,CC0-CC6显示按键次数并检验防抖效果三原理图设计 根据设计题目给出的功能要求,4*4矩阵键盘编码器应由键盘扫描电路,行值编码器,消抖电路几局部组成,其原理框图如图5所示。 图5 4*4矩阵键盘编码器原理图 设计好4*4矩阵键盘编码器后,参加十六进制计数器CNT16,显示译码器7SLED.构成了4*4矩阵键盘编码器测试电路顶层原理图。 图6 4*4矩阵键盘编码器测试电路顶层原理图library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;enti

4、ty cnt4a is port(clk:in std_logic; en:in std_logic; q:buffer std_logic_vector(1downto 0);end cnt4a;architecture one of cnt4a is begin process(clk,en) begin if(clkevent and clk=1)then if(en=1)then q=q+1; end if; end if; end process;end;DECODER的设计library ieee;use ieee.std_logic_1164.all;use ieee.std_l

5、ogic_unsigned.all;entity DECODER isport(a:in std_logic_vector(1 downto 0);y:out std_logic_vector(3 downto 0)end DECODER;architecture one of DECODER isbeginy(0)=0when a=0 else 1;y(1)=0when a=1 else 1;y(2)=0when a=2 else 1;y(3)=0when a=3 else 1;end; 设I0到I3为键输入信号,低电平有效,优先级次序为I0最高,I3最低。y1,y0为编码输出,KA为键检测

6、信号。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity encoder is port(i0,i1,i2,i3:in bit; y0,y1,ka:out bit);end encoder;architecture one of encoder isbegin y1=(i0 and i1 and(not i2)or(i0 and i1 and(not i3); y0=(i0 and(not i1)or(i0 and i2 and(not i3); ka=i0 and i1 and i2

7、and i3;end; 消抖计数器CNT16A实际上是一个具有清零与保持功能的十六进制加法计数器。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT16A is port(clk,clr:in std_logic; dav:out std_logic);end cnt16a;architecture one of CNT16A is signal q:std_logic_vector(3 downto 0);beginprocess(clk,clr) begin if(clkev

8、ent and clk=1)then if(clr=1)then q=0000; elsif(q=15)then q=1111; else q=q+1; end if; end if; end process;process(q)begin if(q=1111)then dav=0; else dav=1; end if; end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity REG4 is port( clk:in std_logic; d:in std_

9、logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0)end REG4;architecture one of reg4 isbegin process(clk) begin if(clkevent and clk=0)then q=d; end if; end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT16 isport(clk:in std_logic;q:buffer std_

10、logic_vector(3 downto 0)end CNT16;architecture one of CNT16 isbeginprocess(clk)beginif(clkevent and clk=1) thenqYYYYYYYYYYYYYYYYY=null; end case; end process; end ; 图7 ENCODER的仿真结果 图8 DECODER的仿真结果 3T16A仿真结果如图9所示 图9 CNT16A的仿真结果六 总结经过实际电路板测试,结果已经过教师验收。这次试验让我了解了Quartus的使用方法,制作过程中也遇到了一些问题。比方说无法下载,发现是软件没有破解。还有最后数码管乱码,发现是数码管的阴阳极搞错。这些问题虽小,却造成了很大的困扰,以后还需注意。第 10 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁