武汉理工大学《计算机控制技术》课程设计说明书
LFIV:JB ACC.5,NEXT MOV A,#1EH
LKP: ADD ACC,R4 ;求键号,键号=行首键号+列号
PUSH ACC ;保护键号
LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;键未释放,继续等待 POP
ACC ;
AJMP OVER
;NEXT:INC R4 ; MOV
A,R2
; JNB ACC.7,KND
RL A ; MOV R2,A ;
AJMP LK4 ;LTHR:JB ACC.3,NEXT
MOV A,#18H ;LKP: ADD A,R4 ;
PUSH ACC ;LK3:ACALL KS1 JNZ LK3 ; POP ACC ;
AJMP
OVER
;NEXT:INC R4 ; MOV A,R2 JNB ACC.7,KND
RL A ; MOV R2,A ; AJMP LK4 ;
键释放,键号送A
键扫描结束
列号加1,指向下一列
判断8列扫描完否
列扫描完,继续
扫描字左移一位 送扫描字 转下一列扫描
第3行无键按下,查下一列
有键按下,设置行首键
求键号,键号=行首键号+列号
保护键号
等待键释放 键未释放,继续等待 键释放,键号送A 键扫描结束
列号加1,指向下一列
列扫描完,继续
字左移一位 送扫描字 下一列扫描
24
;8 ; ; ; 8武汉理工大学《计算机控制技术》课程设计说明书
KND:AJMP KEY1
OVER:RET ;扫描结束 KS1:MOV DPTR,#7F01H ;向PA口
MOV A,#00H ;扫描字 MOVX
@DPTR,A
;描字送PA口
INC DPTR INC DPTR MOVX
;向PC口
A,@DPTR ;入PC口状态
CPL ;高电平表示有键按下 ANL A,#0FH ;蔽高4位 RET
;晶振为6MHz时的12ms延时子程序 DELL:MOV R7,#12 DEL:MOV R6,#250 NN:DJNZ R6,NN DJNZ R7,DEL RET END
25