• 2021-04-14
    设计一个2×2行列式键盘电路并编写键盘扫描子程序。
  • (1)2×2行列式键盘电路如图所示。 (2)键盘扫描子程序: KEY1: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下,转LK1 AJMP KEY1 ;无键按下,返回 LK1: ACALL T12MS ;调延时12ms子程序 ACALL KS1 ;查有无键按下 JNZ LK2 ;若有,则为键确实按下,转逐列扫描 AJMP KEY1 ;无键按下,返回 LK2: MOV R4,#00H ;首列号 R4 MOV R2,#FEH ;首列扫描字 R2 LK4: MOV A,R2 ;列扫描字 P1口 MOV P1,A ;使第一列线为0 MOV A,P1 ;读入行状态 JB ACC.0,LONE;第0行无键按下,转查第一行 MOV A,#00H ;第0行有键按下,该行首键号#00H AJMP LKP ;转求键号 LONE: JB ACC.1,NEXT ;第一行无键按下,转查下一列 MOV A,#02 ;第一行有键按下,该行首键号#02 LKP: ADD A,R4 ;键号=首行号+列号 PUSH ACC ;键号进栈保护 LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;未释放,等待 POP AC ;键释放,键号 RET ;键扫描结束 NEXT: INC R4 ;列号加1,指向下一列 MOV A,R2 ;列扫描字 JNB ACC.1,KND ;判断2列全扫描完?扫描完,转KND RL A ;没扫描完,扫描字左移一位,形成下一列扫描字 MOV R2,A ;扫描字 AJMP LK4 ;扫描下一列 AJMP KEY1 ;全扫描完,返回 MOV A,#FCH ;全扫描字11111100B MOV P1,A ;全扫描字 所有行 MOV A,P1 ;读取列值 CPL A ;取正逻辑,高电平表示有键按下 ANL A,#0C0H ;屏蔽低6位,取高2位 RET ;出口状态(A)!=0,有键按下

    内容

    • 0

      键盘编程扫描法识别有行扫描法和行列反转法。( )

    • 1

      键盘中的键码的识别主要有行扫描法、行列反转法和() A: 行列扫描法 B: 列扫描法 C: 行列扫描反转法 D: 行反转法

    • 2

      编写一个程序,从键盘读入

    • 3

      简述行列式非编码键盘采用行____扫描法识别按键的全过程。____

    • 4

      矩阵键盘识别方法有 A: 行扫描法 B: 行列反转法 C: 动态 D: 静态