正在加载图片...
4设计一个2×2行列式盘电路并编写键盘扫描子程序, 解: (1)2×2行列式键盘电路如图所示。 8989 5V P1.7 P1.6 P1.1 P1.0 89C51 (2)键盘扫描子程序: KEY1:ACALL KSI :调用判断有无键按下子程序 JNZ LKI :有键按下,转LKI AJMP ;无键按下,返回 LKI: ACALL TI2MS :调延时12ms子程疗 ACALL KSI :查有无键按下 JNZ LK2 :若有,则为键确实按下,转逐列扫描 AJMP KEYI :无键按下,返回 LK2: MOV R4,#O0H;首列号R4一 MOVR2,FEH:首列扫描字R2→ LK4: MOV A.R2 :列扫描字P十 MOV PI,A ;使第一列线为0 MOV A,P1 :读入行状态 JB ACC.0,LONE:第0行无键按下,转查第一行 MOV A,#00:第0行有键按下,该行首健号#00A一 AJMP LKP 转求键号 LONE:JB ACC.1,NEXT;第一行无键按下,转查下一列4 设计一个 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 A AJMP LKP ;转求键号 LONE: JB ACC.1,NEXT ;第一行无键按下,转查下一列 P1.7 P1.6 P1.1 P1.0 89C51 5V
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有