![s5-4键盘管理与程序设计PPT课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a719552e-5d00-456c-b549-4014b1f9bc06/a719552e-5d00-456c-b549-4014b1f9bc061.gif)
![s5-4键盘管理与程序设计PPT课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a719552e-5d00-456c-b549-4014b1f9bc06/a719552e-5d00-456c-b549-4014b1f9bc062.gif)
![s5-4键盘管理与程序设计PPT课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a719552e-5d00-456c-b549-4014b1f9bc06/a719552e-5d00-456c-b549-4014b1f9bc063.gif)
![s5-4键盘管理与程序设计PPT课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a719552e-5d00-456c-b549-4014b1f9bc06/a719552e-5d00-456c-b549-4014b1f9bc064.gif)
![s5-4键盘管理与程序设计PPT课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/a719552e-5d00-456c-b549-4014b1f9bc06/a719552e-5d00-456c-b549-4014b1f9bc065.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、键盘管理与程序设计 按键的分类按结构和使用方法的不同,可将按键分为两大类:独立按键和矩阵键盘。按结构和使用方法的不同,可将按键分为两大类:独立按键和矩阵键盘。矩阵键盘矩阵键盘 独立按键独立按键 直接用直接用I/O控制,每个按键独占一个控制,每个按键独占一个I/O特点特点由行线和列线组成,按键位于交叉点上由行线和列线组成,按键位于交叉点上互不影响,配置灵活,结构简单互不影响,配置灵活,结构简单优点优点组合灵活,按键数量较多时,节省组合灵活,按键数量较多时,节省I/O按键多时,按键多时,I/O口浪费严重口浪费严重缺点缺点区分和判断按键动作的方法比较复杂区分和判断按键动作的方法比较复杂按键不超过按键
2、不超过8只时只时适用适用场合场合按键数量较多时按键数量较多时 目 录 独立键盘与消抖独立键盘与消抖 矩阵键盘与扫描方法矩阵键盘与扫描方法 逐行逐列扫描法逐行逐列扫描法 S1VccP0.7R1 10KS2P2.3(a) (b) 独立按键的常用接法 80C51单片机的两种常见的独立按键接法:单片机的两种常见的独立按键接法:I/O口为开漏结构时,口为开漏结构时,需需外接上拉电阻外接上拉电阻,如,如51的的P0口口I/O内部自带弱上拉电阻内部自带弱上拉电阻时,可时,可直接相连直接相连,如,如51的的P1、P2、P3口口2021/3/95+E0V未按下时未按下时为高电平为高电平刚释放时刚释放时出现抖动出
3、现抖动刚按下时刚按下时出现抖动出现抖动按下稳定按下稳定后为低电平后为低电平实际效果实际效果窄脉冲干扰窄脉冲干扰 刚释放时刚释放时出现抖动出现抖动 按键的“抖动”现象按键的结构:按键的结构:和电路图中的符号极为相似,它是靠镀银的铜合金簧片在和电路图中的符号极为相似,它是靠镀银的铜合金簧片在按键柄的挤压下接触而导通,松开后簧片恢复原状而脱离接触断开。按键柄的挤压下接触而导通,松开后簧片恢复原状而脱离接触断开。S1VccP0.7R1 10K“0”“1”理想效果理想效果按键的抖动:按键的抖动:按键在人手指按压按键在人手指按压/释放簧片的瞬间,因接触不良而产生的释放簧片的瞬间,因接触不良而产生的反复跳动
4、现象。反复跳动现象。“抖动抖动”的脉冲宽度一般在几十到几百微秒,也可能达到毫秒级,的脉冲宽度一般在几十到几百微秒,也可能达到毫秒级,若加在运若加在运行速度很快的数字电路中将会产生很大的影响行速度很快的数字电路中将会产生很大的影响。比如将发生。比如将发生“抖动抖动”现象的按键作现象的按键作为数字电路的时钟输入,则每按一次键都会产生一串极不稳定的脉冲。为数字电路的时钟输入,则每按一次键都会产生一串极不稳定的脉冲。abcdefghcom1 com2 com3 com4 按键的“抖动”测试原理编程思路:编程思路:用按键模拟计数输入信号,用用按键模拟计数输入信号,用4位位LED数码管显示计数值。数码管显
5、示计数值。实验现象:在理想效果下,每按一次键,实验现象:在理想效果下,每按一次键,I/O口仅检测到口仅检测到1次高次高/低电平转换,计数低电平转换,计数加加1;在实际效果中,由于;在实际效果中,由于“抖动抖动”存在,每按一次键,存在,每按一次键, I/O口检测到口检测到多次电平转换,计数好几次。多次电平转换,计数好几次。SVccP3.4R10Kabcdefghcom1 com2 com3 com4 理想效果:理想效果: 实际效果:实际效果: 按键的“抖动”测试程序存放存放4位计数值位计数值0 x7A 0 x7B 地址地址 数据数据 0 x7C 0 x7D 0 x7E 0 x7F 存放将计数值转
6、换成存放将计数值转换成数码管显示的字符码数码管显示的字符码0 x7C 0 x7D 0 x7E 0 x7F ORG 0000HStart:MOV0 x7A,#0 x00;计数器高计数器高2位寄存器位寄存器0 x7A清清0MOV0 x7B,#0 x00;计数器低计数器低2位寄存器位寄存器0 x7B清清0LD_Data: MOVR0,#0 x7C;取显示缓冲区首地址到指针取显示缓冲区首地址到指针R0MOVA,0 x7A;取计数器高取计数器高2位数据位数据ACALL Split_Display_Byte;将数据字符送显示缓冲区前将数据字符送显示缓冲区前2个单元个单元MOVA,0 x7B;取计数器低取计
7、数器低2位数据位数据ACALL Split_Display_Byte;将数据字符送显示缓冲区后将数据字符送显示缓冲区后2个单元个单元0 x00 0 x00 高高4位转换的字符码位转换的字符码低低4位转换的字符码位转换的字符码0 xC0 0 xC0 0 xC0 0 xC0 Display_Loop:ACALLScan_Display_Value;调用显示扫描子程序调用显示扫描子程序 JBP3.4, Display_Loop ;P3.4是否为是否为0?键未按下,转?键未按下,转Display_LoopMOV A, #0 x01 ;A取加数取加数1 ADDA, 0 x7B;计数器计数器+1DAA;1
8、0进制修正指令进制修正指令 MOV 0 x7B,A;回存低回存低2位的运算结果到位的运算结果到0 x7B CLRA ;清清0累加器累加器AADDC A,0 x7A;带进位加法加计数器高带进位加法加计数器高2位数据位数据DAAMOV0 x7A,A;回存高回存高2位的运算结果到位的运算结果到0 x7AJNBP3.4, $;检查按键是否松开,检查按键是否松开,P3.4=1 本地循环本地循环AJMP LD_Data;按键松开,转按键松开,转LD_Dataa b c d e f g hcom1 com2 com3 com4 数码管显示:数码管显示:判断是否有按键按下判断是否有按键按下0 x01 按键的“
9、抖动”测试程序流程图 数码管显示计数数码管显示计数流程图流程图 P3.4=0?N 计数器清计数器清0计数值转换成字符码计数值转换成字符码计数器计数器+1,调整,调整10进制数进制数P3.4=1?N Y Y 2021/3/99+EKR 110KY+E0VY:td启动延时启动延时停止延时停止延时 消除“抖动”的方法消除消除“抖动抖动”的方法的方法:硬件消抖和软件消抖两大类。:硬件消抖和软件消抖两大类。常见的硬件消抖方法是:低通滤波施密特整形以及常见的硬件消抖方法是:低通滤波施密特整形以及RS触发器,而软件消抖触发器,而软件消抖方法就是插入适当的延时。方法就是插入适当的延时。复习数字电路相关复习数字
10、电路相关内容内容软件消抖:软件消抖:在按键按下的瞬间启动定时器开始延时,延时在按键按下的瞬间启动定时器开始延时,延时td时间后再判断按键是否仍然时间后再判断按键是否仍然按下,若仍按下,则本次按键有效;否则本次按键无效。按下,若仍按下,则本次按键有效;否则本次按键无效。思考题:思考题: 如何增加延时消除如何增加延时消除“抖动抖动”,请尝试修改前面的程序。,请尝试修改前面的程序。 如果认真观察实验,一定会发现前面的程序有一个小小的不足,就是在按如果认真观察实验,一定会发现前面的程序有一个小小的不足,就是在按键按下的瞬间显示器会熄灭,请分析原因。键按下的瞬间显示器会熄灭,请分析原因。 目 录 独立键
11、盘与消抖独立键盘与消抖 矩阵键盘与扫描方法矩阵键盘与扫描方法 逐行逐列扫描法逐行逐列扫描法 矩阵键盘工作原理 4 4 矩阵键盘矩阵键盘 行行线线 列列 线线 按键的两端分别接按键的两端分别接在行线和列线上在行线和列线上矩阵键盘:矩阵键盘:用尽可能少的用尽可能少的I/O口口去管理较多的按键。去管理较多的按键。 最大的优点是组合灵活,假如最大的优点是组合灵活,假如有有16个个I/O可用作键盘电路,可以可用作键盘电路,可以将它接成将它接成610、511或或88等等许多种接法。当然,使用效率最许多种接法。当然,使用效率最高的是高的是88的接法,最多可以接的接法,最多可以接64个按键。个按键。 矩阵连接
12、法要区分和判断按键矩阵连接法要区分和判断按键动作的方法比较复杂,所以这种动作的方法比较复杂,所以这种接法一般只用在计算机技术中。接法一般只用在计算机技术中。 目 录 独立键盘与消抖独立键盘与消抖 矩阵键盘与扫描方法矩阵键盘与扫描方法 逐行逐列扫描法逐行逐列扫描法 逐行扫描实验电路TinyView的的2 4 矩阵键盘矩阵键盘 行行线线 列列线线 KC1KC4并接在并接在com1com4上,与上,与P3.2P3.5相连相连与与P3.6、P3.7相连相连 I/O口复用TinyView的的2 4 矩阵键盘矩阵键盘 行行线线 列列线线 与数码管的位选控与数码管的位选控制端制端复用复用I/O口复用:口复用
13、:将将同一个(或组)同一个(或组)I/O口用于口用于2种不同作用的种不同作用的2个器件上。个器件上。能够复用的原因:能够复用的原因:因为计算机是因为计算机是一种一种“串行串行”执行程序的机器,是一条执行程序的机器,是一条接一条的执行指令,而不是全部指令一接一条的执行指令,而不是全部指令一起上。利用这种在时间上的可区分性使起上。利用这种在时间上的可区分性使其在不同的时间管理不同的部件。其在不同的时间管理不同的部件。这种复用是有条件的这种复用是有条件的,对于需要保,对于需要保持确定状态的控制口(如控制一个继持确定状态的控制口(如控制一个继电器开关的端口)是没办法复用的。电器开关的端口)是没办法复用
14、的。 逐行逐列扫描法逐行扫描键盘的方法逐行扫描键盘的方法选择选择KR1和和KR2为输入,它们为输入,它们的常态是电平的常态是电平“1”。当没有按键按。当没有按键按下时,下时,KR1和和KR2保持常态。当保持常态。当KY1按下时,按下时,KR1在在KC1输出输出“0”电平时得到电平时得到“0”信号,而信号,而KR2在不在不受影响仍然保持常态。受影响仍然保持常态。2 4 矩阵键盘矩阵键盘 行行线线 列列线线 单片机的输出单片机的输出单片机的输入单片机的输入利用这种必须配合利用这种必须配合KC1KC4的输出情况才能使的输出情况才能使KR1或或KR2得到得到“0”信号的特点,人们发明出键盘信号的特点,
15、人们发明出键盘的逐行扫描法。的逐行扫描法。即每次只有一根列线输出即每次只有一根列线输出“0”,然后逐行扫描读入行信号,通过行然后逐行扫描读入行信号,通过行信号来判断键盘所有按键的状态。信号来判断键盘所有按键的状态。1 1111101111 10 0逐列扫描键盘的方法:逐列扫描键盘的方法:把行和列的输把行和列的输入输出颠倒,其原理和操作方法与逐行入输出颠倒,其原理和操作方法与逐行扫描键盘的方法一致。扫描键盘的方法一致。逐个扫描键盘的方法:逐个扫描键盘的方法: 逐行扫描读键子程序代码Scan_Key:MOV P1, #0 xFF;关闭所有段选,阻止扫描键盘对显示的影响关闭所有段选,阻止扫描键盘对显
16、示的影响MOV R6, #0 x04;设定键盘计数器为设定键盘计数器为4,即循环,即循环4次次 MOV R5, #0 xFB 取第一位扫描控制数据取第一位扫描控制数据Scan_KLP:MOV P3, R5;送位选数据到位选口送位选数据到位选口SETB P3.6;设置采样口设置采样口P3.6进入采样状态进入采样状态SETB P3.7;设置采样口设置采样口P3.7进入采样状态进入采样状态JNBP3.6, Scan_KBK1;检查检查KR1为为0否,是否,是,转转Scan_KBK1JNBP3.7, Scan_KBK2 ;检查检查KR2为为0否,是否,是,转转Scan_KBK2MOV A, R5;位选
17、暂存器到位选暂存器到ARLA;A循环左移使下一只位选输出循环左移使下一只位选输出0电平电平MOV R5, A;A返存回位选暂存器返存回位选暂存器DJNZR6, Scan_KLP;键盘计数器减键盘计数器减1,非,非0,返回,返回Scan_KLPScan_KBK1: MOVA, R6;A取位选计数器数值取位选计数器数值RETScan_KBK2: MOVA, R6;A取位选计数器数值取位选计数器数值ADDA, #4RETP1:数码管段选控制端,因数码管位选与键:数码管段选控制端,因数码管位选与键盘列控制线复用,故在此先关闭所有段盘列控制线复用,故在此先关闭所有段选,阻止扫描键盘对显示的影响选,阻止扫
18、描键盘对显示的影响。R6:键盘计数器,:键盘计数器,4:4列,单次逐行扫描到列,单次逐行扫描到所有按键循环的次数。所有按键循环的次数。R5:位选:位选/列线控制数据,控制每次只有一根列线控制数据,控制每次只有一根列线为列线为“0”。P1、R6、R5初始化初始化KR1、KR2行扫行扫描口置常态描口置常态“1”为为0则有键按下,跳转;则有键按下,跳转;否则继续往下执行程序否则继续往下执行程序左移,更换为左移,更换为“0”的位的位选选/列线列线KR1所在行有按键按下时,将所在行有按键按下时,将R6的值传的值传送给送给A,并退出子程序,并退出子程序KR2所在行有按键按下时,将所在行有按键按下时,将R6
19、的值传的值传送给送给A,A统一加统一加4后退出子程序后退出子程序R6-1为为0,继续往下执行,继续往下执行程序;不为程序;不为0则跳转则跳转实现功能:实现功能:单次逐行扫描单次逐行扫描8个按键。当个按键。当有键按下时,程序立即跳出循环,输出有键按下时,程序立即跳出循环,输出参数参数A不为不为0;当无键按下时,;当无键按下时,R6被减为被减为0并退出循环,输出参数并退出循环,输出参数A=0。按键扫描顺序:按键扫描顺序:先判断先判断KY1是否按下?如是否按下?如果是,果是,R6为为4传给传给A并退出子程序;如果不是,并退出子程序;如果不是,接着判断接着判断KY5是否按下;如果是,是否按下;如果是,
20、R6为为4传给传给A,A加加4后退出子程序;如果不是,则接着后退出子程序;如果不是,则接着判断判断KY2是否按下是否按下依此类推,依此类推,KY1KY5 KY2 KY6 KY3 KY7 KY4 KY8输出参数:输出参数:无键按下,无键按下,A=0;KY1按下,按下,A=4;KY5按下,按下,A=8;KY2按下,按下,A=3;KY6按下,按下,A=7;KY3按下,按下,A=2; KY7按下,按下,A=6;KY4按下,按下,A=1; KY8按下,按下,A=5 逐行扫描读键子程序流程图给给P1、R6、R5赋初值赋初值送位选数据到位选口送位选数据到位选口P3P3.6、P3.7置初态置初态1P3.6=0
21、?P3.7=0?位选数据左移位选数据左移1位位R6-1=0?将将R6的值传给的值传给A退出子程序退出子程序将将R6的值传给的值传给A(A)(A)+4退出子程序退出子程序Y N N Y Y N 流程图流程图 逐行扫描读键程序范例程序流程:程序流程: 首先对四位计数器赋初值首先对四位计数器赋初值0,并进行显示循环,在循环中运行键盘程序随时检查按键状态。,并进行显示循环,在循环中运行键盘程序随时检查按键状态。 当无键按下时,程序保持循环状态。当无键按下时,程序保持循环状态。 当有键按下时,先判断是否是当有键按下时,先判断是否是KY1按下?如果是,则计数器加按下?如果是,则计数器加1。如果不是,则转而
22、检查。如果不是,则转而检查是否是是否是KY8按下?如果是,计数器减按下?如果是,计数器减1。如果不是,则程序不做任何操作返回重来。如果不是,则程序不做任何操作返回重来。ORG0000HStart:MOV0 x7A,#0 x00;清清0计数器高计数器高2位寄存器位寄存器0 x7AMOV0 x7B,#0 x00;清清0计数器低计数器低2位寄存器位寄存器0 x7BLD_Data: ACALL L_DisplayBuf;将将0 x7A、0 x7B数字字符调入显示缓冲区数字字符调入显示缓冲区Display_Loop: ACALL Scan_Display_Value;调用显示扫描调用显示扫描子子程序程序
23、 ACALL Scan_Key ;调用键盘扫描调用键盘扫描子子程序程序JZDisplay_Loop ;无键按下,转无键按下,转Display_Loop重复显示重复显示4位计数器清位计数器清04位计数值转成数字字位计数值转成数字字符并载入显示缓冲区符并载入显示缓冲区数码管显示数码管显示4位计数值位计数值单次逐行扫描按键,无键按下,单次逐行扫描按键,无键按下,A为为0;有键按下,;有键按下,A不为不为0A为为0,跳转;,跳转;A不为不为0,继续往下执行程序继续往下执行程序 逐行扫描读键程序范例程序流程:程序流程: 首先对四位计数器赋初值首先对四位计数器赋初值0,并进行显示循环,在循环中运行键盘程序
24、随时检查按键状态。,并进行显示循环,在循环中运行键盘程序随时检查按键状态。 当无键按下时,程序保持循环状态。当无键按下时,程序保持循环状态。 当有键按下时,先判断是否是当有键按下时,先判断是否是KY1按下?如果是,则计数器加按下?如果是,则计数器加1。如果不是,则转而检查。如果不是,则转而检查是否是是否是KY8按下?如果是,计数器减按下?如果是,计数器减1。如果不是,则程序不做任何操作返回重来。如果不是,则程序不做任何操作返回重来。CJNEA, #0 x04, Next_Key ;是是KY1键按下键按下吗?不是吗?不是,则则转转Next_Key; 加加1计数程序计数程序 MOV A, 0 x7
25、B ;取计数器取计数器的的低低2位数值位数值 ADDA, #0 x01 ;数值加数值加1DAA ;调整调整10进制进制数数 MOV 0 x7B, A;将低将低2位运算结果回存到位运算结果回存到0 x7B MOV A, 0 x7A ;取计数器取计数器的的高高2位数值位数值ADDC A,#0 x00;带进位加法加带进位加法加0,如有进位高,如有进位高2位加位加1DAA;调整调整10进制进制数数MOV0 x7A, A;将高将高2位的运算结果回存位的运算结果回存0 x7AAJMP Key_Back;转转Key_Back键返回处理程序键返回处理程序A为为0 x04,KY1按下,继续往下按下,继续往下执行
26、程序;不为执行程序;不为0 x04,跳转,跳转4位位计计数数器器加加1 逐行扫描读键程序范例程序流程:程序流程: 首先对四位计数器赋初值首先对四位计数器赋初值0,并进行显示循环,在循环中运行键盘程序随时检查按键状态。,并进行显示循环,在循环中运行键盘程序随时检查按键状态。 当无键按下时,程序保持循环状态。当无键按下时,程序保持循环状态。 当有键按下时,先判断是否是当有键按下时,先判断是否是KY1按下?如果是,则计数器加按下?如果是,则计数器加1。如果不是,则转而检查。如果不是,则转而检查是否是是否是KY8按下?如果是,计数器减按下?如果是,计数器减1。如果不是,则程序不做任何操作返回重来。如果
27、不是,则程序不做任何操作返回重来。Next_Key :CJNEA,#0 x05,Display_Loop ;是是KY8键按下吗?否,返回键按下吗?否,返回Display_Loop; 减减1计数程序计数程序 MOV A, 0 x7B;取计数器低取计数器低2位数值位数值 ADDA, #0 x99 ;加加99,相当于减,相当于减1操作操作DAA ;进行进行10进制修正进制修正 MOV 0 x7B, A;将低将低2位运算结果回存到位运算结果回存到0 x7BJC Key_Back;是否有溢出,是,则不借位是否有溢出,是,则不借位MOV A, 0 x7A;取计数器高取计数器高2位数值位数值ADD A, #
28、0 x99 ;加加99,相当于减,相当于减1操作操作DA A;10进制修正指令进制修正指令MOV0 x7A, A;将高将高2位的运算结果回存位的运算结果回存0 x7AA为为0 x05,KY8按下,继续往下按下,继续往下执行程序;不为执行程序;不为0 x05,跳转,跳转4位位计计数数器器减减1 减减1操作:操作: 因为因为“DA A”指令只对加法指令起作用,指令只对加法指令起作用,所以程序以加所以程序以加99来处理减来处理减1。 对于对于8位寄存器,值不为位寄存器,值不为0时,加时,加99后会产后会产生进位,生进位,8位寄存器被减位寄存器被减1,如,如6+99=105,8位寄存器中的值为位寄存器
29、中的值为5,实现减,实现减1。 值为值为0时,加时,加99后后8位寄存器中的值变成位寄存器中的值变成99,不产生进位,需要向高位借位。不产生进位,需要向高位借位。 逐行扫描读键程序范例程序流程:程序流程: 首先对四位计数器赋初值首先对四位计数器赋初值0,并进行显示循环,在循环中运行键盘程序随时检查按键状态。,并进行显示循环,在循环中运行键盘程序随时检查按键状态。 当无键按下时,程序保持循环状态。当无键按下时,程序保持循环状态。 当有键按下时,先判断是否是当有键按下时,先判断是否是KY1按下?如果是,则计数器加按下?如果是,则计数器加1。如果不是,则转而检查。如果不是,则转而检查是否是是否是KY
30、8按下?如果是,计数器减按下?如果是,计数器减1。如果不是,则程序不做任何操作返回重来。如果不是,则程序不做任何操作返回重来。Key_Back: ACALL L_DisplayBuf ;将将0 x7A、0 x7B数字字符调入显示缓冲区数字字符调入显示缓冲区ACALL Scan_Display_Value;调用显示扫描程序调用显示扫描程序ACALL Scan_Key ;调用键盘扫描程序调用键盘扫描程序JNZ Key_Back;按键是否松开按键是否松开?否,则?否,则转转Key_Back继续检查继续检查SJMP Display_Loop ;有,返有,返Display_Loop 在检测按键是否松开的
31、循环中增加显在检测按键是否松开的循环中增加显示扫描,即避免了显示器的熄灭,又示扫描,即避免了显示器的熄灭,又增加了防按键增加了防按键“抖动抖动”的延时的延时 “线反转法”按键检测技术 问题提出:问题提出:当这个矩阵扩大到一定数目时,逐行扫描的方法会很费时,如果需要对当这个矩阵扩大到一定数目时,逐行扫描的方法会很费时,如果需要对2个以上的按键个以上的按键“同时同时”操作时,则处理起来更麻烦。操作时,则处理起来更麻烦。解决方法:解决方法:按键的处理程序并非只有逐行扫描法这一种,如:按键的处理程序并非只有逐行扫描法这一种,如:“线反转法线反转法”按键检按键检测技术,也是矩阵键盘应用中的一种经典程序处
32、理方法。测技术,也是矩阵键盘应用中的一种经典程序处理方法。TinyView的的2 4 矩阵键盘矩阵键盘 线反转法:线反转法:将矩阵电路行、列的将矩阵电路行、列的I/O属性进行调换处理。矩阵电路的行、列线必须属性进行调换处理。矩阵电路的行、列线必须一组输出、一组输入,而线反转的操作方法是多进行一次这种操作。一组输出、一组输入,而线反转的操作方法是多进行一次这种操作。具体实现:具体实现:假设有假设有KY1、KY3、KY8这这3个按键同时按下。个按键同时按下。TinyView的的2 4 矩阵键盘矩阵键盘 第一步:第一步:输入输入 输出输出 输出输出 输入输入 11111 11 1000000第二步:
33、线反转第二步:线反转 1 11 1111100101由由KR1和和KR2可推断出:两行都有按键按下。可推断出:两行都有按键按下。 结合第一步的推断,可知结合第一步的推断,可知KY1和和KY3按下;按下; 结合第一步的推断,可知结合第一步的推断,可知KY8按下。按下。01110线反转法不但采样速度快,而且键盘信息全面,但它对硬件有一定的要求:行线反转法不但采样速度快,而且键盘信息全面,但它对硬件有一定的要求:行线和列线都必须是可反转的,既可配置为输出,又可配置成输入。此外,行线和列线和列线都必须是可反转的,既可配置为输出,又可配置成输入。此外,行线和列线的分组最好在线的分组最好在2个不同的操作口
34、上,比如,个不同的操作口上,比如,80C51的的P1和和P3。“线反转法”按键检测应用AT89C52AT89C52P1.0 P1.0 P1.1 P1.1 P1.2 P1.2 P1.3P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7+5v0行行1行行2行行3行行0列列1列列2列列3列列 由行线输出全由行线输出全“0”0”,读入列,读入列线,判有无键按下。线,判有无键按下。 若有键按下若有键按下, ,再将读入的列再将读入的列 线值由列线输出线值由列线输出, ,读进行线的值。读进行线的值。 第一步读进的列线值与第二第一步读进的列线值与第二步读进的行线值相加,从而得到步读进的行线值相加,从而得到代表此键的唯一的特征值。代表此键的唯一的特征值。AT89C52AT89C52P1.0 P1.0 P1.1 P1.1 P1.2 P1.2 P1.3P1.3 P1.4 P1.4 P1.5 P1.5 P1.6 P1.6 P1.7P1.7+5vMOV P1MOV P1,#0F0H ;#0F0H ;低位送全低位送全“0”0” MOV A MOV A, P1 ;P1 ;读进读进P1P1口电平口电平 ANL A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高性能电源项目融资渠道探索
- 6 有多少浪费本可避免(说课稿)2023-2024学年统编版道德与法治四年级下册
- 洗煤厂机电承包合同(2篇)
- 水泥瓦房顶施工合同(2篇)
- 法律合同范本(2篇)
- 2024-2025学年新教材高中物理 第4章 第4节 力学单位制说课稿 新人教版必修第一册001
- 二零二五年度临时教师聘用合同(职业规划指导)2篇
- 2025年度土地规划编制测量服务合同协议
- 二零二五年度高档住宅小区车位购置及物业管理合作协议
- 2024-2025年高中化学 专题3 第4单元 分子间作用力 分子晶体说课稿 苏教版选修3
- 重建成长型思维课件
- 电捕焦油器火灾爆炸事故分析
- 质量问题分析及措施报告
- 汽修厂安全风险分级管控清单
- 现代通信原理与技术(第五版)PPT全套完整教学课件
- 病例展示(皮肤科)
- GB/T 39750-2021光伏发电系统直流电弧保护技术要求
- DB31T 685-2019 养老机构设施与服务要求
- 燕子山风电场项目安全预评价报告
- 高一英语课本必修1各单元重点短语
- 完整版金属学与热处理课件
评论
0/150
提交评论