正在加载图片...
L:有键闭合转消颤查有无键闭合的子程序K51 LJMP LK8;无键闭合则退出 LK1: LCALL DL6ms;消颤12ms KS1: MOV DPTR,#010lH;指向A口 LCALL DL6mS MOVA,#00H;8条行线都送0 LCALL KS1;再查有无键闭合 MOVX,@DPTR,A;送到行线上去 JNZ LK2;的确有,转处理 INC DPTR LJMP LK8;确实无,退出去 INC DPTR 指向C口 MOVX A,@DPTR;读列线的电平 ANLA,#0FH;保留C口低4位 行线 若确有键按下,则Acc中必有“0 ORLA,#0FOH;将Acc高4位赋1 0行1行2行3行4行5行6行7行 CPL A Acc 取反后,高4位=0; 若有键按下,则低4位中必有“1” 0481216202428 RET 1591317212529 列J1列 检查的结果(出囗) 26101418222630 线 2列 若(A)≠0,则有键按下; 232631 3列+ 若(A)=0,则无键按下。KEY1:LCALL KS1 ;查有无键闭合 JNZ LK1 ;有键闭合转消颤 LJMP LK8 ;无键闭合则退出 LK1:LCALL DL6ms ;消颤12ms LCALL DL6ms LCALL KS1 ;再查有无键闭合 JNZ LK2 ;的确有,转处理 LJMP LK8 ;确实无,退出去 查有无键闭合的子程序KS1: KS1:MOV DPTR,#0101H ;指向 A口 MOV A, #00H ;8条行线都送0 MOVX,@DPTR,A;送到行线上去 INC DPTR INC DPTR ;指向 C口 MOVX A,@DPTR ;读列线的电平 ANL A,#0FH ;保留C口低4位 若确有键按下,则Acc中必有“0” ORL A,#0F0H ;将Acc高4位赋1 CPL A ;Acc取反后,高4位=0; 若有键按下,则低4位中必有“1” RET 检查的结果(出口): 若(A)≠0,则有键按下; 若(A)=0,则无键按下。 行线 列 线 0列 3列 1列 2列 0行 1行 2行 3行 4行 5行 6行 7行 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 26 31
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有