




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 1 第第5 5章章 MCS-51MCS-51单片机外部单片机外部 并行口扩展技术并行口扩展技术 5.4.2 5.4.2 键盘接口工作原理键盘接口工作原理 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 2 5.4.2 5.4.2 键盘接口工作原理键盘接口工作原理 p键盘键盘 n人机交互的一个重要工具人机交互的一个重要工具 n两种基本类型两种基本类型 p编码键盘编码键盘 除了按键以外,还包括产生键码的除了按键以外,还包括产生键码的硬件硬件电路电路 使用方便、价格较高使用方便、价格较高 p非编码非编码键盘键盘 靠靠
2、软件软件来识别键盘上的闭合键,由此计算出编码来识别键盘上的闭合键,由此计算出编码 几乎不需要附加硬件逻辑几乎不需要附加硬件逻辑 在单片机应用系统中被普遍使用在单片机应用系统中被普遍使用 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 3 1.1. 非编码非编码键盘键盘的工作原理的工作原理 p分类分类 n硬件编码式键盘、二维直读式键盘硬件编码式键盘、二维直读式键盘 n独立式键盘独立式键盘简单键盘简单键盘、行列式键盘(矩阵式键盘)、行列式键盘(矩阵式键盘) 独立式按键独立式按键 行列式键盘行列式键盘 0 1 1 11 0 1 11 1 0 11 1 1 0 MCS-51单片机外部
3、并行口扩展技术-542 键盘 接口工作原理 4 2. 2. 按键开关去抖动问题按键开关去抖动问题 p按键抖动按键抖动 n在按下和释放时,按键有抖动在按下和释放时,按键有抖动 n按键时间:按键时间:100ms100ms n前跳沿和后跳沿:前跳沿和后跳沿:20ms20ms,抖动时间一般为抖动时间一般为5 510ms10ms A 为确保:对键的为确保:对键的一次闭合一次闭合仅作仅作一次处理一次处理 必须:必须:去除抖动去除抖动 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 5 3. 3. 消除抖动不良后果的方法消除抖动不良后果的方法 p 硬件去抖动硬件去抖动 nRCRC滤波电路去
4、抖动电路简单实用,效果较好。滤波电路去抖动电路简单实用,效果较好。 p 软件去抖动软件去抖动 n检测到按键按下后,执行检测到按键按下后,执行延时延时10ms10ms子程序后子程序后再确认再确认该该 键是否确实按下,消除抖动影响。键是否确实按下,消除抖动影响。 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 6 键处理的流程图键处理的流程图 开始 键扫描 有无键按下 去抖动 键码计算 键释放 JMPA+DPTR 00#键 处理程序 01#键 处理程序 #键 处理程序 nn#键 处理程序 A=00HA=01HA=HA=nnH MCS-51单片机外部并行口扩展技术-542 键盘 接
5、口工作原理 7 4. 4. 独立式按键独立式按键 p处理过程处理过程 n查键:扫描有否键按下,若无键按下,返回查键:扫描有否键按下,若无键按下,返回 n有键按下软件去抖:延时有键按下软件去抖:延时20ms20ms n找键找键 n等键释放等键释放 n软件去抖:延时软件去抖:延时20ms20ms MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 8 例例11 p有键按下,返回键值;否则,返回有键按下,返回键值;否则,返回0FFH0FFH P10 P11 8051 K1 P12 P13 P14 P15 K2 K3 K4 K5 K6 +5V MCS-51单片机外部并行口扩展技术-542
6、 键盘 接口工作原理 9 ; ;准备输入准备输入 等等 放放 去去 抖抖 查查 键键 KE2:MOVB,#0 ;保存键值保存键值0 KE3:ANLA,#3FH RRCA;(A.0)Cy JNCKE4 INCB SJMPKE3 KE4:ORLP1,#3FH MOVA,P1 ANLA,#3FH CJNEA,#3FH,KE4 MOVA,B ;返回键值返回键值 CJNEA,#06H,KE5 KE5:JCKE6 ;Cy=1,(A)=6 KE6:RET KE:ORLP1,#3FH MOVA,P1 ANLA,#3FH ;P1.0P1.5 CJNEA,#3FH,KE1 SJMPKE7 ;无键按下无键按下 KE
7、1:LCALL DL20 ;延时去抖延时去抖 ORLP1,#3FH ;修改修改P1 MOVA,P1 ;读读P1 ANLA,#3FH CJNEA,#3FH,KE2 SJMPKE7 ;误动作返回误动作返回 找找 键键 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 10 5. 5. 矩阵式键盘矩阵式键盘 p工作方式工作方式 n查询查询 n定时定时 p每隔一段时间对键盘扫描一次每隔一段时间对键盘扫描一次 利用单片机内部的定时器的定时器溢出中断。利用单片机内部的定时器的定时器溢出中断。 n中断中断 中断方式中断方式 0000 1 1 1 1 MCS-51单片机外部并行口扩展技术-54
8、2 键盘 接口工作原理 11 p处理过程处理过程 n键扫描键扫描 p确认有无按键按下确认有无按键按下 n去抖动去抖动 p延时延时 n按键的识别:确定键的行、列号按键的识别:确定键的行、列号 p扫描算法扫描算法、线反转法、线反转法 n键号的确定键号的确定 p键号键号= =所在行号所在行号键盘列数键盘列数+ +所在列号所在列号 n等待键释放等待键释放 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 12 p扫描算法:扫描算法: n逐行逐行置低电平,其余各行为高电平,检查各列电平的置低电平,其余各行为高电平,检查各列电平的 变化,如果某列线电平为低电平,即可确定此行列线变化,如果某
9、列线电平为低电平,即可确定此行列线 交叉点交叉点处的按键被按下。处的按键被按下。 n交换行列线的输出读取关系也可以实现。交换行列线的输出读取关系也可以实现。 p线反转法:线反转法: n首先,将行线编程为输入线,列线编程为输出线,然首先,将行线编程为输入线,列线编程为输出线,然 后使后使列线线全输出低电平列线线全输出低电平,读取行线电平读取行线电平,行线从高行线从高 电平转为低电平的行线为按下按键所在行电平转为低电平的行线为按下按键所在行; n然后,将列线编程为输入线,行线编程为输出线,然然后,将列线编程为输入线,行线编程为输出线,然 后使后使行线全输出低电平行线全输出低电平,读取列线电平读取列
10、线电平,列线从高电列线从高电 平转为低电平的列线为按下按键所在列平转为低电平的列线为按下按键所在列。 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 13 例例1 1 扫描算法扫描算法 p用用8255A8255A作单片机键盘接口,作单片机键盘接口, A A口为输出口口为输出口接键盘列线。接键盘列线。C C 口为输入口口为输入口接键盘的接键盘的4 4条行线条行线 8255A8255A地址地址A A口:口:7FFCH7FFCH B B口:口:7FFDH7FFDH C C口:口:7FFEH7FFEH 控制寄存器:控制寄存器:7FFFH7FFFH MCS-51单片机外部并行口扩展技术
11、-542 键盘 接口工作原理 14 p子程序子程序 KSI KSI :判定有无闭合键的:判定有无闭合键的 KSI:MOVDPTR, #7FFCH;A口地址口地址 MOVA, #00H MOVX DPTR, A;A口送口送00H INCDPTR INCDPTR;C口地址口地址 MOVX A, DPTR;读读C口口 CPLA ANLA, #0FH;屏蔽高四位屏蔽高四位 RET 0 0 0 0 0 0 0 0 有闭合键,则有闭合键,则(A)0 无闭合,无闭合, 则则(A)=0 1 1 1 1 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 15 KEY1:ACALL KSI;检查是
12、否有键闭合检查是否有键闭合 JNZLK1;A非非“0”则转移则转移 ACALL DIR;显示一次显示一次LED(“延时延时6ms”) AJMPKEY1 LK1:ACALL DIR;有键闭合二次延时有键闭合二次延时 ACALL DIR;共共12ms去抖动去抖动 ACALL KSI;再检查是否有键闭合再检查是否有键闭合 JNZLK2;有键闭合转移到有键闭合转移到LK2 ACALL DIR AJMPKEY1;无键闭合,延时无键闭合,延时6ms后转后转KEY1 有闭合键,有闭合键, 则则(A)0 无闭合,无闭合, 则则(A)=0 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 16
13、LK2:CLRF0;有键有键标志标志 MOVR2, #0FEH;扫描初值送扫描初值送R2 MOVR4, #00H;扫描扫描列号列号送送R4 LK4:MOVDPTR, # 7FFCH ;A口地址口地址 MOVA, R2 MOVXDPTR, A;扫描初值送扫描初值送A口口 INCDPTR INCDPTR;C口地址口地址 MOVXA, DPTR;读读C口口 有闭合键,有闭合键, 则则(A)0 无闭合,无闭合, 则则(A)=0 0 1 1 1 1 1 1 1 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 17 KEY1:ACALL KSI;检查是否有键闭合检查是否有键闭合 JNZL
14、K1;A非非“0”则转移则转移 ACALL DIR;显示一次显示一次LED(“延时延时6ms”) AJMPKEY1 LK1:ACALL DIR;有键闭合二次延时有键闭合二次延时 ACALL DIR;共共12ms去抖动去抖动 ACALL KSI;再检查是否有键闭合再检查是否有键闭合 JNZLK2;有键闭合转移到有键闭合转移到LK2 ACALL DIR AJMPKEY1;无键闭合,延时无键闭合,延时6ms后转后转KEY1 LK2:MOVR2, #0FEH;扫描初值送扫描初值送R2 MOVR4, #00H;扫描扫描列号列号送送R4 LK4:MOVDPTR, # 7FFCH ;A口地址口地址 MOVA
15、, R2 MOVXDPTR, A;扫描初值送扫描初值送A口口 INCDPTR INCDPTR;C口地址口地址 MOVXA, DPTR;读读C口口 有闭合键,有闭合键, 则则(A)0 无闭合,无闭合, 则则(A)=0 0 1 1 1 1 1 1 1 全全 程程 序序 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 18 JBACC.0, LONE;ACC.0=1,第,第0行无键闭合,转行无键闭合,转LONE MOVA, #00H;装第装第0行值行值 AJMPLKP LONE: JBACC.1, LTWO ;ACC.1=1,第,第1行无键闭合,转行无键闭合,转LTWO MOVA,
16、 #08H;装第装第1行值行值 AJMPLKP LTWO: JBACC.2, LTHR;ACC.2=1,第,第2行无键闭合,转行无键闭合,转LTHR MOVA, #10H;装第装第2行值行值 AJMPLKP LTHR: JBACC.3, NEXT;ACC.3=1,第,第3行无键闭合,转行无键闭合,转NEXT MOVA, #18H;装第装第3行值行值 LKP:ADDA, R4;计算键码计算键码 PUSHACC;保护键码保护键码 LK3:ACALL DIR;延时延时6ms ACALL KSI;检查是否继续闭合,若闭合再延时检查是否继续闭合,若闭合再延时 JNZLK3 POPACC;若键起,则键码送
17、若键起,则键码送A RET 扫描扫描列号列号:R4 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 19 NEXT: INCR4;扫描列号加扫描列号加1 MOVA, R2 JNBACC.7, KND;若第若第7位位=0,已扫完最高列则转,已扫完最高列则转KND RLA MOVR2, A AJMPLK4;进行下一列扫描进行下一列扫描 KND:SETBF0;无键无键标志标志 RET;扫描完毕扫描完毕 扫描扫描列号列号:R4 MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 20 例例2 2 线反转法线反转法 MCS-51单片机外部并行口扩展技术-542 键盘 接口
18、工作原理 21 KEY:MOVP1, #0F0H;行线置低电平行线置低电平,列线置输入态列线置输入态 KEY0: MOVA, P1;读读列列线数据线数据 CPLA;数据取反数据取反,“1”有效有效 ANLA, #0F0H;屏蔽行线屏蔽行线,保留列线数据保留列线数据 MOVR1, A;存列线数据存列线数据(R1高高4位位) JZGRET;全全0,无键按下无键按下,返回返回 KEY1: MOVP1, #0FH;行线置输入态行线置输入态,列线置低电平列线置低电平 MOVA, P1;读读行行线数据线数据 CPLA;数据取反数据取反,“1”有效有效 ANLA, #0FH;屏蔽列线屏蔽列线,保留行线数据保
19、留行线数据 MOVR2, A;存行线数据存行线数据(R2低低4位位) JZGRET;全全0,无键按下无键按下,返回返回 JBCF0, WAIT;已有消抖标志已有消抖标志,转转 SETBF0;无消抖标志无消抖标志,置消抖标志置消抖标志 LCALL DY10ms;调用调用10ms延时子程序消抖延时子程序消抖 SJMPKEY0;重读重读行线列线数据行线列线数据 GRET: RET 参考程序: MCS-51单片机外部并行口扩展技术-542 键盘 接口工作原理 22 WAIT:MOVA, P1;等待按键释放等待按键释放 CPLA ANLA, #0FH JNZWAIT;按键未释放按键未释放,继续等待继续等
20、待 KEY2: MOVA, R1;取列线数据取列线数据(高高4位位) MOVR1, #03H;取取列线编号初值列线编号初值 MOVR3, #03H;置循环数置循环数 CLRC KEY3: RLCA;依次左移入依次左移入C中中 JCKEY4;C=1,该列有键按下该列有键按下,(列线编号存列线编号存R1) DECR1;C=0,无键按下无键按下,修正列编号修正列编号 DJNZR3, KEY3;判循环结束否判循环结束否?未结束继续寻找有键按下的列线未结束继续寻找有键按下的列线 KEY4: MOVA, R2;取行线数据取行线数据(低低4位位) MOVR2, #00H;置置行线编号初值行线编号初值 MOVR3, #03H;置循环数置循环数 CLRC KEY5: RRCA;依次右移入依次右移入C中中 JCKEY6;C=1,该行有键按下该行有键按下,(行线编号存行线编号存R2) INCR2;C=0,无键按下无键按下,修正行线编号修正行线编号 DJNZR3, KEY5;判循环结束否判循环结束否?未结束继续寻找有键按下的行线未结束继续寻找有键按下的行线 MCS-51单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国聚山梨酯行业发展研究与产业战略规划分析评估报告
- 吉林省白山市地铁消防安全测试题十一(含答案)
- 软件销售合同范本4篇
- 日资企业劳动合同
- 2025年物料提升机安装拆卸工(建筑特殊工种)考试试题题库
- 化工安全实务题库电子版及答案解析
- 人卫护理99块题库及答案解析
- 机械工厂安全试题库及答案解析
- 遵义从业资格证模拟考试及答案解析
- 安全知识考试题库电信及答案解析
- 家具安装调试及施工进度保障措施
- 《春》课后习题参考答案
- 品酒师(黄酒)理论知识考核要素细目表四级
- 山茱萸培训课件
- 健康照护师测试题及答案【300题】附有答案
- 西师版五年级上册数学全册教案设计
- 液压软管接头24°锥密封端软管接头规范指引
- 2024挡烟垂壁包工合同协议书
- 2024年中医经典知识竞赛考试题库300题(含答案)
- 二级简码口诀和二级简码表
- 广州版初中英语词汇表
评论
0/150
提交评论