正在加载图片...
KEY: LCALL KS1;查有无键闭合 JNz"LK1:有键闭合转消颤@行号:第行第7行(R3) LJMP LK8;无键闭合则退出 01234567) LK1: LCALL DL6ms;消颤2ms@行扫描值:OFEH→(R2) LCALL DL6mS LCALL KS1;再查有无键闭合 (FE, FD, FB, F7,EF,DF, BF,7F JNZ LK2;的确有,转处理FEH=11110首次扫 JMP LKS8;确实无,退出去描) LK2:MOR3,#00:(R3)行号初值FDH=1111101B(2次扫 MOvR2,#0FEH:(2+行扫描初值描) LK3: MOV DPTR#0101H;指向815A口FBH=11101B(3次扫 MOVA,R2;取行扫描值 MOVX,@DPTR,A;送到行线上去 描) INC DPTR FH=11110111B(4次扫描) INC DPTR 指向8155c口EH=1110111B(5次扫描 MOVA,DPTR;读列线的电平DFH=11011111B(6次扫 ANLA,#OFH;保留C口低4位 描) MOVR4,A:列值暂存进BFH=1011111B(7次扫 CJNE A,#0FH,LK4;列值≠全“1” 表明此次送0的行有键按下,转IK4处理, 描) 若=全1,表明此次送的行无键按下。FH=011111(8次扫描 列值:(0F0E0D.0B.07KEY1:LCALL KS1 ;查有无键闭合 JNZ LK1 ;有键闭合转消颤 LJMP LK8 ;无键闭合则退出 LK1:LCALL DL6ms ;消颤12ms LCALL DL6ms LCALL KS1 ;再查有无键闭合 JNZ LK2 ;的确有,转处理 LJMP LK8 ;确实无,退出去 LK2:MOV R3,#00H ;(R3)←行号初值 MOV R2,#0FEH;(R2)←行扫描初值 LK3:MOV DPTR #0101H;指向8155 A口 MOV A, R2 ;取行扫描值 MOVX,@DPTR,A ;送到行线上去 INC DPTR INC DPTR ;指向8155 C口 MOVX A,@DPTR ;读列线的电平 ANL A,#0FH ;保留C口低4位 MOV R4,A ;列值暂存进R4 CJNE A,#0FH,LK4;列值≠全“1” 表明此次送0的行有键按下,转LK4处理, 若=全1,表明此次送0的行无键按下。 @ 行号:第0行—第7行→(R3) (0,1,2,3,4,5,6,7) @ 行扫描值: 0FEH →(R2) (FE,FD,FB,F7,EF,DF,BF,7F) FEH = 1111 1110 B(首次扫 描) FDH = 1111 1101 B (2次扫 描) FBH = 1111 1011 B (3次扫 描) F7H = 1111 0111 B (4次扫描) EFH = 1110 1111 B (5次扫描) DFH = 1101 1111 B (6次扫 描) BFH = 1011 1111 B (7次扫 描) 7FH = 0111 1111 B (8次扫描) @ 列值: (0F,0E,0D,0B,07) 从C口低4位读进 → (R4)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有