ImageVerifierCode 换一换
格式:PPTX , 页数:36 ,大小:3.80MB ,
资源ID:7526638      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7526638.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(《单片机原理及应用》项目九--键盘接口设计与编程.pptx)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

《单片机原理及应用》项目九--键盘接口设计与编程.pptx

1、,#,单片机原理及,应用技术,键盘接口设计与编程,任务一 独立式键盘的接口设计与编程,任务二 矩阵式键盘的接口设计与编程,Project 9,任务,1,独立式,键盘,的,接口设计,与,编程,独立式键盘接口设计,one,独立式键盘相互独立,,每个按键占用一根,I/O,口线,每根,I/O,口线上的按键工作状态不会影响其他按键的工作状态,,CPU,可直接读取该,I/O,线的高,/,低电平状态。,这种按键硬件、软件结构简单,判键速度快,使用方便,但占用,I/O,口线较多,适用于按键数量较少的系统中,。,独立连接式键盘连接图,如图所示。当没有键被按下时,所有的数据输入线均为高电平;当任意一个按键被按下时

2、,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键被按下。,按键的,抖动问题,是指,按键的触点在闭合和断开瞬间由于接触情况不稳定,从而导致电压信号的抖动现象,(由按键的机械特性造成,不可避免)。如图所示为一次按键的抖动过程,在按键的前沿和后沿都会有,5,10ms,的抖动。,按键抖动问题产生的原因及解决方法,two,对于时钟是微秒级的单片机而言,键盘的抖动有可能造成单片机对一次按键的多次处理。为了提高系统的稳定性,我们必须采用有效的方式,消除抖动,。,去除抖动可以采用,硬件方式,和,软件方式,。,硬件方式,一般是在按键与单片机的输入通道上安装硬件去抖电路(如,RS,触发器),。,

3、软件方式的实现方法是,:当查询到电路中有按键按下时,先不进行处理,而是先执行,10,20ms,的延时程序,延时程序结束后,再次查询按键状态,,若此时按键仍为按下状态,则视为按键被按下。,键盘扫描方式及相关程序,three,1,查询方式键盘扫描程序,【,例,9,-1】,这里按独立连接式键盘连接图的按键连接方式编写了查询方式的按键扫描程序。,程序如下,ORG0000H,LJMPMAIN,ORG0030H,MAIN:,JNBP1.0,KEY_0;,判断与,P1.0,相接的按键是否被按下,JNBP1.1,KEY_1;,判断与,P1.1,相接的按键是否被按下,JNBP1.2,KEY_2;,判断与,P1.

4、2,相接的按键是否被按下,JNBP1.3,KEY_3;,判断与,P1.3,相接的按键是否被按下,LJMPMAIN;,继续查询,KEY_1:,LCALLDL_20MS;,调用延时子程序,去除机械抖动,JB,P1.0,MAIN;,去除抖动后,再次确认按键是否被按下,LCALLPRO_1;,若键按下,调用按键,1,的处理程序,LJMPMAIN;,执行结束,返回查寻循环,KEY_2:,LCALLDL_20MS;,同上,JBP1.1,MAIN,LCALLPRO_2,LJMPMAIN,PRO_1:;,按键,1,的处理程序,RET,PRO_2:;,按键,2,的处理程序,RET,DL_20MS:;20,毫秒延

5、时子程序,RET,END,2,中断方式键盘扫描程序,除了查询方式,中断方式也常用于,键盘扫描,。硬件连接如图所示。,P1,口,8,个,I/O,信号经过与非门,74LS30,实现逻辑与非后,再经过非门,74LS04,反相,然后接至,MCS-51,的,INT0,引脚上。在中断服务程序中,,先延时,20ms,消除键抖动,再对各键进行查询,找到所按键,并转到相应的处理程序中去,。,【,例,9,-2】,中断方式下的键盘扫描程序,ORG0000H,LJMPMAIN,ORG0003H;,外部中断,0,中断服务入口地址,LJMPINT0;,转中断服务,ORG0100H,MAIN:,MOVP1,#0FFH;P1

6、,口做输入时,先送,1,SETBEA;,开总中断允许,SETBEX0;,开,INT0,中断,SETBIT0;,下降沿有效,;,主程序其余部分,;,INT0:,LCALLDL_20MS;,延时去抖动,MOVA,P1;,读,P1,口各引脚,CJNEA,#0FFH,,,CLOSE;,验证是否确实有键闭合,AJMPEXIT;,无键按下(按键时间过短)则退出中断,CLOSE:,JNBACC.0,KEY_0;,查询,0,号键,JNBACC.1,KEY_1;,查询,1,号键,JNBACC.2,KEY_2;,查询,2,号键,JNBACC.3,KEY_3;,查询,3,号键,JNBACC.4,KEY_4;,查询,

