找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机4*4键盘的显示 五位数码的显示可自行输入 汇编程序

[复制链接]
跳转到指定楼层
楼主
通过单片机完成五位数码的显示可自行输入

51单片机4*4键盘的显示仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. 伪定义        
  2.         KEYBUF    EQU    30H     ;键值暂存单元,查表时用
  3. ;*************************************
  4. ;*                                   *
  5. ;*      主程序和中断程序入口         *
  6. ;*                                   *
  7. ;*************************************
  8.   ORG     0000H       ;程序执行开始地址
  9.   AJMP    MAIN                ;跳至MAIN执行
  10. ;*************************************
  11. ;*                                   *
  12. ;*        主  程  序             *
  13. ;*                                   *
  14. ;*************************************
  15.                 ORG     0040H
  16. MAIN:           MOV     P1,#0FFH
  17.                 CLR     P2.0
  18.                 LCALL   KEYSCAN         ;主体程序。调用查键子程序
  19.   LJMP MAIN    ;转MAIN循环
  20.   NOP     ;软件陷阱
  21.   NOP
  22.   NOP
  23.   LJMP MAIN   
  24. ;*************************************
  25. ;*                                   *
  26. ;* 键盘工作子程序(4 * 4 阵列)      *
  27. ;* 出口为各键工作程序入口 P1口      *
  28. ;*************************************
  29. KEYSCAN:        
  30.      MOV P1,#0FFH;清P1口,初始化键低电平有效
  31.      CLR P1.4;清P1.4口
  32.      MOV A,P1;读P1口状态
  33.      ANL A,#0FH;清高4位,保留低四位低电平有效
  34.      XRL A,#0FH;异或相同则为0不同结果为1,为0则表示无键被按下(这一行)
  35.      JZ NOKEY1;为0则转下一行键值处理
  36.      LCALL DL10MS;有键按下则延时10ms再测一次抗干扰
  37.      MOV A,P1
  38.      ANL A,#0FH
  39.      XRL A,#0FH
  40.      JZ NOKEY1;是干扰则转下一行键值处理程序
  41.      MOV A,P1
  42.      ANL A,#0FH;保留低四?
  43. KB1:
  44.      CJNE A,#0EH,KB2;如果值为#0E则为P1.4与P1.0组合的键
  45.      MOV KEYBUF,#0;赋键值
  46.      LJMP KEYWORK;转键处理
  47. KB2: CJNE A,#0DH,KB3;如果值为#0D则为P1.4与P1.1组合的键
  48.      MOV KEYBUF,#1
  49.      LJMP KEYWORK
  50. KB3: CJNE A,#0BH,KB4;如果值为#0B则为P1.4与P1.2组合的
  51.      MOV KEYBUF,#2
  52.      LJMP KEYWORK
  53. KB4: CJNE A,#07H,KB5;如果值为#07则为P1.4与P1.3组合的
  54.      MOV KEYBUF,#3
  55.      LJMP KEYWORK
  56. KB5: NOP


  57. NOKEY1:
  58.      MOV P1,#0FFH
  59.      CLR P1.5
  60.      MOV A,P1
  61.      ANL A,#0FH
  62.      XRL A,#0FH
  63.      JZ NOKEY2
  64.      LCALL DL10MS
  65.      MOV A,P1
  66.      ANL A,#0FH
  67.      XRL A,#0FH
  68.      JZ NOKEY2
  69.      MOV A,P1
  70.      ANL A,#0FH
  71.      CJNE A,#0EH,KB6
  72.      MOV KEYBUF,#4
  73.      LJMP KEYWORK
  74. KB6: CJNE A,#0DH,KB7
  75.      MOV KEYBUF,#5
  76.      LJMP KEYWORK
  77. KB7: CJNE A,#0BH,KB8
  78.      MOV KEYBUF,#6
  79.      LJMP KEYWORK
  80. KB8: CJNE A,#07H,KB9
  81.      MOV KEYBUF,#7
  82.      LJMP KEYWORK
  83. KB9: NOP


  84. NOKEY2:
  85.      MOV P1,#0FFH
  86.      CLR P1.6
  87.      MOV A,P1
  88.      ANL A,#0FH
  89.      XRL A,#0FH
  90.      JZ NOKEY3
  91.      LCALL DL10MS
  92.      MOV A,P1
  93.      ANL A,#0FH
  94.      XRL A,#0FH
  95.      JZ NOKEY3
  96.      MOV A,P1
  97.      ANL A,#0FH
  98.      CJNE A,#0EH,KB10
  99.      MOV KEYBUF,#8
  100.      LJMP KEYWORK
  101. KB10: CJNE A,#0DH,KB11
  102.      MOV KEYBUF,#9
  103.      LJMP KEYWORK
  104. KB11: CJNE A,#0BH,KB12
  105.      MOV KEYBUF,#10
  106.      LJMP KEYWORK
  107. KB12: CJNE A,#07H,KB13
  108.      MOV KEYBUF,#11
  109.      LJMP KEYWORK

  110. KB13: NOP


  111. NOKEY3:
  112.      MOV P1,#0FFH
  113.      CLR P1.7
  114.      MOV A,P1
  115.      ANL A,#0FH
  116.      XRL A,#0FH
  117.      JZ NOKEY4
  118.      LCALL DL10MS
  119.      MOV A,P1
  120.      ANL A,#0FH
  121.      XRL A,#0FH
  122.      JZ NOKEY4
  123.      MOV A,P1
  124.      ANL A,#0FH
  125.      CJNE A,#0EH,KB14
  126.      MOV KEYBUF,#12
  127.      LJMP KEYWORK
  128. KB14: CJNE A,#0DH,KB15
  129.      MOV KEYBUF,#13
  130.      LJMP KEYWORK
  131. KB15: CJNE A,#0BH,KB16
  132.      MOV KEYBUF,#14
  133.      LJMP KEYWORK
  134. KB16: CJNE A,#07H,KB17
  135.      MOV KEYBUF,#15
  136.      LJMP KEYWORK
  137. KB17: NOP

  138. NOKEY4:
  139.      LJMP MAIN

  140. KEYWORK:
  141.       MOV A,KEYBUF;得到键值
  142.       MOV  DPTR,#TABLE
  143.       MOVC A,@A+DPTR;查行键值送ACC
  144.       MOV P0,A;

  145.      
  146. WAITFREE:
  147.      MOV A,P1;以下程序等待键释放
  148.      MOV KEYBUF,#00H
  149.      ANL A,#0FH
  150.      XRL A,#0FH
  151.      JNZ WAITFREE
  152.      RET
  153. ;
  154. ;*************************************
  155. ;*                                   *
  156. ;*          延时513 us              *
  157. ;*                                   *
  158. ;*************************************
  159. ;
  160. ;513微秒延时程序
  161. DELAY:          MOV     R2,#0FEH
  162. DELAY1:         DJNZ    R2,DELAY1
  163.   RET
  164. ……………………

  165. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
4X4键盘显示.rar (28.16 KB, 下载次数: 30)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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