实在搞不定了,希望大神们能指教一下

Leon_man 2017-03-27 05:28:58
矩阵键盘8*8扫描程序显示键值程序现在已经搞定,现在又有一个新的问题就是判断按键的按下与抬起问题。要求按下去且不松开则显示键值,松开后显示的内容为键值加上80。怎么去判断按键的抬起呀?搞了好长时间了,前辈指教一下吧。下面是我的扫描程序。、
L_scan:
clr p_ia_c
set p_ia ;A口置一
nop
nop
nop
set p_ia_c ;A输入口
$1:
clr R_num
mov a,R_Nc ;C初始为0FEH然后依次左移一位
mov p_oc,a ;C输出口
$2:
mov a,p_ia
mov R_Lie,a
$3:
snz R_Lie.0 ;关键是这里,这里是判断按下去了就跳到loop中计算得到键值。否则继续扫描
call loop ;R_lie是个变量初值是1换成二进制也就是8个1,,然后分别判断每一位(移位的方法),哪位

rr R_lie ;哪位变成0了则那一位就按下了,R_num表示移位的次数,也就是按下的列值。
inc R_num

mov a,R_num
sub a,8
snz c
jmp $3

clr R_num
rl R_Nc
inc R_Hang
mov a,R_Hang
sub a,8
snz c
jmp L_scan

clr R_Hang

ret
loop:
mov a,R_Hang
rl acc
rl acc
rl acc
add a,R_num
jmp l_led_num_dispose
ret
...全文
340 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