第7讲矩阵键盘电路的仿真实验[教学内容]_第1页
第7讲矩阵键盘电路的仿真实验[教学内容]_第2页
第7讲矩阵键盘电路的仿真实验[教学内容]_第3页
第7讲矩阵键盘电路的仿真实验[教学内容]_第4页
第7讲矩阵键盘电路的仿真实验[教学内容]_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.1 矩阵键盘电路的原理介绍矩阵键盘电路的原理介绍 7.2 矩阵键盘硬件电路的设计矩阵键盘硬件电路的设计 7.3 软件编程实现矩阵键盘的处理软件编程实现矩阵键盘的处理 7.4 矩阵键盘电路在矩阵键盘电路在Proteus中的验证中的验证 7.5 实例讲解实例讲解 第七讲第七讲 矩阵键盘电路的仿真实验矩阵键盘电路的仿真实验 1优学课堂 7.1 矩阵键盘电路的原理介绍矩阵键盘电路的原理介绍 v键盘功能:向单片机输入数据、命令等,是键盘功能:向单片机输入数据、命令等,是 人与单片机对话的主要手段。人与单片机对话的主要手段。 2优学课堂 7.1.1 键盘接口应解决的问题键盘接口应解决的问题 1键盘的任

2、务键盘的任务 任务有任务有3项:项: (1)首先判别是否有键按下?若有,进入下一步。)首先判别是否有键按下?若有,进入下一步。 (2)识别哪一个键被按下,并求出相应的键值。)识别哪一个键被按下,并求出相应的键值。 (3)根据键值,找到相应键值的处理程序入口。)根据键值,找到相应键值的处理程序入口。 3 3优学课堂 2. 键盘输入的特点键盘输入的特点 v常见键盘包括触摸式键盘、薄膜键盘和按键式键盘,最常用常见键盘包括触摸式键盘、薄膜键盘和按键式键盘,最常用 的是的是按键式键盘按键式键盘。 v键盘按键实质上是一个开关。如图键盘按键实质上是一个开关。如图7-1(a)所示,按键开关的所示,按键开关的

3、两端分别连接在行线和列线上,通过键盘开关机械触点的断开、两端分别连接在行线和列线上,通过键盘开关机械触点的断开、 闭合,其行线电压输出波形如图闭合,其行线电压输出波形如图7-1(b)所示。所示。 v图图7-1(b)所示的所示的t1和和t3分别为键的闭合和断开过程中的分别为键的闭合和断开过程中的抖动抖动 期期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,(呈现一串负脉冲),抖动时间长短与开关的机械特性有关, 一般为一般为510ms,t2为稳定的为稳定的闭合期闭合期,其时间由按键动作确定,其时间由按键动作确定, 一般为十分之几秒到几秒,一般为十分之几秒到几秒,t0、t4为为断开期断开期。

4、4 4优学课堂 图图7-1 键盘开关及其行线波形键盘开关及其行线波形 5优学课堂 3按键的识别按键的识别 v按键的闭合与否,反映在行线输出电压上就是呈现按键的闭合与否,反映在行线输出电压上就是呈现 高电平或低电平,通过对行线电平的高低状态的检测,高电平或低电平,通过对行线电平的高低状态的检测, 便可确认按键是否按下以及是否释放。便可确认按键是否按下以及是否释放。 v为确保单片机对一次按键动作只确认一次按键有效,为确保单片机对一次按键动作只确认一次按键有效, 必须必须消除抖动期消除抖动期t1和和t3的影响的影响. 6 6优学课堂 4如何消除按键的抖动如何消除按键的抖动 v去抖动的方法有两种,一种

5、是用去抖动的方法有两种,一种是用软件延时软件延时来消除按键抖动。来消除按键抖动。 v基本思想是:在检测到有键按下时,该键所对应的行线为低基本思想是:在检测到有键按下时,该键所对应的行线为低 电平,执行一段延时电平,执行一段延时10ms的子程序后,确认该行线电平是否的子程序后,确认该行线电平是否 仍为低电平,如果仍为低电平,则确认该行确实有键按下。当仍为低电平,如果仍为低电平,则确认该行确实有键按下。当 按键松开时,行线的低电平变为高电平,按键松开时,行线的低电平变为高电平,执行一段延时执行一段延时10ms10ms的的 子程序后,检测该行线为高电平,说明按键确实已经松开。采子程序后,检测该行线为

