2×2行列式键盘电路设计并编写键盘扫描子程序实例

电子元件 4年前 (2022) aysz01
0

1)2×2行列式键盘电路如图所示////////


图片1

(2)键盘扫描子程序:

KEY1:ACALLKS1;调用判断有无键按下子程序

JNZLK1;有键按下,转LK1

AJMPKEY1;无键按下,返回

LK1:ACALLT12MS;调延时12ms子程序

ACALLKS1;查有无键按下

JNZLK2;若有,则为键确实按下,转逐列扫描

AJMPKEY1;无键按下,返回

LK2:MOVR4,#00H;首列号R4

MOVR2,#FEH;首列扫描字R2

LK4:MOVA,R2;列扫描字P1口

MOVP1,A;使第一列线为0

MOVA,P1;读入行状态

JBACC.0,LONE;第0行无键按下,转查第一行

MOVA,#00H;第0行有键按下,该行首键号#00HA

AJMPLKP;转求键号

LONE:JBACC.1,NEXT;第一行无键按下,转查下一列

MOVA,#02;第一行有键按下,该行首键号#02A

LKP:ADDA,R4;键号=首行号+列号

PUSHACC;键号进栈保护

LK3:ACALLKS1;等待键释放

JNZLK3;未释放,等待

POPAC;键释放,键号A

RET;键扫描结束

NEXT:INCR4;列号加1,指向下一列

MOVA,R2;列扫描字A

JNBACC.1,KND;判断2列全扫描完?扫描完,转KND

RLA;没扫描完,扫描字左移一位,形成下一列扫描字

MOVR2,A;扫描字R2

AJMPLK4;扫描下一列

AJMPKEY1;全扫描完,返回

MOVA,#FCH;全扫描字11111100BA

MOVP1,A;全扫描字所有行

MOVA,P1;读取列值

CPLA;取正逻辑,高电平表示有键按下

ANLA,#0C0H;屏蔽低6位,取高2位

RET;出口状态(A)!=0,有键按下

版权声明:aysz01 发表于 2022-08-06 16:11:48。
转载请注明:2×2行列式键盘电路设计并编写键盘扫描子程序实例 | 鳌游电工

暂无评论

暂无评论...