找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2209|回复: 0
收起左侧

单片机汇编矩阵键盘代码

[复制链接]
ID:489393 发表于 2019-3-12 17:59 | 显示全部楼层 |阅读模式

单片机源程序如下:
  1.         ORG         00H
  2.         LJMP        INIT
  3.         ORG         30H
  4.         DB                03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H
  5.         ;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  6. ;*************;
  7. ;         主程序          ;
  8. ;*************;
  9. INIT:
  10.         CLR         P2.2
  11.         CLR         P2.3
  12.         CLR         P2.4
  13.         MOV         R1,#00H
  14. START:
  15.         MOV                A,R1
  16.         MOV         DPTR,#30H
  17.         MOVC         A,@A+DPTR       
  18. MAIN:
  19.         MOV         P0,A         
  20. ;**********************;
  21. ;          矩阵键盘扫描程序   ;
  22. ;**********************;
  23. KEY_SCAN:
  24.         MOV         P1,#00FH
  25.         NOP
  26.         MOV                R2,P1
  27.         CJNE         R2,#00FH,KEY_DOWN   ;没有按键按下就返回主函数
  28.         SJMP         MAIN
  29. KEY_DOWN:
  30.     ACALL        DELAY10MS                ;消抖
  31.         MOV         R2,P1
  32.         CJNE         R2,#00FH,NEXT0
  33.         SJMP        MAIN                         ;没有按键按下就返回主函数
  34. NEXT0:
  35.         CJNE         R2,#007H,NEXT1        ;如果不等于007H就跳去检测下一个键值
  36.         MOV         R1,#00H                        ;如果是的话
  37.         SJMP         NEXT_SCAN
  38. NEXT1:
  39.         CJNE         R2,#00BH,NEXT2
  40.         MOV         R1,#01H
  41.         SJMP         NEXT_SCAN
  42. NEXT2:
  43.         CJNE         R2,#00DH,NEXT3
  44.         MOV         R1,#02H
  45.         SJMP         NEXT_SCAN
  46. NEXT3:
  47.         CJNE         R2,#00EH,MAIN
  48.         MOV         R1,#03H
  49. NEXT_SCAN:
  50.         MOV         P1,#0F0H
  51.         MOV         R2,P1
  52.         CJNE         R2,#070H,NEXT4
  53.         MOV         A,#00H
  54.         ADD         A,R1
  55.         MOV         R1,A
  56.         LJMP         START
  57. NEXT4:
  58.         CJNE         R2,#0B0H,NEXT5
  59.         MOV         A,#04H
  60.         ADD         A,R1
  61.         MOV         R1,A
  62.         LJMP         START
  63. NEXT5:
  64.         CJNE         R2,#0D0H,NEXT6
  65.         MOV         A,#08H
  66.         ADD         A,R1
  67.         MOV         R1,A
  68.         LJMP         START
  69. NEXT6:
  70.         CJNE         R2,#0E0H,MAIN
  71.         MOV         A,#0CH
  72.         ADD         A,R1
  73.         MOV         R1,A
  74.         MOV         R3,#030H
  75. KEY_UP:
  76.         ACALL         DELAY10MS
  77.         DJNZ        R3,KEY_UP
  78.         LJMP         START
  79. ;*************;
  80. ; 延时程序          ;
  81. ;*************;
  82. DELAY10MS:
  83.         MOV         R6,#015H
  84. DE1:
  85.         MOV         R7,#0F8H
  86. DE2:
  87.         DJNZ         R7,DE2
  88.         DJNZ         R6,DE1
  89.         RET

  90.         END
  91.                         
复制代码

所有资料51hei提供下载:
矩阵键盘.rar (18.73 KB, 下载次数: 12)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表