AJMP
LKP
LTW0:JB MOV AJMP LTHR:JB MOV LKP: ADD PUSH LK3: ACALL
A.2,LTHR A,#10H LKP Acc.3,NEXT A,#18H A,R4 A DIR
;2行线为高,无键闭合,跳LTHR, ;转判3行 ;2行有键闭合,首键号10H→A ;跳LKP,计算键号 ;3行线为高,无键 ;闭合,跳NEXT,准备下一列扫描 ;3行有键闭合,首键号18H→A ;计算键号:首键号+列号=键号 ;键号进栈保护 ;调用显示子程序,延时6ms ;调用判有无键闭合子程序,延时 ;6ms ;判键释放否,未释放,则循环 ;键已释放,键号出栈→A
ACALL KS1 JNZ POP RET LK3 A
NEXT:INC
R4
;列计数器加1,为下一列扫描作准备
MOV JNB
RL MOV AJMP KND: AJMP KS1: MOV “0”→ MOV MOVX
A,R2 ;判是否已扫到最后一列(最右一列) Acc.7,KND ;键扫描已扫到最后一列,跳KND,
(2)按键的识别方法
a. 扫描法 图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。
识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如 有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平, 其余各列为高电平,检查各行线电平的变化,如果某 行线电平为低,可确定此行列交叉点处的按键被按 下。 b. 线反转法
原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 工作过程: