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

📄 按键计数.asm

📁 单片机例程:键盘控制
💻 ASM
字号:
;两位数码管,按键加一减一数显程序(P3.2为加一键,P3.3为减一键)
TEMP    EQU   22H         ;计数器寄存器 
;******; 
;主程序; 
;******; 
     MOV      TEMP,#100    ;初始化计数器 
GO:  SETB     P3.2         ;置P3.2为加1键 
     SETB     P3.3         ;置P3.3为减1键 
     JNB      P3.2,K1      ;P3.2=0表明按键s1按下(加1键) 
     JNB      P3.3,K2      ;P3.3=0表明按键s2按下(减1键) 
     ACALL    TV           ;显示 
     LJMP     GO           ;返回 
K1:  JNB      P3.2,X1      ;等待P3.2释放 
     ACALL    TV           ;显示延时 
     INC      TEMP         ;加1       
     MOV      A,TEMP 
     CJNE     A,#200,N1    ;未到200中跳回 
     MOV      TEMP,#100    ;加到200复位100; 
N1:  LJMP     GO           ;返回 
X1:  ACALL    TV           ;等待P33释放延时 
     LJMP     K1 
K2:  JNB      P3.3,X2      ;等待P3.3释放 
     ACALL    TV           ;显示延时       
     DEC      TEMP         ;减1 
     MOV      A,TEMP 
     CJNE     A,#0,N2      ;未到0中跳回 
     MOV      TEMP,#100    ;减到0复位100 
N2:  LJMP     GO          ;返回 
X2:  ACALL    TV          ;等待P34释放延时 
     LJMP K2
;**********; 
;显示子程序; 
;**********; 
TV:    MOV    A,TEMP 
       MOV    B,#100       ;100进制 
       DIV    AB 
       MOV    19H,A        ;百位放在19H 
       MOV    A,B 
       MOV    B,#10        ;10进制 
       DIV    AB 
       MOV    20H,A        ;十位放在20H 
       MOV    21H,B        ;个位放在21H 
       MOV    DPTR,#W8     ;指定查表启始地址 
       MOV    R0,#4        ;显示4个50次 
  W9:  MOV    R1,#50       ;50次 
 W10:  MOV    A,21H        ;取个位数 
       MOVC   A,@A+DPTR    ;查个位数的7段代码 
       MOV    P0,A         ;送出个位的7段代码 
       CLR    P2.7         ;打开个位显示 
       ACALL  W13          ;显示延时 
       SETB   P2.7         ;关闭个位显示 
       MOV    A,20H        ;取十位数 
       MOVC   A,@A+DPTR    ;查十位数的7段代码 
       MOV    P0,A         ;送出十位的7段代码 
       CLR    P2.6         ;打开十位显示 
       ACALL  W13          ;显示延时 
       SETB   P2.6         ;关闭十位显示 
       DJNZ   R1,W10       ;50次没完循环 
       DJNZ   R0,W9        ;4个50次没完循环 
       RET 
;********; 
;显示延时; 
;********; 
  W13: MOV    R7,#70 
       DJNZ   R7,$ 
       NOP 
       RET 

   ;7段数码管各划的数字排列表 
   W8: DB  28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h 
       ;0 1 2 3 4 5 6 7 8 9 
       END 

⌨️ 快捷键说明

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