ImageVerifierCode 换一换
格式:PPT , 页数:28 ,大小:515KB ,
资源ID:5585626      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5585626.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第5章 MCS-51单片机外部并行口扩展技术-5.4.2 键盘接口工作原理.ppt)为本站会员(fcgy86390)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第5章 MCS-51单片机外部并行口扩展技术-5.4.2 键盘接口工作原理.ppt

1、第5章 MCS-51单片机外部 并行口扩展技术,5.4.2 键盘接口工作原理,5.4.2 键盘接口工作原理,键盘 人机交互的一个重要工具 两种基本类型 编码键盘 除了按键以外,还包括产生键码的硬件电路 使用方便、价格较高 非编码键盘 靠软件来识别键盘上的闭合键,由此计算出编码 几乎不需要附加硬件逻辑 在单片机应用系统中被普遍使用,1. 非编码键盘的工作原理,分类 硬件编码式键盘、二维直读式键盘 独立式键盘简单键盘、行列式键盘(矩阵式键盘),独立式按键 行列式键盘,0 1 1 1,1 0 1 1,1 1 0 1,1 1 1 0,2. 按键开关去抖动问题,按键抖动 在按下和释放时,按键有抖动 按键

2、时间:100ms 前跳沿和后跳沿:20ms,抖动时间一般为510ms,A,为确保:对键的一次闭合仅作一次处理 必须:去除抖动,3. 消除抖动不良后果的方法, 硬件去抖动RC滤波电路去抖动电路简单实用,效果较好。 软件去抖动 检测到按键按下后,执行延时10ms子程序后再确认该键是否确实按下,消除抖动影响。,键处理的流程图,4. 独立式按键,处理过程 查键:扫描有否键按下,若无键按下,返回 有键按下软件去抖:延时20ms 找键 等键释放 软件去抖:延时20ms,例1,有键按下,返回键值;否则,返回0FFH,;置P1.05为输入态,JNC KE4 ;Cy=0,转INC BSJMP KE3KE4: O

3、RL P1,#3FHMOV A,P1ANL A,#3FHCJNE A,#3FH,KE4LCALL DL20 ;延时去抖ORL P1,#3FHMOV A,P1ANL A,#3FHCJNE A,#3FH,KE4MOV A,B ;返回键值CJNE A,#06H,KE5 KE5: JC KE6 ;Cy=1,(A)=6 KE6: RET,KE: ORL P1,#3FH MOV A,P1ANL A,#3FH ;P1.0P1.5CJNE A,#3FH,KE1SJMP KE7 ;无键按下KE1: LCALL DL20 ;延时去抖ORL P1,#3FH ;修改P1MOV A,P1 ;读P1ANL A,#3FHC

4、JNE A,#3FH,KE2SJMP KE7 ;误动作返回KE2: MOV B,#0 ;保存键值0 KE3: ANL A,#3FHRRC A ;(A.0)Cy,5. 矩阵式键盘,工作方式 查询 定时 每隔一段时间对键盘扫描一次 利用单片机内部的定时器的定时器溢出中断。 中断,中断方式,处理过程 键扫描 确认有无按键按下 去抖动 延时 按键的识别:确定键的行、列号 扫描算法、线反转法 键号的确定 键号=所在行号键盘列数+所在列号 等待键释放,扫描算法: 逐行置低电平,其余各行为高电平,检查各列电平的变化,如果某列线电平为低电平,即可确定此行列线交叉点处的按键被按下。 交换行列线的输出读取关系也可

5、以实现。 线反转法: 首先,将行线编程为输入线,列线编程为输出线,然后使列线线全输出低电平,读取行线电平,行线从高电平转为低电平的行线为按下按键所在行; 然后,将列线编程为输入线,行线编程为输出线,然后使行线全输出低电平,读取列线电平,列线从高电平转为低电平的列线为按下按键所在列。,例1 扫描算法,用8255A作单片机键盘接口, A口为输出口接键盘列线。C口为输入口接键盘的4条行线,8255A地址 A口:7FFCH B口:7FFDHC口:7FFEH 控制寄存器:7FFFH,子程序 KSI :判定有无闭合键的,KSI: MOV DPTR, #7FFCH ;A口地址MOV A, #00HMOVX

6、DPTR, A ;A口送00HINC DPTRINC DPTR ;C口地址MOVX A, DPTR ;读C口CPL A ANL A, #0FH ;屏蔽高四位RET,0 0 0 0 0 0 0 0,有闭合键,则(A)0 无闭合, 则(A)=0,1 1 1 1,KEY1: ACALL KSI ;检查是否有键闭合JNZ LK1 ;A非“0”则转移ACALL DIR ;显示一次LED(“延时6ms”)AJMP KEY1 LK1: ACALL DIR ;有键闭合二次延时ACALL DIR ;共12ms去抖动ACALL KSI ;再检查是否有键闭合JNZ LK2 ;有键闭合转移到LK2ACALL DIRA

