没有合适的资源?快使用搜索试试~ 我知道了~
实验七-矩阵键盘控制接口(完整版)实用资料.doc
0 下载量 53 浏览量
2022-11-30
23:51:01
上传
评论
收藏 2.41MB DOC 举报
温馨提示
试读
136页
实验七-矩阵键盘控制接口(完整版)实用资料.doc
资源推荐
资源详情
资源评论
实验七
矩阵键盘控制接口(完整版)实
用资料
(可以直接使用,可编辑 完整版实用资料,欢迎下载)
实验七 矩阵键盘控制接口
一、 实验要求
设计并实现一个4×8键盘接口控制器,含有时序产生电路、键盘扫描电路、弹跳消除电
路、键盘译码电路、按键码存储电路、显示电路。要求:当按下某一键时,在数码管上
显示该键对应的键值。
二、 实验内容
实验仪器中4×8矩阵键盘的电路原理图如图50-1所示。
图50-1 4×8矩阵键盘电路原理图
扫描信号为BCOM[8..1],在BCOM[8..1]前已接有一个3-8译码器,3-
8译码器的输入为SEL0~SEL3。当3-
8译码器的输入为“000”时,即BCOM1为‘0’,其他位为‘1’,我们按下第一排第一键,此
时KIN0输出‘0’,KIN1~KIN3输出全为‘1’,按下第二排第二键时,KIN1输出‘0’,其他输
出‘1’;当3-
8译码器输入为001时,即BCOM2为‘0’,我们按下第一排第二键,此时KIN0输出‘0’,KI
N1~KIN3输出全为‘1’,同理其他键依此类推。
键盘上的每个按键就是一个开关,当某键被按下时,该按键的接点会呈现‘0’状态,反之
为‘1’。扫描信号为SEL[2..0]进入3-
8译码器,再从译码器输出到键盘,所以第一次只能扫描一排,依此周而复始。按键位
置与数码的关系如表50-1所示。
若从KIN[3..0]输出的皆为‘1’时,表示没有按键按下,代表该列没有按键被按下,则不进
行按键编码的操作,反之,如果有被按下时,则应将KIN[3..0]读出的值送到译码电路进
行编码。
表50-1 按键位置与数码关系
光靠矩阵键盘是无法正确地完成输入工作的,另外还需搭配以下几个电路模块:
1、 时钟产生电路
当一个系统中使用不同操作频率的脉冲波形时,最方便的方法就是利用一个自由计数器
来产生各种频率。本电路中就使用三种不同频率的工作脉冲波形。它们分别是:系统时
钟(它是系统内部所有时钟的提供者,频率最高)、弹跳消除取样信号、键盘扫描信号
和七段显示器扫描信号。在很多的电路设计中,键盘扫描信号和七段显示器扫描信
号可以使用相同的时钟信号,本设计也采用此方法。
具体做法:
● 先建立一个N位的计数器,N的大小由电路的需求所定。N的值越大,分频的
次数就越多,但所占用的空间也越大。
● 若要得到一个脉冲波形信号,可以只取计数器中一个值,如使用CLK<=Q(4)
语句,其值变化为0-1-0-1-1„„。
● 若要得到脉冲波形序列,可以取计数器中的几个值,如使用CLK<=Q(4
DOWNTO 3)语句,其值变化为00-01-10-11-00-01„„。
2、 键盘扫描电路
扫描电路的作用是用来提供键盘扫描信号(表50-
1中的SEL2~SEL0)的电路,扫描信号的变化的顺序依次为000-001-010-011-100-101-
110-
111„„依次的周而复始。扫描时依序分别扫描八列按键,当扫描信号为000时,扫描0这
一列按键„„每扫描一列按键,就检查一次是否有按键按下,如果这排有按键按下,就马
上停止扫描,立即进行按键编码动作,存储键码,如果没有按键按下,则继续扫描下一
列。
3、 弹跳消除电路
因为按键大多是机械式开关结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,
对于激活关闭一般电器并不会有何影响,但对于灵敏度较高的电路,却有可能产生误动
作而出错。
弹跳现象产生的原因可从图50-
2说明。虽然只是按下按键一次然后放掉,然而实际产生的按键信号却不只跳动一次,
经过取样的检查后将会造成误判,以为按键两次。
按键信号
抽样信号
抽样结果
图50-2 弹跳现象产生错误的抽样结果
如果调整抽样频率(如图50-3),可以发现弹跳现象获得了改善。
按键信号
抽样信号
抽样结果
图50-3 调整抽样频率后得到的抽样结果
因此必须加上弹跳消除电路,避免误操作信号的发生。注意,弹跳消除电路所使用脉冲
信号的频率必须比其它电路使用的脉冲信号的频率更高;通常将扫描电路或LED显示电
路的工作频率定在24HZ左右,两者的工作频率是通常的4倍或更高。
4、 键盘译码电路
上述键盘中的按键可分为数字键和功能键。
数字键主要用来输入数字,但从表50-
2中发现,键盘所产生的输出KIN3~KIN0无法拿来直接使用;另外不同的数字按键也担
负不同的功能,因此必须由键盘译码电路来
规划第个按键的输出形式,以便执行相应的动作。
有了表50-
2,要写出键盘译码电路的VHDL程序就非常容易了,尤其针对有表可以对照的电路设计
,只要使用CASE-WHEN或WHNE-ELSE语句,便可轻松完成设计。
表50-2 键盘参数表
译码电路负责的工作有:
a) 判别是否有键按下。
b) 若被按下的是数字键或字母键,则编码成相对应的16进制编码
c) 若被按下的是数字键,除进行16进制编码外,同时还编码成BCD
码。
d) 若按下是的功能键或其他按键,则编码成16进制编码。
5、 按键码存储电路
因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电
路,将整个键盘扫描完毕后记录下来。按键存储电路可以用移位寄存器构成,在这里对
移位寄存器就不再介绍,请参阅前面相关实验。
键盘接口电路的引脚如图50-4所示。
图50-4 矩阵键盘接口模块引脚图
三、 实验连线
将CLK时钟接4~5MHZ时钟输入,KIN[3..0]分别接实验仪器的键盘输出KIN[3..0],SEL[2
..0]分别接实验仪器的扫描输入SEL[2..0],SEGOUT[7..0]分别接7段显示器输入DP~A。
剩余135页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 334
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功