⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 y17.asm

📁 这是关于键盘显示的单片机代码程序
💻 ASM
字号:
    ;键盘扫描显示程序
     LEDBUF EQU 79H
     ORG 0000H
      AJMP MAIN
      ORG 0030H
MAIN: MOV LEDBUF+0,#0        ;初始为零
      MOV LEDBUF+1,#0
      MOV LEDBUF+2,#0
      MOV LEDBUF+3,#0
      MOV LEDBUF+4,#0
      MOV LEDBUF+5,#0

MLOOP: ACALL DIR               ;调用显示子程序
      ACALL KS1
      JZ MLOOP                ;检查是否有键按下,没有转MLOOP
      ACALL KEY1               ;调用键盘子程序
      MOV DPTR,#TABLE
      MOVC A,@A+DPTR
      MOV   LEDBUF+5,LEDBUF+4
      MOV   LEDBUF+4,LEDBUF+3
      MOV   LEDBUF+3,LEDBUF+2
      MOV   LEDBUF+2,LEDBUF+1
      MOV   LEDBUF+1,LEDBUF+0
      MOV   LEDBUF+0,A
      LJMP MLOOP

KS1:  MOV DPTR,#8002H       ;确定A口地址
      MOV A,#00H             ;A口送00H
      MOVX @DPTR,A
      MOV DPTR,#8001H          ;建立C口地址
      MOVX A,@DPTR             ;读C口地址
      CPL A                   ;A取反,无键按下则全“0”
      ANL A,#0FH               ;屏蔽A高半字节
      RET

DIR:   MOV R0,#79H
       MOV R3,#01H
       MOV A,R3
LD0:   MOV DPTR,#8002H     ;位控地址
       MOVX @DPTR,A
       MOV DPTR,#8004H     ;段控地址
       MOV A,@R0
DIR0:  ADD A,#0DH
       MOVC A,@A+PC          ;查找显示的数据
DIR1:  MOVX @DPTR,A
       ACALL DL                ;延时
       INC R0
       MOV A,R3
       JB ACC.5,LD1
       RL A
       MOV R3,A
       AJMP LD0
LD1:   RET
DSG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
     DB 77H,7CH,39H,5EH,79H,71H,76H,38H

DL:  MOV R6,#02H
     MOV R7,#04H
DL1: DJNZ R6,DL1
     DJNZ R7,DL1
     RET



KEY1: ACALL KS1
      JNZ LK1
      ACALL DL
      AJMP KEY1
LK1:  ACALL DL
      ACALL DL                 ;延时去抖动
      ACALL KS1                 ;再检查是否有键闭合
      JNZ LK2                    ;有键闭合转LK2
      ACALL DL
      AJMP KEY1
LK2:  MOV R2,#0FEH
      MOV R4,#00H
LK4:  MOV DPTR,#8002H
      MOV A,R2
      MOVX @DPTR,A
      MOV DPTR,#8001H
      MOVX A,@DPTR
      JB  ACC.0,LONE
      MOV A,#00H
      AJMP LKP
LONE: JB ACC.1,LTWO
      MOV A,#06
      AJMP LKP
LTWO: JB ACC.2,LTHR
      MOV A,#12
      AJMP LKP
LTHR: JB ACC.3,NEXT
      MOV A,#18
LKP:  ADD A,R4
      PUSH  A
LK3:  ACALL DL
      ACALL KS1
      JNZ LK3
      POP ACC
      RET
NEXT: INC R4
      MOV A,R2
      JNB ACC.7,KND
      RL A
      MOV R2,A
      AJMP LK4
KND:  AJMP LK1
TABLE:  DB   0FFH,0FFH,0DH,0EH,0FH,00H
        DB   0FFH,0FFH,0CH,03H,02H,01H
        DB   0FFH,0FFH,0BH,06H,05H,04H
        DB   0FFH,0FFH,0AH,09H,08H,07H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -