键盘接口技术应用教学课件_第1页
键盘接口技术应用教学课件_第2页
键盘接口技术应用教学课件_第3页
键盘接口技术应用教学课件_第4页
键盘接口技术应用教学课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

键盘接口技术应用(1)幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!键盘接口技术应用(1)幻灯片本课件PPT仅供大家学习PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键

单片机组成的控制系统通常需要配置键盘,用户可以通过键盘向单片机输入数据或命令,以便实现控制系统的人机对话。键盘可以直接利用口线连接按键开关、开关型传感器或电子线路来实现,内部程序仅通过判断口线的电平就能够确定输入的键值。采用这种识别方式的键盘称为非编码键盘。非编码键盘设计简单,使用方便,且因为具有共用端,容易直接同开关电路或开关型传感器连接。但是这种方式的口线利用率较低,受单片机口线数量的限制,其键盘规模无法做大。单片机组成的控制系统通常需要配置键盘,按键的特点及工作原理独立式按键矩阵式按键键盘接口技术按键的特点及工作原理键盘接口技术按键的特点及工作原理按键的分类:触点式:机械;无触点式:电气键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态低电平“0〞与高电平“1〞。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,假设是数字键,那么将键号对应的数字送入相关输入缓冲区;假设是功能键,那么通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。按键的特点及工作原理按键的分类:键盘接口需要解决的问题是否有键按下(通过编程来判断是否有键按下)按键识别:键抖动及消除:主要指机械按键抖动就是键处于似接非接的状态。机械按键抖动时间在5ms~10ms之间硬件方案——双稳态去抖电路软件方案——延时10ms~20ms后再次判断,按下去了说明键确实按下了,没有按下说明前一次是抖动产生的。消除方法:求键号(确定有键按下了,还要确定是哪个键按下了)键盘接口需要解决的问题是否有键按下(通过编程来判断是否有键按键盘在使用中还应考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如下图。图中tH为开关断开时口线上高电平存在的时间,tL为开关闭合时口线上低电平稳定存在的时间,tW1、tW2为键按下和松开时的抖动期存在时间。抖动期一般不超过10ms。在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的措施进展鉴别。键盘在使用中还应考虑到人员操作或机械特性在接触时独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。流程图:抖动来的判断完是否有键按下后有两种执行方式:1.判断键按下去后就执行该按键的功能2.判断键释放后才执行该按键的功能例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配ORG0000H如果不送高电平,原来是低电平KB:MOVP1,#0FFH;状态的管脚读进来会出错MOVA,P1;有键按下为0,无键按下为1CPLAANLA,#07H;屏蔽其它位状态JZKBLCALLD10MS;去抖动MOVA,P1CPLAANLA,#07HJZKB

编程:按三个按键中的任一键都对应一个特定功能。判断按键是否按下?CJNEA,#01H,KB01LCALLPGM1SJMPKBKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBKB02:CJNEA,#04H,KBLCALLPGM3SJMPKBPGM1:……RET判断具体哪个键按下并转去执行相应功能ORG0000H如果不送高电矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用行首号列首号键号=行首号+列首号矩阵式按键关键:如何判断键号?321047651110981键值产生的原理

1)扫描法产生键值

具体方法是,以行线作为扫描输出,以列线作为接收输入,依次将行线置为低电平,并在列线上逐次接收数据。扫描完成后,如果发现接收到的某一列线有低电平,那么表示该列线与行线连接的按键已经闭合。在接收到低电平的那次扫描中,行线数据与列线数据的组合便是所期望的键值,由该键值可确定闭合键在矩阵连接中的连接位置。键值产生的原理

1)扫描法产生键值2)线反转识别法产生键值

具体方法是,先将行线全部置为低电平,列线全部置为高电平,从列线对应的I/O口线接收数据,如果发现有口线变低,那么证明该列线与闭合的按键连接。反之,将列线全部置为低电平,行线全部置为高电平,从行线对应的I/O口线接收数据,如果发现有口线变低,那么证明该行线与闭合的按键连接。对上述两次操作的结果所获得的两个8位数据进展综合分析,便可确定闭合的按键所在位置。2)线反转识别法产生键值

具体方法是,先将行线全部置为键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.扫描获取闭合键的行、列值;3.用计算法或查表法得到键值;4.判断闭合键释放否,如没释放则继续等待;5.保存闭合键号。散转指令JMP@A+DPTR键盘扫描子程序一般包括以下内容:散转指令JMP@A+D键按下/释放判断

KS:MOVA,#00H MOVP1,A ;全扫描字#00H送P1口MOVP1,#0FH

;从P1口的低4位取数,必须使低4位为高电平MOVA,P1;读入P1口状态CPLA;变正逻辑,高电平表示有键按下ANLA,#0FH;取低4位RET ;返回,A≠0表示有键按下MAIN:LCALLKSJZM;等于0说明没有键按下,转移到M…..

键按下/释放判断KS:MOVA,#00H 按键识别——扫描法流程:当第0列处于低电平时,逐行查找是否有行线变低,假设有,那么第0列与该行的穿插点按键按下;假设无,那么表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。键号=行首键号〔0、4、8、12〕+列号〔0、1、2、3〕

原理:

在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。按键识别——扫描法流程:原理:例2:键盘扫描程序SERCH:MOVR2,#0EFH ;让某一列为0,11101111 MOVR3,#00H;R3作为列号的存放器LINE0:MOVA,R2 MOVP1,A;对应的列为低电平了 MOVA,P1 JBACC.3,LINE1;为1,没有键按下,查下一行MOVA,#00H;为0,有键按下,存行首号AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H此时假设键已经按下了,我们现在只需判断键号例2:键盘扫描程序SERCH:MOVR2,#0EF AJMPTRYK

LINE3:JBACC.0,LINE4

MOVA,#0CH

AJMPTRYK

LINE4:INCR3;4行都没有查到,列号加1

MOVA,R2;初值左移1位 ,变为11011111

RLA

JNBACC.0,BACK;11111110时,子程序返回,重来

MOVR2,A;列号左移为11011111,那么在从第一行开场查

AJMPLINE0

TRYK:ADDA,R3;行首号和列号相加

BACK:RET AJMPTRYK

LINE3:JB定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一利用定时器,定时的去扫描按键。查询法;对定时器工作方式进行设定;对定时器设定初值;启动定时器;定时时间到,转移到查键号;判断到100次了吗?;调用键测试程序,判断有键按下吗?;A为0,没有键按下,继续定时;有键按下,有可能因为抖动,延时。;调用键测试程序,判断有键按下吗?;调用确定键号程序利用定时器,定时的去扫描按键。查询法;对定时器工作方式进行设中断的方法;定时器T1的中断入口地址;中断允许主程序中断子程序;对定时器工作方式进行设定;对定时器设定初值;启动定时器;等待定时时间到,到了就产生中断;关中断;调用键测试程序,判断有键按下吗?;A为0,没有键按下,继续定时;有键按下,有可能因为抖动,延时。;调用键测试程序,判断有键按下吗?;调用确定键号程序;确定键号后,执行键的功能;中断允许中断的方法;定时器T1的中断入口地址;中断允许主程序中断子程中断扫描方式为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。随机性的与门+5伏0000中断扫描方式为提高CPU工作效率,可采用中断扫描工作;INT0的中断入口地址;低4位为0,高4位为1;中断允许;等待有键按下;调用键测试程序,判断有键按下吗?;A为0,没有键按下,继续等待;调用键测试程序,判断有键按下吗?;有键按下,有可能因为抖动,延时。;调用确定键号程序;A为0,没有键按下,继续等待;中断允许;INT0的中断入口地址;低4位为0,高4位为1;中断允许;键盘接口技术应用(1)幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!键盘接口技术应用(1)幻灯片本课件PPT仅供大家学习PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键