7、4,号键,JNBACC.5,KEY_5;,查询,5,号键,JNBACC.6,KEY_6;,查询,6,号键,JNBACC.7,KEY_7;,查询,7,号键,EXIT:,RETI,KEY_0:;1,号键处理程序,RETI,;,其他键处理程序,KEY_7:,RETI,;,DL_20MS:,RET,END,任务,2,矩阵式,键盘的接口,设计,与,编程,矩阵式键盘接口设计,基于行反转法,one,4,4,矩阵式键盘接口设计如图所示,图中,P1,口,的低,4,位作为行线,,,P2,口,的,低,4,位作为列线,。行线通过,74LS21,进行逻辑与操作后作为单片机的外部中断源输入,当有键按下时以中断形式去执行相

8、应的按键处理程序。,行反转法,因,判键时将输入与输出线反转互换,而得名,步骤如下:,1,首先将行线(,P1,)设为输入线,初值全为,1,,列线(,P2,)设为输出线,初值全为,0,。,2,若有按键被按下,将进入中断处理程序,通过读取,P1,端口值,确定按键所在行。接下来,,P2,设为输入线,值为全,1,,,P1,设为输出线,将原数据写入,P1,,读取,P2,,判断按键所在列。,3,将第一步读的值与第二步读的值进行运算,得到按键的特征值。,【,例,9,-3】,行反转法判断按键编号,并存入,40H,单元,程序如下,ORG0000H,LJMPMAIN,ORG0003H;,外部中断,0,中断服务入口地

9、址,LJMPINT0;,转中断服务,ORG0100H,MAIN:,MOVP1,0FFH,MOVP2,00H,;,主程序其余部分,;,INT0:,LCALLDL_20MS;,延时去抖动,MOVA,P1;,读,P1,ANLA,#0FH;,判断是否有键闭合,提示,由于,P1,的输出为高电平,,P2,的输出为低电平,故此,若按下某键,则,P1,相应输入引脚被拉低为低电平。,CJNEA,#0FH,TEST;,若有键闭合,转判断按键程序,RETI;,若无键闭合,返回,TEST:;,按键处理程序,MOVB,A;,暂存,LCALLKEYR;,调用读取子程序,结果保存在,R3,中(行号),MOV40H,R3;,

10、暂存在,40H,单元,MOVP2,#0FFH;P2,写,1,MOVP1,B;,在,P1,中写入原数据,MOVA,P2;,读,P2,LCALLKEYR;,调用读取子程序,结果保存在,R3,中(列号),XCHA,R3;,交换,A,与,R3,中数据,SWAPA;,将,A,的高四位与第四位交换,ORL40H,A;,将按键特征值存入,40H,(高四位为列号,第四位为行号),RETI,;,KEYR:,CJNEA,#0FEH,TESTP11;,测试,P1.0,MOVR3,#0;P1.0=0,,说明被按键的输入线为,P1.0,LJMPFINISH;,返回,TESTP11:,CJNEA,#0FDH,TESTP1

11、2;,测试,P1.1,MOVR3,#1,LJMPFINISH,TESTP12:,CJNEA,#0FBH,TESTP13;,测试,P1.2,MOVR3,#2,LJMPFINISH,TESTP13:,CJNEA,#0F7H,FINISH;,测试,P1.3,MOVR3,#3,FINISH:,RET,;,DL_20MS:,RET,END,矩阵式键盘接口设计,基于扫描法,two,这里通过,8255A,连接一个,4,8,的矩阵键盘,,PB,口的低四位连接行线,,8255A,的,PA,口连接列线,,如图所示。,扫描法,是指,在判定按键时,通过逐行逐列进行扫描,。例如,如果按行进行扫描,首先将列的全部输出设为

12、高电平,行线的输出信号中总有一行为低电平,其余为高电平。如果某按键被按下,且按键所在行的输出信号为低电平,那么,列输出信号被拉低为低电平,即读取列值时该列的值为,0,。那么,,通过输出的行值和读入的列值就可以确定被按键的行列值,。,扫描法具体分析如下:,PB,口作为扫描口需要设为输出,,PA,口设为读入,。,逐行扫描时,,PB,口的状态为:,PB7,PB6,PB5,PB4,PB3,PB2,PB1,PB0,1,1,1,1,1,1,1,0,(,FEH,),1,1,1,1,1,1,0,1,(,FDH,),1,1,1,1,1,0,1,1,(,FBH,),1,1,1,1,0,1,1,1,(,F7H,),