7、JMP KEY1 ;无键闭合,延时6ms后转KEY1,有闭合键,则(A)0 无闭合, 则(A)=0,LK2: CLR F0 ;有键标志MOV R2, #0FEH ;扫描初值送R2MOV R4, #00H ;扫描列号送R4 LK4: MOV DPTR, # 7FFCH ;A口地址MOV A, R2MOVX DPTR, A ;扫描初值送A口INC DPTRINC DPTR ;C口地址MOVX A, DPTR ;读C口,有闭合键,则(A)0 无闭合, 则(A)=0,0 1 1 1 1 1 1 1,KEY1: ACALL KSI ;检查是否有键闭合JNZ LK1 ;A非“0”则转移ACALL DIR

8、;显示一次LED(“延时6ms”)AJMP KEY1 LK1: ACALL DIR ;有键闭合二次延时ACALL DIR ;共12ms去抖动ACALL KSI ;再检查是否有键闭合JNZ LK2 ;有键闭合转移到LK2ACALL DIRAJMP KEY1 ;无键闭合,延时6ms后转KEY1 LK2: MOV R2, #0FEH ;扫描初值送R2MOV R4, #00H ;扫描列号送R4 LK4: MOV DPTR, # 7FFCH ;A口地址MOV A, R2MOVX DPTR, A ;扫描初值送A口INC DPTRINC DPTR ;C口地址MOVX A, DPTR ;读C口,有闭合键,则(

9、A)0 无闭合, 则(A)=0,0 1 1 1 1 1 1 1,全程序,JB ACC.0, LONE ;ACC.0=1,第0行无键闭合,转LONEMOV A, #00H ;装第0行值AJMP LKP LONE: JB ACC.1, LTWO ;ACC.1=1,第1行无键闭合,转LTWOMOV A, #08H ;装第1行值AJMP LKP LTWO: JB ACC.2, LTHR ;ACC.2=1,第2行无键闭合,转LTHRMOV A, #10H ;装第2行值AJMP LKP LTHR: JB ACC.3, NEXT ;ACC.3=1,第3行无键闭合,转NEXT MOV A, #18H ;装第3

10、行值 LKP: ADD A, R4 ;计算键码PUSH ACC ;保护键码 LK3: ACALL DIR ;延时6msACALL KSI ;检查是否继续闭合,若闭合再延时JNZ LK3POP ACC ;若键起,则键码送ARET,扫描列号:R4,NEXT: INC R4 ;扫描列号加1MOV A, R2JNB ACC.7, KND ;若第7位=0,已扫完最高列则转KNDRL AMOV R2, AAJMP LK4 ;进行下一列扫描KND: SETB F0 ;无键标志RET ;扫描完毕,扫描列号:R4,例2 线反转法,KEY: MOV P1, #0F0H ;行线置低电平,列线置输入态 KEY0: M

11、OV A, P1 ;读列线数据CPL A ;数据取反,“1”有效ANL A, #0F0H ;屏蔽行线,保留列线数据MOV R1, A ;存列线数据(R1高4位)JZ GRET ;全0,无键按下,返回 KEY1: MOV P1, #0FH ;行线置输入态,列线置低电平MOV A, P1 ;读行线数据 CPL A ;数据取反,“1”有效ANL A, #0FH ;屏蔽列线,保留行线数据MOV R2, A ;存行线数据(R2低4位)JZ GRET ;全0,无键按下,返回JBC F0, WAIT ;已有消抖标志,转SETB F0 ;无消抖标志,置消抖标志 LCALL DY10ms ;调用10ms延时子程

12、序消抖SJMP KEY0 ;重读行线列线数据 GRET: RET,参考程序:,WAIT: MOV A, P1 ;等待按键释放CPL A ANL A, #0FHJNZ WAIT ;按键未释放,继续等待 KEY2: MOV A, R1 ;取列线数据(高4位)MOV R1, #03H ;取列线编号初值MOV R3, #03H ;置循环数CLR C KEY3: RLC A ;依次左移入C中JC KEY4 ;C=1,该列有键按下,(列线编号存R1)DEC R1 ;C=0,无键按下,修正列编号DJNZ R3, KEY3 ;判循环结束否?未结束继续寻找有键按下的列线 KEY4: MOV A, R2 ;取行线

13、数据(低4位)MOV R2, #00H ;置行线编号初值MOV R3, #03H ;置循环数CLR C KEY5: RRC A ;依次右移入C中JC KEY6 ;C=1,该行有键按下,(行线编号存R2)INC R2 ;C=0,无键按下,修正行线编号DJNZ R3, KEY5 ;判循环结束否?未结束继续寻找有键按下的行线,KEY6: MOV A, R2 ;取行线编号CLR C RLC A ;行编号2RLC A ;行编号4ADD A, R1 ;行编号4+列编号=按键编号KEY7: CLR C RLC A ;按键编号2RLC A ;按键编号4(LCALL+ RET共4字节)MOV DPTR, #TABJ JMP A+DPTR ;散转,执行相应键功能子程序TABJ: LCALL WORK0 ;调用执行0#键功能子程序RET LCALL WORK1 ;调用执行1#键功能子程序RET LCALL WORK15 ;调用执行15#键功能子程序RET,键盘/显示一体 8255接口图,小结,键盘接口工作原理 相应的程序设计方法,实验:键盘扫描显示,74LS245,双向总线收发器,74LS273,地址锁存器,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报