设计九按键扫描电路.DOCVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计九按键扫描电路

实验七 按键阵列扫描控制电路设计 一、设计要求 按键是数字设备的输入部件,是人工干预数字系统的主要手段。操作者可以通过按键向系统输入数据、指令等二进制信息。 1. 设计要求 本设计要求实现一个按键阵列判断电路,并用七段数码管显示该按键的标识。当有键按下时,显示其标识符,并保持显示符直到新的按键作用。如果多个按键同时闭合,只响应最先作用的按键。 2. 硬件环境 设计对象的实现环境与所采用的FPGA开发装置有关,本节以LP2900为例,说明采用按键阵列扫描的设计原理和实现方法。 LP2900开发装置上有“0~9”,“*”,“#”共12个键构成的3行4列按键阵列。FPGA与按键阵列如图1所示。FPGA通过端口RK1~RK3读取键阵列的行线状态X0~X2;通过3线-8线译码器控制键阵列的列线Y0~Y3。74138的译码输入由FPGA 端口DE3~DE1控制。 图1 LP2900开发装置FPGA与按键阵列的接口关系 二、 按键扫描原理 1.按键状态判断 数字电路中,按键的闭合和断开状态可以通过其控制的逻辑电平判断。图2(a)电路将按键闭合、断开转换成代表“0”或“1”二值逻辑的低电平和高电平,然后判断电路输出X的电平即可了解按键的通、断状态。比如图2中,若测得X的电平为“1”,说明按键断开;测得为“0”,则表示按键闭合。 由于按键一般为机械开关,其触点的合、断有弹性抖动,如图2(b)所示,抖动时间约5~10ms。为了保证按键动作一次电路只判断到一次状态电平改变,防止误判断,需要采用消抖动措施。采用基本RS触发器可以对X的电平信号整形,实现消抖动。 图2 按键状态判断原理 2.按键阵列判断 若需要判断的按键较多,为节省信号端口资源,一般将按键分成行、列两组连接成阵列形式,十六个按键的阵列如图3(a)所示。每个按键跨接在一条行线Xi和一条列线Yj间,当按键闭合时,行线与列线接通。每条行线都通过一个电阻上拉到+5V电位,当行线上的所有按键都未闭合时,行线一定为高电平。当某条列线为低电平时,根据行线电平可判断该列线上各键的状态。比如,当Y1为低电平时,如果四条行线X0、X1、X2、X3的状态为“1011”,可判K11键闭合,K01,K21,K31键断开;若X0、X1、X2、X3的状态为“0101”,则可判断K01、K21键闭合。 (a)4×4键阵列电路 (b)扫描信号波形 图3 按键阵列扫描原理 3.按键扫描判断 采用状态机可自动逐个扫描按键通断情况,状态机的模等于或大于按键个数。每个状态可以使键阵列的一条列线Yj为低电平,通过判断行线Xi的电平来了解按键Kij的开关状态:当Kij键闭合,Xi为低电平;反之,Xi为高电平。对于图3(a)所示的键阵列电路,状态机控制产生如图3(b)所示的四列负脉冲顺序扫描信号。每列信号的低电平宽度为,各列信号按列序顺延。每个列信号周期判断同一行中的四个按键Ki0~Ki3,周而复始。列信号 三、参考设计方案 根据按键阵列的判断原理,可采用一个计数器产生按键编码信号,计数器的脉冲周期等于按键的扫描时间,计数器的模M大于等于被扫描的按键数N。本设计要求判断12个按键的阵列,所以可采用12进制计数器Q3Q2Q1Q0产生按键扫描码(4’b0000~4’b1011)。计数器低两位Q1Q0控制3-8译码器的de2和de1端,用于产生列扫描信号Y0~Y3;高两位Q3Q2控制数据选择器选择行线电平X0~X2,输出Y用于控制12进制计数器的使能端。当被扫描的按键闭合时,选择器的输出信号Y=0,控制寄存器data保存计数器当前的键码状态,同时控制计数器停止计数,即封锁计数器停止按键扫描,以避免其它按键闭合产生的影响。然后将寄存器中存储的数据送入显示译码器模块中,用于显示按键名。 按键名的显示采用七段显示译码器实现,故需先将4位输入数据转换成对应的7个段极信号a、b、c、d、e、f、g。由于七段显示译码器的共阴极端也是由de1、de2、de3控制,可以看出该信号与按键扫描信号共用,导致按键按下后,第一列的信号(1、2、3)显示在C1数码管上,第二列的信号(4、5、6)显示在C2数码管上,第三列的信号(7、8、9)显示在都C3数码管上,第四列的信号(*、0、#)显示在C4数码管上。当按键松开后,C1C2C3C4四个数码管上都会同时显示。 参考设计电路如图4所示。 图 4 参考设计框图 四、 参考设计步骤 1.输入按键阵列扫描电路部分,编写分频器、计数器、数据选择器的代码。 调试一:12进制计数器的寄存器data的输出接四个发光二极管。再用一个发光二极管观察数据选择器的输出。编译(Compilation)正确后下载。任意按下阵列中的按键,观察:按键闭合时,数据选择器是否输出维持低

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档