单片机组成的控制系统通常需要配置键盘,用户可以通过键盘向单片机输入数据或命令,以便实现控制系统的人机对话。键盘可以直接利用口线连接按键开关、开关型传感器或电子线路来实现,内部程序仅通过判断口线的电平就能够确定输入的键值。采用这种识别方式的键盘称为非编码键盘。非编码键盘设计简单,使用方便,且因为具有共用端,容易直接同开关电路或开关型传感器连接。但是这种方式的口线利用率较低,受单片机口线数量的限制,其键盘规模无法做大。单片机组成的控制系统通常需要配置键盘,按键的特点及工作原理独立式按键矩阵式按键键盘接口技术按键的特点及工作原理键盘接口技术按键的特点及工作原理按键的分类:触点式:机械;无触点式:电气键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态低电平“0〞与高电平“1〞。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,假设是数字键,那么将键号对应的数字送入相关输入缓冲区;假设是功能键,那么通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。按键的特点及工作原理按键的分类:键盘接口需要解决的问题是否有键按下(通过编程来判断是否有键按下)按键识别:键抖动及消除:主要指机械按键抖动就是键处于似接非接的状态。机械按键抖动时间在5ms~10ms之间硬件方案——双稳态去抖电路软件方案——延时10ms~20ms后再次判断,按下去了说明键确实按下了,没有按下说明前一次是抖动产生的。消除方法:求键号(确定有键按下了,还要确定是哪个键按下了)键盘接口需要解决的问题是否有键按下(通过编程来判断是否有键按键盘在使用中还应考虑到人员操作或机械特性在接触时产生的抖动问题,即按键开关在接通或断开瞬间并非完全可靠接触,而是存在一个抖动期,在此期间的电平变化波形如下图。图中tH为开关断开时口线上高电平存在的时间,tL为开关闭合时口线上低电平稳定存在的时间,tW1、tW2为键按下和松开时的抖动期存在时间。抖动期一般不超过10ms。在口线电平抖动期间,单片机无法准确检测出口线电平的正确值,必须采取一定的措施进展鉴别。键盘在使用中还应考虑到人员操作或机械特性在接触时独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。流程图:抖动来的判断完是否有键按下后有两种执行方式:1.判断键按下去后就执行该按键的功能2.判断键释放后才执行该按键的功能例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配ORG0000H如果不送高电平,原来是低电平KB:MOVP1,#0FFH;状态的管脚读进来会出错MOVA,P1;有键按下为0,无键按下为1CPLAANLA,#07H;屏蔽其它位状态JZKBLCALLD10MS;去抖动MOVA,P1CPLAANLA,#07HJZKB

编程:按三个按键中的任一键都对应一个特定功能。判断按键是否按下?CJNEA,#01H,KB01LCALLPGM1SJMPKBKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBKB02:CJNEA,#04H,KBLCALLPGM3SJMPKBPGM1:……RET判断具体哪个键按下并转去执行相应功能ORG0000H如果不送高电矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用行首号列首号键号=行首号+列首号矩阵式按键关键:如何判断键号?321047651110981键值产生的原理

1)扫描法产生键值

具体方法是,以行线作为扫描输出,以列线作为接收输入,依次将行线置为低电平,并在列线上逐次接收数据。扫描完成后,如果发现接收到的某一列线有低电平,那么表示该列线与行线连接的按键已经闭合。在接收到低电平的那次扫描中,行线数据与列线数据的组合便是所期望的键值,由该键值可确定闭合键在矩阵连接中的连接位置。键值产生的原理

1)扫描法产生键值2)线反转识别法产生键值

具体方法是,先将行线全部置为低电平,列线全部置为高电平,从列线对应的I/O口线接收数据,如果发现有口线变低,那么证明该列线与闭合的按键连接。反之,将列线全部置为低电平,行线全部置为高电平,从行线对应的I/O口线接收数据,如果发现有口线变低,那么证明该行线与闭合的按键连接。对上述两次操作的结果所获得的两个8位数据进展综合分析,便可确定闭合的按键所在位置。2)线反转识别法产生键值

具体方法是,先将行线全部置为键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.扫描获取闭合键的行、列值;3.用计算法或查表法得到键值;4.判断闭合键释放否,如没释放则继续等待;5.保存闭合键号。散转指令JMP@A+DPTR键盘扫描子程序一般包括以下内容:散转指令JMP@A+D键按下/释放判断

KS:MOVA,#00H MOVP1,A ;全扫描字#00H送P1口MOVP1,#0FH

;从P1口的低4位取数,必须使低4位为高电平MOVA,P1;读入P1口状态CPLA;变正逻辑,高电平表示有键按下ANLA,#0FH;取低4位RET ;返回,A≠0表示有键按下MAIN:LCALLKSJZM;等于0说明没有键按下,转移到M…..

键按下/释放判断KS:MOVA,#00H 按键识别——扫描法流程:当第0列处于低电平时,逐行查找是否有行线变低,假设有,那么第0列与该行的穿插点按键按下;假设无,那么表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。键号=行首键号〔0、4、8、12〕+列号〔0、1、2、3〕

原理:

在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。按键识别——扫描法流程:原理:例2:键盘扫描程序SERCH:MOVR2,#0EFH ;让某一列为0,11101111 MOVR3,#00H;R3作为列号的存放器LINE0:MOVA,R2 MOVP1,A;对应的列为低电平了 MOVA,P1 JBACC.3,LINE1;为1,没有键按下,查下一行MOVA,#00H;为0,有键按下,存行首号AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H此时假设键已经按下了,我们现在只需判断键号例2:键盘扫描程序SERCH:MOVR2,#0EF AJMPTRYK

LINE3:JBACC.0,LINE4

MOVA,#0CH

AJMPTRYK

LINE4:INCR3;4行都没有查到,列号加1

MOVA,R2;初值左移1位 ,变为11011111

RL

温馨提示

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

评论

0/150

提交评论