第五章并行口-汪媛.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
键盘处理程序的任务是: 确定有无键按下; 判哪一个键按下, 键的功能是什么; 还要消除按键在闭合或断开时的抖动。 两个并行口中,一个输出扫描码, 使按键逐行动态接地(称行扫描),另一个并行口输入按键状态(称回馈信号,键盘的列值), 由行扫描值和回馈信号共同形成键编码而识别按键、通过软件查表,查出该键的功能。也可由硬件编码器完成键的编码。 下图中,用8XX51的并行口P1接4×4矩阵键盘,以P1.0~P1.3作输出线,以P1.4~P1.7作输入线,键盘扫描程序的流程如图5.7所示。 5 a EE DE BE 7E ED DD BD 7D EB DB BB 7B E7 D7 B7 77 Y 返回键编码 读P1.3~P1.4值 置行扫描初值 扫描位从P1口输出 P1口的高四位和低四位 相或得键编码 扫到最后一行? N N(有键按下) N 开始 P1.0~P1.3输出0 延时去抖动 P1.4~P1.7全为1? P1.4~P1.7全为1? Y Y(无键按下) 对键盘的程序流程图5.7说明如下: 当P1.0~P1.3输出0时,如无键按下,P1.4~P1.7的输入值均为“1”,如果其中有一个不是 “1”,说明有键按下,再使P1.0~P1.3逐个输出零(行扫描),检查P1.4~P1.7的输入值有 无零,从而查出是哪行哪列的键按下。在判按键时,按键有抖动,可采用延时后再重读以跳 过抖动时段(也可用R-S触发器闩锁电路硬件消抖,但这样电路复杂,在矩阵键盘中不采用)。 ORG 0000H TEST: MOV P1,#0F0H;P1.0~P1.3输出0, P1.4~P1.7输出1,作输入位 MOV A,P1 ;读键盘,检测有无键按下 ANL A,#0F0H ;屏蔽P1.0~P1.3,检测P1.4~P1.是否全为1 CJNE A, #0F0H,HAVE ;P1.4~P1.7不全为1,有键按下 SJMP TEST ;P1.4~P1.7全为1,无键按下,重检测键盘 HAVE: ACALL DAY ;延时去抖动 MOV A,#0FE ;有键按下,逐行扫描键盘,置扫描初值 NEXT: MOV B,A ;扫描码暂存于B MOV P1,A ;输出扫描码 READ: MOV A,P1 ;读键盘 ANL A,#0F0H ; 屏蔽P1.0~P1.3, 检测P1.4~P1.是否全为1 CJNE A,#0F0H, AREAD ;P1.4~P1.7不全为1, 该行有键按下 MOV A,B ;被扫行无键按下,准备查下一行 RL A ;置下一行扫描码 CJNE A,#0EFH,NEXT ;未扫到到最后一行循环 AREAD: MOV A,P1 ;再读键盘 ANL A,#0F0H ; 屏蔽P1.0~P1.3,保留P1.4~P1.7(列码) MOV R2,A ;暂存列码 MOV A, B ANL A,#0FH ;取行扫描码 ORL A,R2 ;行码、列码合并为键编码 YES1: MOV B,A ;键编码存于B LJMP SAM38 ;转键分析处理程序(见例3-8) … 程序清单如下: #include <reg51.h> #define uchar unsigned char #define uint unsigned int void dlms (void); uchar kbscan(void); /* 函数说明 */ void main (void) {uchar key; while (1) {key=kbscan();/*调键扫描函数,返回键 码送key保存*/ dlms(); } } void dlms (void) /* 延时 */ {uchar i; for (i=200;i>0;i--){ } } uchar kbscan (voi

文档评论(0)

awang118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档