6、高电平,说明按键确实已经松开。采 取以上措施,可消除两个抖动期取以上措施,可消除两个抖动期t t1 1和和t t3 3的影响。的影响。 v另一种去除按键抖动的方法是另一种去除按键抖动的方法是采用专用的键盘采用专用的键盘/ /显示器接口显示器接口 芯片芯片,这类芯片中都有自动去抖动的硬件电路。,这类芯片中都有自动去抖动的硬件电路。 7 7优学课堂 7.1.2 键盘分类和设计方法键盘分类和设计方法 v键盘分为两类,包括键盘分为两类,包括非编码键盘非编码键盘和和编码键盘编码键盘。 v非编码键盘按键直接与单片机相连,通常使用在按非编码键盘按键直接与单片机相连,通常使用在按 键数量较少的场合。用这种键盘

7、,系统功能通常比较键数量较少的场合。用这种键盘,系统功能通常比较 简单,需处理的任务较少,但可降低成本、简化电路简单,需处理的任务较少,但可降低成本、简化电路 设计。按下按键的键号信息通过软件来获取。设计。按下按键的键号信息通过软件来获取。 v非编码键盘常见的为两种结构:非编码键盘常见的为两种结构:独立式键盘独立式键盘和和矩阵矩阵 式键盘式键盘。 8优学课堂 1. 独立式键盘独立式键盘 (1)查询方式的独立式键盘)查询方式的独立式键盘 v特点特点:一键一线,键相互独立,每个按键各接一条:一键一线,键相互独立,每个按键各接一条I/O 口线,通过检测口线,通过检测I/O输入线的电平状态,可很容易判

8、断哪输入线的电平状态,可很容易判断哪 个按键被按下,如图个按键被按下,如图7-2所示。图中的上拉电阻保证按键所示。图中的上拉电阻保证按键 释放时,输入检测线上有稳定的高电平。释放时,输入检测线上有稳定的高电平。 v优点优点:电路简单,各条检测线独立,识别按键号的软:电路简单,各条检测线独立,识别按键号的软 件编写简单。件编写简单。 v不足不足:独立式键盘适用于按键数目较少的场合,在按:独立式键盘适用于按键数目较少的场合,在按 键数目较多的场合,要占用较多的键数目较多的场合,要占用较多的I/O口线。口线。 9 9优学课堂 图图7-2 独立式键盘的接口电路独立式键盘的接口电路 10优学课堂 (2)

9、中断扫描方式的独立式键盘)中断扫描方式的独立式键盘 v为进一步提高扫描键盘工作效率,可采用中断扫描方为进一步提高扫描键盘工作效率,可采用中断扫描方 式,如图式,如图7-3。 v优点优点:键盘只有在键盘有按键按下时,才进行处理,:键盘只有在键盘有按键按下时,才进行处理, 所以实时性强,效率高。所以实时性强,效率高。 v工作原理工作原理:当键盘中有按键按下时,:当键盘中有按键按下时,74LS30的输出经的输出经 过过74LS04反相后向单片机的中断请求输入引脚反相后向单片机的中断请求输入引脚INT0*发发 出中断请求信号,单片机响应中断,执行键盘扫描程序出中断请求信号,单片机响应中断,执行键盘扫描

10、程序 中断服务子程序,识别出按下按键的键号,并跳向该按中断服务子程序,识别出按下按键的键号,并跳向该按 键的处理程序。键的处理程序。 11 11优学课堂 12 图图7-3 独立式键盘的接口电路独立式键盘的接口电路 12优学课堂 2. 矩阵式键盘矩阵式键盘 v矩阵式(也称行列式)键盘用于按键数目较多场合,矩阵式(也称行列式)键盘用于按键数目较多场合, 由由行线行线和和列线列线组成,一组为行线,另一组为列线,按组成,一组为行线,另一组为列线,按 键位于行、列的交叉点上。如图键位于行、列的交叉点上。如图7-4所示,所示, 一个一个4 4的的 行、列结构可以构成一个行、列结构可以构成一个16个按键的键

