您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子元器件>接口定义>

软件过程和程序 - 节约端口线及器件的新型键盘

2011年10月10日 11:27 本站整理 作者:秩名 用户评论(0
3 软件过程和程序

  检测过程:先将口1执低电平,然后读取口2、3、4,如有低电平则端口对应的按键被按下;如都是高电平,则将口2执低,然后读取口1、3、4,以此类推。

  程序如下:

  ;端口定义

  K1 BIT P1.0

  K2 BIT P1.1

  K3 BIT P1.2

  K4 BIT P1.3

  ;******************************************

  ; 键盘扫描

  ;******************************************

  KEY: SETB K2 ;一行

  SETB K3

  SETB K4

  CLR K1

  JB K2,KEY1

  LCALL T1MS

  JB K2,KEY1

  MOV KEYZ,#01H

  KT1: JNB K2,KT1

  LJMP KEYOUT

  KEY1: JB K3,KEY2

  LCALL T1MS

  JB K3,KEY2

  MOV KEYZ,#02H

  KT2: JNB K3,KT2

  LJMP KEYOUT

  KEY2: JB K4,KEY3

  LCALL T1MS

  JB K4,KEY3

  MOV KEYZ,#03H

  KT3: JNB K4,KT3

  LJMP KEYOUT

  KEY3: SETB K1 ;二行

  CLR K2

  JB K1,KEY4

  LCALL T1MS

  JB K1,KEY4

  MOV KEYZ,#04H

  KT4: JNB K1,KT4

  LJMP KEYOUT

  KEY4: JB K3,KEY5

  LCALL T1MS

  JB K3,KEY5

  MOV KEYZ,#05H

  KT5: JNB K3,KT5

  LJMP KEYOUT

  KEY5: JB K4,KEY6

  LCALL T1MS

  JB K4,KEY6

  MOV KEYZ,#06H

  KT6: JNB K4,KT6

  LJMP KEYOUT

  KEY6: SETB K2 ;三行

  CLR K3

  JB K1,KEY7

  LCALL T1MS

  JB K1,KEY7

  MOV KEYZ,#07H

  KT7: JNB K1,KT7

  LJMP KEYOUT

  KEY7: JB K2,KEY8

  LCALL T1MS

  JB K2,KEY8

  MOV KEYZ,#08H

  KT8: JNB K2,KT8

  LJMP KEYOUT

  KEY8: JB K4,KEY9

  LCALL T1MS

  JB K4,KEY9

  MOV KEYZ,#09H

  KT9: JNB K4,KT9

  LJMP KEYOUT

  KEY9: SETB K3 ;四行

  CLR K4

  JB K1,KEY10

  LCALL T1MS

  JB K1,KEY10

  MOV KEYZ,#0AH

  KT10: JNB K1,KT10

  LJMP KEYOUT

  KEY10: JB K2,KEY11

  LCALL T1MS

  JB K2,KEY11

  MOV KEYZ,#0BH

  KT11: JNB K2,KT11

  LJMP KEYOUT

  KEY11: JB K3,KEY

  LCALL T1MS

  JB K3,KEY

  MOV KEYZ,#0CH

  KT12: JNB K3,KT12

  KEYOUT: RET

  ;********************************************

  ; 延时

  ;********************************************

  T1MS: MOV R4,#0FEH ;1ms延时

  T1MS0: NOP

  NOP

  DJNZ R4,T1MS0

  RET

非常好我支持^.^

(28) 31.1%

不好我反对

(62) 68.9%

( 发表人:叶子 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!