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

📄 键盘逐显.asm

📁 MCS-51单片机汇编小程序
💻 ASM
字号:
ORG 0
ORG 0
     MOV R5,#00H;
MAIN:                          ;扫描有无按键按下;
     MOV P3,#0FH;              ;
     MOV R0,P3;                ;
     CJNE R0,#0FH,LIE;         有按键按下则跳转至LIE;
     JMP MAIN;                 没有则重新执行MAIN;

LIE:CALL BACK;
    MOV A,P3;                  扫描是键盘的第几行按键按下;
  L1:CJNE A,#0EH,L2;           第一行有按键按下;
     MOV DPTR,#FIRST;
     JMP HANG;
  L2:CJNE A,#0DH,L3;           第二行有按键按下;
     MOV DPTR,#SECOND;
     JMP HANG;
  L3:CJNE A,#0BH,L4;           第三行有按键按下;
     MOV DPTR,#THIRD;
     JMP HANG;
  L4:CJNE A,#07H,MAIN;         第四行有按键按下;
     MOV DPTR,#FOURTH;


HANG:MOV P3,#0F0H;             扫描键盘的第几列有按键按下;
     CLR A;
     MOV A,P3;
  H1:CJNE A,#0E0H,H2;          第一列有按键按下;
     CLR A;
     MOV R1,#0;
     MOV A,R1;
     CALL CHOOSE;
     JMP MAIN;
  H2:CJNE A,#0D0H,H3;          第二列有按键按下;
     CLR A;
     MOV R1,#1;
     MOV A,R1;
     CALL CHOOSE;
     JMP MAIN;
  H3:CJNE A,#0B0H,H4;          第三列有按键按下;
     CLR A;
     MOV R1,#2;
     MOV A,R1;
     CALL CHOOSE;
     JMP MAIN;
  H4:CJNE A,#70H,LIE;          第四列有按键按下;
     CLR A;
     MOV R1,#3;
     MOV A,R1;
     CALL CHOOSE;
     JMP MAIN;

CHOOSE:MOVC A,@A+DPTR;         选择相应的数字或字母;
  STAY:MOV R2,P3;
       CJNE R2,#0F0H,STAY1;

       MOV P0,A;
       CALL DELAY;
       CLR A;
       RET;
       STAY1:MOV P0,#0FFH;
             JMP STAY;
             
DELAY:MOV R7,#200;             延时;
   D1:MOV R6,#200;
      DJNZ R6,$;
      DJNZ R7,D1;
      RET;
FIRST:  db 0C0H,0F9H,0A4H,0B0H
SECOND: db 099H,092H,082H,0F8H
THIRD:  db 080H,098H,088H,083H
FOURTH: db 0C6H,0A1H,086H,08EH

BACK:CJNE R5,#06H,NEXT;
     JMP JUMP;
NEXT:MOV A,R5;
     MOV DPTR,#TAB;
     MOVC A,@A+DPTR;
     MOV P2,A;
     CLR A;
     INC R5;
     RET;
JUMP:MOV R5,#00H;
     JMP BACK;



S1:MOV P2,#0DFH;
   MOV P0,#0C0H;
   MOV P0,#0FFH;
S2:MOV P2,#0EFH;
   MOV P0,#0F9H;
   MOV P0,#0FFH;
S3:MOV P2,#0F7H;
   MOV P0,#0A4H;
   MOV P0,#0FFH;
S4:MOV P2,#0FBH;
   MOV P0,#0B0H;
   MOV P0,#0FFH;
S5:MOV P2,#0FDH;
   MOV P0,#99H;
   MOV P0,#0FFH;
S6:MOV P2,#0FEH;
   MOV P0,#92H;
   MOV P0,#0FFH;




     


MOV A,R3;
MOV DPTR,#TAB1;
MOVC A,@A+DPTR;
MOV P0,A;
   


TAB:  DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH
TAB1: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
      DB 080H,098H  

⌨️ 快捷键说明

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