s键盘管理与程序设计剖析.pptxVIP

  • 2
  • 0
  • 约7.32千字
  • 约 26页
  • 2023-05-12 发布于上海
  • 举报
s键盘管理与程序设计剖析 第1页/共26页 按键的分类 按结构和使用方法的不同,可将按键分为两大类:独立按键和矩阵键盘。 第2页/共26页 目 录 第3页/共26页 独立按键的常用接法 80C51单片机的两种常见的独立按键接法: I/O口为开漏结构时,需外接上拉电阻,如51的P0口 I/O内部自带弱上拉电阻时,可直接相连,如51的P1、P2、P3口 第4页/共26页 未按下时 为高电平 刚释放时 出现抖动 刚按下时 出现抖动 按下稳定 后为低电平 刚释放时 出现抖动 按键的“抖动”现象 按键的结构:和电路图中的符号极为相似,它是靠镀银的铜合金簧片在按键柄的挤压下接触而导通,松开后簧片恢复原状而脱离接触断开。 按键的抖动:按键在人手指按压/释放簧片的瞬间,因接触不良而产生的反复跳动现象。 “抖动”的脉冲宽度一般在几十到几百微秒,也可能达到毫秒级,若加在运行速度很快的数字电路中将会产生很大的影响。比如将发生“抖动”现象的按键作为数字电路的时钟输入,则每按一次键都会产生一串极不稳定的脉冲。 第5页/共26页 按键的“抖动”测试原理 编程思路:用按键模拟计数输入信号,用4位LED数码管显示计数值。 实验现象:在理想效果下,每按一次键,I/O口仅检测到1次高/低电平转换,计数加1;在实际效果中,由于“抖动”存在,每按一次键, I/O口检测到多次电平转换,计数好几次。 理想效果: 实际效果: 第6页/共26页 按键的“抖动”测试程序 存放4位计数值 0x7A 0x7B 地址 数据 存放将计数值转换成数码管显示的字符码 ORG 0000H Start: MOV 0x7A,#0x00 ;计数器高2位寄存器0x7A清0 MOV 0x7B,#0x00 ;计数器低2位寄存器0x7B清0 LD_Data: MOV R0,#0x7C ;取显示缓冲区首地址到指针R0 MOV A,0x7A ;取计数器高2位数据 ACALL Split_Display_Byte ;将数据字符送显示缓冲区前2个单元 MOV A,0x7B ;取计数器低2位数据 ACALL Split_Display_Byte ;将数据字符送显示缓冲区后2个单元 0x00 0x00 高4位转换的字符码 低4位转换的字符码 0xC0 0xC0 0xC0 0xC0 Display_Loop: ACALL Scan_Display_Value;调用显示扫描子程序 JB P3.4, Display_Loop ;P3.4是否为0?键未按下,转Display_Loop MOV A, #0x01 ;A取加数1 ADD A, 0x7B ;计数器+1 DA A ;10进制修正指令 MOV 0x7B,A ;回存低2位的运算结果到0x7B CLR A ;清0累加器A ADDC A,0x7A ;带进位加法加计数器高2位数据 DA A MOV 0x7A,A ;回存高2位的运算结果到0x7A JNB P3.4, $ ;检查按键是否松开,P3.4=1 本地循环 AJMP LD_Data ;按键松开,转LD_Data 数码管显示: 0x01 第7页/共26页 按键的“抖动”测试程序流程图 第8页/共26页 Y 启动延时 停止延时 消除“抖动”的方法 消除“抖动”的方法:硬件消抖和软件消抖两大类。 常见的硬件消抖方法是:低通滤波+施密特整形以及RS触发器,而软件消抖方法就是插入适当的延时。 软件消抖: 在按键按下的瞬间启动定时器开始延时,延时td时间后再判断按键是否仍然按下,若仍按下,则本次按键有效;否则本次按键无效。 思考题: ① 如何增加延时消除“抖动”,请尝试修改前面的程序。 ② 如果认真观察实验,一定会发现前面的程序有一个小小的不足,就是在按键按下的瞬间显示器会熄灭,请分析原因。 第9页/共26页 目 录 第10页/共26页 矩阵键盘工作原理 行 线 列 线 按键的两端分别接在行线和列线上 矩阵键盘:用尽可能少的I/O口去管理较多的按键。  最大的优点是组合灵活,假如有16个I/O可用作键盘电路,可以将它接成6×10、5×11或8×8等许多种接法。当然,使用效率最高的是8×8的接法,最多可以接64个按键。  矩阵连接法要区分和判断按键动作的方法比较复杂,所以这种接法一般只用在计算机技术中。 第11页/共26页 目 录 第12页/共26页 逐行扫描实验电路 Tiny

文档评论(0)

1亿VIP精品文档

相关文档