11、盘。个按键的键盘。 v优点优点:在按键数目较多的场合,与独立式键盘相比,:在按键数目较多的场合,与独立式键盘相比, 要节省较多的要节省较多的I/O口线。口线。 13 13优学课堂 图图7-4 矩阵式键盘接口矩阵式键盘接口 14优学课堂 查询方式的矩阵式键盘工作原理。查询方式的矩阵式键盘工作原理。 v首先判键盘有无键按下,即把所有行线首先判键盘有无键按下,即把所有行线P1.0P1.3均均 置为低电平,然后检查各列线的状态,若列线不全为高置为低电平,然后检查各列线的状态,若列线不全为高 电平,则表示键盘中有键被按下;若所有列线列均为高电平,则表示键盘中有键被按下;若所有列线列均为高 电平,说明键盘

12、中无键按下。电平,说明键盘中无键按下。 v在确认有键按下后,即可进入确定具体闭合键的过程。在确认有键按下后,即可进入确定具体闭合键的过程。 判断闭合键所在的位置,其方法是依次将行线置为低电判断闭合键所在的位置,其方法是依次将行线置为低电 平,在逐行检查各列线的电平状态。若某列为低,则该平,在逐行检查各列线的电平状态。若某列为低,则该 列线与行线交叉处的按键就是闭合的按键。列线与行线交叉处的按键就是闭合的按键。 15 15优学课堂 7.2 矩阵键盘硬件电路的设计矩阵键盘硬件电路的设计 v以以4*4矩阵键盘为例,介绍矩阵键盘电路的设矩阵键盘为例,介绍矩阵键盘电路的设 计。计。 v在在Proteus

13、中,常用的按键是中,常用的按键是Button,它在,它在 Proteus元件库元件库Switches /矩阵键盘按键特征码表矩阵键盘按键特征码表 void delay() uchar i; for(i=0;i200;i+); 23优学课堂 参考源代码为:参考源代码为: uchar Keys_Scan() uchar sCode,kCode,i,k; P1=0 xf0; /低低4位置位置0,放入四行,放入四行 if(P1 /延时去抖动延时去抖动 if(P1 /行扫描码初值行扫描码初值 for(k=0;k4;k+) /对四行分别进行扫描对四行分别进行扫描 P1=sCode; if(P1 for(i

14、=0;i16;i+) /查表得到按键序号并返回查表得到按键序号并返回 if(kCode = KeyCodeTablei) return i; else sCode=_crol_(sCode,1); return -1; 24优学课堂 参考源代码为:参考源代码为: void main() uchar KeyNo=-1; /-1表示无键按下表示无键按下 uchar i,P2_LED,P3_LED; while(1) KeyNo=Keys_Scan(); /扫描键盘获取按键序号扫描键盘获取按键序号KeyNo if(KeyNo!=-1) P2_LED=0 xff; P3_LED=0 xff; for(

15、i=0;i=KeyNo;i+) /键值越大,点亮的键值越大,点亮的LED越多越多 if(i=1; else P2_LED=1; P3=P3_LED; P2=P2_LED; 25优学课堂 7.4 矩阵键盘电路在矩阵键盘电路在Proteus中的验证中的验证 7.4.1 Proteus电路设计电路设计 1. 元件清单列表元件清单列表 打开打开Proteus ISIS编辑环境,按表编辑环境,按表7-1所列的清单添加元件所列的清单添加元件 元元 件件 名名 称称所所 属属 类类所所 属属 子子 类类 AT89C51Microprocessor ICs8051 Family CAPCapacitorsGe

16、neric CAP-ELECCapacitorsGeneric CRYSTALMiscellaneous RESResistorsGeneric RX8ResistorsResistor Packs LED-BARGRAPH-GRNOptoelectronicsBargraph Displays BUTTONSwitches P1=0 x0f; /高高4位置位置0,放入四行,放入四行 delay(1); Tmp=P10 x0f; /若有键按下,异或操作把低四位变为若有键按下,异或操作把低四位变为3个个0,1个个1 switch(Tmp) case 1: KeyNo=0; break; case 2: KeyNo=1; break; case 4: KeyNo=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论