第5章第1部分MCS-51单片机原理及接口技术(十一五国家规划)[汪德彪主编][电子教案]_第1页
第5章第1部分MCS-51单片机原理及接口技术(十一五国家规划)[汪德彪主编][电子教案]_第2页
第5章第1部分MCS-51单片机原理及接口技术(十一五国家规划)[汪德彪主编][电子教案]_第3页
第5章第1部分MCS-51单片机原理及接口技术(十一五国家规划)[汪德彪主编][电子教案]_第4页
第5章第1部分MCS-51单片机原理及接口技术(十一五国家规划)[汪德彪主编][电子教案]_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、5.1 键盘接口技术 键盘是十分重要的人机对话的组成部分,是人键盘是十分重要的人机对话的组成部分,是人向机器发出指令、输入信息的必需设备。向机器发出指令、输入信息的必需设备。1、键的特性 键盘是由若干独立的键组成,键的按下与释放是通过机械触点的闭合与断开来实现的,因机械触点的弹性作用,在闭合与断开的瞬间均有一个抖动过程 。抖动必须消除,去抖动的方法主要有以下两种:5.1 键盘接口技术硬件去抖动硬件去抖动软件去抖动软件去抖动前沿抖动稳定后沿抖动图5.1 按键抖动信号波形5.1 键盘接口技术2、键盘的形式键盘的形式有以下两种:独立式键盘编码式键盘(1)独立式键盘 每一个按键的电路是独立的,占用一条

2、数据线 。这种键盘占用硬件资源多,适合少量按键的情况。独立式键盘结构独立式键盘结构独立式键盘与单片机接口独立式键盘与单片机接口独立式键盘与单片机接口独立式键盘与单片机接口 程序框图程序框图键闭合吗?置P1口为输入方式开 始延时10ms消除抖动有键闭合吗?是K1键闭合吗?20H单元加1YYYYYYNNNNNN图5.5 独立键盘程序框图流程图是K2键闭合吗?是K3键闭合吗?是K4键闭合吗?20H单元减121H单元清021H单元置FF独立式键盘与单片机接口独立式键盘与单片机接口程序清单: ORG 0030HKB:MOVP1,#0FFH;置P1口为输入口MOVA,P1;读键状态CPLAANLA,#0F

3、H;屏蔽高4位JZKB;无键闭合则返回ACALL D10MS;延时去抖动MOVA,P1;再读键状态CPLAANLA,#0FHJZKB;无键闭合则返回CJNEA,#01H,KB01INC20H;K1键闭合,20H单元加1SJMPKB独立式键盘与单片机接口独立式键盘与单片机接口KB01:CJNE A,#02H,KB02 DEC 20H ;K2键闭合,20单元减1 SJMP KBKB02:CJNE A,#04H,KB03 MOV 21H,#00H ;K3键闭合,21H单元清0 SJMP KBKB03:CJNE A,#08H,KB MOV 21H,#0FFH ;K4键闭合,21H单元置FF SJMP

4、KB ;若有两键以上闭合则返回 END矩阵式键盘结构矩阵式键盘的工作原理 扫描原理:首先确定是否有键闭合然后逐一扫描以进一步确定是哪一键闭合 以44键盘为例: (1)使列线D0D3都输出0,检测行线D4D7的电平。如果D4D7上的电平全为高,则表示没有键被按下。如果D4D7上的电平不全为高,则表示有键被按下。 (2)如果没有键闭合,就返回扫描。如果有键闭合,在进行逐列扫描,找出闭合键的键号。先使D0=0,D1D3=1,检测D4D7上的电平,如果D4=0,表示K1键被按下;同理,如果D5D7=0,分别表示K5、K9、K13键被按下;如果D4D7=1,则表示这一列没有键被按下。再使D1=0,D0、

5、D2、D3为1,对第二列进行扫描,这样依次进行下去,直到把闭合的键找到为止。 矩阵式键盘与单片机接口矩阵式键盘与单片机接口一、程序扫描方式三个步骤: 判断有无键按下; 软件延时10ms去抖动; 求键的位置(行、列)。有键闭合吗?开 始软件延时10ms有键闭合吗?键释放了吗?逐列逐行扫描确定键的位置调键值处理程序返 回YYYNNN图5.8 程序键盘扫描程序框图矩阵式键盘与单片机接口程序清单:KSCAN:ACALL KEYS1 ;调用判键闭合子程序JNZKEY1;有键闭合则转至去抖动AJMPRETURN;无键闭合则返回KEY1:ACALL D10MS ;调用10ms延时程序ACALLKEYS1 ;