13、PB,口作为扫描口需要设为输出,,PA,口设为读入,。,逐行扫描时,,PB,口的状态为:,PB7,PB6,PB5,PB4,PB3,PB2,PB1,PB0,1,1,1,1,1,1,1,0,(,FEH,),1,1,1,1,1,1,0,1,(,FDH,),1,1,1,1,1,0,1,1,(,FBH,),1,1,1,1,0,1,1,1,(,F7H,),1,1,1,0,1,1,1,1,(,EFH,),1,1,0,1,1,1,1,1,(,DFH,),1,0,1,1,1,1,1,1,(,BFH,),0,1,1,1,1,1,1,1,(,7FH,),例如,若当前,PB,口的输出状态为,FEH,,查询输入口,PA

14、,的状态为,EFH,。那么我们可以确定是,PA0,与,PB4,相交位置的按键被按下,即,4,号键。根据图,3.11,中各键的编号情况,按键键码可按如下公式计算:,键码,=,行号,列总数,+,列号,【,例,9,-4】,利用扫描法判断按键,并将键码存入,40H,单元。,分析,8255A,的,PA,、,PB,口的控制字。,A,口设为基本输入方式,,B,口设为基本输出方式,那么方式控制字为,90H,。关于,8255A,方式控制字的设定一般放到主程序中进行,这里只有对扫描过程进行编程。,由矩阵式键盘接口设计图可知,,8255A,端口地址:,A,口为,7FFCH,,,B,口为,7FFDH,。,N,Y,结束

15、,逐行扫描,开始,是否有键按下?,存入键号,Y,调用延时子程序,是否有键按下?,找到按键?,Y,N,N,程序的流程图如图所示,:,扫描程序如下:,SCAN:,ACALLP_KEY;,调用“有无按键按下子程序”,JNZT_KEY;,若有键按下,进一步判断是否因抖动判错,AJMPSCAN;,若无键按下,则不断查询,;,T_KEY:,ACALLDL_20MS;,调用延时子程序,ACALLP_KEY;,再次调用“有无按键按下子程序”,JNZIN_SCAN;,若有键按下,则执行逐行扫描程序,AJMPSCAN;,若无键按下,则不断查询,;,IN_SCAN:,MOVR2,#0FEH;,将首次行扫描数据送,R

16、2,MOVR4,#00H;,将首行号送,R4,;,ST_SCAN:,MOVDPTR,#7FFDH;,将,PB,口地址送,DPTR,MOVA,R2;,将行扫描数据送,A,MOVX,DPTR,A;,将行扫描数据送,PB,口,DECDPTR;DPTR,指向,PA,口,MOVXA,DPTR;,读取,PA,口的值,;,PA_0:,JBAcc.0,PA_1;,判断是否是第,0,列有按键,MOVA,#00H;,若该列有按键,将列号送,A,AJMPLKP;,跳转至计算按键号程序,;,PA_1:,JBAcc.1,PA_2,MOVA,#01H,AJMPLKP,;,PA_2:,JBAcc.2,PA_3,MOVA,#

17、02H,AJMPLKP,;,PA_3:,JBAcc.3,PA_4,MOVA,#03H,AJMPLKP,;,PA_4:,JBAcc.4,PA_5,MOVA,#04H,AJMPLKP,;,PA_5:,JBAcc.5,PA_6,MOVA,#05H,AJMPLKP,;,PA_6:,JBAcc.6,PA_7,MOVA,#06H,AJMPLKP,;,PA_7:,JBAcc.7,NEXT;,若无按键按下,使用下一个行扫描值进行扫,MOVA,#07H,AJMPLKP,;,NEXT:,INCR4;,行号加,1,MOVA,R2,JNBAcc.3,SCAN;,判断行扫描是否结束。若结束,表示无键按下,RLA;,循环

18、左移一位,产生下一个行扫描值,MOVR2,A,AJMPST_SCAN;,继续扫描下一行,;,LKP:,MOVB,R4;,行号送,B,MOVR4,A;,列号送,R4,暂存,MOVA,8;,将列总数,8,送,A,MULAB;,计算键值,ADDA,R4,MOV40H,A;,将键值存入,40H,单元,RET,;,P_KEY:,MOVDPTR,#7FFDH;,将,PB,口地址送,DPTR,MOVA,#00H;,将全扫描字送,A,MOVX,DPTR,A;,将全扫描字送,PB,口,DECDPTR;,将,DPTR,指向,PA,口,MOVXA,DPTR;,读取,PA,口的状态,提示,如果,A,为全,1,,表示无键按下,否则,表示有键按下。,CPLA;,将,A,取反(,A=0,,则无键按下,否则相反),RET,;,DL_20MS:,RET,键盘接口设计与编程,项目总结,本项目主要介绍了,独立式键盘,和,矩阵式键盘,的使用方法。其中,任务一介绍了,独立式键盘的接口设计,、,抖动产生的原因以及查询和中断两种扫描方式,;任务二介绍了,矩阵式键盘的接口设计,、,行反转法以及扫描法两种判键方法,。,THANKS FOR WATCHING,谢谢收看,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服