00-99计数器.asm

来自「AT89S52单片机程序50例(00-50)」· 汇编 代码 · 共 39 行

ASM
39
字号
;===  00-99计数器  ===

      Count EQU 30H
      SP1 BIT P3.7  ;定义P3.7为按键
      ORG 0000H

START:MOV Count,#00H
 NEXT:MOV A,Count
      MOV B,#10
      DIV AB
      MOV DPTR,#TABLE  ;取表的有效地址
      MOVC A,@A+DPTR  ;查表
      MOV P0,A
      MOV A,B
      MOVC A,@A+DPTR
      MOV P2,A


 WAIT:JB SP1,WAIT  ;是否有按键?无,则继续检测
      LCALL DELY10MS  ;有,则延时消抖
      JB SP1,WAIT  ;是否真的有按键?无,则重新检测
      INC Count  ;有,则Count加1
      MOV A,Count
      JNB SP1,$
      CJNE A,#100,NEXT  ;按键次数是否为100,不是,则跳转至NEXT
      LJMP START  ;是,则重新计数

;===  10ms延时子程序  ===
DELY10MS:MOV R6,#20
      D1:MOV R7,#248
         DJNZ R7,$
         DJNZ R6,D1
 RET

;=== 0-9的段码值  ===
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

⌨️ 快捷键说明

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