51 单片机汇编语言--矩阵键盘的驱动

  有人在网上求助矩阵键盘的驱动方法。
  链接是在:用这个矩阵键盘做单片机输入
  题目内容如下。
  用下面这个矩阵键盘做单片机输入,插 P1 口的 P1.0~P1.6。

  想问的是,当:
  按下 1 键 P0 口的 P0.0 输出高电平;
  按下 2 键 P0.1 输出高电平;
  ……。
  一直到 8 键就可以了。
  用汇编语言哦。
  -------------------
  做而论道回答:
  用按键控制单项输出,这就不需要消抖了。 执行如下程序即可。

;=====================================================
    ORG   0000H
START:
    MOV   P0, #255
    MOV   P1, #255
    CLR   P1.0
    NOP  
    JNB   P1.4, K1
    JNB   P1.5, K2
    JNB   P1.6, K3
    MOV   P1, #255
    CLR   P1.1
    NOP  
    JNB   P1.4, K4
    JNB   P1.5, K5
    JNB   P1.6, K6
    MOV   P1, #255
    CLR   P1.2
    NOP  
    JNB   P1.4, K7
    JNB   P1.5, K8
;    JNB   P1.6, K9
    SJMP  START
K1: CLR   P0.0
    SJMP  DELAY
K2: CLR   P0.1
    SJMP  DELAY
K3: CLR   P0.2
    SJMP  DELAY
K4: CLR   P0.3
    SJMP  DELAY
K5: CLR   P0.4
    SJMP  DELAY
K6: CLR   P0.5
    SJMP  DELAY
K7: CLR   P0.6
    SJMP  DELAY
K8: CLR   P0.7
DELAY:
    MOV   R5, #10
    DJNZ  R7, $
    DJNZ  R6, $ - 2
    DJNZ  R5, $ - 4
    LJMP  START
END

  如果需要按键控制输出高电平,就把程序中的 CLR  P0.X,全改成 SETB  P0.X。
  再把: MOV   P0, #255
  改成: MOV   P0, #0
  即可。

 

--本文完--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值