第10章接口(王鑫国).pptVIP

  • 4
  • 0
  • 约1.77万字
  • 约 76页
  • 2017-10-14 发布于湖北
  • 举报
第10章接口(王鑫国)

第10章 接口技术 10.1键盘接口 10.1.1 键盘工作原理 1.键输入原理 2.键输入接口与软件应解决的问题 (l)键开关状态的可靠输入 图10-1键闭合及断开时的电压波动 通常去抖动影响的方法有硬、软件两种。 (2)对按键进行编码以给定键值或直接给出键号 ①监测有无键按下; ②有键按下后,在无硬件去抖动电路时,应用 软件延时方法除去抖动影响; ③有可靠的逻辑处理办法; ④输出确定的键号以满足散转指令要求。 10.1.2 独立式按键 1.独立式按键结构 2.独立式按键的软件编制 这段程序的作用是当检测到相应的键按下时转向每个按键的功能程序。 10.1.3 行列式键盘 1.行列式键盘电路的结构及原理 2.键盘的工作方式 (l)循环扫描方式 循环扫描的原理: 键盘扫描程序一般应具备下述几个功能: 判断键盘上有无键按下; 去除键的抖动影响; 扫描键盘,得到按下键的键号; 判别闭合的键是否释放。 图10-3中32个键的键值从左上角的数字“0”键开始对应为如下分布 : 00H,01H, 02H, 03H, 04H, 05H, 06H, 07H 08H,09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH 10H,11H, 12H, 13H, 14H, 15H, 16H, 17H 18H,19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH 由以上分布可以总结出: 闭合键的键码值=行首键号+列号 例如,当P1口的输出为F7H),即其第3列有输出,读出P2口低4位的值为0DH(1101B),说明是第1行与第3列相交的键闭合,则键号=8+3=11。 读键盘程序如下: KEY: LCALL KS ;调用KS判别有键按下吗? JNZ K1 ;有键按下转移 LCALL DELAY ;无键按下,调延时子程序 LJMP KEY K1:LCALL DELAY ;加长延时时间,消除键抖动 LCALL DELAY LCALL KS ;调用KS子程序再次判别有无键闭合 JNZ K2 ;键按下,转逐列扫描 LJMP KEY ;误读键,返回 K2: MOV R2,#0FEH ;首列扫描字送R2 MOV R4,#00H ;首列号送R4 K3: MOV A,R2 MOV P1,A ;列扫描字送P1口 MOV A,P2 ;读取行扫描值 JB ACC.0,L1 ;第0行无键按下,转查第1行 MOV A,#00H ;第0行有键按下,该行的行首键号#0H送A LJMP LK ;转求键号 NEXT : INC R4 ;修改列号,指向下一列 MOV A,R2 JNB ACC.7,KEY ;第7位为0,已扫描完最高列转KEY RL A ;未扫描完,扫描字左移一 位,变为下列扫描字 MOV R2,A ;扫描字暂存R2 LJMP K3 ;转下列扫描 KS: MOV A,#0 MOV P1, A ;全扫描字#00H送P1口 MOV A,P2 ;读入P2口行状态 CPL A ;变正逻辑,以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位 RET ;出口状态:A?0时有键按下 (2)中断工作方式 采用中断扫描工作方式可提高CPU的工作效率 。一种简易键盘接口如图10-5所示。 线路反转程序如下: ORG 0000H LJMP START ORG 0003 LJMP FZH ;转读键值程序 ORG 0030H START: MOV SP,#50H MOV P1,#0FH MOV IE,#81H ;CPU和T0开中断 … SJMP $ ORG 0080H ;读键值中断程序 FZH :SETB RS0 ;选择第1组工作寄存器 MOV P1,#0F0H ;设P1.0~P1.3输出0 MOV A,P1 ;读P1口 ANL A,#0F0H ;屏蔽低4位,保留高4位 MOV B,A ;P1.4~P1.7的值存B

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档