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

📄 key_display_huang.asm

📁 8051单片机的4*4键盘输入与4位LED显示的实现
💻 ASM
字号:
KEY1:  ACALL  KS1
       JNZ  LK1  ;不为0,有键盘按下,转
       ACALL DIS  ;调用显示子程序,延时6MS
       AJMP  KEY1
LK1:   ACALL   DIS ;调用显示子程序,延时12Ms
       ACALL   DIS
       ACALL   KS1
       JNZ    LK2
       ACALL  DIS   ;调用显示子程序,延时6MS
       AJMP   KEY1
LK2:   MOV  R2,#11111011B
       MOV  R4,#00H   ;从第0列开始,4*4键盘显示
LK4:   MOV  DPTR,#8002H  ;位选
       MOV  A,R2
       MOVX @DPTR,A
       MOV DPTR ,#8001H  ;键盘输入
       MOVX A,@DPTR
       JB ACC.0,LONE  ;第0行
       MOV A,#00H
       AJMP  LKP
LONE:  JB acc.1,LTWO
       MOV A,#04H  ;第1行
       AJMP LKP
LTWO:  JB ACC.2,LTHR
       MOV A,#08H  ;第2行
       AJMP LKP
LTHR:JB ACC.3,NEXT
     MOV A,#0CH  ;第3行
LKP: ADD A,R4
     PUSH ACC
LK3: ACALL DIS
     ACALL KS1
     JNZ   LK3
     POP   ACC
     MOV 7BH,7AH
     MOV 7AH,79H
     MOV 79H,78H
     MOV 78H,A
     SJMP    KEY1;RET
NEXT: INC  R4  ;下一列
      MOV A,R2
      JNB ACC.5,KND
      RL A
      MOV R2,A
      AJMP LK4
KND:  AJMP KEY1
KS1:  MOV DPTR ,#8002H  ;判断是否有键盘按下
      MOV A,#00H
      MOVX @DPTR,A
      MOV DPTR, #8001H
      MOVX A,@DPTR
      CPL A
      ANL A,#0FH
      RET

DIS: MOV R0,#78H  ;动态显示子程序
     MOV R3,#00000100B
     MOV A,R3
LD0: MOV DPTR,#8002H  ;位选
     MOVX @DPTR,A
     MOV DPTR,#8004H ;段选
     MOV A,@R0
     ADD A,#0DH
     MOVC A,@A+PC
     MOVX @DPTR,A
     ACALL DL1
     INC R0
     MOV A,R3
     JB ACC.5,LD1
     RL  A
     MOV R3,A
     AJMP LD0
LD1: RET
DSEG:    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H  ;共阴表

DL1: MOV R7,#02H  ;延时子程序
DL:  MOV R6,#0FFH
DL6: DJNZ R6,DL6
     DJNZ R7,DL
     RET

⌨️ 快捷键说明

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