找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机查询式键盘扩展汇编程序

[复制链接]
跳转到指定楼层
楼主
ID:338151 发表于 2018-5-25 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单8051的键盘扩展。

单片机源程序如下:
  1. $NOMOD51
  2. $include (C8051F340.INC)
  3. ; Reset Vector
  4.         ORG          0000H
  5.         LJMP  INICONF                     ; Locate a jump to the start of
  6.                                           ; code at the reset vector.
  7. ;                ORG   0003H
  8. ;                LJMP  IT0INT
  9. ;        ORG   000BH
  10. ;        LJMP  T0INT
  11. ;                ORG   0013H
  12. ;                LJMP  INT1INT
  13. ;                ORG   0023H
  14. ;                LJMP  COMINT3
  15. ;-------------------------------------------
  16. ;KEEP THE FOLLOWING CODE SEGMENT UNCHANGED
  17. INICONF:
  18.         ; Disable the WDT.
  19.         ANL   PCA0MD, #10111111B      ; clear Watchdog Enable bit
  20.                 ;Use Internal H-F Oscillator(12M)/1 as System clock, =12MHz
  21.                 ORL   OSCICN, #00000011B
  22.         ; Enable the Port I/O Crossbar
  23.         ORL   XBR0, #00000001B              ; UART0 TX0, RX0 routed to Port pins P0.4 and P0.5
  24.         ORL   XBR1, #01000000B        ; enable Crossbar
  25.                 ; Port I/O Output Configuration
  26.                 ORL   P0MDOUT, #11111111B
  27.                 ORL   P1MDOUT, #11111111B
  28.                 ORL   P2MDOUT, #11111111B
  29.                 ; External Memory Configuration
  30.                 ORL          EMI0CF, #00001100B
  31. ;-------------------------------------------
  32. ; INSERT YOUR OWN PROGRAM HERE        
  33.            MOV  30H,#41H
  34.                                          MOV  31H,#42H
  35.                                          MOV  32H,#43H
  36.                                          MOV  33H,#44H
  37.                                          MOV  A,#03H
  38.                                          MOV        DPTR,#7FF8H
  39.                                          MOVX        @DPTR,A
  40. START:                 MOV  DPTR,#7FFBH
  41.            MOVX  A,@DPTR
  42.                                          ANL  A,#0FH
  43.                                          CJNE A,#0FH,NEXT
  44.                                          SJMP START
  45. NEXT:      LCALL DELAYKEY
  46.            MOVX A,@DPTR
  47.            ANL  A,#0FH
  48.                                          CJNE A,#0FH,NEXT1
  49.                                          SJMP START
  50. NEXT1:                 JNB  ACC.0, BRT0
  51.                                          JNB  ACC.1, BRT1
  52.                                          JNB  ACC.2, BRT2
  53.                                          JNB  ACC.3, BRT3
  54.                                          SJMP DONE
  55. BRT0:      MOV  R4,30H
  56.            MOV  41H,#01H
  57.            SJMP DONE
  58. BRT1:      MOV  R4,31H
  59.            MOV  41H,#02H
  60.            SJMP DONE
  61. BRT2:      MOV  R4,32H
  62.            MOV  41H,#03H
  63.            SJMP DONE
  64. BRT3:      MOV  R4,33H
  65.            MOV  41H,#04H
  66.            SJMP DONE
  67. DONE:      ACALL CHANGE
  68.            ACALL DISPLAY
  69.                                          SJMP  START
  70. ;
  71. CHANGE:    MOV A,R4
  72.            MOV R1,A
  73.                                          MOV A,@R1
  74.            SUBB A,37H
  75.                                          MOV 40H,A
  76.                                          RET
  77. DISPLAY:   MOV  R0,#40H
  78.                                          MOV        R3,#0FEH
  79.                                          MOV        A,R3
  80. DISPLAY1:         MOV        DPTR,#7FFAH
  81.                                          MOVX        @DPTR,A
  82.                                          MOV        A,@R0
  83.                                          MOV        DPTR,#TAB
  84.                                    MOVC        A,@A+DPTR
  85.                                          MOV        DPTR,#7FF9H
  86.                                          MOVX        @DPTR,A
  87.                                          ACALL DELAY
  88.                                          MOV         A,R3
  89.                                          JNB   ACC.7,DISPLAY2
  90.                                          RL                A
  91.                                          MOV                R3,A
  92.                                          SJMP        DISPLAY1       
  93. DISPLAY2:         RET
  94. ;
  95.   ORG  0150H

  96. DELAY:                MOV A,41H       
  97.           MOV B,#27H
  98.                                         MUL AB
  99.           MOV R7,A
  100. DELAY1:                MOV        R6,#0FFH
  101. DELAY2:                MOV R1,#0FFH
  102. DELAY3:   DJNZ        R1,DELAY3
  103.                                         DJNZ        R6,DELAY2
  104.                                         DJNZ  R7,DELAY1
  105.                                         RET
  106. ;
  107.   ORG  0200H
  108. DELAYKEY: MOV R5,#02H
  109. DELAYKEY1:MOV R2,#0FFH
  110. DELAYKEY2:DJNZ R2,DELAYKEY2
  111.           DJNZ R5,DELAYKEY1
  112.                                         RET
  113. ;
  114. TAB:                        DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H,0FFH,40H
  115. ;-----------------------------------------------------------------------------
  116. ; End of file.
  117. END
复制代码

所有资料51hei提供下载:
查询式键盘扩展部分.zip (1.21 KB, 下载次数: 4)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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