1 / 10
文档名称:

片机学习17(键盘接口(1).ppt

格式:ppt   大小:596KB   页数:10页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

片机学习17(键盘接口(1).ppt

上传人:相惜 2024/5/14 文件大小:596 KB

下载得到文件列表

片机学习17(键盘接口(1).ppt

相关文档

文档介绍

文档介绍:该【片机学习17(键盘接口(1) 】是由【相惜】上传分享,文档一共【10】页,该文档可以免费在线阅读,需要了解更多关于【片机学习17(键盘接口(1) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如图10-6。图10-???,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。图10-7独立式键盘工作电路(适于键数较少、操作快、同时多键动作场合)。(矩阵式)键盘接口图10-94×4行列式键盘结构〔扫描法〕适于按键数目较多的场合;可节省很多的I/O口线;同时只会有一个键闭合的场合。:识别键盘有无键按下;驱动所有列线为‘0’,输入各行线电平如果有‘0’,就说明有键按下,如果行线电平全‘1’,那么全部无键按下。第2步:如有键被按下,识别具体的按键。依序驱动某一列为‘0’,其余列均为‘1’,输入各行线电平,如果某行线电平为‘0’,可确定此行列交叉点处的按键被按下;如果行线电平全为‘1’那么本列无按键按下。:列线输出为全‘0’,随后输入行线电平如有‘0’,那么‘0’所在的行就是闭合的按键所在行;无‘0’那么无键闭合。第2步:行线输出为全‘0’,随后输入列线电平如有‘0’,那么‘0’所在的列就是闭合的按键所在列;无‘0’那么无键闭合。结合上述两步,可确定按键所在行和列。图10-×4键盘连接82C55的端口线采用线反转法的键盘行线、列线端口各自应当可以在输入与输出方式间切换!如图:〔紫〕。LCALLKEY;调用键盘扫描子程序(扫描到按键那么在左第3、4位显示“键号、-〞)实验板键盘接口设计实例4X4键盘接口初始为输入控制口FEFFH方式字:89H=10001001BFEFEH利用82C55的C口上下四位可分别定义为输入或输出,扩展4×4行列式键盘,【主工作程序中】.KEY:MOVA,#81H ;键盘扫描子程序〔反转法〕 MOVDPTR,#******@DPTR,A ;C口先初始化为高4位输出驱行线、低4位输入列线MOVDPTR,#0FEFEH MOVA,#00H ;键盘行线(高4位)输出驱动全'0' ******@DPTR,A MOVXA,***@DPTR ;输入键盘列线电平(低4位)存60H单元 MOV60H,A MOVA,#88H ;C口改初始化为高4位输入行线、低4位输出驱列线 MOVDPTR,#******@DPTR,AMOVDPTR,#0FEFEH MOVA,#00H ;键盘列线(低4位)输出驱动全'0' ******@DPTR,A MOVXA,***@DPTR ;输入键盘行线电平(高4位)在A中 ANL60H,#0FH ;列线电平值保存所在的低4位 ANLA,#0F0H ;行线电平值保存所在的高4位 ORL60H,A;两次输入的列线电平值、--,#00H ;置键号初值为00H MOVR5,#10H ;设定最多进行16次的键码查表 MOVDPTR,#KEY_N ;键码表首地址KY:MOVA,#00H ;A清0 MOVCA,***@A+DPTR ;查表读取键码表中当前位置键码 CJNEA,60H,NK ;与8位行列码比较,不同那么转NK查下一个 SJMPKN ;相同那么转KN根据已获取的键号进行相应处理NK:INC61H ;键号加1INCDPTR ;指向键值表下一个位置DJNZR5,KY ;未查完,继续RET ;查完,说明无按键或出现异常行列码那么返回(键号=10H)KEY_N:DB0EEH,0EDH,0EBH,0E7H ;键码表。K0,K1,K2,K3键码 DB0DEH,0DDH,0DBH,0D7H ;K4,K5,K6,K7键码 DB0BEH,0BDH,0BBH,0B7H ;K8,K9,K10,K11键码 DB7EH,7DH,7BH,77H ;K12,K13,K14,--200H+键号+:MOVA,61H ;根据查表获得的键号00H~0FH之一转向相应处理程序MOVB,#05H;转移表中每个键号处理程序占5个地址单元 MULAB MOVDPTR,#K0 ******@A+DPTR;转向对应的键号处理程序K0:MOV35H,#0;各键号处理程序:将键号送35H单元(使键号显示在左第三位)SJMPRT0 K1:MOV35H,#01HSJMPRT0K2:MOV35H,#02HSJMPRT0K3:MOV35H,#03HSJMPRT0K4:MOV35H,#04HSJMPRT0K5:MOV35H,#05HSJMPRT0K6:MOV35H,#--:MOV35H,#07HSJMPRT0K8:MOV35H,#08HSJMPRT0K9:MOV35H,#09HSJMPRT0KA:MOV35H,#0AHSJMPRT0KB:MOV35H,#0BHSJMPRT0KC:MOV35H,#0CHSJMPRT0KD:MOV35H,#0DHSJMPRT0KE:MOV35H,#0EHSJMPRT0KF:MOV35H,#0FHRT0:MOV34H,#10H ;让左边第四位显示'-',键号显示借用了小时的显示位置 --:改为扫描到按键那么显示‘H’与键号于最右边两位;通过调整键码表实现该4×4键盘每一行4个键的定义左右对调,即原键‘0’改为‘3’、原键‘1’改为‘2’、原键‘2’改为‘1’、原键‘3’改为‘0’,其他行以此类推。键盘扫描程序其他功能需求:按键闭合动作、释放动作的判别及处理;按键闭合、释放时的触点抖动消除功能;〔如:每10mS扫描一次,扫描到按键动作延迟20mS后再确认等〕.