单片机键盘原理和实现.doc

单片机键盘原理和实现.doc

ID:52677919

大小:1.79 MB

页数:9页

时间:2020-03-29

单片机键盘原理和实现.doc_第1页
单片机键盘原理和实现.doc_第2页
单片机键盘原理和实现.doc_第3页
单片机键盘原理和实现.doc_第4页
单片机键盘原理和实现.doc_第5页
资源描述:

《单片机键盘原理和实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、\§8.3键盘接口技术一、键盘输入应解决的问题键盘是一组按键的集合,它是最常用的单片机输入设备.操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘,如:ASCⅡ码键盘、BCD码键盘等;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。本节着重讨论非编码键盘的原理、接口技术和程序设计。键盘中每个按键都是—个常开关电路,如图所示。1.按键的确

2、认:P1.7=1无按键;P1.7=0有按键;2.去抖动去抖动的方法:①硬件去抖动采用RS触发器:优点:速度快,实时,缺点:增加了硬件成本②软件去抖动采用延时方法延时5—10ms延时5—10msP1.7=0确认P1.7=0P1.7=1(去前沿抖动)(去后沿抖动)二、独立式键盘每个I/O口连接一个按,S1P1.0S2P1.1……………………….S8P1.7软件:START:MOVP1,#0FFH;置P1口为高电平JNBP1.0,RS1;S1按下,程序去执行RS1JNBP1.1,RS2;S2按下,程序去执行RS2JNBP1.2,RS3;S3按下,程序去执行RS3JNBP1.3

3、,RS4;S4按下,程序去执行RS4JNBP1.4,RS5;S5按下,程序去执行RS5JNBP1.5,RS6;S6按下,程序去执行RS6JNBP1.6,RS7;S7按下,程序去执行RS7JNBP1.7,RS8;S8按下,程序去执行RS8AJMPSTART;继续扫描按键………….RS1:AJMPPK1;RS2:AJMPPK2;RS3:AJMPPK3;RS4:AJMPPK4;RS5:AJMPPK5;RS6:AJMPPK6;RS7:AJMPPK7;RS8:AJMPPK8;AJMPSTART;无键按下,继续扫描…………………PK1:………..;按键S1功能处理程序AJMPSTA

4、RT;处理S1按键后,继续扫描PK2:………..;按键S2功能处理程序AJMPSTART………………….PK8:………………;按键S8功能处理程序AJMPSTART;处理S8按键后,继续扫描优点:连线简单,程序容易.缺点:太浪费资源适用于按键较少、I/O口空闲的场合。三、行列式非编码键盘接口方法按键较多时,一般采用行列式键盘.采用扫描方式,软件扫描方式有三种:程序扫描方式:当CPU空闲时,扫描键盘,判断有无键按下.定时扫描方式:利用CPU的定时器,每隔一定时间扫描一次键盘.中断扫描方式:在硬件上采用中断,有键按下时,产生中断,由中断服务程序来处理.下面是16个按键,构成

5、的4×4键盘行线:四根,接P1.0---P1.3列线:四根,接P1.4---P1.7程序扫描法原理:①P1.0---P1.3输出低电平,读P1.4—P1.7,若全为1,无键按下若不全为1,有键按下②在有键按下的情况下,进一步判断是那个键按下使P1.0---P1.3依次输出低电平,读P1.4----P1.7判断有无键按下子程序,程序名:KAP键盘查询子程序KAP:MOVP1,#0F0H;行线输出低电平,列线输出高电平MOVA,P1;P1口读入ACPLA;取反ANLA,#0F0H;取高四位,即P1.4---P1.7RET程序出口:A=0,则无键按下.A≠0则有键按下.去抖动

6、-----------延时10ms子程序:程序名D10MSD10MS:MOVR6,#14H;DL:MOVR7,#0FFH;DJNZR7,$DJNZR6,DLRETKINP:LCALLKAP;调键盘查询子程序,JNZKP1;A≠0,有键按下SJMPEND_KINP;A=0,无键按下,退出按键查询程序KP1:LCALLD10MS;延时10MS,去抖动LCALLKAP;再次查询键盘,JNZKP2;A≠0,确认有键按下SJMPEND_KINP;A=0,误操作,重新查询KP2为取键值子程序KP2:MOVR2,#0FEH;R2为行扫描值MOVR4,#00H;R4初值为第0行行首键号

7、CLRF0;F0=0表示正在扫描键盘KP4:MOVP1,R2;扫描行为低MOVA,P1;读P1JBACC.4,L1;第0列不为低,则检查第1列MOVA,#00H;为低,则行首键值送入AAJMPKP5;KP5L1:JBACC.5,L2;检查第一列MOVA,#04H;第一列行首键值送入AAJMPKP5L2:JBACC.6,L3;检查第二列MOVA,#08H;第二列行首键值送入AAJMPKP5L3:JBACC.7,NEXT;检查第三列,若为1,则检查下一行MOVA,#0CH;第三列行首键值送入AKP5:ADDA,R4;AA+R4,键值调整PUS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。