xor a, 0fbh ;
sz acc ;
jmp get_key ;
MOV a, 0f7h ;(2) ; 扫描第四行是否被按下
MOV matrix, a ; 将第三行的代码送matrix
MOV pa, a ;
MOV a, pa ;
xor a, 0f7h ;
sz acc ;
jmp get_key ;
jmp keyloop ;?跳到键循环扫描
get_key: ; 取键值
call key_in ;(3) ; 调用key_in 子程序
MOV pb, a ;(11) ; 从PB口显示键值
jmp keyloop ; 跳到键循环扫描
key_in proc ; 键值读入子程序
MOV a, pa ;
MOV temp, a ;(4) ; 将PA口的状态读入的 temp寄存器中
MOV temp1,a
MOV temp2,a
call delays ;(5) ; 调用延时子程序
get_release: ; 等待键松开
MOV a, pa ;将PA口的主状态值送ACC
and a, 0f0h
xor a,0f0h ; 屏蔽ACC高四位,取按键状态
sz acc ;(6) ; 等键松开 , 键如松开则acc=0
jmp get_release ;
MOV a, 0fh ; 取屏蔽寄存器的低四位
andm a, temp ;
MOV a,temp
MOV a, 0
set c ;
get_row: ; 取行数
rrc temp ;(7) ; 右移 matrix 指针
snz status.0 ; 检查并取键行
jmp get_column1 ; 如果找到键行,跳到 get_next
clr c ; 如果还未找到键行,清carry_c
add a, 4h ;(8) ; 加4到显示指针
jmp get_row ; 跳回get_row
get_column1: ; 取列值
上一页 [1] [2] [3] 下一页
本文关键字:程序 合泰单片机,单片机-工控设备 - 合泰单片机