找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2265|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机实现矩阵中断式键盘值显示汇编语言程序

[复制链接]
跳转到指定楼层
楼主

利用51单片机实现4*4矩阵键盘扫描,并摁下相应键时在LED上显示相应键值,通过两位动态显示。通过中断方式实现。采用汇编语言。

单片机源程序如下:
  1. ORG  0000H
  2.   LJMP MAIN
  3.   ORG  0003H
  4.   LJMP INT
  5.   ORG  0040H
  6. MAIN:MOV SP,#70H
  7.     MOV 30h,#00h
  8.     SETB EX0
  9.     SETB IT0
  10.     SETB EA
  11.     MOV DPTR,#TAB
  12.     MOV P2,#0F0H;p2口高四位置1低四位置0
  13. INT:PUSH ACC
  14.    MOV P2,#0F0H
  15.    MOV A,P2;a为11110000
  16.    JNB ACC.4,E1;键盘查询,不为1跳转,为1顺序 查询p4口 下同
  17.    JNB ACC.5,E2
  18.    JNB ACC.6,E3
  19.    JNB ACC.7,E4
  20.    SETB EX0
  21.    RETI
  22. E1: MOV 20h,#0 ;按键在哪一行,第一行加0
  23.    LJMP KEYH
  24. E2: MOV 20h,#4 ;第二行家4
  25.    LJMP KEYH
  26. E3: MOV 20H,#8 ;第三行加8
  27.    LJMP KEYH
  28. E4: MOV 20h,#12;第四行加12
  29.    LJMP KEYH
  30. KEYH:
  31. MOV P2,#0FH
  32. MOV A,P2
  33.     JNB ACC.0,DO
  34.     JNB ACC.1,D1
  35.     JNB ACC.2,D2
  36.     JNB ACC.3,D3
  37.     RETI
  38. DO:  MOV A,#0 ;第一列加0,下同
  39.     ADD A,20H
  40. DA A
  41.     MOV 30H,A
  42.     SJMP EXIT
  43. D1:  MOV A,#1
  44.     ADD A,20H
  45. DA A
  46.     mov 30h,a
  47.     Sjmp EXIT
  48. D2:  MOV A,#2
  49.     ADD A,20H
  50. DA A
  51.     MOV 30H,A
  52.     SJMP EXIT
  53. D3:  MOV A,#3
  54.     ADD A,20H
  55. DA A
  56.     MOV 30H,A
  57. EXIT:
  58.     MOV A,30H
  59. ANL A,#0FH ;a的高四位清零留下个位
  60.     MOVC A,@A+DPTR
  61. CLR P1.1 ;位选
  62. SETB P1.0
  63.     MOV P0,A
  64. MOV A,#0FFH;p0清零
  65. MOV P0,A ;p0清零
  66. MOV A,30H
  67. ANL A,#0F0H
  68. SWAP A;留下十位
  69.     MOVC A,@A+DPTR
  70. CLR P1.0
  71. SETB P1.1
  72.     MOV P0,A
  73. MOV A,#0FFH
  74. MOV P0,A
  75. LJMP INT
  76. DELAY:MOV R0,#2;延时
  77. D:    MOV R1,#25
  78.      DJNZ R1,$
  79.      DJNZ R0,D
  80.      RET
  81. TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  82.    END
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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