- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VHDL键盘扫描.doc
一、设计目的 巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力,通过对FPGA几个简单的模块设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。 二、设计内容 (1)设计一个4×4的键盘扫描模块,要求有防抖动功能。 (2)用键盘控制16×16点阵LED显示各种字符。 (3)用键盘控制蜂鸣器发声,能有各种音调。 三、实现方法 本系统的系统组成及连接原理如图3.1所示,主系统由四个功能模块组成:分频模块(为键盘扫描模块和提供时钟)、键盘扫描模块、LED点阵模块、发声模块。 LED点阵发声模块键盘扫描模块分频模块 LED点阵 发声模块 键盘扫描模块 分频模块 时钟输入 接蜂鸣器 接LED点阵 接键盘 图3.1整体模块划分 1、分频模块 分频模块的作用是把2MHZ的时钟分成1kHZ和500HZ,为键盘扫描模块和LED点阵模块提供时钟。主要方法是通过计数器实现分频。分频模块如图3.2,clk是输入时钟,clkout_kb是输入给键盘扫描模块使用,clkout_LED是输入给LED点阵模块使用。 图3.2 分频模块视图 其仿真结果如图3.3 图 3.3分频模块仿真 2、键盘扫描模块 2.1行列式键盘原理 行列式键盘又叫做矩阵式键盘。用带有I/O口的线组成行列结构,按键设置在行列的交点上。本次试验用到的是4×4的行列结构键盘,可以构成16个按键。这样,当按键数量平方增长是,I/O口只是线性增长,这样就可以节省I/O口。 行列式键盘的原理如图3.4所示。 C D C D E F 8 9 A B 4 5 6 7 0 1 2 3 keydrv 图 3.4 行列式键盘的原理 按键设置在行列线交叉点,行、列线分别连接到按键开关的两端。列线通过上拉电阻接+5V的电压,即列线的输出被嵌位在高电平状态。 判断按键中有无键按下时通过行线输入扫描信号,然后从列线读取到状态实现的。其方法是依次给行线送低电平,检查列线的输入。如果列线信号全为高电平,则代表低电平所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。 设行扫描信号为keydrv3~keydrv0,列线按键输入信号keyin3~keyin0与按键位置的关系如表3.1所示 表3.1行扫描信号、列线按键输入信号与按键位置的关系 keydrv3~keydrv0 keyin3~keyin0 对应的按键 1110 1110 0 1101 1 1011 2 0111 3 1101 1110 4 1101 5 1011 6 0111 7 1011 1110 8 1101 9 1011 A 0111 B 0111 1110 C 1101 D 1011 E 0111 F 2.2键盘扫描系统模块划分 4 4×4键盘 键盘译码电路 扫描电路 按键去抖动电路 时钟输入 输入键盘值 图3.5 键盘扫描系统模块划分 键盘扫描电路时用于产生keydrv3-keydrv0信号,其变化顺序为1110→1101→1011→0111……周而复始的扫描。其停留在每个状态的时间大约有10ms。扫描电路的模型如下: 图3.6 扫描电路外观接口 扫描电路的仿真如图3.7所示: 图3.7 扫描电路仿真 键盘译码电路是从keydrv3~keydrv0和keyin3~keyin0译出按键值的电路,它的真值表如表1所示。键盘译码电路的模型如图3.8所示: 图3.8 键盘译码电路外观 其中键值keycode用5位编码,keycode为00000~01111表示键值0~F,keycode为11111时表示无按键按下。 译码电路的仿真如图3.9所示: 图3.9译码电路仿真 图3.9仿真的是扫描信号在keydrv=1011时有按键按下,并且keyin=0111时的键值,由表1可知这时的键值因该是B,而由图中可以看出仿真结果是5’h0B,即预测结果与仿真结果一致。 2.3 按键去抖动电路实现 由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象,如图3.10所示。键的抖动时间一般为 5~10ms。这种现象会引起FPGA对于一次键操作进行多次处理,因此须设法消除键接通或断时的抖动现象。去抖动的方法有硬件和软件两种:硬件去抖动和软件去抖动。 图3.10按键抖动现象 去抖动模块采用多次连续检测输入键值的原理防抖。当检测到有键值输入时并不马上输出,而是当16次输入的键值都一样时才输出,其中只要有一次键值不同的话计数器都会置零,重新记数。这样就能消除按键的抖动影响。其模块外观如图3.11所示。 图3.11去抖动模块外观 按键去抖动仿真: 图3.12按键去抖动仿真 由仿真图形可以看出,输
有哪些信誉好的足球投注网站
文档评论(0)