6、再次调用判键闭合子程序JNZKEY2;确认有键闭合,开始扫描AJMPRETURN;无键闭合则返回KEY2:MOVR2,#0FEH;送首列扫描字MOVR4,#00H;送首列号KEY0:MOVA,R2MOVP1,AMOVA,P1;扫描字从P1口送出JBACC.4,LINE1 ;第1行无键闭合,转第2行MOVA,#00H;第1行首键号送AAJMPKPV;转键值计算程序矩阵式键盘与单片机接口LINE1: JBACC.5,LINE2;第2行无键闭合,转第3行MOVA,#04H;第2行首键号送AAJMPKPV;转键值计算程序LINE2: JBACC.6,LINE3;第3行无键闭合,转第4行MOVA,#08

7、H;第3行首键号送AAJMPKPV;转键值计算程序LINE3: JBACC.7,NEXT;第4行无键闭合,转下1列MOVA,#0CH;第4行首键号送AKPV:ADDA,R4;计算键值PUSHACCKEY3: ACALLKEYS1;等待键释放JNZKEYS1POPACCSETBFLAG;置有键按下标志SJMPKEY4RETURN:CLRFLAG;清有键按下标志KEY4: RETNEXT: INCR4;列号加1矩阵式键盘与单片机接口MOVA,R2CJNEA,#0F7H,RETURN;判断4行是否都已扫描完,;完则返回RLA;为扫描下1行做准备MOVR2,AAJMPKEY0;开始扫描下1列KEYS1

8、:MOVP1,#0F0H;判键闭合子程序MOVA,P1CPLAANLA,#0F0HRETD10MS:MOVR7,#14H;10ms延时子程序DLY:MOVR6,#0F8HDLY1: DJNZR6,DLY1DJNZR7,DLYRET矩阵式键盘与单片机接口二、定时中断扫描方式 该方式利用定时器10ms产生一次中断,设置两个标志(FLAG1、FLAG2),FLAG1用于去抖动标志,FLAG2用于键处理标志。FLAG1=1FLAG1=0,FLAG2=0有键闭合吗?开 始FLAG1=1吗?FLAG2=1吗?逐列逐行扫描得键值,FLAG2=1返 回YYYNNN图5.9 定时键盘扫描程序框图矩阵式键盘与单片

9、机接口程序清单:FLAG1 BIT20H.0;定义抖动标志FLAG2 BIT20H.1;定义处理标志KEYVEQU30H;定义键值单元ORG0000HAJMPMAINORG000BHAJMPINTT0MAIN:MOVTMOD,#01H;T0为方式1,定时10msMOVTL0,#0F0HMOVTH0,#0D8HMOVIE,#82HSETBTR0HERE:SJMP HERE;主程序踏步矩阵式键盘与单片机接口INTT0: MOVTL0,#0F0H;中断服务,重新给定时器赋初值MOVTH0,#0D8HACALLKEYS1;判断键是否按下JNZKB1;有键按下则转至KB1CLRFLAG1;清除抖动标志C

10、LRFLAG2;清除处理标志AJMPKB2;中断返回KB1:JBFLAG1,KB3;判抖动标志是否有效SETBFLAG1;无效则设置成有效AJMPKB2;返回KB3:JBFLAG2,KB2MOVR2,#0FEH;送首列扫描字MOVR4,#00H;送首列号KEY0: MOVA,R2MOVP1,AMOVA,P1;扫描字从P1口送出JBACC.4,LINE1;第1行无键闭合,转第2行MOVA,#00H;第1行首键号送AAJMPKPV;转键值计算程序矩阵式键盘与单片机接口LINE1: JBACC.5,LINE2;第2行无键闭合,转第3行MOVA,#04H;第2行首键号送AAJMPKPV;转键值计算程序LINE2:JBACC.6,LINE3;第3行无键闭合,转第4行MOVA,#08H;第3行首键号送AAJMPKPV;转键值计算程序LINE3:JBACC.7,NEXT;第4行无键闭合,转下1列MOVA,#0CH;第4行首键号送AKPV:ADDA,R4;计算键值MOVKEYV,A;存放键值SETBFLAG2;设置处理标志AJMPKB2NEXT: INCR4;

温馨提示

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

评论

0/150

提交评论